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 `json:"items"` // 附件 Cid string `json:"cid"` // 多语言表id Param []string `json:"param"` // 自定义参数 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) }