Browse Source

wip:空聊天内容初始化

wangkaiyue 1 year ago
parent
commit
f79e2d5f31

+ 17 - 3
rpc/messagecenter/etc/messagecenter.yaml

@@ -5,10 +5,24 @@ Etcd:
   Hosts:
   - 127.0.0.1:2379
   Key: messagecenter.rpc
-WebRpcPort: 8016
+WebRpcPort: 8026
+MysqlMain:
+  dbName: base_service
+  address: 192.168.3.217:4000
+  userName: root
+  passWord: =PDT49#80Z!RVv52_z
+  maxOpenConns: 40
+  maxIdleConns: 40
+
 TestConf:
   Etcd:
     Hosts:
-      - 127.0.0.1:2379
+      - 192.168.3.207:2379
+      - 192.168.3.165:2379
+      - 192.168.3.204:2379
     Key: messagecenter.rpc
-SurvivalTime: 86400
+SurvivalTime: 86400
+
+defaultMsg:
+  sendFromId: 221
+  msgContent: "欢迎来到剑鱼工作台!在这里,你可以访问到剑鱼平台提供的所有数据、资讯、情报、业务功能和各类服务。\n 剑鱼工作台为个人用户提供方便快捷、集约高效的工作环境,同时也为企业用户提供业情一体、规范管理和安全可靠的数字化营销环境。"

+ 4 - 0
rpc/messagecenter/internal/config/config.go

@@ -10,6 +10,10 @@ type Config struct {
 	WebRpcPort   int64
 	TestConf     zrpc.RpcClientConf
 	SurvivalTime int
+	DefaultMsg   struct {
+		SendFromId int64  `json:"sendFromId"`
+		MsgContent string `json:"msgContent"`
+	} `json:"defaultMsg"`
 }
 
 type Db struct {

+ 43 - 0
rpc/messagecenter/internal/logic/userlistlogic.go

@@ -3,6 +3,7 @@ package logic
 import (
 	"app.yhyue.com/moapp/jybase/encrypt"
 	util "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
+	. "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/service"
 	"context"
 	"time"
@@ -32,11 +33,19 @@ func NewUserListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserList
 func (l *UserListLogic) UserList(in *messagecenter.UserReq) (*messagecenter.UserResp, error) {
 	// todo: add your logic here and delete this line
 	m := service.MessaggeService{}
+queryAgain:
 	data, count, err := m.UserList(in)
 	if err != nil {
 		return nil, err
 	}
 	var result = []*messagecenter.UserEntity{}
+	//聊天内容为空,插入默认客服聊天内容
+	if (count == 0 || len(*data) == 0) && in.UserType == 2 {
+		if insertDefaultChat(in) {
+			goto queryAgain
+		}
+	}
+
 	if data != nil && len(*data) > 0 {
 		for _, v := range *data {
 			var tim time.Time
@@ -64,3 +73,37 @@ func (l *UserListLogic) UserList(in *messagecenter.UserReq) (*messagecenter.User
 	}
 	return &messagecenter.UserResp{Data: result, Count: count}, nil
 }
+
+// insertDefaultChat 为防止聊天内容为空,影响工作台展示,插入默认机器人聊天内容
+func insertDefaultChat(in *messagecenter.UserReq) bool {
+	m := service.MessaggeService{}
+	//创建会话
+	if createOk, sessionId := m.CreateChatSession(&messagecenter.ChatSessionReq{
+		EntId: C.DefaultMsg.SendFromId,
+		//CustomerServiceId:   C.DefaultMsg.SendFromId,
+		UserId: in.NewUserId,
+		AppId:  "10000",
+		//CustomerserviceName: "xxxxx",
+	}); createOk {
+		//同步数据库
+		saveMessageOk, _, _, _, _ := m.SaveMessage(&messagecenter.MessageEntity{
+			OwnType: 2,
+			//Title:       req.Title,
+			//SendId:  C.DefaultMsg.SendFromId,
+			Content: C.DefaultMsg.MsgContent,
+			Item:    8, //聊天内容
+			Type:    1, //文本内容
+			//Link:        req.Link,
+			Appid:     "10000",
+			ItemType:  4,
+			ReceiveId: in.NewUserId,
+			NewUserId: in.NewUserId,
+			EntUserId: in.EntUserId,
+			SendId:    sessionId,
+		})
+		if saveMessageOk {
+			return true
+		}
+	}
+	return false
+}

+ 17 - 2
service/message_mail_box.go

@@ -163,9 +163,23 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 			}
 			allSql = strings.Join(sqlArr, " UNION ALL ")
 		}
+
+		var startNum int64 = 1
+		var pageSize int64 = 500
+
+		if in.Size > 0 && in.Size < 500 {
+			if in.Page == 0 {
+				in.Page = 1
+			}
+			if in.Page*in.Size < 500 {
+				startNum = in.Page
+				pageSize = in.Size
+			}
+		}
+
 		sqlStr = fmt.Sprintf(`SELECT * FROM(
 						%s
-					) a ORDER BY a.timestamp DESC LIMIT 0,500`, allSql)
+					) a ORDER BY a.timestamp DESC LIMIT %d,%d`, allSql, (startNum-1)*pageSize, pageSize)
 	} else {
 		var timeSql, phoneSql, filtrationSql string
 		if in.StartTime != "" {
@@ -586,7 +600,8 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 		return ok > 1 && receiveOk > 1
 	})
 	if fool {
-		go UserSynchronousList(customer_service_id, userid, entid, message_id, create_time, quitl.Int64All(quitl.If(userType == 1, 2, 1)), in.ItemType)
+		//go
+		UserSynchronousList(customer_service_id, userid, entid, message_id, create_time, quitl.Int64All(quitl.If(userType == 1, 2, 1)), in.ItemType)
 	}
 	return fool, "", in.Content, messageId, nowForm.Unix()
 }