package controllers
import "github.com/revel/revel"
import "fmt"
//import "io/ioutil"
import "encoding/json"
import "os"
import "io"
import "time"
import "net/http"
type Concate struct {
Name string
Link string
Concat string
Tel string
Email string
}
func WriteFileAppend(filename string, data []byte) error {
fl, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE, 0644)
if err != nil {
return err
}
defer fl.Close()
n, err := fl.Write(data)
if err == nil && n < len(data) {
err = io.ErrShortWrite
}
return err
}
func (c App) Add() revel.Result {
method := c.Request.Method
fmt.Printf(method)
ck_name := "add_token"
if method == "POST" {
name := c.Params.Get("txtName")
link := c.Params.Get("txtLink")
concat := c.Params.Get("txtHeader")
tel := c.Params.Get("txtTel")
email := c.Params.Get("txtEmail")
token := c.Params.Get("add_token")
fmt.Printf("学校加入参数:name=%v;link=%v;concat=%v;tel=%v;email=%v;token=%V", name, link, concat, tel, email, token)
c.Validation.Required(token).Message("token验证失败,请重新打开页面")
c.Validation.Required(name).Message("学校名称,必须填写")
c.Validation.Required(concat).Message("申请人名,必须填写")
c.Validation.Required(tel).Message("联系电话,必须填写")
c.Validation.Required(email).Message("联系邮箱,必须填写")
if c.Validation.HasErrors() {
// 在flash上下文中保存验证错误并重定向
c.Validation.Keep()
c.FlashParams()
return c.Render()
}
result := "加入园子-失败"
ck_Token, ck_err := c.Request.Cookie(ck_name)
if ck_err != nil {
return c.Render(result)
}
if ck_Token.Value != token {
return c.Render(result)
}
concate := Concate{Name: name, Link: link, Concat: concat, Tel: tel, Email: email}
bb, err := json.Marshal(concate)
if err != nil {
return c.Render(result)
}
bstr := string(bb) + ","
bbNew := []byte(bstr)
err = WriteFileAppend(`./WiKiApp/public/js/add.json`, bbNew)
if err == nil {
result = " 加入园子-成功,稍后会有邮件或客服人员联系您"
}
return c.Render(result)
}
//创建token,防止重复提交
token := time.Now().Format("2006-01-02 15:04:05")
ck := http.Cookie{Name: ck_name, Value: token}
c.SetCookie(&ck)
return c.Render(token)
}