go_dreamfactory/modules/mail/api_delallmail.go
2023-06-06 17:22:09 +08:00

63 lines
1.5 KiB
Go

package mail
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) DelAllMailCheck(session comm.IUserSession, req *pb.MailDelAllMailReq) (errdata *pb.ErrorData) {
if session.GetUserId() == "" {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
return
}
return
}
// 删除邮件
func (this *apiComp) DelAllMail(session comm.IUserSession, req *pb.MailDelAllMailReq) (errdata *pb.ErrorData) {
var (
mailinfo []*pb.DBMailData
err error
mailData []*pb.DBMailData
)
if errdata = this.DelAllMailCheck(session, req); errdata != nil {
return
}
mailinfo, err = this.module.modelMail.MailQueryUserMail(session.GetUserId())
if err != nil {
this.module.Errorf("Mail_GetList_Resp err:%v", err)
errdata = &pb.ErrorData{
Code: pb.ErrorCode_CacheReadError,
Title: pb.ErrorCode_CacheReadError.ToString(),
Message: err.Error(),
}
return
}
for _, v := range mailinfo {
if v.Check == false || (v.Reward && len(v.Items) > 0) {
bRet := this.module.modelMail.MailDelUserMail(v.ObjId)
if !bRet {
errdata = &pb.ErrorData{ // 邮件不存在
Code: pb.ErrorCode_MailErr,
Title: pb.ErrorCode_MailErr.ToString(),
Message: fmt.Sprintf("邮件不存在:%s", v.ObjId),
}
return
}
continue
}
mailData = append(mailData, v)
}
session.SendMsg(string(this.module.GetType()), "delallmail", &pb.MailDelAllMailResp{
Mails: mailData,
})
return
}