Browse Source

rpc更新提交

WH01243 2 năm trước cách đây
mục cha
commit
c16b183cb5

+ 24 - 14
entity/db.go

@@ -1,23 +1,33 @@
 package entity
 
-import (
-	"app.yhyue.com/moapp/jybase/mysql"
-)
+type RedisStuct struct {
+	Addr []string `json:"addr"`
+}
+type Mysql struct {
+	Main        *MysqlStruct `json:"main,omitempty"`
+	BaseService *MysqlStruct `json:"baseService,omitempty"`
+}
+type Mongo struct {
+	Main *MongoStruct `json:"main,optional"`
+}
+type MongoStruct struct {
+	Address        string `json:"address"`
+	Size           int    `json:"size"`
+	DbName         string `json:"dbName"`
+	UserName       string `json:"userName,optional"`
+	Password       string `json:"password,optional"`
+	Collection     string `json:"collection,optional"`
+	CollectionBack string `json:"collectionBack,optional"`
+	MaxOpenConns   int    `json:"maxOpenConns,optional"`
+	MaxIdleConns   int    `json:"maxIdleConns,optional"`
+}
 
-type MysqlMainStruct struct {
+//mysql
+type MysqlStruct struct {
 	DbName       string `json:"dbName"`
 	Address      string `json:"address"`
 	UserName     string `json:"userName"`
-	PassWord     string `json:"passWord"`
+	Password     string `json:"passWord"`
 	MaxOpenConns int    `json:"maxOpenConns"`
 	MaxIdleConns int    `json:"maxIdleConns"`
 }
-
-var (
-	Mysql        *mysql.Mysql
-	SurvivalTime int
-)
-
-type RedisStuct struct {
-	Addr []string `json:"addr"`
-}

+ 36 - 6
entity/util.go

@@ -2,18 +2,28 @@ package entity
 
 import (
 	quitl "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/go-xweb/log"
 	"app.yhyue.com/moapp/jybase/redis"
 	"encoding/json"
 	"fmt"
+	"strings"
 )
 
 const (
-	Date_Full_Layout          = "2006-01-02 15:04:05"
-	SOCIALIZE_CHAT_SESSION    = "socialize_chat_session"
-	SOCIALIZE_MESSAGE         = "socialize_message"
-	SOCIALIZE_MESSAGE_MAILBOX = "socialize_message_mailbox"
-	SOCIALIZE_TENANT_ROBOT    = "socialize_tenant_robot"
-	BASE_USER                 = "base_user"
+	Date_Full_Layout = "2006-01-02 15:04:05"
+	//baseMysql
+	SOCIALIZE_CHAT_SESSION      = "socialize_chat_session"
+	SOCIALIZE_MESSAGE           = "socialize_message"
+	SOCIALIZE_MESSAGE_MAILBOX   = "socialize_message_mailbox"
+	SOCIALIZE_TENANT_ROBOT      = "socialize_tenant_robot"
+	BASE_USER                   = "base_user"
+	SOCIALIZE_CHAT_GROUP        = "socialize_chat_group"
+	SOCIALIZE_CHAT_GROUP_NOTICE = "socialize_chat_group_notice"
+	SOCIALIZE_CHAT_GROUP_PERSON = "socialize_chat_group_person"
+	//mainMysql
+	ENTNICHE_USER = "entniche_user"
+	//mongo
+	ENTNICHE_DELETE = "entniche_delete"
 )
 const (
 	SUCCESS_CODE = int64(0)
@@ -69,3 +79,23 @@ func GetData(userType int64, userId int64) (*SubPush, error) {
 func SetData(userType int64, userId int64, data map[string]interface{}, survivalTime int) {
 	redis.Put(redisModule, todayKey(userType, userId), data, survivalTime)
 }
+
+func IntJoin(elems []int64, sep string) string {
+	log.Println(quitl.InterfaceToStr(elems[0]))
+	log.Println(elems[0])
+	switch len(elems) {
+	case 0:
+		return ""
+	case 1:
+		return quitl.InterfaceToStr(elems[0])
+	}
+	var b strings.Builder
+	b.Grow(len(elems))
+	for k, s := range elems {
+		if k > 0 {
+			b.WriteString(sep)
+		}
+		b.WriteString(quitl.InterfaceToStr(s))
+	}
+	return b.String()
+}

+ 6 - 6
go.mod

@@ -3,11 +3,11 @@ module bp.jydev.jianyu360.cn/SocialPlatform/messageCenter
 go 1.16
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20220722023023-2a57d1ee061f
+	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
+	app.yhyue.com/moapp/jypkg v0.0.0-20230407092858-0d6d33fa63d6
 	bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4
-	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220421015128-4a36f3eac5c5
-	github.com/go-sql-driver/mysql v1.6.0
-	github.com/zeromicro/go-zero v1.3.5
-	google.golang.org/grpc v1.47.0
-	google.golang.org/protobuf v1.28.0
+	github.com/go-sql-driver/mysql v1.7.0
+	github.com/zeromicro/go-zero v1.4.4
+	google.golang.org/grpc v1.53.0
+	google.golang.org/protobuf v1.28.1
 )

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 624 - 11
go.sum


+ 20 - 0
rpc/messagecenter/etc/db.yaml

@@ -1,3 +1,23 @@
 redis:
     addr:
         - msgCount=127.0.0.1:6379
+mysql:
+    main:
+        dbName: jianyu
+        address: 192.168.3.149:3306
+        userName: root
+        passWord: Topnet123
+        maxOpenConns: 5
+        maxIdleConns: 5
+    baseService:
+        dbName: base_service
+        address: 192.168.3.217:4000
+        userName: root
+        passWord: =PDT49#80Z!RVv52_z
+        maxOpenConns: 5
+        maxIdleConns: 5
+mongo:
+    main:
+        dbName: qfw
+        size: 5
+        address: 192.168.3.206:27080

+ 0 - 7
rpc/messagecenter/etc/messagecenter.yaml

@@ -6,13 +6,6 @@ Etcd:
   - 127.0.0.1:2379
   Key: messagecenter.rpc
 WebRpcPort: 8016
-MysqlMain:
-  dbName: base_service
-  address: 192.168.3.217:4000
-  userName: root
-  passWord: =PDT49#80Z!RVv52_z
-  maxOpenConns: 5
-  maxIdleConns: 5
 TestConf:
   Etcd:
     Hosts:

+ 41 - 20
rpc/messagecenter/init/init.go

@@ -1,18 +1,20 @@
 package init
 
 import (
+	"app.yhyue.com/moapp/jybase/mongodb"
 	"app.yhyue.com/moapp/jybase/mysql"
-	"app.yhyue.com/moapp/jybase/redis"
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/config"
 	"flag"
 	_ "github.com/go-sql-driver/mysql"
-	"github.com/zeromicro/go-zero/core/conf"
-	"github.com/zeromicro/go-zero/core/logx"
-	"log"
-	"strings"
 )
 
+var (
+	MainMysql    *mysql.Mysql
+	BaseMysql    *mysql.Mysql
+	SurvivalTime int
+	Mgo          mongodb.MongodbSim
+)
 var configF = flag.String("ff", "etc/messagecenter.yaml", "the config file")
 var C config.Config
 
@@ -22,7 +24,7 @@ var logc entity.Logc
 var dbFile = flag.String("df", "etc/db.yaml", "the db file")
 var DB config.Db
 
-func init() {
+/*func init() {
 	conf.MustLoad(*configF, &C)
 	//初始化日志信息
 	conf.MustLoad(*logFile, &logc)
@@ -37,28 +39,47 @@ func init() {
 			logx.Info(v, "--日志记录")
 		}
 	}
+	conf.MustLoad(*dbFile, &DB)
 	//初始化mysql
-	mm := C.MysqlMain
-	if mm.Address != "" {
+	if DB.Mysql.Main.Address != "" {
 		log.Println("--初始化 mysql--")
-		entity.Mysql = &mysql.Mysql{
-			Address:      mm.Address,
-			UserName:     mm.UserName,
-			PassWord:     mm.PassWord,
-			DBName:       mm.DbName,
-			MaxOpenConns: mm.MaxOpenConns,
-			MaxIdleConns: mm.MaxIdleConns,
+		MainMysql = &mysql.Mysql{
+			Address:      DB.Mysql.Main.Address,
+			UserName:     DB.Mysql.Main.UserName,
+			PassWord:     DB.Mysql.Main.Password,
+			DBName:       DB.Mysql.Main.DbName,
+			MaxOpenConns: DB.Mysql.Main.MaxOpenConns,
+			MaxIdleConns: DB.Mysql.Main.MaxIdleConns,
 		}
-		entity.Mysql.Init()
-
+		MainMysql.Init()
+	}
+	if DB.Mysql.BaseService.Address != "" {
+		log.Println("--初始化 mysql--")
+		BaseMysql = &mysql.Mysql{
+			Address:      DB.Mysql.BaseService.Address,
+			UserName:     DB.Mysql.BaseService.UserName,
+			PassWord:     DB.Mysql.BaseService.Password,
+			DBName:       DB.Mysql.BaseService.DbName,
+			MaxOpenConns: DB.Mysql.BaseService.MaxOpenConns,
+			MaxIdleConns: DB.Mysql.BaseService.MaxIdleConns,
+		}
+		BaseMysql.Init()
 	}
 	//初始化数据库配置
-	conf.MustLoad(*dbFile, &DB)
 	rm := DB.Redis
 	if len(rm.Addr) > 0 {
 		logx.Info("--初始化 redis--")
 		redis.InitRedisBySize(strings.Join(rm.Addr, ","), 100, 30, 300)
 	}
-
-	entity.SurvivalTime = C.SurvivalTime
+	if DB.Mongo.Main.Address != "" {
+		logx.Info("--初始化 mongodb--")
+		Mgo = mongodb.MongodbSim{
+			MongodbAddr: DB.Mongo.Main.Address,
+			Size:        DB.Mongo.Main.Size,
+			DbName:      DB.Mongo.Main.DbName,
+		}
+		Mgo.InitPool()
+	}
+	SurvivalTime = C.SurvivalTime
 }
+*/

+ 2 - 1
rpc/messagecenter/internal/config/config.go

@@ -8,11 +8,12 @@ import (
 type Config struct {
 	zrpc.RpcServerConf
 	WebRpcPort   int64
-	MysqlMain    entity.MysqlMainStruct
 	TestConf     zrpc.RpcClientConf
 	SurvivalTime int
 }
 
 type Db struct {
+	Mysql entity.Mysql      `json:"mysql"`
 	Redis entity.RedisStuct `json:"redis"`
+	Mongo entity.Mongo      `json:"mongo"`
 }

+ 8 - 2
rpc/messagecenter/internal/logic/chatgroupaddlogic.go

@@ -1,6 +1,7 @@
 package logic
 
 import (
+	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/service"
 	"context"
 
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc"
@@ -23,9 +24,14 @@ func NewChatGroupAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Chat
 	}
 }
 
+var ChatGroup service.ChatGroupService
+
 // 群组新增
 func (l *ChatGroupAddLogic) ChatGroupAdd(in *messagecenter.ChatGroupAddReq) (*messagecenter.CommonReq, error) {
 	// todo: add your logic here and delete this line
-
-	return &messagecenter.CommonReq{}, nil
+	status := ChatGroup.ChatGroupAdd(in.EntId, in.PositionId, in.UserIdArr, in.AppId)
+	return &messagecenter.CommonReq{
+		ErrorCode: 0,
+		Status:    status,
+	}, nil
 }

+ 5 - 2
rpc/messagecenter/internal/logic/chatgroupjoinlogic.go

@@ -26,6 +26,9 @@ func NewChatGroupJoinLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Cha
 // 加入群组
 func (l *ChatGroupJoinLogic) ChatGroupJoin(in *messagecenter.ChatGroupJoinReq) (*messagecenter.CommonReq, error) {
 	// todo: add your logic here and delete this line
-
-	return &messagecenter.CommonReq{}, nil
+	status := ChatGroup.ChatGroupJoin(in.ChatGroupId, in.PositionId, in.UserIdArr, in.AppId)
+	return &messagecenter.CommonReq{
+		ErrorCode: 0,
+		Status:    status,
+	}, nil
 }

+ 19 - 1
rpc/messagecenter/internal/logic/chatgrouplistlogic.go

@@ -1,6 +1,8 @@
 package logic
 
 import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
 	"context"
 
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc"
@@ -26,6 +28,22 @@ func NewChatGroupListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Cha
 // 群组列表查询
 func (l *ChatGroupListLogic) ChatGroupList(in *messagecenter.ChatGroupListReq) (*messagecenter.ChatGroupListResp, error) {
 	// todo: add your logic here and delete this line
+	data := ChatGroup.ChatGroupList(in.EntId, in.PositionId, in.UserName, in.GroupName, in.AppId)
+	chatGroupList := []*messagecenter.ChatGroupList{}
+	if len(data) > 0 {
+		for _, v := range data {
+			chatGroupId := encrypt.SE.Encode2Hex(common.InterfaceToStr(v["chatGroupId"]))
+			chatGroup := messagecenter.ChatGroupList{
+				GroupName:   common.ObjToString(v["name"]),
+				PersonCount: common.Int64All(v["count"]),
+				ChatGroupId: chatGroupId,
+			}
+			chatGroupList = append(chatGroupList, &chatGroup)
+		}
 
-	return &messagecenter.ChatGroupListResp{}, nil
+	}
+	return &messagecenter.ChatGroupListResp{
+		ErrorCode: 0,
+		Data:      chatGroupList,
+	}, nil
 }

+ 26 - 1
rpc/messagecenter/internal/logic/chatgrouppersonlogic.go

@@ -1,6 +1,8 @@
 package logic
 
 import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
 	"context"
 
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc"
@@ -26,6 +28,29 @@ func NewChatGroupPersonLogic(ctx context.Context, svcCtx *svc.ServiceContext) *C
 // 群组成员查询
 func (l *ChatGroupPersonLogic) ChatGroupPerson(in *messagecenter.ChatGroupPersonReq) (*messagecenter.ChatGroupPersonResp, error) {
 	// todo: add your logic here and delete this line
+	data := ChatGroup.ChatGroupPerson(in.ChatGroupId, in.EntId, in.AppId)
+	chatGroupList := map[string]*messagecenter.ChatGroupPersonList{}
+	if len(data) > 0 {
+		for k, v := range data {
+			personList := []*messagecenter.ChatGroupPerson{}
+			for _, m := range v {
+				positionId := encrypt.SE.Encode2Hex(common.InterfaceToStr(m["position_id"]))
+				person := messagecenter.ChatGroupPerson{
+					PersonName: common.ObjToString(m["name"]),
+					IsSystem:   common.Int64All(m["isgroup_admin"]) > 0,
+					PositionId: positionId,
+				}
+				personList = append(personList, &person)
+			}
+			ChatList := messagecenter.ChatGroupPersonList{
+				Data: personList,
+			}
+			chatGroupList[k] = &ChatList
+		}
 
-	return &messagecenter.ChatGroupPersonResp{}, nil
+	}
+	return &messagecenter.ChatGroupPersonResp{
+		ErrorCode: 0,
+		Data:      chatGroupList,
+	}, nil
 }

+ 5 - 2
rpc/messagecenter/internal/logic/groupnameupdatelogic.go

@@ -26,6 +26,9 @@ func NewGroupNameUpdateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *G
 // 群组名称修改
 func (l *GroupNameUpdateLogic) GroupNameUpdate(in *messagecenter.GroupNameUpdateReq) (*messagecenter.CommonReq, error) {
 	// todo: add your logic here and delete this line
-
-	return &messagecenter.CommonReq{}, nil
+	status := ChatGroup.GroupNameUpdate(in.ChatGroupId, in.GroupName, in.AppId)
+	return &messagecenter.CommonReq{
+		ErrorCode: 0,
+		Status:    status,
+	}, nil
 }

+ 5 - 2
rpc/messagecenter/internal/logic/groupnoticeaddlogic.go

@@ -26,6 +26,9 @@ func NewGroupNoticeAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Gr
 // 群任务新增
 func (l *GroupNoticeAddLogic) GroupNoticeAdd(in *messagecenter.GroupNoticeAddReq) (*messagecenter.CommonReq, error) {
 	// todo: add your logic here and delete this line
-
-	return &messagecenter.CommonReq{}, nil
+	status := ChatGroup.GroupNoticeAdd(in.ChatGroupId, in.Content, in.AppId)
+	return &messagecenter.CommonReq{
+		ErrorCode: 0,
+		Status:    status,
+	}, nil
 }

+ 15 - 4
rpc/messagecenter/internal/logic/groupnoticegetlogic.go

@@ -1,6 +1,8 @@
 package logic
 
 import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
 	"context"
 
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc"
@@ -23,9 +25,18 @@ func NewGroupNoticeGetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Gr
 	}
 }
 
-// 群任务编辑
-func (l *GroupNoticeGetLogic) GroupNoticeGet(in *messagecenter.ChatGroupPersonReq) (*messagecenter.CommonReq, error) {
+// 群任务详情
+func (l *GroupNoticeGetLogic) GroupNoticeGet(in *messagecenter.ChatGroupPersonReq) (*messagecenter.GroupNoticeGetResp, error) {
 	// todo: add your logic here and delete this line
-
-	return &messagecenter.CommonReq{}, nil
+	data := ChatGroup.GroupNoticeGet(in.ChatGroupId, in.AppId)
+	groupNotice := messagecenter.GroupNotice{}
+	if data != nil {
+		groupNoticeId := encrypt.SE.Encode2Hex(common.InterfaceToStr(data["id"]))
+		groupNotice.GroupNoticeId = groupNoticeId
+		groupNotice.Content = common.ObjToString(data["content"])
+	}
+	return &messagecenter.GroupNoticeGetResp{
+		ErrorCode: 0,
+		Data:      &groupNotice,
+	}, nil
 }

+ 5 - 2
rpc/messagecenter/internal/logic/groupnoticeupdatelogic.go

@@ -26,6 +26,9 @@ func NewGroupNoticeUpdateLogic(ctx context.Context, svcCtx *svc.ServiceContext)
 // 群任务编辑
 func (l *GroupNoticeUpdateLogic) GroupNoticeUpdate(in *messagecenter.GroupNoticeUpdateReq) (*messagecenter.CommonReq, error) {
 	// todo: add your logic here and delete this line
-
-	return &messagecenter.CommonReq{}, nil
+	status := ChatGroup.GroupNoticeUpdate(in.GroupNoticeId, in.Content, in.AppId)
+	return &messagecenter.CommonReq{
+		ErrorCode: 0,
+		Status:    status,
+	}, nil
 }

+ 1 - 1
rpc/messagecenter/internal/server/messagecenterserver.go

@@ -113,7 +113,7 @@ func (s *MessageCenterServer) GroupNoticeUpdate(ctx context.Context, in *message
 }
 
 // 群任务详情
-func (s *MessageCenterServer) GroupNoticeGet(ctx context.Context, in *messagecenter.ChatGroupPersonReq) (*messagecenter.CommonReq, error) {
+func (s *MessageCenterServer) GroupNoticeGet(ctx context.Context, in *messagecenter.ChatGroupPersonReq) (*messagecenter.GroupNoticeGetResp, error) {
 	l := logic.NewGroupNoticeGetLogic(ctx, s.svcCtx)
 	return l.GroupNoticeGet(in)
 }

+ 23 - 0
rpc/messagecenter/logs/access.log

@@ -123,3 +123,26 @@
 {"@timestamp":"2022-08-08T19:51:37.034+08:00","caller":"init/init.go:51","content":"info--日志记录","level":"info"}
 {"@timestamp":"2022-08-08T19:54:16.937+08:00","caller":"init/init.go:51","content":"info--日志记录","level":"info"}
 {"@timestamp":"2022-08-08T19:57:26.494+08:00","caller":"serverinterceptors/statinterceptor.go:76","content":"127.0.0.1:52746 - /messagecenter.messageCenter/UserList - {\"newUserId\":4318,\"userType\":1,\"entUserId\":4318}","duration":"134.7ms","level":"info","span":"0f2ec03ba33bd44b","trace":"135c80d20d5e202b9c65a31f651e324c"}
+{"@timestamp":"2023-04-19T10:29:06.346+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T10:31:21.202+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T10:31:21.202+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T10:33:13.477+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T10:33:13.477+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T10:36:23.443+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T10:36:23.443+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T11:23:33.099+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T11:23:33.099+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T11:23:33.176+08:00","caller":"init/init.go:76","content":"--初始化 redis--","level":"info"}
+{"@timestamp":"2023-04-19T11:23:33.176+08:00","caller":"init/init.go:80","content":"--初始化 mongodb--","level":"info"}
+{"@timestamp":"2023-04-19T11:23:59.357+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T11:23:59.357+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T11:23:59.488+08:00","caller":"init/init.go:76","content":"--初始化 redis--","level":"info"}
+{"@timestamp":"2023-04-19T11:23:59.488+08:00","caller":"init/init.go:80","content":"--初始化 mongodb--","level":"info"}
+{"@timestamp":"2023-04-19T13:24:04.640+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T13:24:04.640+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T13:24:05.348+08:00","caller":"init/init.go:76","content":"--初始化 redis--","level":"info"}
+{"@timestamp":"2023-04-19T13:24:05.348+08:00","caller":"init/init.go:80","content":"--初始化 mongodb--","level":"info"}
+{"@timestamp":"2023-04-19T13:24:25.952+08:00","caller":"init/init.go:44","content":"info--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T13:24:25.952+08:00","caller":"init/init.go:44","content":"error--日志记录","level":"info"}
+{"@timestamp":"2023-04-19T13:24:42.678+08:00","caller":"init/init.go:76","content":"--初始化 redis--","level":"info"}
+{"@timestamp":"2023-04-19T13:24:42.678+08:00","caller":"init/init.go:80","content":"--初始化 mongodb--","level":"info"}

+ 2 - 0
rpc/messagecenter/logs/error.log

@@ -40,3 +40,5 @@
 {"@timestamp":"2022-08-08T19:54:52.975+08:00","caller":"discov/publisher.go:144","content":"etcdserver: requested lease not found","level":"error"}
 {"@timestamp":"2022-08-08T19:55:28.597+08:00","caller":"discov/publisher.go:144","content":"etcdserver: requested lease not found","level":"error"}
 {"@timestamp":"2022-08-08T19:56:49.962+08:00","caller":"discov/publisher.go:144","content":"etcdserver: requested lease not found","level":"error"}
+{"@timestamp":"2023-04-19T11:23:38.197+08:00","caller":"zrpc/server.go:91","content":"context deadline exceeded","level":"error"}
+{"@timestamp":"2023-04-19T11:24:04.510+08:00","caller":"zrpc/server.go:91","content":"context deadline exceeded","level":"error"}

+ 31 - 11
rpc/messagecenter/messagecenter.proto

@@ -121,9 +121,10 @@ message CurrencyResp {
 }
 message ChatGroupListReq{
   int64 entId = 1;
-  int64 userName = 2;
-  int64 groupName = 3;
+  string userName = 2;
+  string groupName = 3;
   int64 positionId = 4;
+  string appId = 5;
 }
 message ChatGroupListResp {
   repeated      ChatGroupList data = 1;
@@ -131,14 +132,16 @@ message ChatGroupListResp {
   string        error_msg = 3; //响应消息
 }
 message ChatGroupList {
-  string  GroupName = 1;
-  int64   PersonCount = 2;
-  string  ChatGroupId = 3;
+  string  groupName = 1;
+  int64   personCount = 2;
+  string  chatGroupId = 3;
+  string  appId = 4;
 }
 message ChatGroupAddReq {
   int64  entId = 1;
   int64   positionId = 2;
-  repeated string userIdArr = 3;
+  repeated int64 userIdArr = 3;
+  string  appId = 4;
 }
 message CommonReq {
   bool          status = 1;
@@ -146,39 +149,56 @@ message CommonReq {
   string        error_msg = 3; //响应消息
 }
 message ChatGroupPersonReq{
-  int64 ChatGroupId = 1;
+  int64 chatGroupId = 1;
+  int64 ent_id = 2;
+  string  appId = 3;
 }
 message ChatGroupPersonResp{
-  repeated      ChatGroupPerson data = 1;
+  map<string, ChatGroupPersonList> data = 1;//地区
   int64         error_code = 2; //响应代码
   string        error_msg = 3; //响应消息
 }
+message ChatGroupPersonList{
+  repeated      ChatGroupPerson data = 1;
+}
 message ChatGroupPerson{
   string   personName = 1;
   bool     isSystem = 2;
+  string   appId = 3;
+  string   positionId = 4;
 }
 message ChatGroupJoinReq{
   int64 chatGroupId = 1;
   int64 positionId = 2;
+  repeated int64 userIdArr = 3;
+  string  appId = 4;
 }
 message GroupNameUpdateReq{
   int64  chatGroupId = 1;
   int64  positionId = 2;
   string groupName = 3;
+  string  appId = 4;
 }
 message GroupNoticeAddReq{
   int64 chatGroupId = 1;
   string content = 2;
+  string  appId = 3;
 }
 message GroupNoticeUpdateReq{
   int64 groupNoticeId = 1;
   string content = 2;
+  string appId = 3;
 }
-message GroupNoticeUpdateResp{
-  string        data = 1;
+message GroupNoticeGetResp{
+  GroupNotice        data = 1;
   int64         error_code = 2; //响应代码
   string        error_msg = 3; //响应消息
 }
+message  GroupNotice{
+  string content = 1;
+  string  groupNoticeId = 2;
+}
+
 service messageCenter {
   // 查询数量
   rpc Count(CountReq) returns(CountResp);
@@ -211,5 +231,5 @@ service messageCenter {
   //群任务编辑
   rpc GroupNoticeUpdate(GroupNoticeUpdateReq)returns(CommonReq);
   //群任务详情
-  rpc GroupNoticeGet(ChatGroupPersonReq)returns(CommonReq);
+  rpc GroupNoticeGet(ChatGroupPersonReq)returns(GroupNoticeGetResp);
 }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 477 - 240
rpc/messagecenter/messagecenter/messagecenter.pb.go


+ 5 - 5
rpc/messagecenter/messagecenter/messagecenter_grpc.pb.go

@@ -53,7 +53,7 @@ type MessageCenterClient interface {
 	//群任务编辑
 	GroupNoticeUpdate(ctx context.Context, in *GroupNoticeUpdateReq, opts ...grpc.CallOption) (*CommonReq, error)
 	//群任务详情
-	GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*CommonReq, error)
+	GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*GroupNoticeGetResp, error)
 }
 
 type messageCenterClient struct {
@@ -199,8 +199,8 @@ func (c *messageCenterClient) GroupNoticeUpdate(ctx context.Context, in *GroupNo
 	return out, nil
 }
 
-func (c *messageCenterClient) GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*CommonReq, error) {
-	out := new(CommonReq)
+func (c *messageCenterClient) GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*GroupNoticeGetResp, error) {
+	out := new(GroupNoticeGetResp)
 	err := c.cc.Invoke(ctx, "/messagecenter.messageCenter/GroupNoticeGet", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -243,7 +243,7 @@ type MessageCenterServer interface {
 	//群任务编辑
 	GroupNoticeUpdate(context.Context, *GroupNoticeUpdateReq) (*CommonReq, error)
 	//群任务详情
-	GroupNoticeGet(context.Context, *ChatGroupPersonReq) (*CommonReq, error)
+	GroupNoticeGet(context.Context, *ChatGroupPersonReq) (*GroupNoticeGetResp, error)
 	mustEmbedUnimplementedMessageCenterServer()
 }
 
@@ -296,7 +296,7 @@ func (UnimplementedMessageCenterServer) GroupNoticeAdd(context.Context, *GroupNo
 func (UnimplementedMessageCenterServer) GroupNoticeUpdate(context.Context, *GroupNoticeUpdateReq) (*CommonReq, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GroupNoticeUpdate not implemented")
 }
-func (UnimplementedMessageCenterServer) GroupNoticeGet(context.Context, *ChatGroupPersonReq) (*CommonReq, error) {
+func (UnimplementedMessageCenterServer) GroupNoticeGet(context.Context, *ChatGroupPersonReq) (*GroupNoticeGetResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GroupNoticeGet not implemented")
 }
 func (UnimplementedMessageCenterServer) mustEmbedUnimplementedMessageCenterServer() {}

+ 32 - 30
rpc/messagecenter/messagecenterclient/messagecenter.go

@@ -13,34 +13,36 @@ import (
 )
 
 type (
-	ChatGroupAddReq       = messagecenter.ChatGroupAddReq
-	ChatGroupJoinReq      = messagecenter.ChatGroupJoinReq
-	ChatGroupList         = messagecenter.ChatGroupList
-	ChatGroupListReq      = messagecenter.ChatGroupListReq
-	ChatGroupListResp     = messagecenter.ChatGroupListResp
-	ChatGroupPerson       = messagecenter.ChatGroupPerson
-	ChatGroupPersonReq    = messagecenter.ChatGroupPersonReq
-	ChatGroupPersonResp   = messagecenter.ChatGroupPersonResp
-	ChatSessionReq        = messagecenter.ChatSessionReq
-	ChatSessionResp       = messagecenter.ChatSessionResp
-	CloseSessionReq       = messagecenter.CloseSessionReq
-	CommonReq             = messagecenter.CommonReq
-	CountReq              = messagecenter.CountReq
-	CountResp             = messagecenter.CountResp
-	CurrencyResp          = messagecenter.CurrencyResp
-	GroupNameUpdateReq    = messagecenter.GroupNameUpdateReq
-	GroupNoticeAddReq     = messagecenter.GroupNoticeAddReq
-	GroupNoticeUpdateReq  = messagecenter.GroupNoticeUpdateReq
-	GroupNoticeUpdateResp = messagecenter.GroupNoticeUpdateResp
-	MessageEntity         = messagecenter.MessageEntity
-	MessageReq            = messagecenter.MessageReq
-	MessageResp           = messagecenter.MessageResp
-	ReadStateReq          = messagecenter.ReadStateReq
-	SaveAutoReplyReq      = messagecenter.SaveAutoReplyReq
-	SaveMessageResp       = messagecenter.SaveMessageResp
-	UserEntity            = messagecenter.UserEntity
-	UserReq               = messagecenter.UserReq
-	UserResp              = messagecenter.UserResp
+	ChatGroupAddReq      = messagecenter.ChatGroupAddReq
+	ChatGroupJoinReq     = messagecenter.ChatGroupJoinReq
+	ChatGroupList        = messagecenter.ChatGroupList
+	ChatGroupListReq     = messagecenter.ChatGroupListReq
+	ChatGroupListResp    = messagecenter.ChatGroupListResp
+	ChatGroupPerson      = messagecenter.ChatGroupPerson
+	ChatGroupPersonList  = messagecenter.ChatGroupPersonList
+	ChatGroupPersonReq   = messagecenter.ChatGroupPersonReq
+	ChatGroupPersonResp  = messagecenter.ChatGroupPersonResp
+	ChatSessionReq       = messagecenter.ChatSessionReq
+	ChatSessionResp      = messagecenter.ChatSessionResp
+	CloseSessionReq      = messagecenter.CloseSessionReq
+	CommonReq            = messagecenter.CommonReq
+	CountReq             = messagecenter.CountReq
+	CountResp            = messagecenter.CountResp
+	CurrencyResp         = messagecenter.CurrencyResp
+	GroupNameUpdateReq   = messagecenter.GroupNameUpdateReq
+	GroupNotice          = messagecenter.GroupNotice
+	GroupNoticeAddReq    = messagecenter.GroupNoticeAddReq
+	GroupNoticeGetResp   = messagecenter.GroupNoticeGetResp
+	GroupNoticeUpdateReq = messagecenter.GroupNoticeUpdateReq
+	MessageEntity        = messagecenter.MessageEntity
+	MessageReq           = messagecenter.MessageReq
+	MessageResp          = messagecenter.MessageResp
+	ReadStateReq         = messagecenter.ReadStateReq
+	SaveAutoReplyReq     = messagecenter.SaveAutoReplyReq
+	SaveMessageResp      = messagecenter.SaveMessageResp
+	UserEntity           = messagecenter.UserEntity
+	UserReq              = messagecenter.UserReq
+	UserResp             = messagecenter.UserResp
 
 	MessageCenter interface {
 		// 查询数量
@@ -74,7 +76,7 @@ type (
 		// 群任务编辑
 		GroupNoticeUpdate(ctx context.Context, in *GroupNoticeUpdateReq, opts ...grpc.CallOption) (*CommonReq, error)
 		// 群任务详情
-		GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*CommonReq, error)
+		GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*GroupNoticeGetResp, error)
 	}
 
 	defaultMessageCenter struct {
@@ -179,7 +181,7 @@ func (m *defaultMessageCenter) GroupNoticeUpdate(ctx context.Context, in *GroupN
 }
 
 // 群任务详情
-func (m *defaultMessageCenter) GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*CommonReq, error) {
+func (m *defaultMessageCenter) GroupNoticeGet(ctx context.Context, in *ChatGroupPersonReq, opts ...grpc.CallOption) (*GroupNoticeGetResp, error) {
 	client := messagecenter.NewMessageCenterClient(m.cli.Conn())
 	return client.GroupNoticeGet(ctx, in, opts...)
 }

+ 200 - 13
service/chat_group.go

@@ -1,38 +1,225 @@
 package service
 
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jypkg/ent/chain-zhang/pinyin"
+	util "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
+	IC "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
+	"database/sql"
+	"fmt"
+	"time"
+)
+
 type ChatGroupService struct{}
 
 //群组列表查询
-func (b ChatGroupService) ChatGroupList(entId, positionId int64, userName, groupName string) []map[string]interface{} {
-	return []map[string]interface{}{}
+func (b ChatGroupService) ChatGroupList(entId, positionId int64, userName, groupName string, appid string) []map[string]interface{} {
+	userNameStr := ""
+	groupNameStr := ""
+	if userName != "" {
+		positionIdArr := NameToPositionIdp("%"+userName+"%", entId)
+		userNameStr = " and find_in_set(f.position_id,'" + positionIdArr + "')"
+	}
+	if groupName != "" {
+		groupNameStr = " and b.name like '%" + groupName + "%'"
+	}
+	data := IC.BaseMysql.SelectBySql(fmt.Sprintf("SELECT e.chat_group_id as chatGroupId,b.name,(select count(id) from  socialize_chat_group_person c where c.chat_group_id=b.id  and c.status=1) as  count   FROM  "+
+		"socialize_chat_group_person e "+
+		"INNER JOIN socialize_chat_group_person f ON e.position_id = %d  %s  AND e.chat_group_id = f.chat_group_id  and e.status=1  "+
+		"INNER JOIN  socialize_chat_group b on  e.chat_group_id=b.id %s "+
+		"GROUP BY  e.chat_group_id order by b.create_time desc", positionId, userNameStr, groupNameStr))
+	return *data
 }
 
 //群组新增
-func (b ChatGroupService) ChatGroupAdd(entId, positionId string, userIdArr []int64) string {
-	return true
+func (b ChatGroupService) ChatGroupAdd(entId, positionId int64, userIdArr []int64, appid string) bool {
+	nowStr := time.Now().Local().Format(util.Date_Full_Layout)
+	insertMap := map[string]interface{}{
+		"name":        "无主题群聊",
+		"appid":       appid,
+		"create_time": nowStr,
+		"isdismiss":   0,
+	}
+	fool := IC.BaseMysql.ExecTx("群组人员保存", func(tx *sql.Tx) bool {
+		ok1 := IC.BaseMysql.InsertByTx(tx, util.SOCIALIZE_CHAT_GROUP, insertMap)
+		personKey := []string{"appid", "chat_group_id", "position_id", "join_time", "invite_id", "isgroup_admin", "iscommon_admin", "status"}
+		pushInsert := []interface{}{}
+		for _, v := range userIdArr {
+			pushInsert = append(pushInsert, appid, ok1, v, nowStr, positionId, 0, 0, 1)
+		}
+		pushInsert = append(pushInsert, appid, ok1, positionId, nowStr, positionId, 1, 0, 1)
+		_, ok2 := IC.BaseMysql.InsertIgnoreBatchByTx(tx, util.SOCIALIZE_CHAT_GROUP_PERSON, personKey, pushInsert)
+		return ok1 > 0 && ok2 > 0
+	})
+	return fool
 }
 
 //群组成员查询
-func (b ChatGroupService) ChatGroupPerson(ChatGroupId int64) []map[string]interface{} {
-	return []map[string]interface{}{}
+func (b ChatGroupService) ChatGroupPerson(chatGroupId int64, entId int64, appid string) map[string][]map[string]interface{} {
+	//先查询企业下的人
+	personMap, _ := EntPerson(entId, false)
+	//用户下员工查询
+	personData := map[string][]map[string]interface{}{}
+	personList := IC.BaseMysql.SelectBySql("select DISTINCT  a.position_id,a.isgroup_admin,a.iscommon_admin,d.contact as phone   from socialize_chat_group_person  a left JOIN   base_position b on  a.position_id=b.id left join  base_account c  on  c.id=b.account_id  LEFT JOIN base_person d on  c.person_id=d.id where  a.chat_group_id=? and a.status=1 ", chatGroupId)
+	if personList != nil && len(*personList) > 0 {
+		for k, v := range *personList {
+			name := personMap[common.InterfaceToStr(v["phone"])]
+			if name != "" {
+				str, _ := pinyin.New(name).Mode(pinyin.InitialsInCapitals).Convert()
+				zimu := str[0:1]
+				(*personList)[k]["name"] = name
+				personData[zimu] = append(personData[zimu], (*personList)[k])
+			}
+		}
+	}
+	return personData
 }
 
 //加入群组
-func (b ChatGroupService) ChatGroupJoin(chatGroupId, positionId int64) bool {
-	return true
+func (b ChatGroupService) ChatGroupJoin(chatGroupId, positionId int64, userIdArr []int64, appid string) bool {
+	nowStr := time.Now().Local().Format(util.Date_Full_Layout)
+	if len(userIdArr) == 0 {
+		return false
+	}
+	personStr := util.IntJoin(userIdArr, ",")
+	countData := IC.BaseMysql.SelectBySql(fmt.Sprintf("select count(1) as count from  %s where  chat_group_id=? and  find_in_set(position_id,?)", util.SOCIALIZE_CHAT_GROUP_PERSON), chatGroupId, personStr)
+	if countData == nil || len(*countData) == 0 {
+		return false
+	}
+	if common.Int64All((*countData)[0]["count"]) > 0 {
+		return false
+	}
+	fool := IC.BaseMysql.ExecTx("聊天信息保存", func(tx *sql.Tx) bool {
+		personKey := []string{"appid", "chat_group_id", "position_id", "join_time", "invite_id", "isgroup_admin", "iscommon_admin", "status"}
+		pushInsert := []interface{}{}
+		for _, v := range userIdArr {
+			pushInsert = append(pushInsert, appid, chatGroupId, v, nowStr, positionId, 1, 0, 1)
+		}
+		_, ok1 := IC.BaseMysql.InsertIgnoreBatchByTx(tx, util.SOCIALIZE_CHAT_GROUP_PERSON, personKey, pushInsert)
+		if ok1 == 0 {
+			return false
+		}
+		//30条历史记录添加
+		messageList := IC.BaseMysql.SelectBySqlByTx(tx,
+			fmt.Sprintf("SELECT  messag_id,  MAX( appid ) AS appid,MAX( type ) AS type,MAX( send_user_id ) AS send_user_id,MAX( send_user_type ) AS send_user_type,MAX( read_time ) AS read_time,MAX( create_time ) AS create_time,MAX( chat_group_id ) AS chat_group_id  "+
+				"FROM  %s   WHERE  (type = 3 or type=6)   AND iswithdraw = 0   AND chat_group_id = ?   GROUP BY  messag_id", util.SOCIALIZE_MESSAGE_MAILBOX), chatGroupId)
+		if len(*messageList) > 0 && messageList != nil {
+			messageKey := []string{
+				"appid", "messag_id", "type", "send_user_id", "send_user_type", "receive_user_id", "receive_user_type", "iswithdraw", "own_type", "own_id", "read_time", "create_time", "isread", "chat_group_id"}
+			messageInsert := []interface{}{}
+			for _, userValue := range userIdArr {
+				for _, v := range *messageList {
+					messageInsert = append(messageInsert,
+						v["appid"],
+						v["messag_id"],
+						v["type"],
+						v["send_user_id"],
+						v["send_user_type"],
+						userValue,
+						1,
+						0,
+						1,
+						userValue,
+						v["read_time"],
+						v["create_time"],
+						1,
+						v["chat_group_id"],
+					)
+				}
+			}
+			_, ok2 := IC.BaseMysql.InsertIgnoreBatchByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageKey, messageInsert)
+			if ok2 == 0 {
+				return false
+			}
+			return ok1 > 0 && ok2 > 0
+		}
+		return true
+	})
+	return fool
 }
 
 //群组名称修改
-func (b ChatGroupService) GroupNameUpdate(chatGroupId, positionId int64, groupName string) bool {
+func (b ChatGroupService) GroupNameUpdate(chatGroupId int64, groupName, appid string) bool {
+	IC.BaseMysql.Update(util.SOCIALIZE_CHAT_GROUP, map[string]interface{}{
+		"id":    chatGroupId,
+		"appid": appid,
+	}, map[string]interface{}{
+		"name": groupName,
+	})
 	return true
 }
 
+//群任务编辑
+func (b ChatGroupService) GroupNoticeUpdate(groupNoticeId int64, content, appid string) bool {
+	return IC.BaseMysql.Update(util.SOCIALIZE_CHAT_GROUP_NOTICE, map[string]interface{}{
+		"appid": appid,
+		"id":    groupNoticeId,
+	}, map[string]interface{}{
+		"content": content,
+	})
+}
+
 //群任务新增
-func (b ChatGroupService) GroupNoticeAdd(chatGroupId int64, content string) bool {
-	return true
+func (b ChatGroupService) GroupNoticeAdd(chatGroupId int64, content, appid string) bool {
+	nowStr := time.Now().Local().Format(util.Date_Full_Layout)
+	id := IC.BaseMysql.Insert(util.SOCIALIZE_CHAT_GROUP_NOTICE, map[string]interface{}{
+		"appid":         appid,
+		"chat_group_id": chatGroupId,
+		"create_time":   nowStr,
+		"content":       content,
+	})
+	if id > 0 {
+		return true
+	}
+	return false
 }
 
 //群任务详情
-func (b ChatGroupService) GroupNoticeGet(chatGroupId string) map[string]interface{} {
-	return map[string]interface{}{}
+func (b ChatGroupService) GroupNoticeGet(chatGroupId int64, appid string) map[string]interface{} {
+	data := IC.BaseMysql.FindOne(util.SOCIALIZE_CHAT_GROUP_NOTICE, map[string]interface{}{
+		"chat_group_id": chatGroupId,
+		"appid":         appid,
+	}, "", "create_time")
+	return *data
+}
+
+//企业用户查询
+func EntPerson(entId int64, isAll bool) (map[string]string, map[string]string) {
+	phoneData := map[string]string{}
+	nameData := map[string]string{}
+	//在职人员查询
+	personList := IC.MainMysql.Find(util.ENTNICHE_USER, map[string]interface{}{
+		"ent_Id": entId,
+	}, "phone,name", "", -1, -1)
+	if personList != nil && len(*personList) > 0 {
+		for _, v := range *personList {
+			phoneData[common.InterfaceToStr(v["phone"])] = common.InterfaceToStr(v["name"])
+			nameData[common.InterfaceToStr(v["name"])] = common.InterfaceToStr(v["phone"])
+		}
+	}
+	//离职人员查看
+	if isAll {
+		departData, _ := IC.Mgo.Find(util.ENTNICHE_DELETE, map[string]interface{}{
+			"bablename": "entniche_user",
+			"ent_id":    entId,
+		}, "", `{"name":1,"phone":1}`, true, -1, -1)
+		if departData != nil && len(*departData) > 0 {
+			for _, v := range *departData {
+				phoneData[common.InterfaceToStr(v["phone"])] = common.InterfaceToStr(v["name"])
+				nameData[common.InterfaceToStr(v["name"])] = common.InterfaceToStr(v["phone"])
+			}
+		}
+	}
+	return phoneData, nameData
+}
+func NameToPositionIdp(userName string, entId int64) string {
+	personList := IC.MainMysql.SelectBySql(fmt.Sprintf(" select GROUP_CONCAT(phone) as phone from %s where ent_id=%d and name like '%s'  ", util.ENTNICHE_USER, entId, userName))
+	if len(*personList) > 0 {
+		phoneStr := (*personList)[0]["phone"]
+		positionArr := IC.BaseMysql.SelectBySql(fmt.Sprintf("select  GROUP_CONCAT(b.id) as positionIdArr from  %s a INNER JOIN  base_position b  on  b.type=1 and    find_in_set(a.phone,'%s') and  b.ent_id=%d  and  a.id=b.user_id ", util.BASE_USER, phoneStr, entId))
+		if len(*positionArr) > 0 {
+			return common.ObjToString((*positionArr)[0]["positionIdArr"])
+		}
+	}
+	return ""
 }

+ 285 - 0
service/chat_group_test.go

@@ -0,0 +1,285 @@
+package service
+
+import (
+	"reflect"
+	"testing"
+)
+
+func TestChatGroupService_ChatGroupAdd(t *testing.T) {
+	type args struct {
+		entId      int64
+		positionId int64
+		userIdArr  []int64
+		appid      string
+	}
+	tests := []struct {
+		name string
+		args args
+		want bool
+	}{
+		// TODO: Add test cases.
+		{
+			name: "群组新增",
+			args: args{
+				entId:      15755,
+				positionId: 1204781623,
+				userIdArr:  []int64{1204841316},
+				appid:      "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.ChatGroupAdd(tt.args.entId, tt.args.positionId, tt.args.userIdArr, tt.args.appid); got != tt.want {
+				t.Errorf("ChatGroupAdd() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_ChatGroupJoin(t *testing.T) {
+	type args struct {
+		chatGroupId int64
+		positionId  int64
+		userIdArr   []int64
+		appid       string
+	}
+	tests := []struct {
+		name string
+		args args
+		want bool
+	}{
+		// TODO: Add test cases.
+		{
+			name: "拉人进群",
+			args: args{
+				chatGroupId: 3,
+				positionId:  1204781623,
+				userIdArr:   []int64{1204841317},
+				appid:       "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.ChatGroupJoin(tt.args.chatGroupId, tt.args.positionId, tt.args.userIdArr, tt.args.appid); got != tt.want {
+				t.Errorf("ChatGroupJoin() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_ChatGroupList(t *testing.T) {
+	type args struct {
+		entId      int64
+		positionId int64
+		userName   string
+		groupName  string
+		appid      string
+	}
+	tests := []struct {
+		name string
+		args args
+		want []map[string]interface{}
+	}{
+		// TODO: Add test cases.
+		{name: "我的群聊列表默认",
+			args: args{
+				entId:      15755,
+				positionId: 1204781623,
+				userName:   "张",
+				groupName:  "",
+				appid:      "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.ChatGroupList(tt.args.entId, tt.args.positionId, tt.args.userName, tt.args.groupName, tt.args.appid); !reflect.DeepEqual(got, tt.want) {
+				t.Errorf("ChatGroupList() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_ChatGroupPerson(t *testing.T) {
+	type args struct {
+		ChatGroupId int64
+		entId       int64
+		appid       string
+	}
+	tests := []struct {
+		name string
+		args args
+		want map[string][]map[string]interface{}
+	}{
+		// TODO: Add test cases.
+		{
+			name: "群成员",
+			args: args{
+				ChatGroupId: 3,
+				entId:       15755,
+				appid:       "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.ChatGroupPerson(tt.args.ChatGroupId, tt.args.entId, tt.args.appid); !reflect.DeepEqual(got, tt.want) {
+				t.Errorf("ChatGroupPerson() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_GroupNameUpdate(t *testing.T) {
+	type args struct {
+		chatGroupId int64
+		groupName   string
+		appid       string
+	}
+	tests := []struct {
+		name string
+		args args
+		want bool
+	}{
+		// TODO: Add test cases.
+		{
+			name: "表名修改",
+			args: args{
+				chatGroupId: 3,
+				groupName:   "策士",
+				appid:       "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.GroupNameUpdate(tt.args.chatGroupId, tt.args.groupName, tt.args.appid); got != tt.want {
+				t.Errorf("GroupNameUpdate() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_GroupNoticeAdd(t *testing.T) {
+	type args struct {
+		chatGroupId int64
+		content     string
+		appid       string
+	}
+	tests := []struct {
+		name string
+		args args
+		want bool
+	}{
+		// TODO: Add test cases.
+		{
+			name: "公告新增",
+			args: args{
+				chatGroupId: 3,
+				content:     "一起来玩啊",
+				appid:       "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.GroupNoticeAdd(tt.args.chatGroupId, tt.args.content, tt.args.appid); got != tt.want {
+				t.Errorf("GroupNoticeAdd() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_GroupNoticeGet(t *testing.T) {
+	type args struct {
+		chatGroupId int64
+		appid       string
+	}
+	tests := []struct {
+		name string
+		args args
+		want map[string]interface{}
+	}{
+		// TODO: Add test cases.
+		{
+			name: "公告获取",
+			args: args{
+				chatGroupId: 3,
+				appid:       "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.GroupNoticeGet(tt.args.chatGroupId, tt.args.appid); !reflect.DeepEqual(got, tt.want) {
+				t.Errorf("GroupNoticeGet() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestChatGroupService_GroupNoticeUpdate(t *testing.T) {
+	type args struct {
+		groupNoticeId int64
+		content       string
+		appid         string
+	}
+	tests := []struct {
+		name string
+		args args
+		want bool
+	}{
+		// TODO: Add test cases.
+		{
+			name: "公告修改",
+			args: args{
+				groupNoticeId: 1,
+				content:       "一起来吗qqqqq",
+				appid:         "10000",
+			},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			b := ChatGroupService{}
+			if got := b.GroupNoticeUpdate(tt.args.groupNoticeId, tt.args.content, tt.args.appid); got != tt.want {
+				t.Errorf("GroupNoticeUpdate() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
+func TestEntPerson(t *testing.T) {
+	type args struct {
+		entId int64
+		isAll bool
+	}
+	tests := []struct {
+		name  string
+		args  args
+		want  map[string]string
+		want1 map[string]string
+	}{
+		// TODO: Add test cases.
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			got, got1 := EntPerson(tt.args.entId, tt.args.isAll)
+			if !reflect.DeepEqual(got, tt.want) {
+				t.Errorf("EntPerson() got = %v, want %v", got, tt.want)
+			}
+			if !reflect.DeepEqual(got1, tt.want1) {
+				t.Errorf("EntPerson() got1 = %v, want %v", got1, tt.want1)
+			}
+		})
+	}
+}

+ 41 - 40
service/message_mail_box.go

@@ -3,6 +3,7 @@ package service
 import (
 	quitl "app.yhyue.com/moapp/jybase/common"
 	util "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
+	IC "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
 	"database/sql"
 	"fmt"
@@ -49,7 +50,7 @@ func (b MessaggeService) Count(newUserId, userType, entUserId int64, isClean boo
 
 	}
 	log.Println(sqlStr, v)
-	rs := util.Mysql.CountBySql(sqlStr, v...)
+	rs := IC.BaseMysql.CountBySql(sqlStr, v...)
 	log.Println(rs)
 	count = int(rs)
 	//最后一条信息查询
@@ -62,19 +63,19 @@ func (b MessaggeService) Count(newUserId, userType, entUserId int64, isClean boo
 		"ORDER BY  create_time DESC   "+
 		"LIMIT 0,1", util.SOCIALIZE_MESSAGE_MAILBOX, util.SOCIALIZE_MESSAGE,
 		newUserId, newUserId)
-	lastData := util.Mysql.SelectBySql(sqlStr)
+	lastData := IC.BaseMysql.SelectBySql(sqlStr)
 	if len(*lastData) > 0 {
 		last = (*lastData)[0]
 		if userType == 1 {
-			util.SetData(userType, entUserId, map[string]interface{}{"data": last, "count": count}, util.SurvivalTime)
+			util.SetData(userType, entUserId, map[string]interface{}{"data": last, "count": count}, IC.SurvivalTime)
 		} else {
-			util.SetData(userType, newUserId, map[string]interface{}{"data": last, "count": count}, util.SurvivalTime)
+			util.SetData(userType, newUserId, map[string]interface{}{"data": last, "count": count}, IC.SurvivalTime)
 		}
 	} else {
 		if userType == 1 {
-			util.SetData(userType, entUserId, map[string]interface{}{"data": map[string]interface{}{}, "count": count}, util.SurvivalTime)
+			util.SetData(userType, entUserId, map[string]interface{}{"data": map[string]interface{}{}, "count": count}, IC.SurvivalTime)
 		} else {
-			util.SetData(userType, newUserId, map[string]interface{}{"data": map[string]interface{}{}, "count": count}, util.SurvivalTime)
+			util.SetData(userType, newUserId, map[string]interface{}{"data": map[string]interface{}{}, "count": count}, IC.SurvivalTime)
 		}
 	}
 	return
@@ -94,7 +95,7 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 			"WHEN c.send_user_id < c.receive_user_id "+
 			"THEN  CONCAT( c.receive_user_id, c.send_user_id )  END  ) ", in.NewUserId,
 		)
-		data = util.Mysql.SelectBySql(userSql)
+		data = IC.BaseMysql.SelectBySql(userSql)
 		userMessageId := util.Inhandle(data)
 		//客服最后一次信息查询
 		customerSql := fmt.Sprintf("SELECT   MAX( c.id )   as messageId  FROM   %s c "+
@@ -104,7 +105,7 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 			"AND c.own_type = 2 "+
 			"AND   d.user_id=c.own_id "+
 			"GROUP BY   d.ent_id  ", util.SOCIALIZE_MESSAGE_MAILBOX, util.SOCIALIZE_CHAT_SESSION, in.NewUserId)
-		data = util.Mysql.SelectBySql(customerSql)
+		data = IC.BaseMysql.SelectBySql(customerSql)
 		customerMessageId := util.Inhandle(data)
 		//用户的列表
 		sqlStr = fmt.Sprintf("SELECT "+
@@ -166,7 +167,7 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 			"GROUP BY   (   CASE  WHEN  c.send_user_type =2 THEN  CONCAT( c.send_user_id )   WHEN c.send_user_type =1 THEN  CONCAT( c.receive_user_id )  END  ) ",
 			util.SOCIALIZE_MESSAGE_MAILBOX, util.SOCIALIZE_CHAT_SESSION,
 			in.EntUserId, startTimeSql, endTimeSql)
-		data = util.Mysql.SelectBySql(userSql)
+		data = IC.BaseMysql.SelectBySql(userSql)
 		if data != nil {
 			customerMessageId := util.Inhandle(data)
 			//客服的用户列表
@@ -191,7 +192,7 @@ func (b MessaggeService) UserList(in *messagecenter.UserReq) (data *[]map[string
 	}
 	if sqlStr != "" {
 		log.Println(sqlStr)
-		data = util.Mysql.SelectBySql(sqlStr)
+		data = IC.BaseMysql.SelectBySql(sqlStr)
 	}
 	return
 }
@@ -231,7 +232,7 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 			break
 		}
 		//查找会话信息
-		chatJson := util.Mysql.FindOne(util.SOCIALIZE_CHAT_SESSION, map[string]interface{}{"id": sessionId}, "user_id", "")
+		chatJson := IC.BaseMysql.FindOne(util.SOCIALIZE_CHAT_SESSION, map[string]interface{}{"id": sessionId}, "user_id", "")
 		if chatJson == nil {
 			return false, "会话标识不存在", "", 0, nowForm.Unix()
 		} else {
@@ -240,7 +241,7 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 			}
 		}
 	}
-	fool = util.Mysql.ExecTx("聊天信息保存", func(tx *sql.Tx) bool {
+	fool = IC.BaseMysql.ExecTx("聊天信息保存", func(tx *sql.Tx) bool {
 		//先插入信息表
 		create_time := nowForm.Format(util.Date_Full_Layout)
 		userType := int64(1)
@@ -261,7 +262,7 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 			"create_time": create_time,
 			"content":     in.Content,
 		}
-		ok := util.Mysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE, message)
+		ok := IC.BaseMysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE, message)
 		receiveOk := int64(0)
 		messageId = ok
 		data["id"] = ok
@@ -315,7 +316,7 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 				messageMailBox["send_user_id"] = in.NewUserId
 				messageMailBox["receive_user_id"] = in.ReceiveId
 			}
-			receiveOk = util.Mysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageMailBox)
+			receiveOk = IC.BaseMysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageMailBox)
 			return ok > 1 && receiveOk > 1
 		}
 		if in.ItemType == 4 || in.ItemType == 5 {
@@ -359,7 +360,7 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 			userType = 2
 			userId = in.ReceiveId
 		}
-		receiveOk = util.Mysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageMailBox)
+		receiveOk = IC.BaseMysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageMailBox)
 		messageMailBox = map[string]interface{}{
 			"appid":         in.Appid,
 			"messag_id":     ok,
@@ -402,14 +403,14 @@ func (b MessaggeService) SaveMessage(in *messagecenter.MessageEntity) (fool bool
 			messageMailBox["send_user_id"] = in.NewUserId
 			messageMailBox["receive_user_id"] = in.ReceiveId
 		}
-		receiveOk = util.Mysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageMailBox)
+		receiveOk = IC.BaseMysql.InsertByTx(tx, util.SOCIALIZE_MESSAGE_MAILBOX, messageMailBox)
 		if ok > 1 && receiveOk > 1 {
 			pc_a, err := util.GetData(userType, userId)
 			count := 1
 			if err == nil && pc_a != nil {
 				count += pc_a.Count
 			}
-			util.SetData(userType, userId, map[string]interface{}{"data": data, "count": count}, util.SurvivalTime)
+			util.SetData(userType, userId, map[string]interface{}{"data": data, "count": count}, IC.SurvivalTime)
 		}
 		return ok > 1 && receiveOk > 1
 	})
@@ -477,10 +478,10 @@ func (b MessaggeService) FindMessage(in *messagecenter.MessageReq) *[]map[string
 		break
 	}
 	log.Println(sqlStr)
-	data := util.Mysql.SelectBySql(sqlStr)
+	data := IC.BaseMysql.SelectBySql(sqlStr)
 	//自己头像处理
 	if in.UserType == 2 {
-		userData := util.Mysql.FindOne(util.BASE_USER, map[string]interface{}{"id": in.NewUserId}, "headimg", "")
+		userData := IC.BaseMysql.FindOne(util.BASE_USER, map[string]interface{}{"id": in.NewUserId}, "headimg", "")
 		if userData != nil {
 			for key := range *data {
 				(*data)[key]["ownImg"] = (*userData)["headimg"]
@@ -501,7 +502,7 @@ func (b MessaggeService) FindMessage(in *messagecenter.MessageReq) *[]map[string
 					"type":     2,
 					"isread":   0,
 				}
-				util.Mysql.Update(util.SOCIALIZE_MESSAGE_MAILBOX, updateMap, map[string]interface{}{"isread": 1, "read_time": time.Now().Local().Format(util.Date_Full_Layout)})
+				IC.BaseMysql.Update(util.SOCIALIZE_MESSAGE_MAILBOX, updateMap, map[string]interface{}{"isread": 1, "read_time": time.Now().Local().Format(util.Date_Full_Layout)})
 				break
 			case 4, 5:
 				sqlStr := ""
@@ -519,7 +520,7 @@ func (b MessaggeService) FindMessage(in *messagecenter.MessageReq) *[]map[string
 						"AND a.isread = 0    "+
 						"AND a.own_id =%d ", util.SOCIALIZE_MESSAGE_MAILBOX, in.NewUserId)
 				}
-				util.Mysql.UpdateOrDeleteBySql(sqlStr)
+				IC.BaseMysql.UpdateOrDeleteBySql(sqlStr)
 				break
 			}
 			//redis缓存处理
@@ -531,20 +532,20 @@ func (b MessaggeService) FindMessage(in *messagecenter.MessageReq) *[]map[string
 
 //创建会话
 func (b MessaggeService) CreateChatSession(in *messagecenter.ChatSessionReq) (fool bool, sessionId int64) {
-	fool = util.Mysql.ExecTx("会话新建", func(tx *sql.Tx) bool {
+	fool = IC.BaseMysql.ExecTx("会话新建", func(tx *sql.Tx) bool {
 		customerserviceName := in.CustomerserviceName
 		if in.CustomerServiceId != 0 {
 			sqlStr := fmt.Sprintf("select  customer_service_name from  %s "+
 				"where  ent_id= %d "+
 				"AND customer_service_id= %d ",
 				util.SOCIALIZE_CHAT_SESSION, in.EntId, in.CustomerServiceId)
-			customerList := util.Mysql.SelectBySql(sqlStr)
+			customerList := IC.BaseMysql.SelectBySql(sqlStr)
 			if len(*customerList) > 0 {
 				customerserviceName = quitl.InterfaceToStr((*customerList)[0]["customer_service_name"])
 			}
 		}
 		//查询企业是否存在
-		count := util.Mysql.Count(util.SOCIALIZE_TENANT_ROBOT, map[string]interface{}{
+		count := IC.BaseMysql.Count(util.SOCIALIZE_TENANT_ROBOT, map[string]interface{}{
 			"ent_id": in.EntId,
 		})
 		if count < 1 {
@@ -559,7 +560,7 @@ func (b MessaggeService) CreateChatSession(in *messagecenter.ChatSessionReq) (fo
 			"user_id":               in.UserId,
 			"customer_service_name": customerserviceName,
 		}
-		sessionId = util.Mysql.InsertByTx(tx, util.SOCIALIZE_CHAT_SESSION, chatMession)
+		sessionId = IC.BaseMysql.InsertByTx(tx, util.SOCIALIZE_CHAT_SESSION, chatMession)
 		return sessionId > 0
 	})
 	return
@@ -567,11 +568,11 @@ func (b MessaggeService) CreateChatSession(in *messagecenter.ChatSessionReq) (fo
 
 //结束会话
 func (b MessaggeService) CloseChatSession(in *messagecenter.CloseSessionReq) bool {
-	fool := util.Mysql.ExecTx("关闭会话", func(tx *sql.Tx) bool {
+	fool := IC.BaseMysql.ExecTx("关闭会话", func(tx *sql.Tx) bool {
 		updateMap := map[string]interface{}{
 			"id": in.SessionId,
 		}
-		fool := util.Mysql.Update(util.SOCIALIZE_CHAT_SESSION, updateMap, map[string]interface{}{"start_time": time.Now().Local().Format(util.Date_Full_Layout)})
+		fool := IC.BaseMysql.Update(util.SOCIALIZE_CHAT_SESSION, updateMap, map[string]interface{}{"start_time": time.Now().Local().Format(util.Date_Full_Layout)})
 		return fool
 	})
 	return fool
@@ -580,25 +581,25 @@ func (b MessaggeService) CloseChatSession(in *messagecenter.CloseSessionReq) boo
 //创建会话并保存信息
 func (b *MessaggeService) SaveAutoReplyMsg(userType, entId, entUserId, userId int64, content, appId, nowFormat string) (bool, int64) {
 	messageId := int64(0)
-	return util.Mysql.ExecTx("保存自动回复消息", func(tx *sql.Tx) bool {
+	return IC.BaseMysql.ExecTx("保存自动回复消息", func(tx *sql.Tx) bool {
 		entUserName := ""
 		if entUserId > 0 {
-			list := util.Mysql.SelectBySql(`select ? from socialize_tenant_seat where appid=? AND ent_id=? AND customer_service_id=?`, util.SOCIALIZE_CHAT_SESSION, appId, entId, entUserId)
+			list := IC.BaseMysql.SelectBySql(`select ? from socialize_tenant_seat where appid=? AND ent_id=? AND customer_service_id=?`, util.SOCIALIZE_CHAT_SESSION, appId, entId, entUserId)
 			if list != nil && len(*list) > 0 {
 				entUserName, _ = (*list)[0]["customer_service_name"].(string)
 			}
 		}
-		messageId = util.Mysql.InsertBySqlByTx(tx, `insert into socialize_message (appid,content,item,type,create_time,create_person) values (?,?,?,?,?,?)`, appId, content, 8, 1, nowFormat, "admin")
-		sessionId := util.Mysql.InsertBySqlByTx(tx, `insert into socialize_chat_session (appid,type,ent_id,customer_service_id,customer_service_name,user_id,start_time,end_time) values (?,?,?,?,?,?,?,?)`, appId, 1, entId, entUserId, entUserName, userId, nowFormat, nowFormat)
+		messageId = IC.BaseMysql.InsertBySqlByTx(tx, `insert into socialize_message (appid,content,item,type,create_time,create_person) values (?,?,?,?,?,?)`, appId, content, 8, 1, nowFormat, "admin")
+		sessionId := IC.BaseMysql.InsertBySqlByTx(tx, `insert into socialize_chat_session (appid,type,ent_id,customer_service_id,customer_service_name,user_id,start_time,end_time) values (?,?,?,?,?,?,?,?)`, appId, 1, entId, entUserId, entUserName, userId, nowFormat, nowFormat)
 		ok := false
 		if userType == 0 {
-			ok1 := util.Mysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time,isread,read_time) values (?,?,?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, sessionId, 1, nowFormat, 1, nowFormat) > 0
-			ok2 := util.Mysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time) values (?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, userId, 2, nowFormat) > 0
+			ok1 := IC.BaseMysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time,isread,read_time) values (?,?,?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, sessionId, 1, nowFormat, 1, nowFormat) > 0
+			ok2 := IC.BaseMysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time) values (?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, userId, 2, nowFormat) > 0
 			ok = ok1 && ok2
 		} else if userType == 1 {
-			ok = util.Mysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time,isread,read_time) values (?,?,?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, sessionId, 1, nowFormat, 1, nowFormat) > 0
+			ok = IC.BaseMysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time,isread,read_time) values (?,?,?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, sessionId, 1, nowFormat, 1, nowFormat) > 0
 		} else if userType == 2 {
-			ok = util.Mysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time) values (?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, userId, 2, nowFormat) > 0
+			ok = IC.BaseMysql.InsertBySqlByTx(tx, `insert into socialize_message_mailbox (appid,messag_id,type,send_user_id,send_user_type,receive_user_id,receive_user_type,own_id,own_type,create_time) values (?,?,?,?,?,?,?,?,?,?)`, appId, messageId, 7, sessionId, 1, userId, 2, userId, 2, nowFormat) > 0
 		}
 		return messageId > 0 && sessionId > 0 && ok
 	}), messageId
@@ -606,15 +607,15 @@ func (b *MessaggeService) SaveAutoReplyMsg(userType, entId, entUserId, userId in
 
 //修改未读状态
 func (b MessaggeService) UpdateReadById(in *messagecenter.ReadStateReq) bool {
-	fool := util.Mysql.ExecTx("已读状态修改", func(tx *sql.Tx) bool {
+	fool := IC.BaseMysql.ExecTx("已读状态修改", func(tx *sql.Tx) bool {
 		updateMap := map[string]interface{}{
 			"messag_id": in.MessageId,
 			"isread":    0,
 		}
-		fool := util.Mysql.Update(util.SOCIALIZE_MESSAGE_MAILBOX, updateMap, map[string]interface{}{"read_time": time.Now().Local().Format(util.Date_Full_Layout), "isread": 1})
+		fool := IC.BaseMysql.Update(util.SOCIALIZE_MESSAGE_MAILBOX, updateMap, map[string]interface{}{"read_time": time.Now().Local().Format(util.Date_Full_Layout), "isread": 1})
 		if fool {
 			//查询此条信息拥有者
-			data := util.Mysql.FindOne(util.SOCIALIZE_MESSAGE_MAILBOX, updateMap, "receive_user_type", "")
+			data := IC.BaseMysql.FindOne(util.SOCIALIZE_MESSAGE_MAILBOX, updateMap, "receive_user_type", "")
 			if data != nil {
 				userType := int64(1)
 				userId := int64(0)
@@ -630,9 +631,9 @@ func (b MessaggeService) UpdateReadById(in *messagecenter.ReadStateReq) bool {
 					if err == nil && pc_a != nil {
 						//id一致
 						if in.MessageId == pc_a.Data["id"] {
-							util.SetData(userType, userId, map[string]interface{}{"data": map[string]interface{}{}, "count": pc_a.Count - 1}, util.SurvivalTime)
+							util.SetData(userType, userId, map[string]interface{}{"data": map[string]interface{}{}, "count": pc_a.Count - 1}, IC.SurvivalTime)
 						} else {
-							util.SetData(userType, userId, map[string]interface{}{"data": data, "count": pc_a.Count - 1}, util.SurvivalTime)
+							util.SetData(userType, userId, map[string]interface{}{"data": data, "count": pc_a.Count - 1}, IC.SurvivalTime)
 						}
 					}
 				}

+ 14 - 4
service/message_mail_box_test.go

@@ -3,8 +3,9 @@ package service
 import (
 	"app.yhyue.com/moapp/jybase/mysql"
 	"app.yhyue.com/moapp/jybase/redis"
-	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
+	IC "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
 	"bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
+	_ "github.com/go-sql-driver/mysql"
 	"log"
 	"reflect"
 	"strings"
@@ -12,7 +13,7 @@ import (
 )
 
 func initMysql() {
-	entity.Mysql = &mysql.Mysql{
+	IC.BaseMysql = &mysql.Mysql{
 		Address:      "192.168.3.217:4000",
 		UserName:     "root",
 		PassWord:     "=PDT49#80Z!RVv52_z",
@@ -20,7 +21,16 @@ func initMysql() {
 		MaxOpenConns: 5,
 		MaxIdleConns: 5,
 	}
-	entity.Mysql.Init()
+	IC.BaseMysql.Init()
+	IC.MainMysql = &mysql.Mysql{
+		Address:      "192.168.3.149:3306",
+		UserName:     "root",
+		PassWord:     "Topnet123",
+		DBName:       "jianyu",
+		MaxOpenConns: 5,
+		MaxIdleConns: 5,
+	}
+	IC.MainMysql.Init()
 	redis.InitRedisBySize(strings.Join([]string{"other=127.0.0.1:6379"}, ","), 100, 30, 300)
 }
 func init() {
@@ -90,7 +100,7 @@ func TestMessaggeService_Count(t *testing.T) {
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			b := MessaggeService{}
-			gotCount, gotLast, err := b.Count(tt.args.newUserId, tt.args.userType, tt.args.entUserId)
+			gotCount, gotLast, err := b.Count(tt.args.newUserId, tt.args.userType, tt.args.entUserId, true)
 			if (err != nil) != tt.wantErr {
 				t.Errorf("Count() error = %v, wantErr %v", err, tt.wantErr)
 				return

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác