package handler import ( "server/call" "server/common" "server/db" "server/modules/web/app" "server/modules/web/values" "server/pb" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" ) func MailList(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.MailListReq) if !a.S(req) { return } if req.Num*req.Page > common.MailMaxCount { a.Code = values.CodeParam return } list := []common.Mail{} count, err := db.Mysql().QueryMailList(a.UID, req.Page, req.Num, &list, req.Tag) if err != nil { a.Code = values.CodeRetry return } // for i := range list { // list[i].Enclosure = []*pb.CurrencyPair{} // if len(list[i].Enc) > 0 { // json.Unmarshal([]byte(list[i].Enc), &list[i].Enclosure) // } // } resp := values.MailListResp{ List: list, Count: int(count), } a.Data = resp call.PushRed(a.UID, pb.RedPointModule_RedPointMail, 0) } func ReadMail(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.ReadMailReq) if !a.S(req) { return } // id, err := strconv.Atoi(req.ID) // if err != nil { // log.Error("err:%v", err) // a.Code = values.CodeRetry // return // } id := req.ID one := &common.Mail{ID: id} err := db.Mysql().Get(one) if err != nil { a.Code = values.CodeRetry return } count, err := db.Mysql().UpdateRes(&common.Mail{ID: id, Status: common.MailStatusNew}, map[string]interface{}{"status": common.MailStatusRead}) if count == 0 || err != nil { log.Error("err:%v", err) a.Code = values.CodeRetry return } call.UpsertRedPointAndNotify(a.UID, -1, call.ModuleMail) a.Data = values.ReadMailResp{Mail: *one} } // func DrawMail(c *gin.Context) { // a := app.NewApp(c) // defer func() { // a.Response() // }() // req := new(values.DrawMailReq) // if !a.S(req) { // return // } // // id, err := strconv.Atoi(req.ID) // // if err != nil { // // log.Error("err:%v", err) // // a.Code = values.CodeRetry // // return // // } // id := req.ID // one := &common.Mail{ID: id} // err := db.Mysql().Get(one) // if err != nil { // a.Code = values.CodeRetry // return // } // if len(one.Enc) == 0 { // a.Code = values.CodeMailUndrawable // return // } // if one.Status > common.MailStatusRead { // a.Code = values.CodeMailDrew // return // } // pairs := []*pb.CurrencyPair{} // err = json.Unmarshal([]byte(one.Enc), &pairs) // if err != nil { // log.Error("err:%v", err) // a.Code = values.CodeRetry // return // } // count, err := db.Mysql().UpdateRes(&common.Mail{ID: id, Status: common.MailStatusRead}, map[string]interface{}{"status": common.MailStatusDraw}) // if count == 0 || err != nil { // log.Error("err:%v", err) // a.Code = values.CodeRetry // return // } // for _, v := range pairs { // if _, err := call.UpdateCurrencyPro(&common.UpdateCurrency{ // ShouldNotify: true, // CurrencyBalance: &common.CurrencyBalance{ // UID: a.UID, // Event: common.CurrencyEventMailDraw, // Type: common.CurrencyType(v.Type), // Value: v.Value, // }, // }); err != nil { // log.Error("err:%v", err) // a.Code = values.CodeRetry // return // } // } // } func DeleteMail(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.DeleteMailReq) if !a.S(req) { return } count := 0 for _, v := range req.ID { // id, err := strconv.Atoi(v) // if err != nil { // log.Error("err:%v", err) // a.Code = values.CodeRetry // return // } id := v one := &common.Mail{ID: id} err := db.Mysql().Get(one) if err != nil { a.Code = values.CodeRetry return } status := one.Status count, err := db.Mysql().UpdateRes(&common.Mail{ID: id}, map[string]interface{}{"status": common.MailStatusDelete}) if count == 0 || err != nil { log.Error("err:%v", err) a.Code = values.CodeRetry return } if status == common.MailStatusNew { count++ } } if count > 0 { call.UpsertRedPointAndNotify(a.UID, -count, call.ModuleMail) } } func DeleteMailAll(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() err := db.Mysql().Update(&common.Mail{Receiver: a.UID}, map[string]interface{}{"status": common.MailStatusDelete}) if err != nil { a.Code = values.CodeRetry return } call.UpsertRedPointAndNotify(a.UID, 0, call.ModuleMail) }