|
@@ -0,0 +1,148 @@
|
|
|
+package message
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_yb/global"
|
|
|
+ "hongze/hongze_yb/models/request/message"
|
|
|
+ "hongze/hongze_yb/models/response"
|
|
|
+ "hongze/hongze_yb/models/tables/yb_message"
|
|
|
+ "hongze/hongze_yb/services/user"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// GetList 查询消息列表
|
|
|
+func GetList(user user.UserInfo, msgType, pageIndex, pageSize int) (ret response.RespMessageList, err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ //校验入参
|
|
|
+ //查询消息列表
|
|
|
+ offset := (pageIndex - 1) * pageSize
|
|
|
+ msgList, err := yb_message.GetListByType(user.UserID, msgType, offset, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询消息列表出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ total, err := yb_message.GetListTotalByType(user.UserID, msgType)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询消息列表总数出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理列表返回值
|
|
|
+ var list []*response.RespMessageItem
|
|
|
+ for _, v := range msgList {
|
|
|
+ tmp := new(response.RespMessageItem)
|
|
|
+ tmp.MsgId = v.MsgId
|
|
|
+ tmp.IsRead = v.IsRead
|
|
|
+ tmp.UserId = v.UserId
|
|
|
+ tmp.Type = v.Type
|
|
|
+ tmp.CreateTime = v.CreateTime
|
|
|
+ tmp.ReportChapterId = v.ReportChapterId
|
|
|
+ tmp.ReportId = v.ReportId
|
|
|
+ tmp.ContentFirst = v.ContentFirst
|
|
|
+ tmp.ContentSecond = v.ContentSecond
|
|
|
+ tmp.Img = ""
|
|
|
+ list = append(list, tmp)
|
|
|
+ }
|
|
|
+
|
|
|
+ ret.List = list
|
|
|
+ ret.Paging = response.GetPaging(pageIndex, pageSize, int(total))
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// BatchRead 一键已读
|
|
|
+func BatchRead(user user.UserInfo, req message.ReqMessageBatch) (err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ //根据类型设置一键已读
|
|
|
+ err = yb_message.SetBatchRead(user.UserID, req.Type)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("一键已读设置失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// SingleRead 单条消息设置已读
|
|
|
+func SingleRead(user user.UserInfo, req message.ReqMessage) (err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //查询当前消息
|
|
|
+ msgInfo, err := yb_message.GetMsgByMsgId(user.UserID, req.MsgId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询消息出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if msgInfo.MsgId <= 0 {
|
|
|
+ err = errors.New("消息不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if msgInfo.IsRead == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ msgInfo.IsRead = 0
|
|
|
+ msgInfo.ModifyTime = time.Now()
|
|
|
+ //根据类型设置一键已读
|
|
|
+ err = msgInfo.Update([]string{"is_read","modify_time"})
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("已读设置失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// SingleDelete 单条消息删除
|
|
|
+func SingleDelete(user user.UserInfo, req message.ReqMessage) (err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //查询当前消息
|
|
|
+ msgInfo, err := yb_message.GetMsgByMsgId(user.UserID, req.MsgId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询消息出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if msgInfo.MsgId <= 0 {
|
|
|
+ err = errors.New("消息不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if msgInfo.Enabled == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ msgInfo.Enabled = 0
|
|
|
+ msgInfo.ModifyTime = time.Now()
|
|
|
+ //根据类型设置一键已读
|
|
|
+ err = msgInfo.Update([]string{"enabled","modify_time"})
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("删除消息失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|