You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
4.2 KiB
191 lines
4.2 KiB
|
1 year ago
|
package handler
|
||
|
|
|
||
|
|
import (
|
||
|
|
"server/call"
|
||
|
|
"server/common"
|
||
|
|
"server/db"
|
||
|
|
"server/modules/web/app"
|
||
|
|
"server/modules/web/values"
|
||
|
|
|
||
|
|
"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
|
||
|
|
}
|
||
|
|
|
||
|
|
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)
|
||
|
|
}
|