package logic import ( "app.yhyue.com/moapp/MessageCenter/api/internal/svc" "app.yhyue.com/moapp/MessageCenter/api/internal/types" "app.yhyue.com/moapp/MessageCenter/rpc/messageclient" "context" "github.com/zeromicro/go-zero/core/logx" ) type MessageListLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewMessageListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MessageListLogic { return &MessageListLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *MessageListLogic) MessageList(req *types.MessageListReq) (resp *types.MessageListResp, err error) { // todo: add your logic here and delete this line result := new(types.MessageListResp) lsi := l.svcCtx.MessageCenter res, err := lsi.UserMsgList(l.ctx, &messageclient.UserMsgListReq{ MsgType: req.MsgType, Appid: req.AppId, SortSize: req.SortSize, UserId: req.UserId, Read: req.IsRead, OffSet: req.Offset, PageSize: req.Size, IsColumn: req.IsColumn, IsColumnNewMsg: req.IsColumnNewMsg, IsMsgList: req.IsMsgList, PositionId: req.PositionId, NewUserId: req.NewUserId, }) if err != nil { return nil, err } result.Code = res.Code result.Message = res.Message result.Total = res.Count result.Unread = res.Unread if res.List != nil && len(res.List) > 0 { for _, v := range res.List { result.Data = append(result.Data, map[string]interface{}{ "id": v.Id, "appid": v.Appid, "receive_name": v.ReceiveName, "send_userid": v.SendUserId, "send_name": v.SendName, "createtime": v.Createtime, "title": v.Title, "msg_type": v.MsgType, "link": v.Link, "cite_id": v.CiteId, "content": v.Content, "isRead": v.IsRead, "msgLogId": v.MsgLogId, "url": v.Url, }) } } if res.Last != nil { result.Last = map[string]interface{}{ "id": res.Last.Id, "appid": res.Last.Appid, "receive_name": res.Last.ReceiveName, "send_userid": res.Last.SendUserId, "send_name": res.Last.SendName, "createtime": res.Last.Createtime, "title": res.Last.Title, "msg_type": res.Last.MsgType, "link": res.Last.Link, "cite_id": res.Last.CiteId, "content": res.Last.Content, "isRead": res.Last.IsRead, "msgLogId": res.Last.MsgLogId, "url": res.Last.Url, } } if res.Column != nil && len(res.Column) > 0 { var columns []map[string]interface{} for _, vs := range res.Column { var column = map[string]interface{}{ "name": vs.Name, "img": vs.Img, "msg_type": vs.MsgType, "unreadMessages": vs.UnreadMessages, } var cn []map[string]interface{} for _, v := range vs.Data { cn = append(cn, map[string]interface{}{ "id": v.Id, "appid": v.Appid, "receive_name": v.ReceiveName, "send_userid": v.SendUserId, "send_name": v.SendName, "createtime": v.Createtime, "title": v.Title, "msg_type": v.MsgType, "link": v.Link, "cite_id": v.CiteId, "content": v.Content, "isRead": v.IsRead, "msgLogId": v.MsgLogId, }) } column["msgData"] = cn columns = append(columns, column) } result.Column = columns } return result, nil }