Przeglądaj źródła

fix:消息撤回接口添加&结束会话获取机器人会话

duxin 2 lat temu
rodzic
commit
6de47dedea

+ 28 - 0
api/messagecenter/internal/handler/withdrawmessagehandler.go

@@ -0,0 +1,28 @@
+package handler
+
+import (
+	"net/http"
+
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/logic"
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/svc"
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/types"
+	"github.com/zeromicro/go-zero/rest/httpx"
+)
+
+func withdrawMessageHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.ReadWithdrawReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewWithdrawMessageLogic(r.Context(), svcCtx)
+		resp, err := l.WithdrawMessage(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 47 - 0
api/messagecenter/internal/logic/withdrawmessagelogic.go

@@ -0,0 +1,47 @@
+package logic
+
+import (
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
+	"context"
+	"errors"
+
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/svc"
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type WithdrawMessageLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewWithdrawMessageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *WithdrawMessageLogic {
+	return &WithdrawMessageLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *WithdrawMessageLogic) WithdrawMessage(req *types.ReadWithdrawReq) (resp *types.CommonRes, err error) {
+	// todo: add your logic here and delete this line
+	r, err := l.svcCtx.Message.WithdrawMessage(l.ctx, &messagecenter.ReadWithdrawReq{
+		MessageId: req.MessageId,
+		Content:   req.Content,
+		Appid:     req.Appid,
+		Type:      req.Type,
+		UserType:  req.UserType,
+		Item:      req.Item,
+		Link:      req.Link,
+		SendId:    req.SendId,
+	})
+	if err != nil {
+		return nil, err
+	}
+	if r.ErrorCode != 0 {
+		return nil, errors.New(r.ErrorMsg)
+	}
+	return
+}

+ 42 - 0
rpc/messagecenter/internal/logic/withdrawmessagelogic.go

@@ -0,0 +1,42 @@
+package logic
+
+import (
+	util "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/service"
+	"context"
+
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc"
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type WithdrawMessageLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewWithdrawMessageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *WithdrawMessageLogic {
+	return &WithdrawMessageLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// 用户撤回消息
+func (l *WithdrawMessageLogic) WithdrawMessage(in *messagecenter.ReadWithdrawReq) (*messagecenter.CurrencyResp, error) {
+	// todo: add your logic here and delete this line
+	m := service.MessaggeService{}
+	errorCode := m.WithdrawMessage(in)
+	if !errorCode {
+		return &messagecenter.CurrencyResp{
+			ErrorCode: util.ERROR_CODE,
+			ErrorMsg:  "撤回消息失败",
+		}, nil
+	}
+
+	return &messagecenter.CurrencyResp{ErrorCode: util.SUCCESS_CODE,
+		ErrorMsg: ""}, nil
+}

+ 98 - 0
rpc/messagecenter/messagecenter/messagecenter.go

@@ -0,0 +1,98 @@
+// Code generated by goctl. DO NOT EDIT!
+// Source: messagecenter.proto
+
+package messagecenter
+
+import (
+	"context"
+
+	"github.com/zeromicro/go-zero/zrpc"
+	"google.golang.org/grpc"
+)
+
+type (
+	MessageCenter interface {
+		//  查询数量
+		Count(ctx context.Context, in *CountReq, opts ...grpc.CallOption) (*CountResp, error)
+		//  用户列表查询
+		UserList(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserResp, error)
+		//  聊天内容查询
+		FindMessage(ctx context.Context, in *MessageReq, opts ...grpc.CallOption) (*MessageResp, error)
+		//  聊天保存
+		SaveMessage(ctx context.Context, in *MessageEntity, opts ...grpc.CallOption) (*SaveMessageResp, error)
+		//  会话创建
+		CreateChatSession(ctx context.Context, in *ChatSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error)
+		//  会话关闭
+		CloseChatSession(ctx context.Context, in *CloseSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error)
+		// 创建会话并且保存信息
+		SaveAutoReplyMsg(ctx context.Context, in *SaveAutoReplyReq, opts ...grpc.CallOption) (*MessageResp, error)
+		// 根据消息修改已读状态
+		UpdateReadById(ctx context.Context, in *ReadStateReq, opts ...grpc.CallOption) (*CurrencyResp, error)
+		// 用户撤回消息
+		WithdrawMessage(ctx context.Context, in *ReadWithdrawReq, opts ...grpc.CallOption) (*CurrencyResp, error)
+	}
+
+	defaultMessageCenter struct {
+		cli zrpc.Client
+	}
+)
+
+func NewMessageCenter(cli zrpc.Client) MessageCenter {
+	return &defaultMessageCenter{
+		cli: cli,
+	}
+}
+
+// 查询数量
+func (m *defaultMessageCenter) Count(ctx context.Context, in *CountReq, opts ...grpc.CallOption) (*CountResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.Count(ctx, in, opts...)
+}
+
+// 用户列表查询
+func (m *defaultMessageCenter) UserList(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.UserList(ctx, in, opts...)
+}
+
+// 聊天内容查询
+func (m *defaultMessageCenter) FindMessage(ctx context.Context, in *MessageReq, opts ...grpc.CallOption) (*MessageResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.FindMessage(ctx, in, opts...)
+}
+
+// 聊天保存
+func (m *defaultMessageCenter) SaveMessage(ctx context.Context, in *MessageEntity, opts ...grpc.CallOption) (*SaveMessageResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.SaveMessage(ctx, in, opts...)
+}
+
+// 会话创建
+func (m *defaultMessageCenter) CreateChatSession(ctx context.Context, in *ChatSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.CreateChatSession(ctx, in, opts...)
+}
+
+// 会话关闭
+func (m *defaultMessageCenter) CloseChatSession(ctx context.Context, in *CloseSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.CloseChatSession(ctx, in, opts...)
+}
+
+// 创建会话并且保存信息
+func (m *defaultMessageCenter) SaveAutoReplyMsg(ctx context.Context, in *SaveAutoReplyReq, opts ...grpc.CallOption) (*MessageResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.SaveAutoReplyMsg(ctx, in, opts...)
+}
+
+// 根据消息修改已读状态
+func (m *defaultMessageCenter) UpdateReadById(ctx context.Context, in *ReadStateReq, opts ...grpc.CallOption) (*CurrencyResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.UpdateReadById(ctx, in, opts...)
+}
+
+// 用户撤回消息
+func (m *defaultMessageCenter) WithdrawMessage(ctx context.Context, in *ReadWithdrawReq, opts ...grpc.CallOption) (*CurrencyResp, error) {
+	client := NewMessageCenterClient(m.cli.Conn())
+	return client.WithdrawMessage(ctx, in, opts...)
+}