renjiaojiao 1 år sedan
förälder
incheckning
98cf23e247

+ 4 - 4
api/internal/handler/getmsgtypehandler.go → api/internal/handler/bitmapsavemsghandler.go

@@ -9,16 +9,16 @@ import (
 	"github.com/zeromicro/go-zero/rest/httpx"
 )
 
-func GetMsgTypeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+func BitmapSaveMsgHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
-		var req types.GetMsgTypeReq
+		var req types.BitmapSaveMsgReq
 		if err := httpx.Parse(r, &req); err != nil {
 			httpx.Error(w, err)
 			return
 		}
 
-		l := logic.NewGetMsgTypeLogic(r.Context(), svcCtx)
-		resp, err := l.GetMsgType(&req)
+		l := logic.NewBitmapSaveMsgLogic(r.Context(), svcCtx)
+		resp, err := l.BitmapSaveMsg(&req)
 		if err != nil {
 			httpx.Error(w, err)
 		} else {

+ 28 - 0
api/internal/handler/newusersavemsghandler.go

@@ -0,0 +1,28 @@
+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/zeromicro/go-zero/rest/httpx"
+)
+
+func NewUserSaveMsgHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.NewUserSaveMsgReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewNewUserSaveMsgLogic(r.Context(), svcCtx)
+		resp, err := l.NewUserSaveMsg(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

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

@@ -32,11 +32,6 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 				Path:    "/messageCenter/messageDetail",
 				Handler: MessageDetailHandler(serverCtx),
 			},
-			{
-				Method:  http.MethodPost,
-				Path:    "/messageCenter/getMsgType",
-				Handler: GetMsgTypeHandler(serverCtx),
-			},
 			{
 				Method:  http.MethodPost,
 				Path:    "/messageCenter/markRead",

+ 28 - 0
api/internal/handler/updatemsgsummaryhandler.go

@@ -0,0 +1,28 @@
+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/zeromicro/go-zero/rest/httpx"
+)
+
+func UpdateMsgSummaryHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.UpdateMsgSummaryReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewUpdateMsgSummaryLogic(r.Context(), svcCtx)
+		resp, err := l.UpdateMsgSummary(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 0 - 48
api/internal/logic/getmsgtypelogic.go

@@ -1,48 +0,0 @@
-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 GetMsgTypeLogic struct {
-	logx.Logger
-	ctx    context.Context
-	svcCtx *svc.ServiceContext
-}
-
-func NewGetMsgTypeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetMsgTypeLogic {
-	return &GetMsgTypeLogic{
-		Logger: logx.WithContext(ctx),
-		ctx:    ctx,
-		svcCtx: svcCtx,
-	}
-}
-
-func (l *GetMsgTypeLogic) GetMsgType(req *types.GetMsgTypeReq) (resp *types.GetMsgTypeRes, err error) {
-	result := &types.GetMsgTypeRes{}
-	lsi := l.svcCtx.MessageCenter
-	res, err := lsi.GetMsgType(l.ctx, &messageclient.GetMsgTypeReq{
-		Appid:  req.AppId,
-		UserId: req.UserId,
-	})
-	if err != nil {
-		return nil, err
-	}
-	for _, val := range res.Data {
-		result.Data = append(result.Data, map[string]interface{}{
-			"msgType":         val.MsgType,
-			"name":            val.Name,
-			"code":            val.Code,
-			"displayPlatform": val.DisplayPlatform,
-			"img":             val.Img,
-		})
-	}
-	result.Code = res.Code
-	result.Message = res.Message
-	return result, nil
-}

+ 0 - 58
api/internal/logic/unreadmessageslogic.go

@@ -1,58 +0,0 @@
-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 UnreadMessagesLogic struct {
-	logx.Logger
-	ctx    context.Context
-	svcCtx *svc.ServiceContext
-}
-
-func NewUnreadMessagesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UnreadMessagesLogic {
-	return &UnreadMessagesLogic{
-		Logger: logx.WithContext(ctx),
-		ctx:    ctx,
-		svcCtx: svcCtx,
-	}
-}
-
-func (l *UnreadMessagesLogic) UnreadMessages(req *types.UnreadMessageReq) (resp *types.UnreadMessageResp, err error) {
-	result := &types.UnreadMessageResp{}
-	lsi := l.svcCtx.MessageCenter
-	res, err := lsi.UserUnreadMsgList(l.ctx, &messageclient.UserUnreadMsgListReq{
-		UserId:     req.UserId,
-		Appid:      req.AppId,
-		PageSize:   req.PageSize,
-		OffSet:     req.Offset,
-		IsNeedData: req.IsNeedData,
-	})
-	if err != nil {
-		return nil, err
-	}
-	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,
-				"createtime": v.Createtime,
-				"title":      v.Title,
-				"msg_type":   v.MsgType,
-				"link":       v.Link,
-				"content":    v.Content,
-				"isRead":     v.IsRead,
-				"msgLogId":   v.MsgLogId,
-				"url":        v.Url,
-			})
-		}
-	}
-	result.Code = res.Code
-	result.Message = res.Message
-	result.Total = res.Count
-	return result, nil
-}

