浏览代码

获取指定用户未读消息数量封装api接口

fuwencai 3 年之前
父节点
当前提交
f57fc5aa48

+ 29 - 0
api/internal/handler/messageunreadcounthandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"app.yhyue.com/moapp/MessageCenter/api/internal/logic"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/svc"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func MessageUnreadCountHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.MessageUnreadCountReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewMessageUnreadCountLogic(r.Context(), ctx)
+		resp, err := l.MessageUnreadCount(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 5 - 0
api/internal/handler/routes.go

@@ -32,6 +32,11 @@ func RegisterHandlers(engine *rest.Server, serverCtx *svc.ServiceContext) {
 				Path:    "/message/messageUnreadClassCount",
 				Handler: MessageUnreadClassCountHandler(serverCtx),
 			},
+			{
+				Method:  http.MethodGet,
+				Path:    "/message/messageUnreadCount",
+				Handler: MessageUnreadCountHandler(serverCtx),
+			},
 		},
 	)
 }

+ 49 - 0
api/internal/logic/messageunreadcountlogic.go

@@ -0,0 +1,49 @@
+package logic
+
+import (
+	"app.yhyue.com/moapp/MessageCenter/rpc/messageclient"
+	"context"
+	"log"
+
+	"app.yhyue.com/moapp/MessageCenter/api/internal/svc"
+	"app.yhyue.com/moapp/MessageCenter/api/internal/types"
+
+	"github.com/tal-tech/go-zero/core/logx"
+)
+
+type MessageUnreadCountLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewMessageUnreadCountLogic(ctx context.Context, svcCtx *svc.ServiceContext) MessageUnreadCountLogic {
+	return MessageUnreadCountLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *MessageUnreadCountLogic) MessageUnreadCount(req types.MessageUnreadCountReq) (*types.MessageUnreadCountRes, error) {
+	// todo: add your logic here and delete this line
+	result := &types.MessageUnreadCountRes{}
+	log.Println(req)
+	lsi := l.svcCtx.MessageCenter
+	resp, err := lsi.GetUnreadCount(l.ctx, &messageclient.GetUnreadCountRequest{
+		Appid:  req.AppId,
+		UserId: req.UserId,
+	})
+	if err != nil {
+		return nil, err
+	}
+	//data := make([]map[string]interface{}, 0)
+
+	result.Code = resp.Code
+	result.Message = resp.Message
+	result.Status = 0
+	result.Data = map[string]interface{}{
+		"count": resp.Count,
+	}
+	return result, nil
+}

+ 19 - 6
api/internal/types/types.go

@@ -26,12 +26,13 @@ type MessageGetLastRes struct {
 }
 
 type MessageFindReq struct {
-	UserId   string `form:"userId"`
-	AppId    string `form:"appId"`
-	MsgType  int64  `form:"msgType"`  // 是否限制消息类型  -1 不限制
-	IsRead   int64  `form:"isRead"`   // 是否限制未读    -1 不限制
-	Offset   int64  `form:"offset"`   // 页数
-	PageSize int64  `form:"pageSize"` //
+	UserId        string `form:"userId"`
+	AppId         string `form:"appId"`
+	ReceiveUserId string `form:"receiveUserId"`
+	MsgType       int64  `form:"msgType"`  // 是否限制消息类型  -1 不限制
+	IsRead        int64  `form:"isRead"`   // 是否限制未读    -1 不限制
+	Offset        int64  `form:"offset"`   // 页数
+	PageSize      int64  `form:"pageSize"` //
 }
 
 type MessageFindRes struct {
@@ -54,3 +55,15 @@ type MessageUnreadClassCountRes struct {
 	Data    []map[string]interface{} `json:"data"`
 	Info    []map[string]interface{} `json:"info"`
 }
+
+type MessageUnreadCountReq struct {
+	UserId string `form:"userId"`
+	AppId  string `form:"appId"`
+}
+
+type MessageUnreadCountRes struct {
+	Code    int64                  `json:"code"`
+	Status  int64                  `json:"isOk"`
+	Message string                 `json:"message"`
+	Data    map[string]interface{} `json:"data"`
+}

+ 19 - 4
api/message.api

@@ -32,10 +32,11 @@ type MessageFindReq {
 	UserId string `form:"userId"`
 	AppId  string `form:"appId"`
 	//    MsgType int64 `form:"msgType"`
-	MsgType  int64 `form:"msgType"`  // 是否限制消息类型  -1 不限制
-	IsRead   int64 `form:"isRead"`   // 是否限制未读    -1 不限制
-	Offset   int64 `form:"offset"`   // 页数
-	PageSize int64 `form:"pageSize"` //
+	ReceiveUserId string `form:"receiveUserId"`
+	MsgType       int64  `form:"msgType"`  // 是否限制消息类型  -1 不限制
+	IsRead        int64  `form:"isRead"`   // 是否限制未读    -1 不限制
+	Offset        int64  `form:"offset"`   // 页数
+	PageSize      int64  `form:"pageSize"` //
 }
 type MessageFindRes {
 	Code    int64                    `json:"code"`
@@ -48,6 +49,7 @@ type MessageUnreadClassCountReq {
 	UserId string `form:"userId"`
 	AppId  string `form:"appId"`
 }
+
 type MessageUnreadClassCountRes {
 	Code    int64                    `json:"code"`
 	Status  int64                    `json:"isOk"`
@@ -55,6 +57,17 @@ type MessageUnreadClassCountRes {
 	Data    []map[string]interface{} `json:"data"`
 	Info    []map[string]interface{} `json:"info"`
 }
+type MessageUnreadCountReq {
+	UserId string `form:"userId"`
+	AppId  string `form:"appId"`
+}
+type MessageUnreadCountRes {
+	Code    int64                  `json:"code"`
+	Status  int64                  `json:"isOk"`
+	Message string                 `json:"message"`
+	Data    map[string]interface{} `json:"data"`
+}
+
 service message-api {
 	@handler MessageDeleteHandler // TODO: set handler name and delete this comment
 	get /message/messageDelete (MessageDeleteReq) returns (MessageDeleteResp)
@@ -64,4 +77,6 @@ service message-api {
 	get /message/messageFind (MessageFindReq) returns (MessageFindRes)
 	@handler MessageUnreadClassCountHandler // 获取用户未读消息分类及分类下的最新消息
 	get /message/messageUnreadClassCount (MessageUnreadClassCountReq) returns (MessageUnreadClassCountRes)
+	@handler MessageUnreadCountHandler // 获取用户未读消息数量
+	get /message/messageUnreadCount (MessageUnreadCountReq) returns (MessageUnreadCountRes)
 }