This commit is contained in:
殷勇 2023-10-27 16:15:40 +08:00
parent b0f7b10a02
commit 74d6888f96
3 changed files with 36 additions and 19 deletions

View File

@ -20,7 +20,7 @@ type getMailsReq struct {
func (api *MailApi) GetMailList(c *gin.Context) {
var req getMailsReq
if err := c.ShouldBindQuery(&req); err != nil {
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
@ -28,7 +28,7 @@ func (api *MailApi) GetMailList(c *gin.Context) {
accountObj := GetPlayerMgr().AsyncGetPlayer(req.AccountId)
if accountObj == nil {
err := fmt.Errorf("account is null")
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
commonPlayer := (common.Player)(accountObj)
@ -51,18 +51,18 @@ type markMailReq struct {
func (api *MailApi) MarkMail(c *gin.Context) {
var req markMailReq
if err := c.ShouldBindQuery(&req); err != nil {
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
if req.Flag != "read" {
c.JSON(http.StatusBadRequest, errorResponse(400, fmt.Errorf("flag is not `read`")))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, fmt.Errorf("flag is not `read`")))
return
}
accountObj := GetPlayerMgr().AsyncGetPlayer(req.AccountId)
if accountObj == nil {
err := fmt.Errorf("account is null")
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
accountObj.MarkMail(req.MailIds)
@ -82,14 +82,14 @@ type getUnreadMailCountReq struct {
func (api *MailApi) GetUnreadMailCount(c *gin.Context) {
var req getUnreadMailCountReq
if err := c.ShouldBindQuery(&req); err != nil {
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
accountObj := GetPlayerMgr().AsyncGetPlayer(req.AccountId)
if accountObj == nil {
err := fmt.Errorf("account is null")
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
commonPlayer := (common.Player)(accountObj)
@ -112,21 +112,21 @@ type getMailAttachmentReq struct {
func (api *MailApi) GetMailAttachment(c *gin.Context) {
var req getMailAttachmentReq
if err := c.ShouldBindQuery(&req); err != nil {
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
accountObj := GetPlayerMgr().AsyncGetPlayer(req.AccountId)
if accountObj == nil {
err := fmt.Errorf("account is null")
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
att := accountObj.GetAttachment(req.MailIds)
c.JSON(http.StatusOK, gin.H{
"errcode": 0,
"errmsg": "success",
"errmsg": "",
"attachments": att,
})
}
@ -141,20 +141,20 @@ type deleteMailsReq struct {
func (api *MailApi) DeleteMails(c *gin.Context) {
var req deleteMailsReq
if err := c.ShouldBindQuery(&req); err != nil {
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
accountObj := GetPlayerMgr().AsyncGetPlayer(req.AccountId)
if accountObj == nil {
err := fmt.Errorf("account is null")
c.JSON(http.StatusBadRequest, errorResponse(400, err))
c.JSON(http.StatusBadRequest, errorResponse(http.StatusBadRequest, err))
return
}
accountObj.DeleteMails(req.MailIds)
c.JSON(http.StatusOK, gin.H{
"errcode": 0,
"errmsg": "success",
"errmsg": "",
})
}

View File

@ -85,7 +85,7 @@ func (m *Mail) IsReadableMail(accountObj common.Player) bool {
}
}
nowUnixSec := int32(time.Now().Unix())
if m.ExpireTime > nowUnixSec && m.SendTime <= nowUnixSec && accountObj.IsUnreadMail(m.MailId) {
if m.ExpireTime > nowUnixSec && m.SendTime <= nowUnixSec && accountObj.IsUnreadMail(m.MailId) && !accountObj.IsDeletedMail(m.MailId) {
return true
}

View File

@ -49,13 +49,30 @@ func (mm *MailMgr) GetMails(player common.Player) []*Mail {
resMailList := make([]*Mail, 0, resMailsSize)
for _, gMail := range gameMails {
if player.IsUnreadMail(gMail.MailId) {
gMail.Flag = 0
} else {
gMail.Flag = 1 << 0
newMail := &Mail{
GameId: gMail.GameId,
MailId: gMail.MailId,
From: gMail.From,
To: gMail.To,
Subject: gMail.Subject,
Content: gMail.Content,
SendTime: gMail.SendTime,
MailType: gMail.MailType,
MailSubType: gMail.MailSubType,
UserType: gMail.UserType,
ExpireTime: gMail.ExpireTime,
CreateTime: gMail.CreateTime,
Ext: gMail.Ext,
ATT: gMail.ATT,
}
resMailList = append(resMailList, gMail)
if player.IsUnreadMail(gMail.MailId) {
newMail.Flag = 0
} else {
newMail.Flag = 1 << 0
}
resMailList = append(resMailList, newMail)
}
if playerMailSize > 0 {
for _, pMail := range playerMails {
if player.IsUnreadMail(pMail.MailId) {