/
suggest.go
59 lines (54 loc) · 1.36 KB
/
suggest.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package controllers
import (
"fmt"
"net/http"
"time"
"github.com/LyricTian/snail/models"
"github.com/LyricTian/snail/utils/captcha"
"github.com/astaxie/beego"
"github.com/satori/go.uuid"
)
// SuggestController 反馈建议
type SuggestController struct {
BaseController
}
// Post /suggest
// @router /suggest [post]
func (sc *SuggestController) Post() {
var reqData struct {
Email string `valid:"Required"`
Comment string `valid:"Required"`
SCaptchaID string `valid:"Required"`
SCaptcha string `valid:"Required"`
}
if err := sc.BindVForm(&reqData); err != nil {
sc.Error400(err.Error())
}
if !captcha.VerifyString(reqData.SCaptchaID, reqData.SCaptcha) {
sc.Error400("无效的验证码")
}
suggest := &models.Suggest{
ID: uuid.NewV4().String(),
AccessIP: sc.Ctx.Input.IP(),
Email: reqData.Email,
Comment: reqData.Comment,
CreateTime: time.Now().Format("20060102150405"),
}
err := suggest.Create()
if err != nil {
beego.Info(fmt.Sprintf("%#v", suggest))
beego.Error("增加反馈建议发生错误:", err.Error())
}
sc.SetSession("suggest", "true")
sc.Redirect("/suggest", http.StatusFound)
}
// Get /suggest
// @router /suggest [get]
func (sc *SuggestController) Get() {
if sc.GetSession("suggest") == nil {
sc.Redirect("/", http.StatusFound)
return
}
sc.DelSession("suggest")
sc.HTML("suggest.html")
}