提交 29e1535c 编写于 作者: programor_guo's avatar programor_guo

Merge remote-tracking branch 'origin/tuoyun' into tuoyun

# Conflicts:
#	cmd/open_im_api/main.go
......@@ -10,7 +10,10 @@ import (
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils"
"context"
"encoding/json"
"github.com/gin-gonic/gin"
"github.com/golang/protobuf/jsonpb"
"github.com/golang/protobuf/proto"
"net/http"
"strings"
)
......@@ -127,21 +130,12 @@ func GetGroupMemberList(c *gin.Context) {
if len(memberListResp.MemberList) == 0 {
memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{}
}
/*
jsm := &jsonpb.Marshaler{
OrigName: true,
EnumsAsInts: false,
EmitDefaults: true,
}
var b bytes.Buffer
err = jsm.MarshalToString(memberListResp.MemberList[0])
*/
log.NewInfo(req.OperationID, "GetGroupMemberList api return ", memberListResp)
c.JSON(http.StatusOK, memberListResp)
}
func GetGroupAllMember(c *gin.Context) {
func GetGroupAllMemberList(c *gin.Context) {
params := api.GetGroupAllMemberReq{}
if err := c.BindJSON(&params); err != nil {
log.NewError("0", "BindJSON failed ", err.Error())
......@@ -172,10 +166,47 @@ func GetGroupAllMember(c *gin.Context) {
if len(memberListResp.MemberList) == 0 {
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)
//{"GroupID":"7836e478bc43ce1d3b8889cac983f59b","UserID":"openIM001","roleLevel":1,"JoinTime":"0","NickName":"","FaceUrl":"https://oss.com.cn/head","AppMangerLevel":0,"JoinSource":0,"OperatorUserID":"","Ex":"xxx"}
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)
}
}
log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp)
c.JSON(http.StatusOK, memberListResp)
}
func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} {
marshaler := jsonpb.Marshaler{
OrigName: true,
EnumsAsInts: false,
EmitDefaults: true,
}
s, _ := marshaler.MarshalToString(pb)
out := make(map[string]interface{})
json.Unmarshal([]byte(s), &out)
if idFix {
if _, ok := out["id"]; ok {
out["_id"] = out["id"]
delete(out, "id")
}
}
return out
}
func GetJoinedGroupList(c *gin.Context) {
params := api.GetJoinedGroupListReq{}
if err := c.BindJSON(&params); err != nil {
......
......@@ -64,12 +64,13 @@ type GetGroupMemberListResp struct {
}
type GetGroupAllMemberReq struct {
GroupID string `json:"groupID"`
OperationID string `json:"operationID"`
GroupID string `json:"groupID" binding:"required"`
OperationID string `json:"operationID" binding:"required"`
}
type GetGroupAllMemberResp struct {
CommResp
MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"`
Test []map[string]interface{} `json:"data2"`
}
type CreateGroupReq struct {
......
此差异已折叠。
......@@ -26,7 +26,7 @@ message GroupMemberFullInfo {
string UserID = 2 ;
int32 roleLevel = 3;
int64 JoinTime = 4;
string NickName = 5;
string Nickname = 5;
string FaceUrl = 6;
int32 AppMangerLevel = 7; //if >0
int32 JoinSource = 8;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册