From ca92bc899bba63844c1c0ff1470e55e39aabcd14 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 21:26:56 +0800 Subject: [PATCH 01/11] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/api/group/group.go | 2 +- pkg/base_info/group_api_struct.go | 3 ++- .../db/mysql_model/im_mysql_model/model_struct.go | 14 ++++++++------ 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 7134127a1..259978c56 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -47,7 +47,7 @@ func main() { //group related routing group groupRouterGroup := r.Group("/group") { - groupRouterGroup.POST("/create_group", group.CreateGroup) + groupRouterGroup.POST("/create_group", group.CreateGroup) //1 groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) groupRouterGroup.POST("join_group", group.JoinGroup) groupRouterGroup.POST("/quit_group", group.QuitGroup) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 688686112..0c90d00c5 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -443,7 +443,7 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} + resp := api.SetGroupInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "SetGroupInfo api return ", resp) } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index bcc657e43..b232f389c 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -1,6 +1,7 @@ package base_info import ( + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) @@ -135,7 +136,7 @@ type QuitGroupResp struct { } type SetGroupInfoReq struct { - open_im_sdk.GroupInfo + imdb.Group OperationID string `json:"operationID" binding:"required"` } type SetGroupInfoResp struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index e53b02222..8c228cae0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -63,17 +63,19 @@ type FriendRequest struct { //} // open_im_sdk.GroupInfo (OwnerUserID , MemberCount )> imdb.Group type Group struct { - GroupID string `gorm:"column:group_id;primaryKey;"` - GroupName string `gorm:"column:name"` - Notification string `gorm:"column:notification"` - Introduction string `gorm:"column:introduction"` - FaceUrl string `gorm:"column:face_url"` + //`json:"operationID" binding:"required"` + //`protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` `json:"operationID" binding:"required"` + GroupID string `gorm:"column:group_id;primaryKey;" json:"groupID" binding:"required"` + GroupName string `gorm:"column:name" json:"groupName"` + Notification string `gorm:"column:notification" json:"notification"` + Introduction string `gorm:"column:introduction" json:"introduction"` + FaceUrl string `gorm:"column:face_url" json:"faceUrl"` CreateTime time.Time `gorm:"column:create_time"` Status int32 `gorm:"column:status"` CreatorUserID string `gorm:"column:creator_user_id"` GroupType int32 `gorm:"column:group_type"` - Ex string `gorm:"column:ex"` + Ex string `gorm:"column:ex" json:"ex"` } //message GroupMemberFullInfo { From 51126ca941e5c0305c66aef3da59ee4489c0c173 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 21:47:56 +0800 Subject: [PATCH 02/11] Refactor code --- internal/api/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 0c90d00c5..c13662651 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -394,7 +394,7 @@ func QuitGroup(c *gin.Context) { return } req := &rpc.QuitGroupReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -425,7 +425,7 @@ func SetGroupInfo(c *gin.Context) { return } req := &rpc.SetGroupInfoReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms.Group) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From be4ba6cc69c2952efa8dafd4afb308246934df79 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 21:50:11 +0800 Subject: [PATCH 03/11] Refactor code --- internal/api/group/group.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c13662651..acdd83e9c 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -424,8 +425,9 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.SetGroupInfoReq{} - utils.CopyStructFields(req, ¶ms.Group) + req := &rpc.SetGroupInfoReq{GroupInfo: &open_im_sdk.GroupInfo{}} + utils.CopyStructFields(req.GroupInfo, ¶ms.Group) + req.OperationID = params.OperationID var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From e39312828cd7802df326f8b23f8ce45278a32d08 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 22:00:18 +0800 Subject: [PATCH 04/11] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 70be7a2bc..94581eb0f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -79,7 +79,7 @@ func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*GroupMember, return nil, err } var groupMember GroupMember - err = dbConn.Table("group_member").Where("group_id=? and user_id=? limit 1", groupID, userID).Find(&groupMember).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Find(&groupMember).Error if err != nil { return nil, err } From 28ef79f37110b42b17d9f9ba21c3da337bf36885 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 22:06:27 +0800 Subject: [PATCH 05/11] Refactor code --- internal/rpc/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index f759bc903..6ece62592 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -513,7 +513,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { return false } - if groupUserInfo.RoleLevel == constant.GroupAdmin { + if groupUserInfo.RoleLevel == constant.GroupOwner || groupUserInfo.RoleLevel == constant.GroupAdmin { return true } return false @@ -522,7 +522,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) { log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) if !hasAccess(req) { - log.NewError(req.OperationID, "no access ") + log.NewError(req.OperationID, "no access ", req) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } From 8b7e62e81933fb4cce336bca7d3b55271aee43b9 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:10:31 +0800 Subject: [PATCH 06/11] Refactor code --- internal/rpc/group/group.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6ece62592..32b7f83d8 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -551,13 +551,14 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf utils.CopyStructFields(&groupInfo, req.GroupInfo) err = imdb.SetGroupInfo(groupInfo) if err != nil { + log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } if changedType != 0 { chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, changedType) } - log.NewInfo("SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) + log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}, nil } From f93090596a32275829fe05abcd07aa6e3259fdc0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:11:38 +0800 Subject: [PATCH 07/11] Refactor code --- 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 32b7f83d8..4bb29db9c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -552,7 +552,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf err = imdb.SetGroupInfo(groupInfo) if err != nil { log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } if changedType != 0 { From d7dbe986f1f40c472b5827ebe57421dc9a504ec7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:17:49 +0800 Subject: [PATCH 08/11] Refactor code --- 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 cc53a8036..12c809c28 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 @@ -52,6 +52,6 @@ func SetGroupInfo(groupInfo Group) error { if err != nil { return err } - err = dbConn.Table("friend_request").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error + err = dbConn.Table("group").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } From f2c0a3994aab88757f8009189ebbb7699ec30b3f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:23:18 +0800 Subject: [PATCH 09/11] Refactor code --- cmd/open_im_api/main.go | 4 ++-- internal/api/group/group.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 259978c56..6768191a8 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -47,8 +47,8 @@ func main() { //group related routing group groupRouterGroup := r.Group("/group") { - groupRouterGroup.POST("/create_group", group.CreateGroup) //1 - groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) + groupRouterGroup.POST("/create_group", group.CreateGroup) //1 + groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 groupRouterGroup.POST("join_group", group.JoinGroup) groupRouterGroup.POST("/quit_group", group.QuitGroup) groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index acdd83e9c..93e20839b 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -383,8 +383,8 @@ func JoinGroup(c *gin.Context) { return } resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} + log.NewInfo(req.OperationID, "JoinGroup api return", RpcResp.String()) c.JSON(http.StatusOK, resp) - log.NewInfo("JoinGroup api return", RpcResp.String()) } func QuitGroup(c *gin.Context) { From ac3159193fe9ea230d300abee8de9e9e3dfc63ac Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:26:40 +0800 Subject: [PATCH 10/11] Refactor code --- internal/api/group/group.go | 2 +- internal/rpc/group/group.go | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 93e20839b..8905b641d 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -414,8 +414,8 @@ func QuitGroup(c *gin.Context) { return } resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} + log.NewInfo(req.OperationID, "QuitGroup api return", RpcResp.String()) c.JSON(http.StatusOK, resp) - log.NewInfo("QuitGroup api return", RpcResp.String()) } func SetGroupInfo(c *gin.Context) { diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 4bb29db9c..615e69efa 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -478,11 +478,10 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) } func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.QuitGroupResp, error) { - log.NewError("QuitGroup args ", req.String()) - + log.NewError(req.OperationID, "QuitGroup args ", req.String()) _, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.OpUserID) if err != nil { - log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed", err.Error(), req.GroupID, req.OpUserID) + log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed ", err.Error(), req.GroupID, req.OpUserID) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } @@ -499,7 +498,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } chat.MemberLeaveNotification(req) - log.NewInfo(req.OperationID, "rpc QuitGroup return ") + log.NewInfo(req.OperationID, "rpc QuitGroup return ", pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } From 2725a1cd8d367a07b5cf48b4a28caca8a551c912 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:30:46 +0800 Subject: [PATCH 11/11] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 94581eb0f..0c25a7003 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -91,7 +91,7 @@ func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_member").Where("group_id=? and user_id=? limit 1", groupID, userID).Delete(&GroupMember{}).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Delete(&GroupMember{}).Error if err != nil { return err }