|
|
|
|
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)
|
|
|
|
|
db.Mysql().Update(&common.PlayerRed{UID: a.UID}, map[string]interface{}{
|
|
|
|
|
"mail": 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
|
|
|
|
|
}
|
|
|
|
|
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++
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
}
|