Kaynağa Gözat

聊天提交

WH01243 3 yıl önce
ebeveyn
işleme
dd1f649ed7

+ 1 - 0
api/messagecenter/internal/logic/messageaddlogic.go

@@ -48,5 +48,6 @@ func (l *MessageAddLogic) MessageAdd(req *types.MessageEntity) (*types.CommonRes
 	return &types.CommonRes{
 		Error_msg:  resp.ErrorMsg,
 		Error_code: int(resp.ErrorCode),
+		Data:       resp.Data,
 	}, nil
 }

+ 17 - 0
entity/util.go

@@ -1,5 +1,7 @@
 package entity
 
+import quitl "app.yhyue.com/moapp/jybase/common"
+
 const (
 	Date_Full_Layout = "2006-01-02 15:04:05"
 	KNOWLEDGE        = "socialize_knowledge"
@@ -13,3 +15,18 @@ func SafeConvert2String(obj interface{}) string {
 	}
 	return ""
 }
+
+//in数据处理
+func Inhandle(data *[]map[string]interface{}) (messId string) {
+	if len(*data) == 0 {
+		messId = "''"
+		return
+	}
+	for k, m := range *data {
+		if k > 0 {
+			messId += `,`
+		}
+		messId += "'" + quitl.InterfaceToStr(m["messageId"]) + "'"
+	}
+	return
+}

+ 5 - 3
rpc/messagecenter/test/message_test.go

