WH01243 3 жил өмнө
parent
commit
aadfb2f7f4

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

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

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

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

+ 10 - 0
api/messagecenter/internal/handler/routes.go

@@ -32,6 +32,16 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 				Path:    "/message/userList",
 				Handler: userListHandler(serverCtx),
 			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/message/createChatSession",
+				Handler: createChatSessionHandler(serverCtx),
+			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/message/closeChatSession",
+				Handler: closeChatSessionHandler(serverCtx),
+			},
 		},
 	)
 }

+ 37 - 0
api/messagecenter/internal/logic/closechatsessionlogic.go

@@ -0,0 +1,37 @@
+package logic
+
+import (
+	"context"
+	"messagecenter/rpc/messagecenter/messagecenter"
+
+	"messagecenter/api/messagecenter/internal/svc"
+	"messagecenter/api/messagecenter/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type CloseChatSessionLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewCloseChatSessionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CloseChatSessionLogic {
+	return &CloseChatSessionLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *CloseChatSessionLogic) CloseChatSession(req *types.CloseSessionReq) (*types.CommonRes, error) {
+	chatMession := &messagecenter.CloseSessionReq{SessionId: req.SessionId}
+	resp, err := l.svcCtx.Message.CloseChatSession(l.ctx, chatMession)
+	if err != nil {
+		return nil, err
+	}
+	return &types.CommonRes{
+		Error_msg:  resp.ErrorMsg,
+		Error_code: int(resp.ErrorCode),
+	}, nil
+}

+ 57 - 0
api/messagecenter/internal/logic/createchatsessionlogic.go

@@ -0,0 +1,57 @@
+package logic
+
+import (
+	"context"
+	"messagecenter/rpc/messagecenter/messagecenter"
+
+	"messagecenter/api/messagecenter/internal/svc"
+	"messagecenter/api/messagecenter/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateChatSessionLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewCreateChatSessionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateChatSessionLogic {
+	return &CreateChatSessionLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *CreateChatSessionLogic) CreateChatSession(req *types.ChatSessionReq) (*types.CommonRes, error) {
+	chatMession := &messagecenter.ChatSessionReq{}
+	if req.UserType == 1 {
+		//客服信息
+		if req.MsgType == 5 {
+			//客服建立连接
+			chatMession.AppId = req.AppId
+			chatMession.CustomerServiceId = req.EntUserId
+			chatMession.UserId = req.ReceiveId
+			chatMession.EntId = req.EntId
+		}
+	} else {
+		//用户建立会话
+		if req.MsgType == 4 {
+			//机器人
+			chatMession.AppId = req.ReceiveAppId
+			chatMession.CustomerServiceId = 0
+			chatMession.UserId = req.NewUserId
+			chatMession.EntId = req.ReceiveEntId
+		}
+	}
+	resp, err := l.svcCtx.Message.CreateChatSession(l.ctx, chatMession)
+	if err != nil {
+		return nil, err
+	}
+	return &types.CommonRes{
+		Error_msg:  resp.ErrorMsg,
+		Error_code: int(resp.ErrorCode),
+		Data:       resp.SessionId,
+	}, nil
+}

+ 26 - 10
api/messagecenter/internal/types/types.go

