diff --git a/config/config.yaml b/config/config.yaml index d39c62b3c..b7bf188a6 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -175,6 +175,7 @@ tokenpolicy: accessExpire: 7 messagecallback: + callbackSwitch: false callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index f09b9acd7..8ff3e5906 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -7,12 +7,14 @@ package manage import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" @@ -40,11 +42,13 @@ func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { newContent = utils.StructToJsonString(params.Content) default: } - options := make(map[string]bool, 2) + var options map[string]bool if params.IsOnlineOnly { + options = make(map[string]bool, 5) utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) utils.SetSwitchFromOptions(options, constant.IsHistory, false) utils.SetSwitchFromOptions(options, constant.IsPersistent, false) + utils.SetSwitchFromOptions(options, constant.IsSenderSync, false) } pbData := pbChat.SendMsgReq{ OperationID: params.OperationID, @@ -152,20 +156,16 @@ func ManagementSendMsg(c *gin.Context) { log.Info("", "", "api ManagementSendMsg call, api call rpc...") - reply, err := client.SendMsg(context.Background(), pbData) + RpcResp, err := client.SendMsg(context.Background(), pbData) if err != nil { log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) return } - log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "sendTime": reply.SendTime, - "msgID": reply.ClientMsgID, - }) + log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), RpcResp.String()) + resp := api.ManagementSendMsgResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, ResultList: server_api_params.UserSendMsgResp{ServerMsgID: RpcResp.ServerMsgID, ClientMsgID: RpcResp.ClientMsgID, SendTime: RpcResp.SendTime}} + log.Info(params.OperationID, "ManagementSendMsg return", resp) + c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 61e2bbba4..4b2061b57 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -2,6 +2,7 @@ package base_info import ( pbRelay "Open_IM/pkg/proto/relay" + "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" ) @@ -36,3 +37,8 @@ type AccountCheckResp struct { CommResp ResultList []*pbUser.AccountCheckResp_SingleUserStatus `json:"data"` } + +type ManagementSendMsgResp struct { + CommResp + ResultList server_api_params.UserSendMsgResp `json:"data"` +} diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index f4be785f2..10f20376c 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -10,8 +10,8 @@ type GetUsersInfoReq struct { } type GetUsersInfoResp struct { CommResp - UserInfoList []*open_im_sdk.PublicUserInfo - Data []map[string]interface{} `json:"data"` + UserInfoList []*open_im_sdk.PublicUserInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type UpdateSelfUserInfoReq struct {