@@ -90,10 +90,12 @@ func Test_SaveMessage(t *testing.T) {
 
 //
 func Test_test1(t *testing.T) {
-	a := encrypt.SE.Encode2HexByCheck("14184")
+	a := encrypt.SE.Encode2Hex("2742")
 	fmt.Println(a)
-	fmt.Println(encrypt.SE.Decode4HexByCheck(a))
-	fmt.Println(encrypt.SE.Decode4Hex("405d445a"))
+	fmt.Println(encrypt.SE.Decode4Hex(a))
+	fmt.Println(encrypt.SE.Decode4Hex("415a4856"))
+	fmt.Println(encrypt.SE.Decode4Hex("4157435b52"))
+
 	/*for d := 0; d <10 ; d++ {
 		c:=0
 		for i := 0; i <= 10000; i++ {

+ 4 - 19
service/message_mail_box.go

@@ -40,11 +40,11 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 		//用户最后一次信息查询
 		userSql := "SELECT  MAX( c.id )   as messageId  FROM  socialize_message_mailbox c  WHERE  c.own_id = ?   AND c.type = 2   AND c.own_type = 2  GROUP BY  (  CASE        WHEN c.send_user_id > c.receive_user_id THEN    CONCAT( c.send_user_id, c.receive_user_id )     WHEN c.send_user_id < c.receive_user_id THEN    CONCAT( c.receive_user_id, c.send_user_id )    END    )  "
 		data = util.Mysql.SelectBySql(userSql, in.NewUserId)
-		userMessageId := Inhandle(data)
+		userMessageId := util.Inhandle(data)
 		//客服最后一次信息查询
 		customerSql := " SELECT   max( c.id )   as messageId  FROM   socialize_message_mailbox c   LEFT JOIN socialize_chat_session d ON  IF   ( c.send_user_type = 1, d.id = c.send_user_id, d.id = c.receive_user_id )   WHERE   c.own_id = ?    AND ( c.type = 4 OR c.type = 5  )    AND c.own_type = 2  and   d.user_id=c.own_id  GROUP BY   d.ent_id  "
 		data = util.Mysql.SelectBySql(customerSql, in.NewUserId)
-		customerMessageId := Inhandle(data)
+		customerMessageId := util.Inhandle(data)
 		//用户的列表
 		sqlStr = "SELECT IF ( b.nickname = '', CONCAT(SUBSTR( b.phone, 1, 3 ),'****',SUBSTR( b.phone, 8, 11)), b.nickname ) AS name, b.id, e.title, b.headimg, e.type, e.link, e.content, 2 AS userType, a.create_time, a.type AS itemType, ( SELECT  count( h.id )  FROM  socialize_message_mailbox h  WHERE  h.type = 2   AND h.own_id = ?   AND h.own_type = 2   AND  h.receive_user_id = ? and   h.send_user_id=b.id   AND h.isread = 0  ) AS number  FROM socialize_message_mailbox a LEFT JOIN base_user b ON  b.id = a.receive_user_id or  b.id = a.send_user_id  LEFT JOIN socialize_message e ON e.id = a.messag_id  WHERE a.id IN ( " + userMessageId + " )   AND b.id != ? UNION ALL SELECT  f.nickname AS name,    b.ent_id AS id,  e.title,f.headimage AS headimg,  e.type,  e.link,  e.content,  1 AS userType,  a.create_time,  a.type AS itemType,  (  SELECT   count( h.id )   FROM   socialize_message_mailbox h   WHERE   ( h.type = 4 OR h.type = 5  )    AND h.own_id = ?    AND h.own_type = 2   AND  h.send_user_type = 1 and  h.receive_user_id = ?    AND h.isread = 0   ) AS number  FROM  socialize_message_mailbox a  LEFT JOIN socialize_chat_session b ON IF  ( a.send_user_type = 1, b.id = a.send_user_id, b.id = a.receive_user_id )  LEFT JOIN socialize_message e ON e.id = a.messag_id  left join socialize_tenant_robot  f on f.ent_id=b.ent_id   WHERE  a.id IN (  " + customerMessageId + " )  ORDER BY create_time DESC"
 		v = append(v, in.NewUserId, in.NewUserId, in.NewUserId, in.NewUserId, in.NewUserId)
@@ -68,7 +68,7 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 		log.Println(userSql, v)
 		data = util.Mysql.SelectBySql(userSql, v...)
 		if data != nil {
-			customerMessageId := Inhandle(data)
+			customerMessageId := util.Inhandle(data)
 			//客服的用户列表
 			sqlStr = "SELECT  IF  ( b.nickname = '', CONCAT(SUBSTR( b.phone, 1, 3 ),'****',SUBSTR( b.phone, 8, 11)), b.nickname ) AS name,  b.id,  e.title,  b.headimg,  e.type,  e.link,  e.content,  a.create_time,  (  SELECT   count( h.id )   FROM   socialize_message_mailbox h   WHERE   ( h.type = 4 OR h.type = 5 )    AND h.own_type = 1   AND  IF   ( h.send_user_type = 1, h.send_user_id = f.id, h.receive_user_id = f.id )    AND h.isread = 0   ) AS number   FROM  socialize_message_mailbox a  LEFT JOIN base_user b ON  IF  ( a.send_user_type = 1, b.id = a.receive_user_id, b.id = a.send_user_id )  LEFT JOIN socialize_message e ON e.id = a.messag_id  LEFT JOIN socialize_chat_session f ON  IF  ( a.send_user_type = 1, f.id = a.send_user_id, f.id = a.receive_user_id )   WHERE  a.id IN  (" + customerMessageId + ")" + phoneSql + "   ORDER BY  a.create_time DESC"
 			fmt.Println(in.EntUserId)
@@ -107,7 +107,7 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (errorCode
 				userId = in.NewUserId
 			} else {
 				sessionId = in.SendId
-				userId = in.NewUserId
+				userId = in.ReceiveId
 			}
 			break
 		}
@@ -382,21 +382,6 @@ func (b MessaggeService) CloseChatSession(in *messagecenter.CloseSessionReq) (er
 	}
 }
 
-//in数据处理
-func Inhandle(data *[]map[string]interface{}) (messId string) {
-	if len(*data) == 0 {
-		messId = "''"
-		return
-	}
-	for k, m := range *data {
-		if k > 0 {
-			messId += `,`
-		}
-		messId += "'" + quitl.InterfaceToStr(m["messageId"]) + "'"
-	}
-	return
-}
-
 func (m *MessaggeService) SaveAutoReplyMsg(userType, entId, entUserId, userId int64, content, appId, nowFormat string) bool {
 	return util.Mysql.ExecTx("保存自动回复消息", func(tx *sql.Tx) bool {
 		entUserName := ""

+ 205 - 36
service/message_mail_box_test.go

@@ -22,27 +22,6 @@ func initMysql() {
 func init() {
 	initMysql()
 }
-func TestInhandle(t *testing.T) {
-	type args struct {
-		data *[]map[string]interface{}
-	}
-	tests := []struct {
-		name       string
-		args       args
-		wantMessId string
-	}{
-		// TODO: Add test cases.
-
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			if gotMessId := Inhandle(tt.args.data); gotMessId != tt.wantMessId {
-				t.Errorf("Inhandle() = %v, want %v", gotMessId, tt.wantMessId)
-			}
-		})
-	}
-}
-
 func TestMessaggeService_CloseChatSession(t *testing.T) {
 	type args struct {
 		in *messagecenter.CloseSessionReq
@@ -93,6 +72,15 @@ func TestMessaggeService_Count(t *testing.T) {
 			},
 			wantCount: 0,
 		},
+		{
+			name: "未读信息总数",
+			args: args{
+				newUserId: 831,
+				userType:  1,
+				entUserId: 2,
+			},
+			wantCount: 0,
+		},
 	}
 
 	for _, tt := range tests {
@@ -165,13 +153,47 @@ func TestMessaggeService_FindMessage(t *testing.T) {
 	}{
 		// TODO: Add test cases.
 		{
-			name: "历史信息查询",
+			name: "客服获取历史信息查询",
 			args: args{in: &messagecenter.MessageReq{
 				MsgType:   4,
 				UserType:  1,
-				SendId:    1180,
+				SendId:    10,
+				PageSize:  10,
+				NewUserId: 10,
+				EntId:     1,
+			}},
+			want1: 0,
+		},
+		{
+			name: "用户获取历史信息查询",
+			args: args{in: &messagecenter.MessageReq{
+				MsgType:   2,
+				UserType:  2,
+				SendId:    10,
+				PageSize:  10,
+				NewUserId: 10,
+			}},
+			want1: 0,
+		}, {
+			name: "用户获取历史信息查询",
+			args: args{in: &messagecenter.MessageReq{
+				MsgType:   5,
+				UserType:  2,
+				SendId:    1,
+				PageSize:  10,
+				NewUserId: 10,
+			}},
+			want1: 0,
+		},
+		{
+			name: "用户获取历史信息查询",
+			args: args{in: &messagecenter.MessageReq{
+				MsgType:   2,
+				UserType:  2,
+				SendId:    57683,
 				PageSize:  10,
-				NewUserId: 831,
+				NewUserId: 10,
+				LastId:    57683000,
 			}},
 			want1: 0,
 		},
@@ -209,13 +231,25 @@ func TestMessaggeService_SaveAutoReplyMsg(t *testing.T) {
 		{
 			name: "会话保存以及消息保存",
 			args: args{
-				userType:  0,
-				entId:     0,
-				entUserId: 0,
-				userId:    0,
-				content:   "",
-				appId:     "",
-				nowFormat: "",
+				userType:  1,
+				entId:     14184,
+				entUserId: 3,
+				userId:    831,
+				content:   "你与用户创建会话",
+				appId:     "10000",
+				nowFormat: "2022-08-02 12:12:12",
+			},
+		},
+		{
+			name: "会话保存以及消息保存",
+			args: args{
+				userType:  2,
+				entId:     14184,
+				entUserId: 3,
+				userId:    831,
+				content:   "你与用户创建会话",
+				appId:     "10000",
+				nowFormat: "2022-08-02 12:12:12",
 			},
 		},
 	}
@@ -242,7 +276,99 @@ func TestMessaggeService_SaveMessage(t *testing.T) {
 		wantMessageId int64
 	}{
 		// TODO: Add test cases.
-		{name: "消息保存",
+		{name: "1、用户给客服发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  5,
+					Link:      "1111",
+					Appid:     "10000",
+					ReceiveId: 4626,
+					OwnType:   int64(1),
+					Type:      1,
+					NewUserId: 10,
+				},
+			},
+		}, {name: "2、用户给机器人发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  4,
+					Link:      "1111",
+					Appid:     "10000",
+					ReceiveId: 4626,
+					OwnType:   int64(1),
+					Type:      1,
+					NewUserId: 10,
+				},
+			},
+		}, {name: "3、机器人给用户发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  4,
+					Link:      "1111",
+					Appid:     "10000",
+					SendId:    4626,
+					OwnType:   int64(2),
+					Type:      1,
+					NewUserId: 10,
+				},
+			},
+		}, {name: "4、人工客服给用户发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  4,
+					Link:      "1111",
+					Appid:     "10000",
+					ReceiveId: 10,
+					SendId:    4626,
+					OwnType:   int64(2),
+					Type:      1,
+					NewUserId: 10,
+				},
+			},
+		}, {name: "5、用户给用户发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  2,
+					Link:      "1111",
+					Appid:     "10000",
+					ReceiveId: 57683,
+					OwnType:   int64(2),
+					Type:      1,
+					NewUserId: 10,
+				},
+			},
+		}, {name: "6、机器人给用户发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  6,
+					Link:      "1111",
+					Appid:     "10000",
+					ReceiveId: 4626,
+					OwnType:   int64(1),
+					Type:      1,
+					NewUserId: 10,
+				},
+			},
+		},
+		{name: "7、机器人给用户发送信息",
 			args: args{
 				in: &messagecenter.MessageEntity{
 					Title:     "11",
@@ -251,13 +377,44 @@ func TestMessaggeService_SaveMessage(t *testing.T) {
 					ItemType:  6,
 					Link:      "1111",
 					Appid:     "10000",
-					ReceiveId: 2,
 					SendId:    4626,
 					OwnType:   int64(2),
 					Type:      1,
+					NewUserId: 10,
+				},
+			}},
+		{name: "7、机器人给用户发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  6,
+					Link:      "1111",
+					Appid:     "10000",
+					SendId:    2,
+					OwnType:   int64(2),
+					Type:      1,
+					NewUserId: 10,
+				},
+			}},
+		{name: "7、机器人给用户发送信息",
+			args: args{
+				in: &messagecenter.MessageEntity{
+					Title:     "11",
+					Content:   "问在吗?",
+					Item:      8,
+					ItemType:  6,
+					Link:      "1111",
+					Appid:     "10000",
+					SendId:    3,
+					OwnType:   int64(2),
+					Type:      1,
+					NewUserId: 10,
 				},
 			},
-		}}
+		},
+	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			b := MessaggeService{}
@@ -290,11 +447,23 @@ func TestMessaggeService_UserList(t *testing.T) {
 	}{
 		// TODO: Add test cases.
 		{
-			name: "用户列表查询",
+			name: "客服查询用户列表",
 			args: args{
 				in: &messagecenter.UserReq{
-					Phone:     "",
+					Phone:     "13164329511",
 					UserType:  1,
+					StartTime: "2022-01-05 12:12:12",
+					EndTime:   "2022-01-05 12:12:12",
+					NewUserId: 42941,
+					EntUserId: 42711,
+				},
+			},
+		}, {
+			name: "用户列表用户查询",
+			args: args{
+				in: &messagecenter.UserReq{
+					Phone:     "",
+					UserType:  2,
 					StartTime: "",
 					EndTime:   "",
 					NewUserId: 42941,