+ 2 - 2
api/message.api

@@ -189,8 +189,8 @@ service message-api {
 	@handler MessageDetailHandler
 	post /messageCenter/messageDetail (MessageDetailReq) returns (MessageDetailResp)
 	// 获取消息分类
-	@handler GetMsgTypeHandler
-	post /messageCenter/getMsgType (GetMsgTypeReq) returns (GetMsgTypeRes)
+	//	@handler GetMsgTypeHandler
+	//	post /messageCenter/getMsgType (GetMsgTypeReq) returns (GetMsgTypeRes)
 	// 标记为已读
 	@handler MarkReadHandler
 	post /messageCenter/markRead (MarkReadReq) returns (MarkReadRes)

+ 0 - 79
rpc/internal/common/bmService.go

@@ -1,79 +0,0 @@
-package common
-
-import (
-	"app.yhyue.com/moapp/MessageCenter/entity"
-	"fmt"
-	"github.com/RoaringBitmap/roaring"
-	"sync"
-)
-
-var rwMutex sync.RWMutex
-
-// 将Roaring Bitmap写入MySQL
-func writeBitmapToSendLog(rb *roaring.Bitmap, msgLogId int64) error {
-	// 将Roaring Bitmap转换为字节数组
-	bytes, err := rb.ToBytes()
-	if err != nil {
-		return err
-	}
-	ok := entity.Mysql.Update("message_send_log", map[string]interface{}{"id": msgLogId}, map[string]interface{}{"baseUserIds": bytes})
-	if !ok {
-		return fmt.Errorf("更新message_user_summary msg_log_id: %s 出错", msgLogId)
-	}
-
-	return nil
-}
-
-// 从MySQL中读取Roaring Bitmap
-func readBitmapFromSendLog(msgLogId int64) (*roaring.Bitmap, error) {
-	// 从MySQL读取字节数组
-	var bytes []byte
-	err := entity.Mysql.DB.QueryRow("SELECT baseUserIds FROM message_send_log WHERE `id` = ?", msgLogId).Scan(&bytes)
-	if err != nil {
-		return nil, err
-	}
-
-	// 将字节数组转换为Roaring Bitmap
-	rb := roaring.NewBitmap()
-	_, err = rb.FromBuffer(bytes)
-	if err != nil {
-		return nil, err
-	}
-
-	return rb, nil
-}
-
-// 更新用户消息汇总表
-func writeBitmapToUserSummary(rb *roaring.Bitmap, userId string) error {
-	allMsg, err := rb.ToBytes()
-	if err != nil {
-		return err
-	}
-	ok := entity.Mysql.Update("message_user_summary", map[string]interface{}{"userId": userId}, map[string]interface{}{
-		"allMsg": allMsg,
-	})
-	if !ok {
-		return fmt.Errorf("更新message_user_summary USERID: %s 出错", userId)
-	}
-	return nil
-}
-
-// 更新用户消息汇总表 -已读未读
-func UpdateBitmapToUserUnread(rb2 *roaring.Bitmap, userId string) error {
-	readMsg, err := rb2.ToBytes()
-	if err != nil {
-		return err
-	}
-	ok := entity.Mysql.Update("message_user_summary", map[string]interface{}{"userId": userId}, map[string]interface{}{
-		"readMsg": readMsg,
-	})
-	if !ok {
-		return fmt.Errorf("更新message_user_summary USERID: %s 出错", userId)
-	}
-	return nil
-}
-
-type MsgSummaryEntity struct {
-	GroupId int
-	Byte1   []byte
-}

+ 4 - 38
rpc/internal/common/messageService.go

@@ -3,14 +3,11 @@ package common
 import (
 	"app.yhyue.com/moapp/MessageCenter/entity"
 	"app.yhyue.com/moapp/MessageCenter/rpc/type/message"
-	"app.yhyue.com/moapp/MessageCenter/util"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/redis"
 	"context"
 	"errors"
 	"fmt"
-	"log"
-	"strings"
 	"time"
 )
 
@@ -38,39 +35,8 @@ func (service *MessageService) ChangeReadStatus(data *message.ChangeReadStatusRe
 	return nil
 }
 
-// 删除消息
-func (service *MessageService) DeleteMessage(id []string, appId string) (int64, string) {
-	orm := entity.Engine.NewSession()
-	defer orm.Close()
-	msg := entity.Mysql.FindOne("message", map[string]interface{}{"id": id, "appid": appId}, "", "")
-	if msg == nil {
-		return 0, "该消息不存在"
-	}
-	m := entity.Message{}
-	m.Isdel = -1
-	count, err := orm.Where("appid=?", appId).In("id", id).Cols("isdel").Update(&m)
-	if err != nil || count == 0 {
-		log.Println(err)
-		orm.Rollback()
-		return 0, "删除消息失败"
-	}
-	err2 := orm.Commit()
-	if err2 != nil {
-		return 0, "删除消息失败"
-	}
-	FindUserMsg(message.FindUserMsgReq{
-		UserId:   qutil.ObjToString((*msg)["receive_userid"]),
-		Appid:    appId,
-		OffSet:   1,
-		PageSize: 5,
-		MsgType:  -1,
-		Read:     0,
-	}, true)
-	return 1, "删除消息成功"
-}
-
 // 未读消息合计 isRedis 是否需要初始化redis
-func (service *MessageService) CountUnread(userId string, isRedis bool) (map[string]int64, int64) {
+/*func (service *MessageService) CountUnread(userId string, isRedis bool) (map[string]int64, int64) {
 	var (
 		count              int64
 		msgTypes, groupIds []string
@@ -138,7 +104,7 @@ func (service *MessageService) CountClassUnread(userId string, groupId int64) (c
 	}
 
 	return data, count
-}
+}*/
 
 // 查询消息详情
 func FindMessageDetail(id, msgLogId int64, userId string) (msg *map[string]interface{}, err error) {
@@ -151,7 +117,7 @@ func FindMessageDetail(id, msgLogId int64, userId string) (msg *map[string]inter
 }
 
 // GetMsgType 消息的分类
-func (service *MessageService) GetMsgType() (data []*message.MsgTypes, err error) {
+/*func (service *MessageService) GetMsgType() (data []*message.MsgTypes, err error) {
 	types := entity.Mysql.SelectBySql("SELECT * FROM `message_group` WHERE group_id > 0 ORDER BY sequence ASC")
 	if types != nil && len(*types) > 0 {
 		for _, val := range *types {
@@ -166,7 +132,7 @@ func (service *MessageService) GetMsgType() (data []*message.MsgTypes, err error
 		return data, nil
 	}
 	return nil, nil
-}
+}*/
 
 func (service *MessageService) MsgOpenLog(platFrom, msgLogId int64, userId string) int64 {
 	//判断用户是否已经在pc端打开过

+ 2 - 55
rpc/internal/common/sendMsg.go

@@ -97,7 +97,7 @@ func FindUserMsg(this message.FindUserMsgReq, isClean bool) message.FindUserMsgR
 	return data
 }
 
-func UserMsgList(this *message.UserMsgListReq) *message.UserMsgList {
+/*func UserMsgList(this *message.UserMsgListReq) *message.UserMsgList {
 	var (
 		unread, count int64
 	)
@@ -262,7 +262,7 @@ func UserMsgList(this *message.UserMsgListReq) *message.UserMsgList {
 
 	data.Unread = unread
 	return data
-}
+}*/
 
 func unreadMsg(this *message.UserMsgListReq) int64 {
 	if this.PositionId <= 0 {
@@ -285,59 +285,6 @@ func unreadMsg(this *message.UserMsgListReq) int64 {
 	}
 	return 0
 }
-func UserUnreadMsgList(this *message.UserUnreadMsgListReq) (int64, []*message.Messages) {
-	count := 0
-	data := []*message.Messages{}
-	types := entity.Mysql.Find("message_group", map[string]interface{}{}, `"group_id"`, "", -1, -1)
-	if types != nil && len(*types) > 0 {
-		for _, v := range *types {
-			key := fmt.Sprintf(MsgCountKey, this.UserId, util.IntAll(v["group_id"]))
-			if exists, _ := redis.Exists(redisModule, key); exists {
-				count += redis.GetInt(redisModule, key)
-			}
-		}
-	}
-	if this.IsNeedData == 1 && count > 0 {
-		query := map[string]interface{}{
-			"receive_userid": this.UserId,
-			"isdel":          1,
-			"appid":          this.Appid,
-			"isRead":         0,
-		}
-		res := entity.Mysql.Find("message", query, "", "createtime desc", (int(this.OffSet)-1)*int(this.PageSize), int(this.PageSize))
-		if res != nil && len(*res) > 0 {
-			for _, val := range *res {
-				_id := util.Int64All(val["id"])
-				id := strconv.FormatInt(_id, 10)
-				links4 := common.InterfaceToStr(val["link"])
-				link4, androidUrl4, iosUrl4, weChatUrl4 := util.LinkSplit(links4)
-				url := map[string]string{
-					"androidUrl": androidUrl4,
-					"iosUrl":     iosUrl4,
-					"weChatUrl":  weChatUrl4,
-				}
-				data = append(data, &message.Messages{
-					Id:            id,
-					Appid:         common.InterfaceToStr(val["appid"]),
-					ReceiveUserId: common.InterfaceToStr(val["receive_userid"]),
-					ReceiveName:   common.InterfaceToStr(val["receive_name"]),
-					SendUserId:    common.InterfaceToStr(val["send_userid"]),
-					SendName:      common.InterfaceToStr(val["send_name"]),
-					Createtime:    common.InterfaceToStr(val["createtime"]),
-					Title:         common.InterfaceToStr(val["title"]),
-					MsgType:       common.Int64All(val["group_id"]),
-					Link:          link4,
-					CiteId:        common.Int64All(val["cite_id"]),
-					Content:       common.InterfaceToStr(val["content"]),
-					IsRead:        common.Int64All(val["isRead"]),
-					MsgLogId:      common.Int64All(val["msg_log_id"]),
-					Url:           url,
-				})
-			}
-		}
-	}
-	return util.Int64All(count), data
-}
 
 func MessageGetLast(this *message.UserMsgListReq) *message.Messages {
 	if !this.IsMsgList && !this.IsColumnNewMsg && !this.IsColumn {

+ 0 - 39
rpc/internal/logic/getmsgtypelogic.go

@@ -1,39 +0,0 @@
-package logic
-
-import (
-	service "app.yhyue.com/moapp/MessageCenter/rpc/internal/common"
-	"app.yhyue.com/moapp/MessageCenter/rpc/messageclient"
-	"context"
-
-	"app.yhyue.com/moapp/MessageCenter/rpc/internal/svc"
-	"github.com/zeromicro/go-zero/core/logx"
-)
-
-type GetMsgTypeLogic struct {
-	ctx    context.Context
-	svcCtx *svc.ServiceContext
-	logx.Logger
-}
-
-func NewGetMsgTypeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetMsgTypeLogic {
-	return &GetMsgTypeLogic{
-		ctx:    ctx,
-		svcCtx: svcCtx,
-		Logger: logx.WithContext(ctx),
-	}
-}
-
-// 获取指定用户收到消息的分类
-func (l *GetMsgTypeLogic) GetMsgType(in *messageclient.GetMsgTypeReq) (*messageclient.GetMsgTypeRes, error) {
-	m := service.MessageService{}
-	data, err := m.GetMsgType()
-	if err != nil {
-		return nil, err
-	}
-	return &messageclient.GetMsgTypeRes{
-		Code:    int64(0),
-		Message: "请求成功",
-		Data:    data,
-	}, nil
-
-}

+ 0 - 39
rpc/internal/logic/userunreadmsglistlogic.go

@@ -1,39 +0,0 @@
-package logic
-
-import (
-	service "app.yhyue.com/moapp/MessageCenter/rpc/internal/common"
-	"app.yhyue.com/moapp/MessageCenter/rpc/type/message"
-	"context"
-	"log"
-
-	"app.yhyue.com/moapp/MessageCenter/rpc/internal/svc"
-	"github.com/zeromicro/go-zero/core/logx"
-)
-
-type UserUnreadMsgListLogic struct {
-	ctx    context.Context
-	svcCtx *svc.ServiceContext
-	logx.Logger
-}
-
-func NewUserUnreadMsgListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserUnreadMsgListLogic {
-	return &UserUnreadMsgListLogic{
-		ctx:    ctx,
-		svcCtx: svcCtx,
-		Logger: logx.WithContext(ctx),
-	}
-}
-
-//    官网、移动端首页、工作桌面消息滚动
-func (l *UserUnreadMsgListLogic) UserUnreadMsgList(in *message.UserUnreadMsgListReq) (*message.UserUnreadMsgListRes, error) {
-	data := new(message.UserUnreadMsgListRes)
-	count, res := service.UserUnreadMsgList(in) //具体信息
-	log.Println(count, res)
-	if count > 0 && len(res) > 0 {
-		data.List = res
-		data.Count = count
-		data.Code = 0
-		data.Message = "请求成功"
-	}
-	return data, nil
-}