From cc9df9c586426554cbdd107e8fe973d2f24cbd3a Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 18:24:10 +0800 Subject: [PATCH 01/10] mute group --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 0b7500369..10b3fe2a4 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -276,7 +276,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro log.Debug(req.OperationID, v) var node open_im_sdk.GroupMemberFullInfo cp.GroupMemberDBCopyOpenIM(&node, &v) - log.Debug(req.OperationID, "db value:", v) + log.Debug(req.OperationID, "db value:", v.MuteEndTime, "seconds: ", v.MuteEndTime.Unix()) log.Debug(req.OperationID, "cp value: ", node) resp.MemberList = append(resp.MemberList, &node) } From 84aca5b9e12d6df798456f74f325123241847fc8 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 18:29:19 +0800 Subject: [PATCH 02/10] mute group --- cmd/Open-IM-SDK-Core | 2 +- pkg/common/utils/utils.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 119b4a428..884d0d0b2 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 119b4a428510aabc71f52b30867b8d5f64ddeaa2 +Subproject commit 884d0d0b2712f269db3f7f7fc7309759854dcb03 diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 64f044a8e..5c317e4c9 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -118,6 +118,10 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } dst.JoinTime = int32(src.JoinTime.Unix()) + if src.MuteEndTime.Unix() < 0 { + dst.JoinTime = 0 + return nil + } dst.MuteEndTime = uint32(src.MuteEndTime.Unix()) if dst.MuteEndTime < uint32(time.Now().Unix()) { dst.MuteEndTime = 0 From bf5f72c00bb54bbe187d794d7cc2b1d394938e2c Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 18:36:24 +0800 Subject: [PATCH 03/10] mute group --- internal/rpc/group/group.go | 5 ++--- pkg/common/db/mysql_model/im_mysql_model/group_model.go | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 10b3fe2a4..50baff39e 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1029,11 +1029,10 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - groupInfo := db.Group{GroupID: req.GroupID} - err := imdb.UpdateGroupInfoDefaultZero(groupInfo, map[string]interface{}{"status": constant.GroupOk}) + err := imdb.UpdateGroupInfoDefaultZero(req.GroupID, map[string]interface{}{"status": constant.GroupOk}) if err != nil { - log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), groupInfo) + log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), req.GroupID) return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } chat.GroupCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 2d1d0e4db..88dfece8c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -216,10 +216,10 @@ func GetGroupMaster(groupId string) (db.GroupMember, error) { return groupMember, nil } -func UpdateGroupInfoDefaultZero(groupInfo db.Group, args map[string]interface{}) error { +func UpdateGroupInfoDefaultZero(groupID string, args map[string]interface{}) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - return dbConn.Model(groupInfo).Updates(args).Error + return dbConn.Model(&db.Group{}).Where("group_id = ? ", groupID).Update(args).Error } From 009ae6a235cfd1a6bbfb06de1c925ef5274f214b Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 18:54:55 +0800 Subject: [PATCH 04/10] mute group --- pkg/common/db/mysql_model/im_mysql_model/group_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 88dfece8c..9056bfb00 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -221,5 +221,5 @@ func UpdateGroupInfoDefaultZero(groupID string, args map[string]interface{}) err if err != nil { return err } - return dbConn.Model(&db.Group{}).Where("group_id = ? ", groupID).Update(args).Error + return dbConn.Table("groups").Where("group_id = ? ", groupID).Update(args).Error } From 6744745152630c23fb32fb3c475150074f443a64 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 30 Mar 2022 15:52:04 +0800 Subject: [PATCH 05/10] token add operationID --- internal/api/manage/management_chat.go | 2 +- internal/rpc/msg/send_msg.go | 2 +- internal/utils/jwt_token_test.go | 2 +- pkg/common/token_verify/jwt_token.go | 16 ++++++++-------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 802bb4207..f2b7fe11f 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -140,7 +140,7 @@ func ManagementSendMsg(c *gin.Context) { } log.NewInfo("", data, params) token := c.Request.Header.Get("token") - claims, err := token_verify.ParseToken(token) + claims, err := token_verify.ParseToken(token, params.OperationID) if err != nil { log.NewError(params.OperationID, "parse token failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index de189a048..6cd321d07 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -571,6 +571,6 @@ func Notification(n *NotificationMsg) { if err != nil { log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String(), err.Error()) } else if reply.ErrCode != 0 { - log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String()) + log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String(), reply.ErrCode, reply.ErrMsg) } } diff --git a/internal/utils/jwt_token_test.go b/internal/utils/jwt_token_test.go index 571836d39..da53a2a36 100644 --- a/internal/utils/jwt_token_test.go +++ b/internal/utils/jwt_token_test.go @@ -76,7 +76,7 @@ func Test_ParseToken(t *testing.T) { uid := "1" platform := int32(1) tokenString, _, _ := token_verify.CreateToken(uid, platform) - claims, err := token_verify.ParseToken(tokenString) + claims, err := token_verify.ParseToken(tokenString, "") if err == nil { assert.Equal(t, claims.UID, uid) } diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 21334a7a8..28d6cf314 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -101,7 +101,7 @@ func GetClaimFromToken(tokensString string) (*Claims, error) { } func IsAppManagerAccess(token string, OpUserID string) bool { - claims, err := ParseToken(token) + claims, err := ParseToken(token, "") if err != nil { return false } @@ -130,7 +130,7 @@ func CheckAccess(OpUserID string, OwnerUserID string) bool { } func GetUserIDFromToken(token string, operationID string) (bool, string) { - claims, err := ParseToken(token) + claims, err := ParseToken(token, operationID) if err != nil { log.Error(operationID, "ParseToken failed, ", err.Error(), token) return false, "" @@ -138,21 +138,21 @@ func GetUserIDFromToken(token string, operationID string) (bool, string) { return true, claims.UID } -func ParseToken(tokensString string) (claims *Claims, err error) { +func ParseToken(tokensString, operationID string) (claims *Claims, err error) { claims, err = GetClaimFromToken(tokensString) if err != nil { - log.NewError("", "token validate err", err.Error()) + log.NewError(operationID, "token validate err", err.Error(), tokensString) return nil, err } m, err := commonDB.DB.GetTokenMapByUidPid(claims.UID, claims.Platform) if err != nil { - log.NewError("", "get token from redis err", err.Error()) + log.NewError(operationID, "get token from redis err", err.Error(), tokensString) return nil, &constant.ErrTokenInvalid } if m == nil { - log.NewError("", "get token from redis err", "m is nil") + log.NewError(operationID, "get token from redis err", "m is nil", tokensString) return nil, &constant.ErrTokenInvalid } if v, ok := m[tokensString]; ok { @@ -195,7 +195,7 @@ func ParseRedisInterfaceToken(redisToken interface{}) (*Claims, error) { //Validation token, false means failure, true means successful verification func VerifyToken(token, uid string) (bool, error) { - claims, err := ParseToken(token) + claims, err := ParseToken(token, "") if err != nil { return false, err } @@ -207,7 +207,7 @@ func VerifyToken(token, uid string) (bool, error) { return true, nil } func WsVerifyToken(token, uid string, platformID string) (bool, error, string) { - claims, err := ParseToken(token) + claims, err := ParseToken(token, "") if err != nil { return false, err, "parse token err" } From 170392f0bcfe14453fa9285a0201131643d07ded Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 30 Mar 2022 18:23:05 +0800 Subject: [PATCH 06/10] oa notification add --- .../msg_transfer/logic/history_msg_handler.go | 16 +++++++++++++ .../logic/persistent_msg_handler.go | 23 +++++++++++-------- internal/rpc/msg/send_msg.go | 17 ++++++++++++++ 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 7d729f5cd..0b9f5c1c3 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -80,6 +80,22 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) mc.groupMsgCount++ } go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.RecvID) + case constant.NotificationChatType: + log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = NotificationChatType", isHistory, isPersist) + if isHistory { + err := saveUserChat(msgKey, &msgFromMQ) + if err != nil { + log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) + return + } + mc.singleMsgCount++ + log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) + } + if !isSenderSync && msgKey == msgFromMQ.MsgData.SendID { + } else { + go sendMessageToPush(&msgFromMQ, msgKey) + } + log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) default: log.NewError(msgFromMQ.OperationID, "SessionType error", msgFromMQ.String()) return diff --git a/internal/msg_transfer/logic/persistent_msg_handler.go b/internal/msg_transfer/logic/persistent_msg_handler.go index 59c338294..5400d54d6 100644 --- a/internal/msg_transfer/logic/persistent_msg_handler.go +++ b/internal/msg_transfer/logic/persistent_msg_handler.go @@ -34,26 +34,31 @@ func (pc *PersistentConsumerHandler) Init() { func (pc *PersistentConsumerHandler) handleChatWs2Mysql(msg []byte, msgKey string) { log.NewInfo("msg come here mysql!!!", "", "msg", string(msg)) + var tag bool msgFromMQ := pbMsg.MsgDataToMQ{} err := proto.Unmarshal(msg, &msgFromMQ) if err != nil { - log.ErrorByKv("msg_transfer Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) + log.NewError(msgFromMQ.OperationID, "msg_transfer Unmarshal msg err", "msg", string(msg), "err", err.Error()) return } //Control whether to store history messages (mysql) isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) //Only process receiver data if isPersist { - if msgKey == msgFromMQ.MsgData.RecvID && msgFromMQ.MsgData.SessionType == constant.SingleChatType { - log.InfoByKv("msg_transfer msg persisting", msgFromMQ.OperationID) - if err = im_mysql_msg_model.InsertMessageToChatLog(msgFromMQ); err != nil { - log.ErrorByKv("Message insert failed", msgFromMQ.OperationID, "err", err.Error(), "msg", msgFromMQ.String()) - return + switch msgFromMQ.MsgData.SessionType { + case constant.SingleChatType, constant.NotificationChatType: + if msgKey == msgFromMQ.MsgData.RecvID { + tag = true } - } else if msgFromMQ.MsgData.SessionType == constant.GroupChatType && msgKey == msgFromMQ.MsgData.SendID { - log.InfoByKv("msg_transfer msg persisting", msgFromMQ.OperationID) + case constant.GroupChatType: + if msgKey == msgFromMQ.MsgData.SendID || utils.IsContain(msgFromMQ.MsgData.SendID, config.Config.Manager.AppManagerUid) { + tag = true + } + } + if tag { + log.NewInfo(msgFromMQ.OperationID, "msg_transfer msg persisting", string(msg)) if err = im_mysql_msg_model.InsertMessageToChatLog(msgFromMQ); err != nil { - log.ErrorByKv("Message insert failed", msgFromMQ.OperationID, "err", err.Error(), "msg", msgFromMQ.String()) + log.NewError(msgFromMQ.OperationID, "Message insert failed", "err", err.Error(), "msg", msgFromMQ.String()) return } } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 6cd321d07..c84549f6c 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -281,6 +281,23 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendGroupMsg failed", err.Error()) } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) + case constant.NotificationChatType: + msgToMQ.MsgData = pb.MsgData + log.NewInfo(msgToMQ.OperationID, msgToMQ) + err1 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.RecvID) + if err1 != nil { + log.NewError(msgToMQ.OperationID, "kafka send msg err:RecvID", msgToMQ.MsgData.RecvID, msgToMQ.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + + if msgToMQ.MsgData.SendID != msgToMQ.MsgData.RecvID { //Filter messages sent to yourself + err2 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.SendID) + if err2 != nil { + log.NewError(msgToMQ.OperationID, "kafka send msg err:SendID", msgToMQ.MsgData.SendID, msgToMQ.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + } + return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) default: return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) } From 60418276bd9085959382bfe7149ac91c7d7389c0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 30 Mar 2022 20:04:12 +0800 Subject: [PATCH 07/10] oa notification add --- pkg/common/token_verify/jwt_token.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 28d6cf314..69b112bf7 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -139,7 +139,6 @@ func GetUserIDFromToken(token string, operationID string) (bool, string) { } func ParseToken(tokensString, operationID string) (claims *Claims, err error) { - claims, err = GetClaimFromToken(tokensString) if err != nil { log.NewError(operationID, "token validate err", err.Error(), tokensString) @@ -158,11 +157,12 @@ func ParseToken(tokensString, operationID string) (claims *Claims, err error) { if v, ok := m[tokensString]; ok { switch v { case constant.NormalToken: - log.NewDebug("", "this is normal return", claims) + log.NewDebug(operationID, "this is normal return", claims) return claims, nil case constant.InValidToken: return nil, &constant.ErrTokenInvalid case constant.KickedToken: + log.Error(operationID, "this token has been kicked by other same terminal ", constant.ErrTokenKicked) return nil, &constant.ErrTokenKicked case constant.ExpiredToken: return nil, &constant.ErrTokenExpired @@ -170,6 +170,7 @@ func ParseToken(tokensString, operationID string) (claims *Claims, err error) { return nil, &constant.ErrTokenUnknown } } + log.NewError(operationID, "redis token map not find", constant.ErrTokenUnknown) return nil, &constant.ErrTokenUnknown } From ecd2f0e2bfacc83d667bc8ce23cd9a4664d325b4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 31 Mar 2022 11:15:06 +0800 Subject: [PATCH 08/10] Merge log files --- cmd/Open-IM-SDK-Core | 2 +- cmd/open_im_api/main.go | 3 ++- cmd/open_im_demo/main.go | 3 ++- cmd/open_im_timer_task/main.go | 3 ++- internal/msg_transfer/logic/init.go | 3 ++- internal/push/logic/init.go | 2 +- internal/rpc/admin_cms/admin_cms.go | 8 ++++---- internal/rpc/auth/auth.go | 2 +- internal/rpc/friend/firend.go | 2 +- internal/rpc/group/group.go | 2 +- internal/rpc/message_cms/message_cms.go | 20 ++++++++++---------- internal/rpc/msg/rpcChat.go | 3 ++- internal/rpc/office/office.go | 2 +- internal/rpc/statistics/statistics.go | 8 ++++---- internal/rpc/user/user.go | 2 +- pkg/common/constant/constant.go | 2 ++ pkg/common/log/logrus.go | 8 ++++---- 17 files changed, 41 insertions(+), 34 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 884d0d0b2..7b66c0ab7 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 884d0d0b2712f269db3f7f7fc7309759854dcb03 +Subproject commit 7b66c0ab78be494ce2cfe23de37543dd11c2d354 diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 2f93c97e8..10626a8ef 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -10,6 +10,7 @@ import ( "Open_IM/internal/api/office" apiThird "Open_IM/internal/api/third" "Open_IM/internal/api/user" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "flag" @@ -125,7 +126,7 @@ func main() { officeGroup.POST("/get_send_tag_log", office.GetTagSendLogs) } apiThird.MinioInit() - log.NewPrivateLog("api") + log.NewPrivateLog(constant.LogFileName) ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port") flag.Parse() r.Run(":" + strconv.Itoa(*ginPort)) diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index 430b0faaf..58f5826db 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -2,6 +2,7 @@ package main import ( "Open_IM/internal/demo/register" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "flag" @@ -23,7 +24,7 @@ func main() { authRouterGroup.POST("/login", register.Login) authRouterGroup.POST("/reset_password", register.ResetPassword) } - log.NewPrivateLog("demo") + log.NewPrivateLog(constant.LogFileName) ginPort := flag.Int("port", 42233, "get ginServerPort from cmd,default 42233 as port") flag.Parse() r.Run(":" + strconv.Itoa(*ginPort)) diff --git a/cmd/open_im_timer_task/main.go b/cmd/open_im_timer_task/main.go index 954c41ae6..37265e285 100644 --- a/cmd/open_im_timer_task/main.go +++ b/cmd/open_im_timer_task/main.go @@ -1,6 +1,7 @@ package main import ( + "Open_IM/pkg/common/constant" commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -8,7 +9,7 @@ import ( ) func main() { - log.NewPrivateLog("timer") + log.NewPrivateLog(constant.LogFileName) //for { // fmt.Println("start delete mongodb expired record") // timeUnixBegin := time.Now().Unix() diff --git a/internal/msg_transfer/logic/init.go b/internal/msg_transfer/logic/init.go index cce434d99..e91f7dbe6 100644 --- a/internal/msg_transfer/logic/init.go +++ b/internal/msg_transfer/logic/init.go @@ -2,6 +2,7 @@ package logic import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/kafka" "Open_IM/pkg/common/log" ) @@ -13,7 +14,7 @@ var ( ) func Init() { - log.NewPrivateLog(config.Config.ModuleName.MsgTransferName) + log.NewPrivateLog(constant.LogFileName) persistentCH.Init() historyCH.Init() producer = kafka.NewKafkaProducer(config.Config.Kafka.Ms2pschat.Addr, config.Config.Kafka.Ms2pschat.Topic) diff --git a/internal/push/logic/init.go b/internal/push/logic/init.go index 6f6f061b8..a41f60a6a 100644 --- a/internal/push/logic/init.go +++ b/internal/push/logic/init.go @@ -24,7 +24,7 @@ var ( ) func Init(rpcPort int) { - log.NewPrivateLog(config.Config.ModuleName.PushName) + log.NewPrivateLog(constant.LogFileName) rpcServer.Init(rpcPort) pushCh.Init() pushTerminal = []int32{constant.IOSPlatformID, constant.AndroidPlatformID} diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 8d36f3724..156748bbc 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -24,7 +24,7 @@ type adminCMSServer struct { } func NewAdminCMSServer(port int) *adminCMSServer { - log.NewPrivateLog("AdminCMS") + log.NewPrivateLog(constant.LogFileName) return &adminCMSServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImAdminCMSName, @@ -66,12 +66,12 @@ func (s *adminCMSServer) Run() { func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLoginReq) (*pbAdminCMS.AdminLoginResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbAdminCMS.AdminLoginResp{} - for i, adminID := range config.Config.Manager.AppManagerUid{ + for i, adminID := range config.Config.Manager.AppManagerUid { if adminID == req.AdminID && config.Config.Manager.Secrets[i] == req.Secret { token, expTime, err := token_verify.CreateToken(adminID, constant.SingleChatType) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) return resp, openIMHttp.WrapError(constant.ErrTokenUnknown) } resp.Token = token @@ -84,4 +84,4 @@ func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLogi return resp, openIMHttp.WrapError(constant.ErrTokenMalformed) } return resp, nil -} \ No newline at end of file +} diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index ed6ec4404..1aa0ec50b 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -63,7 +63,7 @@ type rpcAuth struct { } func NewRpcAuthServer(port int) *rpcAuth { - log.NewPrivateLog("auth") + log.NewPrivateLog(constant.LogFileName) return &rpcAuth{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImAuthName, diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index d79f2af33..b570b8106 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -29,7 +29,7 @@ type friendServer struct { } func NewFriendServer(port int) *friendServer { - log.NewPrivateLog("friend") + log.NewPrivateLog(constant.LogFileName) return &friendServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImFriendName, diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 50baff39e..edece9829 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -31,7 +31,7 @@ type groupServer struct { } func NewGroupServer(port int) *groupServer { - log.NewPrivateLog("group") + log.NewPrivateLog(constant.LogFileName) return &groupServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go index d71394668..7f27e007a 100644 --- a/internal/rpc/message_cms/message_cms.go +++ b/internal/rpc/message_cms/message_cms.go @@ -31,7 +31,7 @@ type messageCMSServer struct { } func NewMessageCMSServer(port int) *messageCMSServer { - log.NewPrivateLog("MessageCMS") + log.NewPrivateLog(constant.LogFileName) return &messageCMSServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImMessageCMSName, @@ -84,8 +84,8 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC log.NewError(req.OperationID, utils.GetSelfFuncName(), "time string parse error", err.Error()) } chatLog := db.ChatLog{ - Content: req.Content, - SendTime: time, + Content: req.Content, + SendTime: time, ContentType: req.ContentType, SessionType: req.SessionType, } @@ -101,20 +101,20 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLogCount", err.Error()) } - chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) + chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) return resp, errors.WrapError(constant.ErrDB) } for _, chatLog := range chatLogs { pbChatLog := &pbMessageCMS.ChatLogs{ - SessionType: chatLog.SessionType, - ContentType: chatLog.ContentType, - SearchContent: req.Content, - WholeContent: chatLog.Content, - Date: chatLog.CreateTime.String(), + SessionType: chatLog.SessionType, + ContentType: chatLog.ContentType, + SearchContent: req.Content, + WholeContent: chatLog.Content, + Date: chatLog.CreateTime.String(), SenderNickName: chatLog.SenderNickname, - SenderId: chatLog.SendID, + SenderId: chatLog.SendID, } if chatLog.SenderNickname == "" { sendUser, err := imdb.GetUserByUserID(chatLog.SendID) diff --git a/internal/rpc/msg/rpcChat.go b/internal/rpc/msg/rpcChat.go index 43113ae51..c0f723a91 100644 --- a/internal/rpc/msg/rpcChat.go +++ b/internal/rpc/msg/rpcChat.go @@ -2,6 +2,7 @@ package msg import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/kafka" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -22,7 +23,7 @@ type rpcChat struct { } func NewRpcChatServer(port int) *rpcChat { - log.NewPrivateLog("msg") + log.NewPrivateLog(constant.LogFileName) rc := rpcChat{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImOfflineMessageName, diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index e96475773..914990673 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -26,7 +26,7 @@ type officeServer struct { } func NewOfficeServer(port int) *officeServer { - log.NewPrivateLog("office") + log.NewPrivateLog(constant.LogFileName) return &officeServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImOfficeName, diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go index e8b1383f9..cda164332 100644 --- a/internal/rpc/statistics/statistics.go +++ b/internal/rpc/statistics/statistics.go @@ -19,10 +19,10 @@ import ( //open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" //"context" + errors "Open_IM/pkg/common/http" "net" "strconv" "strings" - errors "Open_IM/pkg/common/http" "google.golang.org/grpc" ) @@ -35,7 +35,7 @@ type statisticsServer struct { } func NewStatisticsServer(port int) *statisticsServer { - log.NewPrivateLog("Statistics") + log.NewPrivateLog(constant.LogFileName) return &statisticsServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImStatisticsName, @@ -164,7 +164,7 @@ func GetRangeDate(from, to time.Time) [][2]time.Time { } // month case !isInOneMonth(from, to): - if to.Sub(from) < time.Hour * 24 * 30 { + if to.Sub(from) < time.Hour*24*30 { for i := 0; ; i++ { fromTime := from.Add(time.Hour * 24 * time.Duration(i)) toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) @@ -251,7 +251,7 @@ func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatisti log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) } resp.TotalGroupNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), + Date: v[0].String(), Num: num, } }(wg, i, v) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index cbeb9240b..299fca101 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -32,7 +32,7 @@ type userServer struct { } func NewUserServer(port int) *userServer { - log.NewPrivateLog("user") + log.NewPrivateLog(constant.LogFileName) return &userServer{ rpcPort: port, rpcRegisterName: config.Config.RpcRegisterName.OpenImUserName, diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index a38076e7b..0fdf9dbec 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -230,3 +230,5 @@ func GroupIsBanPrivateChat(status int32) bool { } const BigVersion = "v3" + +const LogFileName = "OpenIM.log" diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index a5e0ae7dd..caf4c9126 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -63,10 +63,10 @@ func loggerInit(moduleName string) *Logger { } func NewLfsHook(rotationTime time.Duration, maxRemainNum uint, moduleName string) logrus.Hook { lfsHook := lfshook.NewHook(lfshook.WriterMap{ - logrus.DebugLevel: initRotateLogs(rotationTime, maxRemainNum, "debug", moduleName), - logrus.InfoLevel: initRotateLogs(rotationTime, maxRemainNum, "info", moduleName), - logrus.WarnLevel: initRotateLogs(rotationTime, maxRemainNum, "warn", moduleName), - logrus.ErrorLevel: initRotateLogs(rotationTime, maxRemainNum, "error", moduleName), + logrus.DebugLevel: initRotateLogs(rotationTime, maxRemainNum, "all", moduleName), + logrus.InfoLevel: initRotateLogs(rotationTime, maxRemainNum, "all", moduleName), + logrus.WarnLevel: initRotateLogs(rotationTime, maxRemainNum, "all", moduleName), + logrus.ErrorLevel: initRotateLogs(rotationTime, maxRemainNum, "all", moduleName), }, &nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", HideKeys: false, From 9fbfbfb23bf54bfc966c5c63acfc2789d2d4e433 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 31 Mar 2022 11:28:51 +0800 Subject: [PATCH 09/10] Merge log files --- internal/msg_gateway/gate/init.go | 3 ++- pkg/common/db/model.go | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/msg_gateway/gate/init.go b/internal/msg_gateway/gate/init.go index b827f9928..e62338d14 100644 --- a/internal/msg_gateway/gate/init.go +++ b/internal/msg_gateway/gate/init.go @@ -2,6 +2,7 @@ package gate import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/statistics" "fmt" @@ -20,7 +21,7 @@ var ( func Init(rpcPort, wsPort int) { //log initialization - log.NewPrivateLog(config.Config.ModuleName.LongConnSvrName) + log.NewPrivateLog(constant.LogFileName) rwLock = new(sync.RWMutex) validate = validator.New() statistics.NewStatistics(&sendMsgCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway sendMsgCount", sendMsgCount), 300) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 812783e03..21dae1667 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -2,6 +2,7 @@ package db import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "fmt" @@ -33,6 +34,7 @@ func key(dbAddress, dbName string) string { } func init() { + log.NewPrivateLog(constant.LogFileName) //var mgoSession *mgo.Session var mongoClient *mongo.Client var err1 error @@ -51,7 +53,7 @@ func init() { } mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - if err != nil{ + if err != nil { log.NewError(" mongo.Connect failed, try ", utils.GetSelfFuncName(), err.Error(), uri) time.Sleep(time.Duration(30) * time.Second) mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) From 5639c985df026989282137c5439e5a6021322dc6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 31 Mar 2022 11:43:14 +0800 Subject: [PATCH 10/10] OA tag fields modify --- internal/api/manage/management_chat.go | 10 +++++----- internal/rpc/office/office.go | 8 ++++---- pkg/common/db/mongoModel.go | 2 +- pkg/utils/utils.go | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index f2b7fe11f..0b1d0aada 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -289,16 +289,16 @@ type OANotificationElem struct { Url string `mapstructure:"url"` MixType int32 `mapstructure:"mixType"` Image struct { - SourceUrl string `mapstructure:"sourceUrl"` - SnapshotUrl string `mapstructure:"snapshotUrl"` + SourceUrl string `mapstructure:"sourceURL"` + SnapshotUrl string `mapstructure:"snapshotURL"` } `mapstructure:"image"` Video struct { - SourceUrl string `mapstructure:"sourceUrl"` - SnapshotUrl string `mapstructure:"snapshotUrl"` + SourceUrl string `mapstructure:"sourceURL"` + SnapshotUrl string `mapstructure:"snapshotURL"` Duration int64 `mapstructure:"duration"` } `mapstructure:"video"` File struct { - SourceUrl string `mapstructure:"sourceUrl"` + SourceUrl string `mapstructure:"sourceURL"` FileName string `mapstructure:"fileName"` FileSize int64 `mapstructure:"fileSize"` } `mapstructure:"file"` diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go index e96475773..a6bcb1a97 100644 --- a/internal/rpc/office/office.go +++ b/internal/rpc/office/office.go @@ -103,7 +103,7 @@ func (s *officeServer) GetUserTags(_ context.Context, req *pbOffice.GetUserTagsR func (s *officeServer) CreateTag(_ context.Context, req *pbOffice.CreateTagReq) (resp *pbOffice.CreateTagResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "CreateTag req", req.String()) - userIDList := utils.RemoveUserIDRepByMap(req.UserIDList) + userIDList := utils.RemoveRepeatedStringInList(req.UserIDList) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "userIDList: ", userIDList) resp = &pbOffice.CreateTagResp{CommonResp: &pbOffice.CommonResp{}} if err := db.DB.CreateTag(req.UserID, req.TagName, userIDList); err != nil { @@ -132,8 +132,8 @@ func (s *officeServer) DeleteTag(_ context.Context, req *pbOffice.DeleteTagReq) func (s *officeServer) SetTag(_ context.Context, req *pbOffice.SetTagReq) (resp *pbOffice.SetTagResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp = &pbOffice.SetTagResp{CommonResp: &pbOffice.CommonResp{}} - IncreaseUserIDList := utils.RemoveUserIDRepByMap(req.IncreaseUserIDList) - reduceUserIDList := utils.RemoveUserIDRepByMap(req.ReduceUserIDList) + IncreaseUserIDList := utils.RemoveRepeatedStringInList(req.IncreaseUserIDList) + reduceUserIDList := utils.RemoveRepeatedStringInList(req.ReduceUserIDList) if err := db.DB.SetTag(req.UserID, req.TagID, req.NewName, IncreaseUserIDList, reduceUserIDList); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetTag failed", err.Error()) resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg @@ -171,7 +171,7 @@ func (s *officeServer) SendMsg2Tag(_ context.Context, req *pbOffice.SendMsg2TagR userIDList = append(userIDList, tagUserIDList...) userIDList = append(userIDList, groupUserIDList...) userIDList = append(userIDList, req.UserList...) - userIDList = utils.RemoveUserIDRepByMap(userIDList) + userIDList = utils.RemoveRepeatedStringInList(userIDList) for i, userID := range userIDList { if userID == req.SendID || userID == "" { userIDList = append(userIDList[:i], userIDList[i+1:]...) diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index bcc05a295..55324d0f1 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -491,7 +491,7 @@ func (d *DataBases) SetTag(userID, tagID, newName string, increaseUserIDList []s } } tag.UserList = append(tag.UserList, increaseUserIDList...) - tag.UserList = utils.RemoveUserIDRepByMap(tag.UserList) + tag.UserList = utils.RemoveRepeatedStringInList(tag.UserList) for _, v := range reduceUserIDList { for i2, v2 := range tag.UserList { if v == v2 { diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index f0e34aa90..d23b1633a 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -77,7 +77,7 @@ func OperationIDGenerator() string { return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) } -func RemoveUserIDRepByMap(slc []string) []string { +func RemoveRepeatedStringInList(slc []string) []string { var result []string tempMap := map[string]byte{} for _, e := range slc {