@@ -3,8 +3,8 @@ package types
 
 type CountReq struct {
 	UserType  int64 `json:"userType"`
-	NewUserId int64 `json:"newUserId,optional"`
-	EntUserId int64 `json:"entUserId,optional"`
+	NewUserId int64 `header:"newUserId,optional"`
+	EntUserId int64 `header:"entUserId,optional"`
 }
 
 type CountResp struct {
@@ -18,8 +18,8 @@ type UserReq struct {
 	UserType  int64  `json:"userType"`
 	StartTime string `json:"startTime,optional"`
 	EndTime   string `json:"endTime,optional"`
-	NewUserId int64  `json:"newUserId,optional"`
-	EntUserId int64  `json:"entUserId,optional"`
+	NewUserId int64  `header:"newUserId,optional"`
+	EntUserId int64  `header:"entUserId,optional"`
 }
 
 type MessageEntity struct {
@@ -29,11 +29,11 @@ type MessageEntity struct {
 	Item      int64  `json:"item"`
 	Type      int64  `json:"type"`
 	Link      string `json:"link"`
-	Appid     string `json:"appid"`
+	Appid     string `header:"appid"`
 	ItemType  int64  `json:"itemType"`
 	SendId    int64  `json:"sendId,optional"`
-	EntUserId int64  `json:"entUserId,optional"`
-	NewUserId int64  `json:"newUserId,optional"`
+	EntUserId int64  `header:"entUserId,optional"`
+	NewUserId int64  `header:"newUserId,optional"`
 	ReceiveId int64  `json:"receiveId,optional"`
 }
 
@@ -43,9 +43,9 @@ type MessageReq struct {
 	SendId        int64 `json:"sendId,optional"`
 	PageIndex     int64 `json:"pageIndex"`
 	PageSize      int64 `json:"pageSize"`
-	NewUserId     int64 `json:"newUserId,optional"`
-	EntUserId     int64 `json:"entUserId,optional"`
-	EntId         int64 `json:"entId,optional"`
+	NewUserId     int64 `header:"newUserId,optional"`
+	EntUserId     int64 `header:"entUserId,optional"`
+	EntId         int64 `header:"entId,optional"`
 	CustomerEntId int64 `json:"customerEntId,optional"`
 }
 
@@ -55,3 +55,19 @@ type CommonRes struct {
 	Data       interface{} `json:"data"`
 	Count      int64       `json:"count"`
 }
+
+type ChatSessionReq struct {
+	MsgType      int64  `json:"msgType"`
+	UserType     int64  `json:"userType"`
+	EntId        int64  `header:"entId,optional"`
+	AppId        string `header:"appId,optional"`
+	ReceiveEntId int64  `json:"receiveEntId,optional"`
+	EntUserId    int64  `header:"entUserId,optional"`
+	NewUserId    int64  `header:"newUserId,optional"`
+	ReceiveAppId string `json:"receiveAppId,optional"`
+	ReceiveId    int64  `json:"receiveId,optional"`
+}
+
+type CloseSessionReq struct {
+	SessionId int64 `json:"sessionId"`
+}

+ 28 - 11
api/messagecenter/messagecenter.api

@@ -1,7 +1,7 @@
 type CountReq {
 	UserType  int64 `json:"userType"`
-	NewUserId int64 `json:"newUserId,optional"`
-	EntUserId int64 `json:"entUserId,optional"`
+	NewUserId int64 `header:"newUserId,optional"`
+	EntUserId int64 `header:"entUserId,optional"`
 }
 type CountResp {
 	Count     int64  `json:"count"`
@@ -14,8 +14,8 @@ type UserReq {
 	UserType  int64  `json:"userType"`
 	StartTime string `json:"startTime,optional"`
 	EndTime   string `json:"endTime,optional"`
-	NewUserId int64  `json:"newUserId,optional"`
-	EntUserId int64  `json:"entUserId,optional"`
+	NewUserId int64  `header:"newUserId,optional"`
+	EntUserId int64  `header:"entUserId,optional"`
 }
 type MessageEntity {
 	OwnType   int64  `json:"ownType"`
@@ -24,11 +24,11 @@ type MessageEntity {
 	Item      int64  `json:"item"`
 	Type      int64  `json:"type"`
 	Link      string `json:"link"`
-	Appid     string `json:"appid"`
+	Appid     string `header:"appid"`
 	ItemType  int64  `json:"itemType"`
 	SendId    int64  `json:"sendId,optional"`
-	EntUserId int64  `json:"entUserId,optional"`
-	NewUserId int64  `json:"newUserId,optional"`
+	EntUserId int64  `header:"entUserId,optional"`
+	NewUserId int64  `header:"newUserId,optional"`
 	ReceiveId int64  `json:"receiveId,optional"`
 }
 type MessageReq {
@@ -37,9 +37,9 @@ type MessageReq {
 	SendId        int64 `json:"sendId,optional"`
 	PageIndex     int64 `json:"pageIndex"`
 	PageSize      int64 `json:"pageSize"`
-	NewUserId     int64 `json:"newUserId,optional"`
-	EntUserId     int64 `json:"entUserId,optional"`
-	EntId         int64 `json:"entId,optional"`
+	NewUserId     int64 `header:"newUserId,optional"`
+	EntUserId     int64 `header:"entUserId,optional"`
+	EntId         int64 `header:"entId,optional"`
 	CustomerEntId int64 `json:"customerEntId,optional"`
 }
 
@@ -49,7 +49,20 @@ type CommonRes {
 	Data       interface{} `json:"data"`
 	Count      int64       `json:"count"`
 }
-
+type ChatSessionReq {
+	MsgType      int64  `json:"msgType"`
+	UserType     int64  `json:"userType"`
+	EntId        int64  `header:"entId,optional"`
+	AppId        string `header:"appId,optional"`
+	ReceiveEntId int64  `json:"receiveEntId,optional"`
+	EntUserId    int64  `header:"entUserId,optional"`
+	NewUserId    int64  `header:"newUserId,optional"`
+	ReceiveAppId string `json:"receiveAppId,optional"`
+	ReceiveId    int64  `json:"receiveId,optional"`
+}
+type CloseSessionReq {
+	SessionId int64 `json:"sessionId"`
+}
 service messagecenter-api {
 	@handler messageCount
 	post /message/messageCount (CountReq) returns (CommonRes);
@@ -59,4 +72,8 @@ service messagecenter-api {
 	post /message/findMessage (MessageReq) returns (CommonRes);
 	@handler userList
 	post /message/userList (UserReq) returns (CommonRes);
+	@handler createChatSession
+	post /message/createChatSession (ChatSessionReq) returns (CommonRes);
+	@handler closeChatSession
+	post /message/closeChatSession (CloseSessionReq) returns (CommonRes);
 }

+ 6 - 8
api/messagecenter/messagecenter.go

@@ -1,11 +1,11 @@
 package main
-
-
 import (
 	mc "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/endless"
 	"app.yhyue.com/moapp/jybase/go-xweb/log"
+	"bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
 	"fmt"
+	"github.com/zeromicro/go-zero/rest"
 	. "messagecenter/api/messagecenter/common"
 	_ "messagecenter/api/messagecenter/common"
 	"messagecenter/api/messagecenter/internal/handler"
@@ -13,16 +13,14 @@ import (
 	"os"
 	"os/signal"
 	"syscall"
-
-	"github.com/zeromicro/go-zero/rest"
 )
 
 func main() {
 	//注册代理服务
-/*	closeNotify, err := node.NewNode(C.Gateway.Etcd...).Register(C.Gateway.ServerCode, mc.InterfaceToStr(C.Port))
+	closeNotify, err := node.NewNode(C.Gateway.Etcd...).Register(C.Gateway.ServerCode, mc.InterfaceToStr(C.Port))
 	if err != nil {
 		panic(err)
-	}*/
+	}
 	//
 	go func() {
 		err := endless.ListenAndServe(":"+mc.InterfaceToStr(C.WebRpcPort), nil, func() {})
@@ -42,6 +40,6 @@ func main() {
 
 	quit := make(chan os.Signal, 1)
 	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
-	/*<-quit
-	closeNotify()*/
+	<-quit
+	closeNotify()
 }

+ 1 - 1
go.mod

@@ -4,7 +4,7 @@ go 1.16
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20220617085837-48c1bf245c2f
-	bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220505015640-56e56f06bc5c
+	bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4
 	github.com/go-sql-driver/mysql v1.6.0
 	github.com/zeromicro/go-zero v1.3.4
 	google.golang.org/grpc v1.46.2

+ 2 - 2
go.sum

@@ -7,8 +7,8 @@ app.yhyue.com/moapp/jybase v0.0.0-20220617085837-48c1bf245c2f h1:U8sVqWn/JH2gcsJ
 app.yhyue.com/moapp/jybase v0.0.0-20220617085837-48c1bf245c2f/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220419090715-88ddb32961be/go.mod h1:Yj4oabIGItuMoF0BXYLz2XAnF581kxgXBrvlUtIJrkI=
-bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220505015640-56e56f06bc5c h1:p2WctRqfE6wdLPHnACIO983CfYV2LLaaLC2ADpSaNn0=
-bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220505015640-56e56f06bc5c/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
+bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4 h1:zl5eZrKDBENVVBUiPpzyQQ0/SBdGUmZS3thXycSEO1g=
+bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220418005748-8ba5d936dd53/go.mod h1:E5lcDI3k4FESLxiAetCfWQTq8qfpy9cv0yN1oKoEO34=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419023723-0b32d4a41751/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220420075831-0b59892e9982/go.mod h1:wsHNO91h37H+xE4ZNny0yd7mtpODeDJxbVYhIRMR+qw=

+ 40 - 0
rpc/messagecenter/internal/logic/closechatsessionlogic.go

@@ -0,0 +1,40 @@
+package logic
+
+import (
+	"context"
+	"messagecenter/service"
+
+	"messagecenter/rpc/messagecenter/internal/svc"
+	"messagecenter/rpc/messagecenter/messagecenter"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type CloseChatSessionLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewCloseChatSessionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CloseChatSessionLogic {
+	return &CloseChatSessionLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+//  会话关闭
+func (l *CloseChatSessionLogic) CloseChatSession(in *messagecenter.CloseSessionReq) (*messagecenter.ChatSessionResp, error) {
+	// todo: add your logic here and delete this line
+	m := service.MessaggeService{}
+	error_code := m.CloseChatSession(in)
+	error_message := "创建失败"
+	if error_code == 0 {
+		error_message = ""
+	}
+	return &messagecenter.ChatSessionResp{
+		ErrorCode: error_code,
+		ErrorMsg:  error_message,
+	}, nil
+}

+ 1 - 1
rpc/messagecenter/internal/logic/countlogic.go

@@ -27,7 +27,7 @@ func NewCountLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CountLogic
 //  查询数量
 func (l *CountLogic) Count(in *messagecenter.CountReq) (*messagecenter.CountResp, error) {
 	// todo: add your logic here and delete this line
-	m := service.MessageMailBox{}
+	m := service.MessaggeService{}
 	count, err := m.Count(in.NewUserId, in.UserType, in.EntUserId)
 	if err != nil {
 		return nil, err

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

@@ -0,0 +1,42 @@
+package logic
+
+import (
+	"context"
+	"messagecenter/service"
+
+	"messagecenter/rpc/messagecenter/internal/svc"
+	"messagecenter/rpc/messagecenter/messagecenter"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateChatSessionLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewCreateChatSessionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateChatSessionLogic {
+	return &CreateChatSessionLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+//  会话创建
+func (l *CreateChatSessionLogic) CreateChatSession(in *messagecenter.ChatSessionReq) (*messagecenter.ChatSessionResp, error) {
+	// todo: add your logic here and delete this line
+	m := service.MessaggeService{}
+	error_code, sessionId := m.CreateChatSession(in)
+	error_message := "创建失败"
+	if error_code == 0 {
+		error_message = ""
+	}
+	return &messagecenter.ChatSessionResp{
+		ErrorCode: error_code,
+		ErrorMsg:  error_message,
+		SessionId: sessionId,
+	}, nil
+
+}

+ 3 - 3
rpc/messagecenter/internal/logic/findmessagelogic.go

@@ -25,10 +25,10 @@ func NewFindMessageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *FindM
 	}
 }
 
-//  聊天内容查询
+// FindMessage 聊天内容查询
 func (l *FindMessageLogic) FindMessage(in *messagecenter.MessageReq) (*messagecenter.MessageResp, error) {
 	// todo: add your logic here and delete this line
-	m := service.MessageMailBox{}
+	m := service.MessaggeService{}
 	data, count := m.FindMessage(in)
 	list := []*messagecenter.MessageEntity{}
 	for _, v := range *data {
@@ -44,6 +44,7 @@ func (l *FindMessageLogic) FindMessage(in *messagecenter.MessageReq) (*messagece
 			RobotName:  quitl.ObjToString(v["robotName"]),
 			RobotImg:   quitl.ObjToString(v["robotImg"]),
 			SetName:    quitl.ObjToString(v["setName"]),
+			OwnImg:     quitl.ObjToString(v["ownImg"]),
 		}
 		list = append(list, &messageEntity)
 	}
@@ -51,6 +52,5 @@ func (l *FindMessageLogic) FindMessage(in *messagecenter.MessageReq) (*messagece
 		Data:      list,
 		Count:     count,
 		ErrorCode: 0,
-		ErrorMsg:  "查询成功",
 	}, nil
 }

+ 2 - 2
rpc/messagecenter/internal/logic/savemessagelogic.go

@@ -27,11 +27,11 @@ func NewSaveMessageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SaveM
 //  聊天保存
 func (l *SaveMessageLogic) SaveMessage(in *messagecenter.MessageEntity) (*messagecenter.MessageResp, error) {
 	// todo: add your logic here and delete this line
-	m := service.MessageMailBox{}
+	m := service.MessaggeService{}
 	error_code := m.SaveMessage(in)
 	error_message := "保存失败"
 	if error_code == 0 {
-		error_message = "保存成功"
+		error_message = ""
 	}
 	return &messagecenter.MessageResp{
 		ErrorCode: error_code,

+ 3 - 3
rpc/messagecenter/internal/logic/userlistlogic.go

@@ -25,15 +25,15 @@ func NewUserListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserList
 	}
 }
 
-//  用户列表查询
+// UserList 用户列表查询
 func (l *UserListLogic) UserList(in *messagecenter.UserReq) (*messagecenter.UserResp, error) {
 	// todo: add your logic here and delete this line
-	m := service.MessageMailBox{}
+	m := service.MessaggeService{}
 	data, err := m.UserList(in)
 	if err != nil {
 		return nil, err
 	}
-	result := []*messagecenter.UserEntity{}
+	var result = []*messagecenter.UserEntity{}
 	for _, v := range *data {
 		userResp := messagecenter.UserEntity{
 			Name:       quitl.ObjToString(v["name"]),

+ 12 - 0
rpc/messagecenter/internal/server/messagecenterserver.go

@@ -45,3 +45,15 @@ func (s *MessageCenterServer) SaveMessage(ctx context.Context, in *messagecenter
 	l := logic.NewSaveMessageLogic(ctx, s.svcCtx)
 	return l.SaveMessage(in)
 }
+
+//  会话创建
+func (s *MessageCenterServer) CreateChatSession(ctx context.Context, in *messagecenter.ChatSessionReq) (*messagecenter.ChatSessionResp, error) {
+	l := logic.NewCreateChatSessionLogic(ctx, s.svcCtx)
+	return l.CreateChatSession(in)
+}
+
+//  会话关闭
+func (s *MessageCenterServer) CloseChatSession(ctx context.Context, in *messagecenter.CloseSessionReq) (*messagecenter.ChatSessionResp, error) {
+	l := logic.NewCloseChatSessionLogic(ctx, s.svcCtx)
+	return l.CloseChatSession(in)
+}

+ 20 - 0
rpc/messagecenter/messagecenter.proto

@@ -75,6 +75,22 @@ message MessageEntity {
   string        robotImg=14;
   string        setName=15;
   int64         receiveId=17;
+  string        ownImg=18;
+}
+
+message ChatSessionReq {
+  int64         entId = 1;
+  int64         customerServiceId= 2;
+  int64         userId = 3;
+  string         appId = 4;
+}
+message CloseSessionReq {
+  int64         sessionId = 1;
+}
+message ChatSessionResp {
+   int64 error_code = 2; //响应代码
+   string error_msg = 1; //响应消息
+   int64  sessionId=3;
 }
 
 service messageCenter {
@@ -86,4 +102,8 @@ service messageCenter {
   rpc FindMessage(MessageReq) returns(MessageResp);
    // 聊天保存
   rpc SaveMessage(MessageEntity) returns(MessageResp);
+  // 会话创建
+  rpc CreateChatSession(ChatSessionReq) returns(ChatSessionResp);
+  // 会话关闭
+  rpc CloseChatSession(CloseSessionReq) returns(ChatSessionResp);
 }

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

@@ -20,6 +20,10 @@ type (
 		FindMessage(ctx context.Context, in *MessageReq, opts ...grpc.CallOption) (*MessageResp, error)
 		//  聊天保存
 		SaveMessage(ctx context.Context, in *MessageEntity, opts ...grpc.CallOption) (*MessageResp, error)
+		//  会话创建
+		CreateChatSession(ctx context.Context, in *ChatSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error)
+		//  会话关闭
+		CloseChatSession(ctx context.Context, in *CloseSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error)
 	}
 
 	defaultMessageCenter struct {
@@ -56,3 +60,15 @@ func (m *defaultMessageCenter) SaveMessage(ctx context.Context, in *MessageEntit
 	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...)
+}

+ 307 - 44
rpc/messagecenter/messagecenter/messagecenter.pb.go

@@ -627,6 +627,7 @@ type MessageEntity struct {
 	RobotImg   string `protobuf:"bytes,14,opt,name=robotImg,proto3" json:"robotImg,omitempty"`
 	SetName    string `protobuf:"bytes,15,opt,name=setName,proto3" json:"setName,omitempty"`
 	ReceiveId  int64  `protobuf:"varint,17,opt,name=receiveId,proto3" json:"receiveId,omitempty"`
+	OwnImg     string `protobuf:"bytes,18,opt,name=ownImg,proto3" json:"ownImg,omitempty"`
 }
 
 func (x *MessageEntity) Reset() {
@@ -780,6 +781,194 @@ func (x *MessageEntity) GetReceiveId() int64 {
 	return 0
 }
 
+func (x *MessageEntity) GetOwnImg() string {
+	if x != nil {
+		return x.OwnImg
+	}
+	return ""
+}
+
+type ChatSessionReq struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	EntId             int64  `protobuf:"varint,1,opt,name=entId,proto3" json:"entId,omitempty"`
+	CustomerServiceId int64  `protobuf:"varint,2,opt,name=customerServiceId,proto3" json:"customerServiceId,omitempty"`
+	UserId            int64  `protobuf:"varint,3,opt,name=userId,proto3" json:"userId,omitempty"`
+	AppId             string `protobuf:"bytes,4,opt,name=appId,proto3" json:"appId,omitempty"`
+}
+
+func (x *ChatSessionReq) Reset() {
+	*x = ChatSessionReq{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_messageCenter_proto_msgTypes[8]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ChatSessionReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChatSessionReq) ProtoMessage() {}
+
+func (x *ChatSessionReq) ProtoReflect() protoreflect.Message {
+	mi := &file_messageCenter_proto_msgTypes[8]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChatSessionReq.ProtoReflect.Descriptor instead.
+func (*ChatSessionReq) Descriptor() ([]byte, []int) {
+	return file_messageCenter_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *ChatSessionReq) GetEntId() int64 {
+	if x != nil {
+		return x.EntId
+	}
+	return 0
+}
+
+func (x *ChatSessionReq) GetCustomerServiceId() int64 {
+	if x != nil {
+		return x.CustomerServiceId
+	}
+	return 0
+}
+
+func (x *ChatSessionReq) GetUserId() int64 {
+	if x != nil {
+		return x.UserId
+	}
+	return 0
+}
+
+func (x *ChatSessionReq) GetAppId() string {
+	if x != nil {
+		return x.AppId
+	}
+	return ""
+}
+
+type CloseSessionReq struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	SessionId int64 `protobuf:"varint,1,opt,name=sessionId,proto3" json:"sessionId,omitempty"`
+}
+
+func (x *CloseSessionReq) Reset() {
+	*x = CloseSessionReq{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_messageCenter_proto_msgTypes[9]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *CloseSessionReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CloseSessionReq) ProtoMessage() {}
+
+func (x *CloseSessionReq) ProtoReflect() protoreflect.Message {
+	mi := &file_messageCenter_proto_msgTypes[9]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use CloseSessionReq.ProtoReflect.Descriptor instead.
+func (*CloseSessionReq) Descriptor() ([]byte, []int) {
+	return file_messageCenter_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *CloseSessionReq) GetSessionId() int64 {
+	if x != nil {
+		return x.SessionId
+	}
+	return 0
+}
+
+type ChatSessionResp struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	ErrorCode int64  `protobuf:"varint,2,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` //响应代码
+	ErrorMsg  string `protobuf:"bytes,1,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"`     //响应消息
+	SessionId int64  `protobuf:"varint,3,opt,name=sessionId,proto3" json:"sessionId,omitempty"`
+}
+
+func (x *ChatSessionResp) Reset() {
+	*x = ChatSessionResp{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_messageCenter_proto_msgTypes[10]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ChatSessionResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChatSessionResp) ProtoMessage() {}
+
+func (x *ChatSessionResp) ProtoReflect() protoreflect.Message {
+	mi := &file_messageCenter_proto_msgTypes[10]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChatSessionResp.ProtoReflect.Descriptor instead.
+func (*ChatSessionResp) Descriptor() ([]byte, []int) {
+	return file_messageCenter_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *ChatSessionResp) GetErrorCode() int64 {
+	if x != nil {
+		return x.ErrorCode
+	}
+	return 0
+}
+
+func (x *ChatSessionResp) GetErrorMsg() string {
+	if x != nil {
+		return x.ErrorMsg
+	}
+	return ""
+}
+
+func (x *ChatSessionResp) GetSessionId() int64 {
+	if x != nil {
+		return x.SessionId
+	}
+	return 0
+}
+
 var File_messageCenter_proto protoreflect.FileDescriptor
 
 var file_messageCenter_proto_rawDesc = []byte{
@@ -860,7 +1049,7 @@ var file_messageCenter_proto_rawDesc = []byte{
 	0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72,
 	0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
 	0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72,
-	0x4d, 0x73, 0x67, 0x22, 0xc3, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45,
+	0x4d, 0x73, 0x67, 0x22, 0xdb, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45,
 	0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01,
 	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63,
 	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
@@ -888,26 +1077,57 @@ var file_messageCenter_proto_rawDesc = []byte{
 	0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72,
 	0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
-	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x64, 0x32, 0x97, 0x02, 0x0a, 0x0d, 0x6d, 0x65,
-	0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x05, 0x43,
-	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65,
-	0x6e, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e,
-	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f,
-	0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c,
-	0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e,
-	0x74, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x65,
-	0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72,
-	0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73,
-	0x61, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e,
-	0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a,
+	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x77, 0x6e,
+	0x49, 0x6d, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x49, 0x6d,
+	0x67, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
+	0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x75,
+	0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x53,
+	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72,
+	0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
+	0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x0f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53,
+	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73,
+	0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65,
+	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x6b, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x74, 0x53,
+	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72,
+	0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
+	0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72,
+	0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72,
+	0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
+	0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69,
+	0x6f, 0x6e, 0x49, 0x64, 0x32, 0xbf, 0x03, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+	0x17, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e,
+	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61,
+	0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
+	0x73, 0x70, 0x12, 0x3b, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16,
+	0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x55,
+	0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12,
+	0x44, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19,
 	0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d,
-	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x61,
-	0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73,
+	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6d, 0x65, 0x73, 0x73,
 	0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
-	0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
-	0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
-	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x73,
+	0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65,
+	0x6e, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69,
+	0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74,
+	0x65, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52,
+	0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x73, 0x73,
+	0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e,
+	0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52,
+	0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74,
+	0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+	0x73, 0x70, 0x12, 0x52, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53,
+	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x73, 0x73,
+	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69,
+	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73,
+	0x61, 0x67, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x33,
 }
 
 var (
@@ -922,33 +1142,40 @@ func file_messageCenter_proto_rawDescGZIP() []byte {
 	return file_messageCenter_proto_rawDescData
 }
 
-var file_messageCenter_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_messageCenter_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
 var file_messageCenter_proto_goTypes = []interface{}{
-	(*CountReq)(nil),      // 0: messagecenter.CountReq
-	(*CountResp)(nil),     // 1: messagecenter.CountResp
-	(*UserReq)(nil),       // 2: messagecenter.UserReq
-	(*UserResp)(nil),      // 3: messagecenter.UserResp
-	(*UserEntity)(nil),    // 4: messagecenter.UserEntity
-	(*MessageReq)(nil),    // 5: messagecenter.MessageReq
-	(*MessageResp)(nil),   // 6: messagecenter.MessageResp
-	(*MessageEntity)(nil), // 7: messagecenter.MessageEntity
+	(*CountReq)(nil),        // 0: messagecenter.CountReq
+	(*CountResp)(nil),       // 1: messagecenter.CountResp
+	(*UserReq)(nil),         // 2: messagecenter.UserReq
+	(*UserResp)(nil),        // 3: messagecenter.UserResp
+	(*UserEntity)(nil),      // 4: messagecenter.UserEntity
+	(*MessageReq)(nil),      // 5: messagecenter.MessageReq
+	(*MessageResp)(nil),     // 6: messagecenter.MessageResp
+	(*MessageEntity)(nil),   // 7: messagecenter.MessageEntity
+	(*ChatSessionReq)(nil),  // 8: messagecenter.ChatSessionReq
+	(*CloseSessionReq)(nil), // 9: messagecenter.CloseSessionReq
+	(*ChatSessionResp)(nil), // 10: messagecenter.ChatSessionResp
 }
 var file_messageCenter_proto_depIdxs = []int32{
-	4, // 0: messagecenter.UserResp.data:type_name -> messagecenter.UserEntity
-	7, // 1: messagecenter.MessageResp.data:type_name -> messagecenter.MessageEntity
-	0, // 2: messagecenter.messageCenter.Count:input_type -> messagecenter.CountReq
-	2, // 3: messagecenter.messageCenter.UserList:input_type -> messagecenter.UserReq
-	5, // 4: messagecenter.messageCenter.FindMessage:input_type -> messagecenter.MessageReq
-	7, // 5: messagecenter.messageCenter.SaveMessage:input_type -> messagecenter.MessageEntity
-	1, // 6: messagecenter.messageCenter.Count:output_type -> messagecenter.CountResp
-	3, // 7: messagecenter.messageCenter.UserList:output_type -> messagecenter.UserResp
-	6, // 8: messagecenter.messageCenter.FindMessage:output_type -> messagecenter.MessageResp
-	6, // 9: messagecenter.messageCenter.SaveMessage:output_type -> messagecenter.MessageResp
-	6, // [6:10] is the sub-list for method output_type
-	2, // [2:6] is the sub-list for method input_type
-	2, // [2:2] is the sub-list for extension type_name
-	2, // [2:2] is the sub-list for extension extendee
-	0, // [0:2] is the sub-list for field type_name
+	4,  // 0: messagecenter.UserResp.data:type_name -> messagecenter.UserEntity
+	7,  // 1: messagecenter.MessageResp.data:type_name -> messagecenter.MessageEntity
+	0,  // 2: messagecenter.messageCenter.Count:input_type -> messagecenter.CountReq
+	2,  // 3: messagecenter.messageCenter.UserList:input_type -> messagecenter.UserReq
+	5,  // 4: messagecenter.messageCenter.FindMessage:input_type -> messagecenter.MessageReq
+	7,  // 5: messagecenter.messageCenter.SaveMessage:input_type -> messagecenter.MessageEntity
+	8,  // 6: messagecenter.messageCenter.CreateChatSession:input_type -> messagecenter.ChatSessionReq
+	9,  // 7: messagecenter.messageCenter.CloseChatSession:input_type -> messagecenter.CloseSessionReq
+	1,  // 8: messagecenter.messageCenter.Count:output_type -> messagecenter.CountResp
+	3,  // 9: messagecenter.messageCenter.UserList:output_type -> messagecenter.UserResp
+	6,  // 10: messagecenter.messageCenter.FindMessage:output_type -> messagecenter.MessageResp
+	6,  // 11: messagecenter.messageCenter.SaveMessage:output_type -> messagecenter.MessageResp
+	10, // 12: messagecenter.messageCenter.CreateChatSession:output_type -> messagecenter.ChatSessionResp
+	10, // 13: messagecenter.messageCenter.CloseChatSession:output_type -> messagecenter.ChatSessionResp
+	8,  // [8:14] is the sub-list for method output_type
+	2,  // [2:8] is the sub-list for method input_type
+	2,  // [2:2] is the sub-list for extension type_name
+	2,  // [2:2] is the sub-list for extension extendee
+	0,  // [0:2] is the sub-list for field type_name
 }
 
 func init() { file_messageCenter_proto_init() }
@@ -1053,6 +1280,42 @@ func file_messageCenter_proto_init() {
 				return nil
 			}
 		}
+		file_messageCenter_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ChatSessionReq); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_messageCenter_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*CloseSessionReq); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_messageCenter_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ChatSessionResp); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
@@ -1060,7 +1323,7 @@ func file_messageCenter_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_messageCenter_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   8,
+			NumMessages:   11,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 76 - 0
rpc/messagecenter/messagecenter/messagecenter_grpc.pb.go

@@ -30,6 +30,10 @@ type MessageCenterClient interface {
 	FindMessage(ctx context.Context, in *MessageReq, opts ...grpc.CallOption) (*MessageResp, error)
 	// 聊天保存
 	SaveMessage(ctx context.Context, in *MessageEntity, opts ...grpc.CallOption) (*MessageResp, error)
+	// 会话创建
+	CreateChatSession(ctx context.Context, in *ChatSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error)
+	// 会话关闭
+	CloseChatSession(ctx context.Context, in *CloseSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error)
 }
 
 type messageCenterClient struct {
@@ -76,6 +80,24 @@ func (c *messageCenterClient) SaveMessage(ctx context.Context, in *MessageEntity
 	return out, nil
 }
 
+func (c *messageCenterClient) CreateChatSession(ctx context.Context, in *ChatSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error) {
+	out := new(ChatSessionResp)
+	err := c.cc.Invoke(ctx, "/messagecenter.messageCenter/CreateChatSession", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *messageCenterClient) CloseChatSession(ctx context.Context, in *CloseSessionReq, opts ...grpc.CallOption) (*ChatSessionResp, error) {
+	out := new(ChatSessionResp)
+	err := c.cc.Invoke(ctx, "/messagecenter.messageCenter/CloseChatSession", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // MessageCenterServer is the server API for MessageCenter service.
 // All implementations must embed UnimplementedMessageCenterServer
 // for forward compatibility
@@ -88,6 +110,10 @@ type MessageCenterServer interface {
 	FindMessage(context.Context, *MessageReq) (*MessageResp, error)
 	// 聊天保存
 	SaveMessage(context.Context, *MessageEntity) (*MessageResp, error)
+	// 会话创建
+	CreateChatSession(context.Context, *ChatSessionReq) (*ChatSessionResp, error)
+	// 会话关闭
+	CloseChatSession(context.Context, *CloseSessionReq) (*ChatSessionResp, error)
 	mustEmbedUnimplementedMessageCenterServer()
 }
 
@@ -107,6 +133,12 @@ func (UnimplementedMessageCenterServer) FindMessage(context.Context, *MessageReq
 func (UnimplementedMessageCenterServer) SaveMessage(context.Context, *MessageEntity) (*MessageResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SaveMessage not implemented")
 }
+func (UnimplementedMessageCenterServer) CreateChatSession(context.Context, *ChatSessionReq) (*ChatSessionResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CreateChatSession not implemented")
+}
+func (UnimplementedMessageCenterServer) CloseChatSession(context.Context, *CloseSessionReq) (*ChatSessionResp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CloseChatSession not implemented")
+}
 func (UnimplementedMessageCenterServer) mustEmbedUnimplementedMessageCenterServer() {}
 
 // UnsafeMessageCenterServer may be embedded to opt out of forward compatibility for this service.
@@ -192,6 +224,42 @@ func _MessageCenter_SaveMessage_Handler(srv interface{}, ctx context.Context, de
 	return interceptor(ctx, in, info, handler)
 }
 
+func _MessageCenter_CreateChatSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ChatSessionReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(MessageCenterServer).CreateChatSession(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/messagecenter.messageCenter/CreateChatSession",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(MessageCenterServer).CreateChatSession(ctx, req.(*ChatSessionReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _MessageCenter_CloseChatSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CloseSessionReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(MessageCenterServer).CloseChatSession(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/messagecenter.messageCenter/CloseChatSession",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(MessageCenterServer).CloseChatSession(ctx, req.(*CloseSessionReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // MessageCenter_ServiceDesc is the grpc.ServiceDesc for MessageCenter service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -215,6 +283,14 @@ var MessageCenter_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "SaveMessage",
 			Handler:    _MessageCenter_SaveMessage_Handler,
 		},
+		{
+			MethodName: "CreateChatSession",
+			Handler:    _MessageCenter_CreateChatSession_Handler,
+		},
+		{
+			MethodName: "CloseChatSession",
+			Handler:    _MessageCenter_CloseChatSession_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "messageCenter.proto",

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 10 - 31
service/message_mail_box.go


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно