76 lines
2.0 KiB
Go
76 lines
2.0 KiB
Go
package web
|
|
|
|
import (
|
|
"go_dreamfactory/lego/sys/gin"
|
|
"go_dreamfactory/lego/sys/gin/engine"
|
|
"go_dreamfactory/pb"
|
|
"net/http"
|
|
"time"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
type CrateMailReq struct {
|
|
Uid string `json:"uid"` // uid
|
|
Title string `json:"title"` // 邮件标题
|
|
Contex string `json:"contex"` // 邮件内容 支持自定义
|
|
Items []*pb.UserAssets // 附件
|
|
Cid string `json:"cid"` // 多语言表id
|
|
Param []string // 自定义参数
|
|
Sign string `json:"sign"`
|
|
}
|
|
|
|
//创建邮件
|
|
func (this *Api_Comp) CreateMail(c *engine.Context) {
|
|
req := &CrateMailReq{}
|
|
err := c.BindJSON(&req)
|
|
this.module.Debugf("CrateMail:%+v err:%v", req, err)
|
|
var (
|
|
code pb.ErrorCode
|
|
msg string
|
|
data interface{}
|
|
)
|
|
defer c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: data})
|
|
if sign := gin.ParamSign(this.options.Key, map[string]interface{}{
|
|
"Uid": req.Uid,
|
|
"Title": req.Title,
|
|
"Contex": req.Contex,
|
|
"Items": req.Items,
|
|
"Cid": req.Cid,
|
|
"Param": req.Param,
|
|
}); sign != req.Sign {
|
|
this.module.Errorf("LoginByCaptchaReq SignError sgin:%s", sign)
|
|
code = pb.ErrorCode_SignError
|
|
msg = pb.GetErrorCodeMsg(code)
|
|
return
|
|
}
|
|
if len(req.Title) == 0 {
|
|
code = pb.ErrorCode_ReqParameterError
|
|
msg = pb.GetErrorCodeMsg(code)
|
|
return
|
|
}
|
|
mail := &pb.DBMailData{
|
|
ObjId: primitive.NewObjectID().Hex(),
|
|
Uid: req.Uid,
|
|
Title: req.Title,
|
|
Contex: req.Contex,
|
|
CreateTime: uint64(time.Now().Unix()),
|
|
DueTime: uint64(time.Now().Unix() + 30*24*3600),
|
|
Check: false,
|
|
Reward: false,
|
|
Items: req.Items,
|
|
Cid: req.Cid,
|
|
Param: req.Param,
|
|
}
|
|
if len(req.Items) > 0 {
|
|
mail.Reward = true
|
|
}
|
|
if err = this.module.modelMail.CreateGMMail(mail); err != nil {
|
|
this.module.Errorf("LoginByCaptchaReq CreateMail err:%v", err)
|
|
code = pb.ErrorCode_DBError
|
|
msg = pb.GetErrorCodeMsg(code)
|
|
return
|
|
}
|
|
msg = pb.GetErrorCodeMsg(code)
|
|
}
|