From c8d803b559ff0d434d75dd8390b9092cfe3caef5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 08:49:05 +0800 Subject: [PATCH] Refactor code --- internal/api/group/group.go | 17 ----------------- internal/utils/utils.go | 14 ++++++++++++-- pkg/base_info/group_api_struct.go | 3 ++- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 541ffa873..d72d1c08f 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -168,23 +168,6 @@ func GetGroupAllMemberList(c *gin.Context) { memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} } - //jsm := &jsonpb.Marshaler{ - // OrigName: true, - // EnumsAsInts: false, - // EmitDefaults: true, - //} - // - //if len(memberListResp.MemberList) > 0 { - // for _, v := range memberListResp.MemberList { - // s, err := jsm.MarshalToString(v) - // log.NewDebug(req.OperationID, "MarshalToString ", s, err) - // m := ProtoToMap(memberListResp.MemberList[0], false) - // log.NewDebug(req.OperationID, "mmm ", m) - // memberListResp.Test = append(memberListResp.Test, m) - // } - // - //} - memberListResp.Test = jsonData.JsonDataList(memberListResp.MemberList) log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) diff --git a/internal/utils/utils.go b/internal/utils/utils.go index cc25645ed..8656534ee 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -4,11 +4,21 @@ import ( "encoding/json" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" + "reflect" ) -func JsonDataList(resp ...interface{}) []map[string]interface{} { +func JsonDataList(resp interface{}) []map[string]interface{} { + var list []proto.Message + if reflect.TypeOf(resp).Kind() == reflect.Slice { + s := reflect.ValueOf(resp) + for i := 0; i < s.Len(); i++ { + ele := s.Index(i) + list = append(list, ele.Interface().(proto.Message)) + } + } + result := make([]map[string]interface{}, 0) - for _, v := range resp[0].([]proto.Message) { + for _, v := range list { m := ProtoToMap(v, false) result = append(result, m) } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index e11bd1f8f..d3c6d09b6 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -70,7 +70,8 @@ type GetGroupAllMemberReq struct { type GetGroupAllMemberResp struct { CommResp MemberList []*open_im_sdk.GroupMemberFullInfo - Test []map[string]interface{} `json:"data"` + + Test []map[string]interface{} `json:"data"` } type CreateGroupReq struct {