From 2936f886a974538b4ba57f438b2dc64e61287855 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:35:09 +0800 Subject: [PATCH 1/8] Refactor code --- cmd/open_im_api/main.go | 4 ++-- internal/api/group/group.go | 11 +++++++---- pkg/base_info/group_api_struct.go | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index fd703657f..ea550d174 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -49,8 +49,8 @@ func main() { { 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) //1 + groupRouterGroup.POST("join_group", group.JoinGroup) //1 + groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 8905b641d..87378cde6 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -258,7 +258,7 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusOK, resp) } -//my application 我发出去的 +// 群主或管理员收到的 func GetGroupApplicationList(c *gin.Context) { params := api.GetGroupApplicationListReq{} if err := c.BindJSON(¶ms); err != nil { @@ -279,16 +279,19 @@ func GetGroupApplicationList(c *gin.Context) { etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := rpc.NewGroupClient(etcdConn) - reply, err := client.GetGroupApplicationList(context.Background(), req) if err != nil { + log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg}, Data: reply.GroupRequestList} - c.JSON(http.StatusOK, resp) + resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg}, GroupRequestList: reply.GroupRequestList} + if len(resp.GroupRequestList) == 0 { + resp.GroupRequestList = []*open_im_sdk.GroupRequest{} + } log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp) + c.JSON(http.StatusOK, resp) } func GetGroupsInfo(c *gin.Context) { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index b232f389c..243dc4e2b 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -91,11 +91,11 @@ type CreateGroupResp struct { type GetGroupApplicationListReq struct { OperationID string `json:"operationID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` //my application + FromUserID string `json:"fromUserID" binding:"required"` //作为管理员或群主收到的 进群申请 } type GetGroupApplicationListResp struct { CommResp - Data []*open_im_sdk.GroupRequest `json:"data"` + GroupRequestList []*open_im_sdk.GroupRequest `json:"data"` } type GetGroupInfoReq struct { From 42c898d5aaa613fcccd07451744fd1c09dd4d281 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:36:37 +0800 Subject: [PATCH 2/8] Refactor code --- internal/rpc/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index a58e6728a..891b9efe0 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -400,6 +400,7 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge for _, v := range reply { var node open_im_sdk.GroupRequest utils.CopyStructFields(&node, v) + log.NewDebug(req.OperationID, "node ", node, "v ", v) } log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) return &resp, nil From 6692867db5053fff59e5b7e23adec1095ee8cc7a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:49:09 +0800 Subject: [PATCH 3/8] Refactor code --- internal/rpc/group/group.go | 4 ++-- .../db/mysql_model/im_mysql_model/group_request_model.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 891b9efe0..7522b4f41 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -390,9 +390,9 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) - reply, err := im_mysql_model.GetGroupApplicationList(req.OpUserID) + reply, err := im_mysql_model.GetGroupApplicationList(req.FromUserID) if err != nil { - log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.OpUserID) + log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.FromUserID) return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index e90c2cdd5..8073c1cff 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "fmt" "time" ) @@ -104,9 +105,12 @@ func GetGroupApplicationList(userID string) ([]GroupRequest, error) { if v.RoleLevel > constant.GroupOrdinaryUsers { list, err := GetGroupRequestByGroupID(v.GroupID) if err != nil { + fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error()) continue } + fmt.Println("222 GetGroupRequestByGroupID ok ", list) groupRequestList = append(groupRequestList, list...) + fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList) } } return groupRequestList, nil From 88aaa38676a8fa04a2020311a04d5e64dc2e6db1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:56:17 +0800 Subject: [PATCH 4/8] Refactor code --- internal/rpc/group/group.go | 4 +++- .../db/mysql_model/im_mysql_model/group_request_model.go | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7522b4f41..fa2972286 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -9,6 +9,7 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" + cp "Open_IM/pkg/common/utils" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" @@ -396,10 +397,11 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil } + log.NewDebug(req.OperationID, "GetGroupApplicationList reply ", reply) resp := pbGroup.GetGroupApplicationListResp{} for _, v := range reply { var node open_im_sdk.GroupRequest - utils.CopyStructFields(&node, v) + cp.GroupRequestDBCopyOpenIM(&node, &v) log.NewDebug(req.OperationID, "node ", node, "v ", v) } log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 8073c1cff..65268ae6a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -105,12 +105,12 @@ func GetGroupApplicationList(userID string) ([]GroupRequest, error) { if v.RoleLevel > constant.GroupOrdinaryUsers { list, err := GetGroupRequestByGroupID(v.GroupID) if err != nil { - fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error()) + // fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error()) continue } - fmt.Println("222 GetGroupRequestByGroupID ok ", list) + // fmt.Println("222 GetGroupRequestByGroupID ok ", list) groupRequestList = append(groupRequestList, list...) - fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList) + // fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList) } } return groupRequestList, nil From e8ffcb0630823afb0558aa35ea093c63bad43ca7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:59:25 +0800 Subject: [PATCH 5/8] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_request_model.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 65268ae6a..5c7d3000b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -4,7 +4,6 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" - "fmt" "time" ) From 9f5897e06c9308a92bd5939a55acdac483eaa623 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:04:53 +0800 Subject: [PATCH 6/8] Refactor code --- internal/api/group/group.go | 9 ++++++--- pkg/base_info/group_api_struct.go | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 87378cde6..9401304cb 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -302,7 +302,7 @@ func GetGroupsInfo(c *gin.Context) { return } req := &rpc.GetGroupsInfoReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -321,9 +321,12 @@ func GetGroupsInfo(c *gin.Context) { return } - resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} - c.JSON(http.StatusOK, resp) + resp := api.GetGroupInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, GroupInfoList: RpcResp.GroupInfoList} + if len(resp.GroupInfoList) == 0 { + resp.GroupInfoList = []*open_im_sdk.GroupInfo{} + } log.NewInfo(req.OperationID, "GetGroupsInfo api return ", resp) + c.JSON(http.StatusOK, resp) } //process application diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 243dc4e2b..e502ee10d 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -104,7 +104,7 @@ type GetGroupInfoReq struct { } type GetGroupInfoResp struct { CommResp - Data []open_im_sdk.GroupInfo `json:"data"` + GroupInfoList []*open_im_sdk.GroupInfo `json:"data"` } type ApplicationGroupResponseReq struct { From b32567681ff53c2245839b74b347354691d80715 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:07:12 +0800 Subject: [PATCH 7/8] Refactor code --- internal/rpc/group/group.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fa2972286..e281a8541 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -418,8 +418,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI continue } var groupInfo open_im_sdk.GroupInfo - utils.CopyStructFields(&groupInfo, groupInfoFromMysql) - groupInfo.CreateTime = groupInfoFromMysql.CreateTime.Unix() + cp.GroupDBCopyOpenIM(&groupInfo, groupInfoFromMysql) groupsInfoList = append(groupsInfoList, &groupInfo) } From e90be1bb88886c0bcf74e1a7d68569a158718d19 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:13:19 +0800 Subject: [PATCH 8/8] Refactor code --- internal/rpc/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e281a8541..7a7dd5cf1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -403,6 +403,7 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge var node open_im_sdk.GroupRequest cp.GroupRequestDBCopyOpenIM(&node, &v) log.NewDebug(req.OperationID, "node ", node, "v ", v) + resp.GroupRequestList = append(resp.GroupRequestList, &node) } log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) return &resp, nil