mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
conversation update
This commit is contained in:
parent
23c5f4040e
commit
6a37072b9a
@ -94,7 +94,7 @@ func main() {
|
|||||||
conversationGroup := r.Group("/conversation")
|
conversationGroup := r.Group("/conversation")
|
||||||
{
|
{
|
||||||
conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt)
|
conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt)
|
||||||
// conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt)
|
conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt)
|
||||||
conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt)
|
conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,192 +1,106 @@
|
|||||||
package conversation
|
package conversation
|
||||||
|
|
||||||
import "github.com/gin-gonic/gin"
|
import (
|
||||||
|
api "Open_IM/pkg/base_info"
|
||||||
//
|
"Open_IM/pkg/common/config"
|
||||||
//type paramsSetReceiveMessageOpt struct {
|
"Open_IM/pkg/common/log"
|
||||||
// OperationID string `json:"operationID" binding:"required"`
|
"Open_IM/pkg/common/token_verify"
|
||||||
// Option *int32 `json:"option" binding:"required"`
|
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
||||||
// ConversationIdList []string `json:"conversationIdList" binding:"required"`
|
"Open_IM/pkg/proto/user"
|
||||||
//}
|
rpc "Open_IM/pkg/proto/user"
|
||||||
//
|
"Open_IM/pkg/utils"
|
||||||
//type OptResult struct {
|
"context"
|
||||||
// ConversationId string `json:"conversationId" binding:"required"`
|
"github.com/gin-gonic/gin"
|
||||||
// Result int32 `json:"result" binding:"required"`
|
"net/http"
|
||||||
//}
|
"strings"
|
||||||
//
|
)
|
||||||
//type SetReceiveMessageOptResp struct {
|
|
||||||
// ErrCode int32 `json:"errCode"`
|
|
||||||
// ErrMsg string `json:"errMsg"`
|
|
||||||
// Data []OptResult `json:"data"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type paramGetReceiveMessageOpt struct {
|
|
||||||
// ConversationIdList []string `json:"conversationIdList" binding:"required"`
|
|
||||||
// OperationID string `json:"operationID" binding:"required"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type GetReceiveMessageOptResp struct {
|
|
||||||
// SetReceiveMessageOptResp
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type paramGetAllConversationMessageOpt struct {
|
|
||||||
// OperationID string `json:"operationID" binding:"required"`
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//type GetAllConversationMessageOptResp struct {
|
|
||||||
// SetReceiveMessageOptResp
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
////CopyStructFields
|
|
||||||
|
|
||||||
func GetAllConversationMessageOpt(c *gin.Context) {
|
func GetAllConversationMessageOpt(c *gin.Context) {
|
||||||
|
params := api.GetAllConversationMessageOptReq{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &rpc.GetAllConversationMsgOptReq{}
|
||||||
|
utils.CopyStructFields(req, ¶ms)
|
||||||
|
var ok bool
|
||||||
|
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(params.OperationID, "GetAllConversationMessageOpt args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
||||||
|
client := user.NewUserClient(etcdConn)
|
||||||
|
RpcResp, err := client.GetAllConversationMsgOpt(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
|
||||||
|
resp.ConversationOptResultList = RpcResp.ConversationOptResultList
|
||||||
|
log.NewInfo(req.OperationID, "GetAllConversationMsgOpt api return: ", resp)
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetReceiveMessageOpt(c *gin.Context) {
|
||||||
|
params := api.GetReceiveMessageOptReq{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &rpc.GetReceiveMessageOptReq{}
|
||||||
|
utils.CopyStructFields(req, ¶ms)
|
||||||
|
var ok bool
|
||||||
|
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(params.OperationID, "GetReceiveMessageOpt args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
||||||
|
client := user.NewUserClient(etcdConn)
|
||||||
|
RpcResp, err := client.GetReceiveMessageOpt(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
|
||||||
|
resp.ConversationOptResultList = RpcResp.ConversationOptResultList
|
||||||
|
log.NewInfo(req.OperationID, "GetReceiveMessageOpt api return: ", resp)
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
//func GetAllConversationMessageOpt(c *gin.Context) {
|
|
||||||
// params := paramGetAllConversationMessageOpt{}
|
|
||||||
// if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
// log.NewError(params.OperationID, "bind json failed ", err.Error(), c)
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// claims, err := token_verify.ParseToken(c.Request.Header.Get("token"))
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token"))
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// req := &user.GetAllConversationMsgOptReq{
|
|
||||||
// UId: claims.UID,
|
|
||||||
// OperationID: params.OperationID,
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "GetAllConversationMsgOpt req: ", req)
|
|
||||||
// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
|
||||||
// client := user.NewUserClient(etcdConn)
|
|
||||||
// resp, err := client.GetAllConversationMsgOpt(context.Background(), req)
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error())
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// var ginResp GetAllConversationMessageOptResp
|
|
||||||
// ginResp.ErrCode = resp.ErrCode
|
|
||||||
// ginResp.ErrMsg = resp.ErrMsg
|
|
||||||
// for _, v := range resp.ConversationOptResult {
|
|
||||||
// var opt OptResult
|
|
||||||
// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result")
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error())
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
// ginResp.Data = append(ginResp.Data, opt)
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "GetAllConversationMsgOpt resp: ", ginResp, req)
|
|
||||||
// c.JSON(http.StatusOK, ginResp)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//func GetReceiveMessageOpt(c *gin.Context) {
|
|
||||||
// params := paramGetReceiveMessageOpt{}
|
|
||||||
// if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
// log.NewError(params.OperationID, "bind json failed ", err.Error(), c)
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// claims, err := token_verify.ParseToken(c.Request.Header.Get("token"))
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token"))
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// req := &user.GetReceiveMessageOptReq{
|
|
||||||
// UId: claims.UID,
|
|
||||||
// ConversationId: params.ConversationIdList,
|
|
||||||
// OperationID: params.OperationID,
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req)
|
|
||||||
// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
|
||||||
// client := user.NewUserClient(etcdConn)
|
|
||||||
// resp, err := client.GetReceiveMessageOpt(context.Background(), req)
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error())
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req, resp)
|
|
||||||
// var ginResp GetReceiveMessageOptResp
|
|
||||||
// ginResp.ErrCode = resp.ErrCode
|
|
||||||
// ginResp.ErrMsg = resp.ErrMsg
|
|
||||||
//
|
|
||||||
// for _, v := range resp.ConversationOptResult {
|
|
||||||
// var opt OptResult
|
|
||||||
// log.NewInfo("CopyStructFields begin ", v, req.OperationID)
|
|
||||||
// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result")
|
|
||||||
// log.NewInfo("CopyStructFields end ", v, req.OperationID)
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error())
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
// ginResp.Data = append(ginResp.Data, opt)
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "GetReceiveMessageOpt resp: ", ginResp)
|
|
||||||
// c.JSON(http.StatusOK, ginResp)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
func SetReceiveMessageOpt(c *gin.Context) {
|
func SetReceiveMessageOpt(c *gin.Context) {
|
||||||
|
params := api.SetReceiveMessageOptReq{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &rpc.SetReceiveMessageOptReq{}
|
||||||
|
utils.CopyStructFields(req, ¶ms)
|
||||||
|
var ok bool
|
||||||
|
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(params.OperationID, "SetReceiveMessageOpt args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
||||||
|
client := user.NewUserClient(etcdConn)
|
||||||
|
RpcResp, err := client.SetReceiveMessageOpt(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
|
||||||
|
resp.OptResultList = RpcResp.OptResultList
|
||||||
|
log.NewInfo(req.OperationID, "SetReceiveMessageOpt api return: ", resp)
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
//func SetReceiveMessageOpt(c *gin.Context) {
|
|
||||||
// params := paramsSetReceiveMessageOpt{}
|
|
||||||
// if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
// log.NewError(params.OperationID, "bind json failed ", err.Error(), c)
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// claims, err := token_verify.ParseToken(c.Request.Header.Get("token"))
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token"))
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// req := &user.SetReceiveMessageOptReq{
|
|
||||||
// UId: claims.UID,
|
|
||||||
// Opt: *params.Option,
|
|
||||||
// ConversationId: params.ConversationIdList,
|
|
||||||
// OperationID: params.OperationID,
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req)
|
|
||||||
// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
|
||||||
// client := user.NewUserClient(etcdConn)
|
|
||||||
// resp, err := client.SetReceiveMessageOpt(context.Background(), req)
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error())
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()})
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req, resp)
|
|
||||||
// ginResp := SetReceiveMessageOptResp{
|
|
||||||
// ErrCode: resp.ErrCode,
|
|
||||||
// ErrMsg: resp.ErrMsg,
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// for _, v := range resp.OptResult {
|
|
||||||
// var opt OptResult
|
|
||||||
// log.NewDebug("CopyStructFields begin ", v, req.OperationID)
|
|
||||||
// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result")
|
|
||||||
// log.NewDebug("CopyStructFields end ", v, req.OperationID)
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error())
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
// ginResp.Data = append(ginResp.Data, opt)
|
|
||||||
// }
|
|
||||||
// log.NewInfo(req.OperationID, "SetReceiveMessageOpt resp: ", ginResp)
|
|
||||||
// c.JSON(http.StatusOK, ginResp)
|
|
||||||
//}
|
|
||||||
|
@ -6,166 +6,254 @@
|
|||||||
*/
|
*/
|
||||||
package manage
|
package manage
|
||||||
|
|
||||||
import "github.com/gin-gonic/gin"
|
import (
|
||||||
|
"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_sdk "Open_IM/pkg/proto/sdk_ws"
|
||||||
|
"Open_IM/pkg/utils"
|
||||||
|
"context"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/go-playground/validator/v10"
|
||||||
|
"github.com/mitchellh/mapstructure"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
var validate *validator.Validate
|
||||||
|
|
||||||
|
func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq {
|
||||||
|
var newContent string
|
||||||
|
switch params.ContentType {
|
||||||
|
case constant.Text:
|
||||||
|
newContent = params.Content["text"].(string)
|
||||||
|
case constant.Picture:
|
||||||
|
fallthrough
|
||||||
|
case constant.Custom:
|
||||||
|
fallthrough
|
||||||
|
case constant.Voice:
|
||||||
|
fallthrough
|
||||||
|
case constant.File:
|
||||||
|
newContent = utils.StructToJsonString(params.Content)
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
options := make(map[string]bool, 2)
|
||||||
|
if params.IsOnlineOnly {
|
||||||
|
utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false)
|
||||||
|
utils.SetSwitchFromOptions(options, constant.IsHistory, false)
|
||||||
|
utils.SetSwitchFromOptions(options, constant.IsPersistent, false)
|
||||||
|
}
|
||||||
|
pbData := pbChat.SendMsgReq{
|
||||||
|
OperationID: params.OperationID,
|
||||||
|
MsgData: &open_im_sdk.MsgData{
|
||||||
|
SendID: params.SendID,
|
||||||
|
RecvID: params.RecvID,
|
||||||
|
GroupID: params.GroupID,
|
||||||
|
ClientMsgID: utils.GetMsgID(params.SendID),
|
||||||
|
SenderPlatformID: params.SenderPlatformID,
|
||||||
|
SenderNickname: params.SenderNickname,
|
||||||
|
SenderFaceURL: params.SenderFaceURL,
|
||||||
|
SessionType: params.SessionType,
|
||||||
|
MsgFrom: constant.SysMsgType,
|
||||||
|
ContentType: params.ContentType,
|
||||||
|
Content: []byte(newContent),
|
||||||
|
ForceList: params.ForceList,
|
||||||
|
CreateTime: utils.GetCurrentTimestampByNano(),
|
||||||
|
Options: options,
|
||||||
|
OfflinePushInfo: params.OfflinePushInfo,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return &pbData
|
||||||
|
}
|
||||||
|
func init() {
|
||||||
|
validate = validator.New()
|
||||||
|
}
|
||||||
|
|
||||||
//
|
|
||||||
//var validate *validator.Validate
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.SendMsgReq {
|
|
||||||
// var newContent string
|
|
||||||
// switch params.ContentType {
|
|
||||||
// case constant.Text:
|
|
||||||
// newContent = params.Content["text"].(string)
|
|
||||||
// case constant.Picture:
|
|
||||||
// fallthrough
|
|
||||||
// case constant.Custom:
|
|
||||||
// fallthrough
|
|
||||||
// case constant.Voice:
|
|
||||||
// fallthrough
|
|
||||||
// case constant.File:
|
|
||||||
// newContent = utils.StructToJsonString(params.Content)
|
|
||||||
// default:
|
|
||||||
// }
|
|
||||||
// options := make(map[string]bool, 2)
|
|
||||||
// if params.IsOnlineOnly {
|
|
||||||
// utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false)
|
|
||||||
// utils.SetSwitchFromOptions(options, constant.IsHistory, false)
|
|
||||||
// utils.SetSwitchFromOptions(options, constant.IsPersistent, false)
|
|
||||||
// }
|
|
||||||
// pbData := pbChat.SendMsgReq{
|
|
||||||
// OperationID: params.OperationID,
|
|
||||||
// MsgData: &open_im_sdk.MsgData{
|
|
||||||
// SendID: params.SendID,
|
|
||||||
// RecvID: params.RecvID,
|
|
||||||
// GroupID: params.GroupID,
|
|
||||||
// ClientMsgID: utils.GetMsgID(params.SendID),
|
|
||||||
// SenderPlatformID: params.SenderPlatformID,
|
|
||||||
// SenderNickName: params.SenderNickName,
|
|
||||||
// SenderFaceURL: params.SenderFaceURL,
|
|
||||||
// SessionType: params.SessionType,
|
|
||||||
// MsgFrom: constant.SysMsgType,
|
|
||||||
// ContentType: params.ContentType,
|
|
||||||
// Content: []byte(newContent),
|
|
||||||
// ForceList: params.ForceList,
|
|
||||||
// CreateTime: utils.GetCurrentTimestampByNano(),
|
|
||||||
// Options: options,
|
|
||||||
// OfflinePushInfo: params.OfflinePushInfo,
|
|
||||||
// },
|
|
||||||
// }
|
|
||||||
// return &pbData
|
|
||||||
//}
|
|
||||||
//func init() {
|
|
||||||
// validate = validator.New()
|
|
||||||
//}
|
|
||||||
func ManagementSendMsg(c *gin.Context) {
|
func ManagementSendMsg(c *gin.Context) {
|
||||||
|
var data interface{}
|
||||||
|
params := ManagementSendMsgReq{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
switch params.ContentType {
|
||||||
|
case constant.Text:
|
||||||
|
data = TextElem{}
|
||||||
|
case constant.Picture:
|
||||||
|
data = PictureElem{}
|
||||||
|
case constant.Voice:
|
||||||
|
data = SoundElem{}
|
||||||
|
case constant.Video:
|
||||||
|
data = VideoElem{}
|
||||||
|
case constant.File:
|
||||||
|
data = FileElem{}
|
||||||
|
//case constant.AtText:
|
||||||
|
// data = AtElem{}
|
||||||
|
//case constant.Merger:
|
||||||
|
// data =
|
||||||
|
//case constant.Card:
|
||||||
|
//case constant.Location:
|
||||||
|
case constant.Custom:
|
||||||
|
data = CustomElem{}
|
||||||
|
//case constant.Revoke:
|
||||||
|
//case constant.HasReadReceipt:
|
||||||
|
//case constant.Typing:
|
||||||
|
//case constant.Quote:
|
||||||
|
default:
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"})
|
||||||
|
log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := mapstructure.WeakDecode(params.Content, &data); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()})
|
||||||
|
log.ErrorByKv("content to Data struct err", "", "err", err.Error())
|
||||||
|
return
|
||||||
|
} else if err := validate.Struct(data); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()})
|
||||||
|
log.ErrorByKv("data args validate err", "", "err", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
token := c.Request.Header.Get("token")
|
||||||
|
claims, err := token_verify.ParseToken(token)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(params.OperationID, "parse token failed", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""})
|
||||||
|
}
|
||||||
|
if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""})
|
||||||
|
return
|
||||||
|
|
||||||
|
}
|
||||||
|
switch params.SessionType {
|
||||||
|
case constant.SingleChatType:
|
||||||
|
if len(params.RecvID) == 0 {
|
||||||
|
log.NewError(params.OperationID, "recvID is a null string")
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""})
|
||||||
|
}
|
||||||
|
case constant.GroupChatType:
|
||||||
|
if len(params.GroupID) == 0 {
|
||||||
|
log.NewError(params.OperationID, "groupID is a null string")
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params)
|
||||||
|
|
||||||
|
pbData := newUserSendMsgReq(¶ms)
|
||||||
|
log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName)
|
||||||
|
client := pbChat.NewChatClient(etcdConn)
|
||||||
|
|
||||||
|
log.Info("", "", "api ManagementSendMsg call, api call rpc...")
|
||||||
|
|
||||||
|
reply, 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,
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//func ManagementSendMsg(c *gin.Context) {
|
|
||||||
// var data interface{}
|
|
||||||
// params := paramsManagementSendMsg{}
|
|
||||||
// if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
// log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content"))
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// switch params.ContentType {
|
|
||||||
// case constant.Text:
|
|
||||||
// data = TextElem{}
|
|
||||||
// case constant.Picture:
|
|
||||||
// data = PictureElem{}
|
|
||||||
// case constant.Voice:
|
|
||||||
// data = SoundElem{}
|
|
||||||
// case constant.Video:
|
|
||||||
// data = VideoElem{}
|
|
||||||
// case constant.File:
|
|
||||||
// data = FileElem{}
|
|
||||||
// //case constant.AtText:
|
|
||||||
// // data = AtElem{}
|
|
||||||
// //case constant.Merger:
|
|
||||||
// // data =
|
|
||||||
// //case constant.Card:
|
|
||||||
// //case constant.Location:
|
|
||||||
// case constant.Custom:
|
|
||||||
// data = CustomElem{}
|
|
||||||
// //case constant.Revoke:
|
|
||||||
// //case constant.HasReadReceipt:
|
|
||||||
// //case constant.Typing:
|
|
||||||
// //case constant.Quote:
|
|
||||||
// default:
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"})
|
|
||||||
// log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content"))
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// if err := mapstructure.WeakDecode(params.Content, &data); err != nil {
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()})
|
|
||||||
// log.ErrorByKv("content to Data struct err", "", "err", err.Error())
|
|
||||||
// return
|
|
||||||
// } else if err := validate.Struct(data); err != nil {
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()})
|
|
||||||
// log.ErrorByKv("data args validate err", "", "err", err.Error())
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
//
|
||||||
// token := c.Request.Header.Get("token")
|
|
||||||
// claims, err := token_verify.ParseToken(token)
|
|
||||||
// if err != nil {
|
|
||||||
// log.NewError(params.OperationID, "parse token failed", err.Error())
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""})
|
|
||||||
// }
|
|
||||||
// if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) {
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""})
|
|
||||||
// return
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// switch params.SessionType {
|
|
||||||
// case constant.SingleChatType:
|
|
||||||
// if len(params.RecvID) == 0 {
|
|
||||||
// log.NewError(params.OperationID, "recvID is a null string")
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""})
|
|
||||||
// }
|
|
||||||
// case constant.GroupChatType:
|
|
||||||
// if len(params.GroupID) == 0 {
|
|
||||||
// log.NewError(params.OperationID, "groupID is a null string")
|
|
||||||
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""})
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params)
|
|
||||||
//
|
|
||||||
// pbData := newUserSendMsgReq(¶ms)
|
|
||||||
// log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String())
|
|
||||||
//
|
|
||||||
// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName)
|
|
||||||
// client := pbChat.NewChatClient(etcdConn)
|
|
||||||
//
|
|
||||||
// log.Info("", "", "api ManagementSendMsg call, api call rpc...")
|
|
||||||
//
|
|
||||||
// reply, 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,
|
|
||||||
// })
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
|
|
||||||
//type MergeElem struct {
|
//type MergeElem struct {
|
||||||
// Title string `json:"title"`
|
// Title string `json:"title"`
|
||||||
// AbstractList []string `json:"abstractList"`
|
// AbstractList []string `json:"abstractList"`
|
||||||
// MultiMessage []*MsgStruct `json:"multiMessage"`
|
// MultiMessage []*MsgStruct `json:"multiMessage"`
|
||||||
//}
|
//}
|
||||||
|
//
|
||||||
//type QuoteElem struct {
|
//type QuoteElem struct {
|
||||||
// Text string `json:"text"`
|
// Text string `json:"text"`
|
||||||
// QuoteMessage *MsgStruct `json:"quoteMessage"`
|
// QuoteMessage *MsgStruct `json:"quoteMessage"`
|
||||||
//}
|
//}
|
||||||
|
type ManagementSendMsgReq struct {
|
||||||
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
|
SendID string `json:"sendID" binding:"required"`
|
||||||
|
RecvID string `json:"recvID" `
|
||||||
|
GroupID string `json:"groupID" `
|
||||||
|
SenderNickname string `json:"senderNickname" `
|
||||||
|
SenderFaceURL string `json:"senderFaceURL" `
|
||||||
|
SenderPlatformID int32 `json:"senderPlatformID"`
|
||||||
|
ForceList []string `json:"forceList" `
|
||||||
|
Content map[string]interface{} `json:"content" binding:"required"`
|
||||||
|
ContentType int32 `json:"contentType" binding:"required"`
|
||||||
|
SessionType int32 `json:"sessionType" binding:"required"`
|
||||||
|
IsOnlineOnly bool `json:"isOnlineOnly"`
|
||||||
|
OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PictureBaseInfo struct {
|
||||||
|
UUID string `mapstructure:"uuid"`
|
||||||
|
Type string `mapstructure:"type" validate:"required"`
|
||||||
|
Size int64 `mapstructure:"size" validate:"required"`
|
||||||
|
Width int32 `mapstructure:"width" validate:"required"`
|
||||||
|
Height int32 `mapstructure:"height" validate:"required"`
|
||||||
|
Url string `mapstructure:"url" validate:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type PictureElem struct {
|
||||||
|
SourcePath string `mapstructure:"sourcePath"`
|
||||||
|
SourcePicture PictureBaseInfo `mapstructure:"sourcePicture" validate:"required"`
|
||||||
|
BigPicture PictureBaseInfo `mapstructure:"bigPicture" `
|
||||||
|
SnapshotPicture PictureBaseInfo `mapstructure:"snapshotPicture"`
|
||||||
|
}
|
||||||
|
type SoundElem struct {
|
||||||
|
UUID string `mapstructure:"uuid"`
|
||||||
|
SoundPath string `mapstructure:"soundPath"`
|
||||||
|
SourceURL string `mapstructure:"sourceUrl"`
|
||||||
|
DataSize int64 `mapstructure:"dataSize"`
|
||||||
|
Duration int64 `mapstructure:"duration"`
|
||||||
|
}
|
||||||
|
type VideoElem struct {
|
||||||
|
VideoPath string `mapstructure:"videoPath"`
|
||||||
|
VideoUUID string `mapstructure:"videoUUID"`
|
||||||
|
VideoURL string `mapstructure:"videoUrl"`
|
||||||
|
VideoType string `mapstructure:"videoType"`
|
||||||
|
VideoSize int64 `mapstructure:"videoSize"`
|
||||||
|
Duration int64 `mapstructure:"duration"`
|
||||||
|
SnapshotPath string `mapstructure:"snapshotPath"`
|
||||||
|
SnapshotUUID string `mapstructure:"snapshotUUID"`
|
||||||
|
SnapshotSize int64 `mapstructure:"snapshotSize"`
|
||||||
|
SnapshotURL string `mapstructure:"snapshotUrl"`
|
||||||
|
SnapshotWidth int32 `mapstructure:"snapshotWidth"`
|
||||||
|
SnapshotHeight int32 `mapstructure:"snapshotHeight"`
|
||||||
|
}
|
||||||
|
type FileElem struct {
|
||||||
|
FilePath string `mapstructure:"filePath"`
|
||||||
|
UUID string `mapstructure:"uuid"`
|
||||||
|
SourceURL string `mapstructure:"sourceUrl"`
|
||||||
|
FileName string `mapstructure:"fileName"`
|
||||||
|
FileSize int64 `mapstructure:"fileSize"`
|
||||||
|
}
|
||||||
|
type AtElem struct {
|
||||||
|
Text string `mapstructure:"text"`
|
||||||
|
AtUserList []string `mapstructure:"atUserList"`
|
||||||
|
IsAtSelf bool `mapstructure:"isAtSelf"`
|
||||||
|
}
|
||||||
|
type LocationElem struct {
|
||||||
|
Description string `mapstructure:"description"`
|
||||||
|
Longitude float64 `mapstructure:"longitude"`
|
||||||
|
Latitude float64 `mapstructure:"latitude"`
|
||||||
|
}
|
||||||
|
type CustomElem struct {
|
||||||
|
Data string `mapstructure:"data" validate:"required"`
|
||||||
|
Description string `mapstructure:"description"`
|
||||||
|
Extension string `mapstructure:"extension"`
|
||||||
|
}
|
||||||
|
type TextElem struct {
|
||||||
|
Text string `mapstructure:"text" validate:"required"`
|
||||||
|
}
|
||||||
|
@ -112,9 +112,9 @@ func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetRe
|
|||||||
|
|
||||||
func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) {
|
func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) {
|
||||||
log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String())
|
log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String())
|
||||||
m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationId)
|
m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationIdList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationId)
|
log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationIdList)
|
||||||
return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
|
return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
|
||||||
}
|
}
|
||||||
resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}}
|
resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}}
|
||||||
|
@ -68,7 +68,7 @@ func Test_ParseRedisInterfaceToken(t *testing.T) {
|
|||||||
config.Config.TokenPolicy.AccessExpire = -80
|
config.Config.TokenPolicy.AccessExpire = -80
|
||||||
tokenString, _, _ = token_verify.CreateToken(uid, platform)
|
tokenString, _, _ = token_verify.CreateToken(uid, platform)
|
||||||
claims, err = token_verify.ParseRedisInterfaceToken([]uint8(tokenString))
|
claims, err = token_verify.ParseRedisInterfaceToken([]uint8(tokenString))
|
||||||
assert.Equal(t, err, constant.TokenExpired)
|
assert.Equal(t, err, constant.ExpiredToken)
|
||||||
assert.Nil(t, claims)
|
assert.Nil(t, claims)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1,30 @@
|
|||||||
package base_info
|
package base_info
|
||||||
|
|
||||||
|
import "Open_IM/pkg/proto/user"
|
||||||
|
|
||||||
|
type GetAllConversationMessageOptReq struct {
|
||||||
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
|
FromUserID string `json:"fromUserID" binding:"required"`
|
||||||
|
}
|
||||||
|
type GetAllConversationMessageOptResp struct {
|
||||||
|
CommResp
|
||||||
|
ConversationOptResultList []*user.OptResult `json:"data"`
|
||||||
|
}
|
||||||
|
type GetReceiveMessageOptReq struct {
|
||||||
|
ConversationIdList []string `json:"conversationIdList" binding:"required"`
|
||||||
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
|
FromUserID string `json:"fromUserID" binding:"required"`
|
||||||
|
}
|
||||||
|
type GetReceiveMessageOptResp struct {
|
||||||
|
CommResp
|
||||||
|
ConversationOptResultList []*user.OptResult `json:"data"`
|
||||||
|
}
|
||||||
|
type SetReceiveMessageOptReq struct {
|
||||||
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
|
Opt *int32 `json:"opt" binding:"required"`
|
||||||
|
ConversationIdList []string `json:"conversationIdList" binding:"required"`
|
||||||
|
}
|
||||||
|
type SetReceiveMessageOptResp struct {
|
||||||
|
CommResp
|
||||||
|
OptResultList []*user.OptResult `json:"data"`
|
||||||
|
}
|
||||||
|
@ -2,70 +2,9 @@ package base_info
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
pbRelay "Open_IM/pkg/proto/relay"
|
pbRelay "Open_IM/pkg/proto/relay"
|
||||||
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
|
|
||||||
pbUser "Open_IM/pkg/proto/user"
|
pbUser "Open_IM/pkg/proto/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
type paramsManagementSendMsg struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
SendID string `json:"sendID" binding:"required"`
|
|
||||||
RecvID string `json:"recvID" `
|
|
||||||
GroupID string `json:"groupID" `
|
|
||||||
SenderNickName string `json:"senderNickName" `
|
|
||||||
SenderFaceURL string `json:"senderFaceURL" `
|
|
||||||
SenderPlatformID int32 `json:"senderPlatformID"`
|
|
||||||
ForceList []string `json:"forceList" `
|
|
||||||
Content map[string]interface{} `json:"content" binding:"required"`
|
|
||||||
ContentType int32 `json:"contentType" binding:"required"`
|
|
||||||
SessionType int32 `json:"sessionType" binding:"required"`
|
|
||||||
IsOnlineOnly bool `json:"isOnlineOnly"`
|
|
||||||
OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type PictureBaseInfo struct {
|
|
||||||
UUID string `mapstructure:"uuid"`
|
|
||||||
Type string `mapstructure:"type" validate:"required"`
|
|
||||||
Size int64 `mapstructure:"size" validate:"required"`
|
|
||||||
Width int32 `mapstructure:"width" validate:"required"`
|
|
||||||
Height int32 `mapstructure:"height" validate:"required"`
|
|
||||||
Url string `mapstructure:"url" validate:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type PictureElem struct {
|
|
||||||
SourcePath string `mapstructure:"sourcePath"`
|
|
||||||
SourcePicture PictureBaseInfo `mapstructure:"sourcePicture" validate:"required"`
|
|
||||||
BigPicture PictureBaseInfo `mapstructure:"bigPicture" `
|
|
||||||
SnapshotPicture PictureBaseInfo `mapstructure:"snapshotPicture"`
|
|
||||||
}
|
|
||||||
type SoundElem struct {
|
|
||||||
UUID string `mapstructure:"uuid"`
|
|
||||||
SoundPath string `mapstructure:"soundPath"`
|
|
||||||
SourceURL string `mapstructure:"sourceUrl"`
|
|
||||||
DataSize int64 `mapstructure:"dataSize"`
|
|
||||||
Duration int64 `mapstructure:"duration"`
|
|
||||||
}
|
|
||||||
type VideoElem struct {
|
|
||||||
VideoPath string `mapstructure:"videoPath"`
|
|
||||||
VideoUUID string `mapstructure:"videoUUID"`
|
|
||||||
VideoURL string `mapstructure:"videoUrl"`
|
|
||||||
VideoType string `mapstructure:"videoType"`
|
|
||||||
VideoSize int64 `mapstructure:"videoSize"`
|
|
||||||
Duration int64 `mapstructure:"duration"`
|
|
||||||
SnapshotPath string `mapstructure:"snapshotPath"`
|
|
||||||
SnapshotUUID string `mapstructure:"snapshotUUID"`
|
|
||||||
SnapshotSize int64 `mapstructure:"snapshotSize"`
|
|
||||||
SnapshotURL string `mapstructure:"snapshotUrl"`
|
|
||||||
SnapshotWidth int32 `mapstructure:"snapshotWidth"`
|
|
||||||
SnapshotHeight int32 `mapstructure:"snapshotHeight"`
|
|
||||||
}
|
|
||||||
type FileElem struct {
|
|
||||||
FilePath string `mapstructure:"filePath"`
|
|
||||||
UUID string `mapstructure:"uuid"`
|
|
||||||
SourceURL string `mapstructure:"sourceUrl"`
|
|
||||||
FileName string `mapstructure:"fileName"`
|
|
||||||
FileSize int64 `mapstructure:"fileSize"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeleteUsersReq struct {
|
type DeleteUsersReq struct {
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
DeleteUidList []string `json:"deleteUidList" binding:"required"`
|
DeleteUidList []string `json:"deleteUidList" binding:"required"`
|
||||||
@ -97,22 +36,3 @@ type AccountCheckResp struct {
|
|||||||
CommResp
|
CommResp
|
||||||
ResultList []*pbUser.AccountCheckResp_SingleUserStatus `json:"data"`
|
ResultList []*pbUser.AccountCheckResp_SingleUserStatus `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type AtElem struct {
|
|
||||||
Text string `mapstructure:"text"`
|
|
||||||
AtUserList []string `mapstructure:"atUserList"`
|
|
||||||
IsAtSelf bool `mapstructure:"isAtSelf"`
|
|
||||||
}
|
|
||||||
type LocationElem struct {
|
|
||||||
Description string `mapstructure:"description"`
|
|
||||||
Longitude float64 `mapstructure:"longitude"`
|
|
||||||
Latitude float64 `mapstructure:"latitude"`
|
|
||||||
}
|
|
||||||
type CustomElem struct {
|
|
||||||
Data string `mapstructure:"data" validate:"required"`
|
|
||||||
Description string `mapstructure:"description"`
|
|
||||||
Extension string `mapstructure:"extension"`
|
|
||||||
}
|
|
||||||
type TextElem struct {
|
|
||||||
Text string `mapstructure:"text" validate:"required"`
|
|
||||||
}
|
|
||||||
|
@ -51,7 +51,8 @@ func CreateToken(userID string, platformID int32) (string, int64, error) {
|
|||||||
}
|
}
|
||||||
var deleteTokenKey []string
|
var deleteTokenKey []string
|
||||||
for k, v := range m {
|
for k, v := range m {
|
||||||
if v != constant.NormalToken {
|
_, err = GetClaimFromToken(k)
|
||||||
|
if err != nil || v != constant.NormalToken {
|
||||||
deleteTokenKey = append(deleteTokenKey, k)
|
deleteTokenKey = append(deleteTokenKey, k)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
|
|||||||
func (m *CommonResp) String() string { return proto.CompactTextString(m) }
|
func (m *CommonResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*CommonResp) ProtoMessage() {}
|
func (*CommonResp) ProtoMessage() {}
|
||||||
func (*CommonResp) Descriptor() ([]byte, []int) {
|
func (*CommonResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{0}
|
return fileDescriptor_user_0a10ad809f213986, []int{0}
|
||||||
}
|
}
|
||||||
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
|
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_CommonResp.Unmarshal(m, b)
|
return xxx_messageInfo_CommonResp.Unmarshal(m, b)
|
||||||
@ -83,7 +83,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} }
|
|||||||
func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) }
|
func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*DeleteUsersReq) ProtoMessage() {}
|
func (*DeleteUsersReq) ProtoMessage() {}
|
||||||
func (*DeleteUsersReq) Descriptor() ([]byte, []int) {
|
func (*DeleteUsersReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{1}
|
return fileDescriptor_user_0a10ad809f213986, []int{1}
|
||||||
}
|
}
|
||||||
func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error {
|
func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b)
|
return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b)
|
||||||
@ -136,7 +136,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} }
|
|||||||
func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) }
|
func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*DeleteUsersResp) ProtoMessage() {}
|
func (*DeleteUsersResp) ProtoMessage() {}
|
||||||
func (*DeleteUsersResp) Descriptor() ([]byte, []int) {
|
func (*DeleteUsersResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{2}
|
return fileDescriptor_user_0a10ad809f213986, []int{2}
|
||||||
}
|
}
|
||||||
func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error {
|
func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b)
|
return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b)
|
||||||
@ -182,7 +182,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} }
|
|||||||
func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetAllUserIDReq) ProtoMessage() {}
|
func (*GetAllUserIDReq) ProtoMessage() {}
|
||||||
func (*GetAllUserIDReq) Descriptor() ([]byte, []int) {
|
func (*GetAllUserIDReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{3}
|
return fileDescriptor_user_0a10ad809f213986, []int{3}
|
||||||
}
|
}
|
||||||
func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b)
|
||||||
@ -228,7 +228,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} }
|
|||||||
func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetAllUserIDResp) ProtoMessage() {}
|
func (*GetAllUserIDResp) ProtoMessage() {}
|
||||||
func (*GetAllUserIDResp) Descriptor() ([]byte, []int) {
|
func (*GetAllUserIDResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{4}
|
return fileDescriptor_user_0a10ad809f213986, []int{4}
|
||||||
}
|
}
|
||||||
func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b)
|
||||||
@ -275,7 +275,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} }
|
|||||||
func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) }
|
func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*AccountCheckReq) ProtoMessage() {}
|
func (*AccountCheckReq) ProtoMessage() {}
|
||||||
func (*AccountCheckReq) Descriptor() ([]byte, []int) {
|
func (*AccountCheckReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{5}
|
return fileDescriptor_user_0a10ad809f213986, []int{5}
|
||||||
}
|
}
|
||||||
func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error {
|
func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b)
|
return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b)
|
||||||
@ -328,7 +328,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} }
|
|||||||
func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) }
|
func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*AccountCheckResp) ProtoMessage() {}
|
func (*AccountCheckResp) ProtoMessage() {}
|
||||||
func (*AccountCheckResp) Descriptor() ([]byte, []int) {
|
func (*AccountCheckResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{6}
|
return fileDescriptor_user_0a10ad809f213986, []int{6}
|
||||||
}
|
}
|
||||||
func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error {
|
func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b)
|
return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b)
|
||||||
@ -374,7 +374,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR
|
|||||||
func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) }
|
func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) }
|
||||||
func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {}
|
func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {}
|
||||||
func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) {
|
func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{6, 0}
|
return fileDescriptor_user_0a10ad809f213986, []int{6, 0}
|
||||||
}
|
}
|
||||||
func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error {
|
func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b)
|
return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b)
|
||||||
@ -421,7 +421,7 @@ func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} }
|
|||||||
func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUserInfoReq) ProtoMessage() {}
|
func (*GetUserInfoReq) ProtoMessage() {}
|
||||||
func (*GetUserInfoReq) Descriptor() ([]byte, []int) {
|
func (*GetUserInfoReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{7}
|
return fileDescriptor_user_0a10ad809f213986, []int{7}
|
||||||
}
|
}
|
||||||
func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b)
|
||||||
@ -474,7 +474,7 @@ func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} }
|
|||||||
func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUserInfoResp) ProtoMessage() {}
|
func (*GetUserInfoResp) ProtoMessage() {}
|
||||||
func (*GetUserInfoResp) Descriptor() ([]byte, []int) {
|
func (*GetUserInfoResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{8}
|
return fileDescriptor_user_0a10ad809f213986, []int{8}
|
||||||
}
|
}
|
||||||
func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b)
|
||||||
@ -521,7 +521,7 @@ func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} }
|
|||||||
func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) }
|
func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*UpdateUserInfoReq) ProtoMessage() {}
|
func (*UpdateUserInfoReq) ProtoMessage() {}
|
||||||
func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) {
|
func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{9}
|
return fileDescriptor_user_0a10ad809f213986, []int{9}
|
||||||
}
|
}
|
||||||
func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error {
|
func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b)
|
return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b)
|
||||||
@ -573,7 +573,7 @@ func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} }
|
|||||||
func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) }
|
func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*UpdateUserInfoResp) ProtoMessage() {}
|
func (*UpdateUserInfoResp) ProtoMessage() {}
|
||||||
func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) {
|
func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{10}
|
return fileDescriptor_user_0a10ad809f213986, []int{10}
|
||||||
}
|
}
|
||||||
func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error {
|
func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b)
|
return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b)
|
||||||
@ -615,7 +615,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq
|
|||||||
func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) }
|
func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetReceiveMessageOptReq) ProtoMessage() {}
|
func (*SetReceiveMessageOptReq) ProtoMessage() {}
|
||||||
func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) {
|
func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{11}
|
return fileDescriptor_user_0a10ad809f213986, []int{11}
|
||||||
}
|
}
|
||||||
func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error {
|
func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b)
|
return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b)
|
||||||
@ -682,7 +682,7 @@ func (m *OptResult) Reset() { *m = OptResult{} }
|
|||||||
func (m *OptResult) String() string { return proto.CompactTextString(m) }
|
func (m *OptResult) String() string { return proto.CompactTextString(m) }
|
||||||
func (*OptResult) ProtoMessage() {}
|
func (*OptResult) ProtoMessage() {}
|
||||||
func (*OptResult) Descriptor() ([]byte, []int) {
|
func (*OptResult) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{12}
|
return fileDescriptor_user_0a10ad809f213986, []int{12}
|
||||||
}
|
}
|
||||||
func (m *OptResult) XXX_Unmarshal(b []byte) error {
|
func (m *OptResult) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_OptResult.Unmarshal(m, b)
|
return xxx_messageInfo_OptResult.Unmarshal(m, b)
|
||||||
@ -728,7 +728,7 @@ func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptRe
|
|||||||
func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) }
|
func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SetReceiveMessageOptResp) ProtoMessage() {}
|
func (*SetReceiveMessageOptResp) ProtoMessage() {}
|
||||||
func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) {
|
func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{13}
|
return fileDescriptor_user_0a10ad809f213986, []int{13}
|
||||||
}
|
}
|
||||||
func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error {
|
func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b)
|
return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b)
|
||||||
@ -764,7 +764,7 @@ func (m *SetReceiveMessageOptResp) GetOptResultList() []*OptResult {
|
|||||||
|
|
||||||
type GetReceiveMessageOptReq struct {
|
type GetReceiveMessageOptReq struct {
|
||||||
FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"`
|
FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"`
|
||||||
ConversationId []string `protobuf:"bytes,2,rep,name=conversationId" json:"conversationId,omitempty"`
|
ConversationIdList []string `protobuf:"bytes,2,rep,name=conversationIdList" json:"conversationIdList,omitempty"`
|
||||||
OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"`
|
OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"`
|
||||||
OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"`
|
OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
@ -776,7 +776,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq
|
|||||||
func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetReceiveMessageOptReq) ProtoMessage() {}
|
func (*GetReceiveMessageOptReq) ProtoMessage() {}
|
||||||
func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) {
|
func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{14}
|
return fileDescriptor_user_0a10ad809f213986, []int{14}
|
||||||
}
|
}
|
||||||
func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b)
|
||||||
@ -803,9 +803,9 @@ func (m *GetReceiveMessageOptReq) GetFromUserID() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *GetReceiveMessageOptReq) GetConversationId() []string {
|
func (m *GetReceiveMessageOptReq) GetConversationIdList() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.ConversationId
|
return m.ConversationIdList
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -836,7 +836,7 @@ func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptRe
|
|||||||
func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetReceiveMessageOptResp) ProtoMessage() {}
|
func (*GetReceiveMessageOptResp) ProtoMessage() {}
|
||||||
func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) {
|
func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{15}
|
return fileDescriptor_user_0a10ad809f213986, []int{15}
|
||||||
}
|
}
|
||||||
func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b)
|
||||||
@ -883,7 +883,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM
|
|||||||
func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetAllConversationMsgOptReq) ProtoMessage() {}
|
func (*GetAllConversationMsgOptReq) ProtoMessage() {}
|
||||||
func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) {
|
func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{16}
|
return fileDescriptor_user_0a10ad809f213986, []int{16}
|
||||||
}
|
}
|
||||||
func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b)
|
||||||
@ -936,7 +936,7 @@ func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversation
|
|||||||
func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetAllConversationMsgOptResp) ProtoMessage() {}
|
func (*GetAllConversationMsgOptResp) ProtoMessage() {}
|
||||||
func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) {
|
func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_user_119cb27841530cfa, []int{17}
|
return fileDescriptor_user_0a10ad809f213986, []int{17}
|
||||||
}
|
}
|
||||||
func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b)
|
||||||
@ -1295,60 +1295,60 @@ var _User_serviceDesc = grpc.ServiceDesc{
|
|||||||
Metadata: "user/user.proto",
|
Metadata: "user/user.proto",
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_119cb27841530cfa) }
|
func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_0a10ad809f213986) }
|
||||||
|
|
||||||
var fileDescriptor_user_119cb27841530cfa = []byte{
|
var fileDescriptor_user_0a10ad809f213986 = []byte{
|
||||||
// 825 bytes of a gzipped FileDescriptorProto
|
// 829 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xdf, 0x6e, 0xd3, 0x3e,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0xd3, 0x4a,
|
||||||
0x14, 0x56, 0xd6, 0x6e, 0xbf, 0xf5, 0x74, 0x6b, 0xfb, 0xb3, 0xf6, 0x27, 0x04, 0x98, 0x3a, 0x0b,
|
0x14, 0x96, 0x9b, 0xb4, 0xb7, 0x39, 0x69, 0x93, 0xdc, 0x51, 0x7f, 0x7c, 0x7d, 0xa1, 0x4a, 0x47,
|
||||||
0x41, 0xb5, 0x8b, 0x14, 0x86, 0xb8, 0x00, 0x04, 0xd2, 0xe8, 0xb4, 0x68, 0x82, 0xaa, 0x28, 0xd3,
|
0x08, 0xa2, 0x2e, 0x1c, 0x28, 0x62, 0x01, 0x08, 0xa4, 0x92, 0xaa, 0x56, 0x05, 0x51, 0x90, 0xab,
|
||||||
0x6e, 0xb8, 0x99, 0x42, 0x63, 0x4a, 0xd5, 0x36, 0x0e, 0x71, 0xba, 0x09, 0x90, 0xb8, 0x81, 0xb7,
|
0x6e, 0xd8, 0x54, 0x26, 0x1e, 0x42, 0x94, 0xc4, 0x63, 0x3c, 0x4e, 0x2b, 0x40, 0x62, 0x03, 0x6f,
|
||||||
0xe0, 0x82, 0xe7, 0xe0, 0x35, 0x78, 0x01, 0x5e, 0x05, 0xc5, 0x4e, 0x5a, 0x3b, 0x49, 0x5b, 0x54,
|
0xc1, 0x82, 0x25, 0xcf, 0xc0, 0x6b, 0xf0, 0x02, 0xbc, 0x0a, 0xf2, 0x8c, 0x9d, 0xcc, 0xd8, 0x4e,
|
||||||
0xb8, 0xe0, 0xa6, 0xaa, 0x3f, 0x1f, 0x1f, 0x7f, 0xdf, 0xe7, 0x63, 0xe7, 0x40, 0x75, 0xcc, 0x48,
|
0x82, 0x02, 0x0b, 0x36, 0x51, 0xe6, 0x9b, 0x33, 0x67, 0xbe, 0xef, 0x9b, 0x33, 0xe3, 0x03, 0xd5,
|
||||||
0xd0, 0x8c, 0x7e, 0x4c, 0x3f, 0xa0, 0x21, 0x45, 0xc5, 0xe8, 0xbf, 0xb1, 0xdf, 0xf1, 0x89, 0x77,
|
0x31, 0x23, 0x41, 0x33, 0xfa, 0x31, 0xfd, 0x80, 0x86, 0x14, 0x15, 0xa3, 0xff, 0xc6, 0x7e, 0xc7,
|
||||||
0x71, 0xda, 0x6e, 0xfa, 0x83, 0x5e, 0x93, 0x4f, 0x34, 0x99, 0x3b, 0xb8, 0xb8, 0x62, 0xcd, 0x2b,
|
0x27, 0xde, 0xc5, 0x69, 0xbb, 0xe9, 0x0f, 0x7a, 0x4d, 0x3e, 0xd1, 0x64, 0xee, 0xe0, 0xe2, 0x8a,
|
||||||
0x26, 0x02, 0xf1, 0x53, 0x80, 0x16, 0x1d, 0x8d, 0xa8, 0x67, 0x13, 0xe6, 0x23, 0x1d, 0xfe, 0x23,
|
0x35, 0xaf, 0x98, 0x08, 0xc4, 0x8f, 0x01, 0x5a, 0x74, 0x34, 0xa2, 0x9e, 0x4d, 0x98, 0x8f, 0x74,
|
||||||
0x41, 0xd0, 0xa2, 0x2e, 0xd1, 0xb5, 0xba, 0xd6, 0x58, 0xb5, 0x93, 0x21, 0xda, 0x81, 0x35, 0x12,
|
0xf8, 0x87, 0x04, 0x41, 0x8b, 0xba, 0x44, 0xd7, 0xea, 0x5a, 0x63, 0xd5, 0x4e, 0x86, 0x68, 0x07,
|
||||||
0x04, 0x6d, 0xd6, 0xd3, 0x57, 0xea, 0x5a, 0xa3, 0x64, 0xc7, 0x23, 0xfc, 0x01, 0x2a, 0xc7, 0x64,
|
0xd6, 0x48, 0x10, 0xb4, 0x59, 0x4f, 0x5f, 0xa9, 0x6b, 0x8d, 0x92, 0x1d, 0x8f, 0xf0, 0x3b, 0xa8,
|
||||||
0x48, 0x42, 0x72, 0xce, 0x48, 0xc0, 0x6c, 0xf2, 0x0e, 0x1d, 0x40, 0x6d, 0x8a, 0x9c, 0x1e, 0xbf,
|
0x1c, 0x93, 0x21, 0x09, 0xc9, 0x39, 0x23, 0x01, 0xb3, 0xc9, 0x1b, 0x74, 0x00, 0xb5, 0x29, 0x72,
|
||||||
0xe8, 0xb3, 0x50, 0x5f, 0xa9, 0x17, 0x1a, 0x25, 0x3b, 0x83, 0x23, 0x03, 0xd6, 0x3b, 0xbe, 0x18,
|
0x7a, 0xfc, 0xac, 0xcf, 0x42, 0x7d, 0xa5, 0x5e, 0x68, 0x94, 0xec, 0x0c, 0x8e, 0x0c, 0x58, 0xef,
|
||||||
0xeb, 0x05, 0x9e, 0x77, 0x32, 0x46, 0x75, 0x28, 0x77, 0x7c, 0x12, 0x38, 0x61, 0x9f, 0x7a, 0xa7,
|
0xf8, 0x62, 0xac, 0x17, 0x78, 0xde, 0xc9, 0x18, 0xd5, 0xa1, 0xdc, 0xf1, 0x49, 0xe0, 0x84, 0x7d,
|
||||||
0xc7, 0x7a, 0x91, 0x4f, 0xcb, 0x10, 0xa6, 0x50, 0x55, 0xf6, 0x66, 0x3e, 0xba, 0x2b, 0xcb, 0xe1,
|
0xea, 0x9d, 0x1e, 0xeb, 0x45, 0x3e, 0x2d, 0x43, 0x98, 0x42, 0x55, 0xd9, 0x9b, 0xf9, 0xe8, 0xb6,
|
||||||
0x1a, 0xca, 0x87, 0x35, 0x93, 0x1b, 0x33, 0xc5, 0x6d, 0x59, 0xf2, 0x01, 0xd4, 0x4e, 0x9c, 0xfe,
|
0x2c, 0x87, 0x6b, 0x28, 0x1f, 0xd6, 0x4c, 0x6e, 0xcc, 0x14, 0xb7, 0x65, 0xc9, 0x07, 0x50, 0x3b,
|
||||||
0x90, 0xb8, 0x59, 0xba, 0x69, 0x1c, 0x77, 0xa0, 0x6a, 0x91, 0xf0, 0x68, 0x38, 0x14, 0x58, 0xa4,
|
0x71, 0xfa, 0x43, 0xe2, 0x66, 0xe9, 0xa6, 0x71, 0xdc, 0x81, 0xaa, 0x45, 0xc2, 0xa3, 0xe1, 0x50,
|
||||||
0xd6, 0x80, 0x75, 0x9a, 0x28, 0xd0, 0x84, 0x02, 0x2a, 0x29, 0xa0, 0x92, 0x02, 0x61, 0x9c, 0x0c,
|
0x60, 0x91, 0x5a, 0x03, 0xd6, 0x69, 0xa2, 0x40, 0x13, 0x0a, 0xa8, 0xa4, 0x80, 0x4a, 0x0a, 0x84,
|
||||||
0x61, 0x17, 0x6a, 0x6a, 0xc2, 0xa5, 0x24, 0xec, 0x01, 0x64, 0xc8, 0x4b, 0x08, 0x7e, 0x0f, 0xd5,
|
0x71, 0x32, 0x84, 0x5d, 0xa8, 0xa9, 0x09, 0x97, 0x92, 0xb0, 0x07, 0x90, 0x21, 0x2f, 0x21, 0xf8,
|
||||||
0xa3, 0x6e, 0x97, 0x8e, 0xbd, 0xb0, 0xf5, 0x96, 0x74, 0x07, 0x11, 0xed, 0x06, 0x54, 0xf9, 0x7f,
|
0x2d, 0x54, 0x8f, 0xba, 0x5d, 0x3a, 0xf6, 0xc2, 0xd6, 0x6b, 0xd2, 0x1d, 0x44, 0xb4, 0x1b, 0x50,
|
||||||
0x69, 0x9d, 0xc6, 0xd7, 0xa5, 0x61, 0xe5, 0x88, 0x56, 0xe6, 0x1f, 0x51, 0x21, 0x7b, 0x44, 0x3f,
|
0xe5, 0xff, 0xa5, 0x75, 0x1a, 0x5f, 0x97, 0x86, 0x95, 0x23, 0x5a, 0x99, 0x7f, 0x44, 0x85, 0xec,
|
||||||
0x35, 0xa8, 0xa9, 0x7b, 0x0b, 0x85, 0xdd, 0xdf, 0x50, 0x38, 0x8d, 0x41, 0x16, 0x80, 0x4d, 0xd8,
|
0x11, 0xfd, 0xd0, 0xa0, 0xa6, 0xee, 0x2d, 0x14, 0x76, 0x7f, 0x41, 0xe1, 0x34, 0x06, 0x59, 0x00,
|
||||||
0x78, 0x18, 0x4e, 0x14, 0x96, 0x0f, 0xef, 0x88, 0x15, 0xe9, 0xec, 0xe6, 0x59, 0xdf, 0xeb, 0x0d,
|
0x36, 0x61, 0xe3, 0x61, 0x38, 0x51, 0x58, 0x3e, 0xbc, 0x25, 0x56, 0xa4, 0xb3, 0x9b, 0x67, 0x7d,
|
||||||
0x79, 0x49, 0x9c, 0x85, 0x4e, 0x38, 0x66, 0xb6, 0xb4, 0xd4, 0x78, 0x09, 0xb5, 0xf4, 0x7c, 0x54,
|
0xaf, 0x37, 0xe4, 0x25, 0x71, 0x16, 0x3a, 0xe1, 0x98, 0xd9, 0xd2, 0x52, 0xe3, 0x39, 0xd4, 0xd2,
|
||||||
0xda, 0x63, 0xf9, 0x00, 0xe3, 0x11, 0xba, 0x05, 0x9b, 0x8e, 0x48, 0x2e, 0x02, 0x63, 0xf9, 0x2a,
|
0xf3, 0x51, 0x69, 0x8f, 0xe5, 0x03, 0x8c, 0x47, 0xe8, 0x06, 0x6c, 0x3a, 0x22, 0xb9, 0x08, 0x8c,
|
||||||
0x88, 0x3d, 0xa8, 0x58, 0x24, 0xe4, 0x86, 0x78, 0x6f, 0x68, 0xe4, 0xed, 0x1e, 0xc0, 0x38, 0x6d,
|
0xe5, 0xab, 0x20, 0xf6, 0xa0, 0x62, 0x91, 0x90, 0x1b, 0xe2, 0xbd, 0xa2, 0x91, 0xb7, 0x7b, 0x00,
|
||||||
0xab, 0x84, 0xfc, 0xa1, 0xa3, 0x9f, 0x78, 0x0d, 0x4e, 0xf7, 0x5b, 0xca, 0xcf, 0x87, 0xb0, 0x91,
|
0xe3, 0xb4, 0xad, 0x12, 0xf2, 0x9b, 0x8e, 0x7e, 0xe0, 0x35, 0x38, 0xdd, 0x6f, 0x29, 0x3f, 0xef,
|
||||||
0x64, 0xe0, 0x24, 0x0b, 0xdc, 0xd1, 0x6d, 0x93, 0x46, 0xef, 0x45, 0x7f, 0x74, 0xc1, 0xdc, 0x81,
|
0xc3, 0x46, 0x92, 0x81, 0x93, 0x2c, 0x70, 0x47, 0xb7, 0x4d, 0x1a, 0xbd, 0x17, 0xfd, 0xd1, 0x05,
|
||||||
0x39, 0xd9, 0x42, 0x09, 0xc5, 0x5f, 0x34, 0xf8, 0xff, 0xdc, 0x77, 0x9d, 0xf8, 0x1e, 0xc7, 0x9a,
|
0x73, 0x07, 0xe6, 0x64, 0x0b, 0x25, 0x14, 0x7f, 0xd2, 0xe0, 0xdf, 0x73, 0xdf, 0x75, 0xe2, 0x7b,
|
||||||
0xef, 0xc1, 0x7a, 0x32, 0x8c, 0x09, 0xcc, 0x48, 0x36, 0x09, 0x5b, 0x64, 0x03, 0xcd, 0xda, 0x20,
|
0x1c, 0x6b, 0xbe, 0x03, 0xeb, 0xc9, 0x30, 0x26, 0x30, 0x23, 0xd9, 0x24, 0x6c, 0x91, 0x0d, 0x34,
|
||||||
0xdf, 0x9c, 0x13, 0x40, 0x69, 0x16, 0xcb, 0x38, 0x81, 0xbf, 0x6b, 0xb0, 0x7b, 0x46, 0x42, 0x9b,
|
0x6b, 0x83, 0x7c, 0x73, 0x4e, 0x00, 0xa5, 0x59, 0x2c, 0xe3, 0x04, 0xfe, 0xa6, 0xc1, 0xee, 0x19,
|
||||||
0x74, 0x49, 0xff, 0x92, 0xb4, 0x09, 0x63, 0x4e, 0x8f, 0x74, 0xfc, 0x30, 0x3e, 0xc8, 0x93, 0x80,
|
0x09, 0x6d, 0xd2, 0x25, 0xfd, 0x4b, 0xd2, 0x26, 0x8c, 0x39, 0x3d, 0xd2, 0xf1, 0xc3, 0xf8, 0x20,
|
||||||
0x8e, 0x94, 0xdb, 0x2d, 0x21, 0xa8, 0x06, 0x05, 0xea, 0x87, 0x9c, 0xfc, 0xaa, 0x1d, 0xfd, 0x45,
|
0x4f, 0x02, 0x3a, 0x52, 0x6e, 0xb7, 0x84, 0xa0, 0x1a, 0x14, 0xa8, 0x1f, 0x72, 0xf2, 0xab, 0x76,
|
||||||
0x26, 0xa0, 0x2e, 0xf5, 0x2e, 0x49, 0xc0, 0x62, 0x9e, 0x13, 0x77, 0x4b, 0x76, 0xce, 0x4c, 0x5a,
|
0xf4, 0x17, 0x99, 0x80, 0xba, 0xd4, 0xbb, 0x24, 0x01, 0x8b, 0x79, 0x4e, 0xdc, 0x2d, 0xd9, 0x39,
|
||||||
0x67, 0x31, 0xa3, 0x53, 0x71, 0x69, 0x55, 0x75, 0x09, 0x3f, 0x87, 0x12, 0x67, 0x1a, 0x55, 0x37,
|
0x33, 0x69, 0x9d, 0xc5, 0x8c, 0x4e, 0xc5, 0xa5, 0x55, 0xd5, 0x25, 0xfc, 0x14, 0x4a, 0x9c, 0x69,
|
||||||
0xba, 0x0d, 0x15, 0x65, 0x03, 0x37, 0x26, 0x9c, 0x42, 0xa3, 0x6a, 0x0f, 0xf8, 0x8a, 0x98, 0x77,
|
0x54, 0xdd, 0xe8, 0x26, 0x54, 0x94, 0x0d, 0xdc, 0x98, 0x70, 0x0a, 0x8d, 0xaa, 0x3d, 0xe0, 0x2b,
|
||||||
0x3c, 0xc2, 0x9f, 0x35, 0xd0, 0xf3, 0x8d, 0x58, 0xaa, 0xc2, 0x1e, 0xc0, 0x26, 0x4d, 0xb8, 0x49,
|
0x62, 0xde, 0xf1, 0x08, 0x7f, 0xd4, 0x40, 0xcf, 0x37, 0x62, 0xa9, 0x0a, 0xbb, 0x07, 0x9b, 0x34,
|
||||||
0x97, 0xb6, 0x2a, 0x16, 0x4d, 0x68, 0xdb, 0x6a, 0x14, 0xfe, 0xa6, 0xc1, 0xae, 0xb5, 0xe4, 0x71,
|
0xe1, 0x26, 0x5d, 0xda, 0xaa, 0x58, 0x34, 0xa1, 0x6d, 0xab, 0x51, 0xf8, 0xab, 0x06, 0xbb, 0xd6,
|
||||||
0x64, 0x1d, 0x10, 0x4f, 0x61, 0xda, 0x81, 0x85, 0xc5, 0xa5, 0x98, 0x5e, 0x4c, 0x99, 0xfe, 0x55,
|
0x92, 0xc7, 0x91, 0x36, 0xdf, 0x95, 0x9e, 0xc3, 0x9c, 0x99, 0xc5, 0x45, 0xa6, 0x98, 0x5f, 0x4c,
|
||||||
0x03, 0xdd, 0xfa, 0x7b, 0x3e, 0xb5, 0xe1, 0x9a, 0x4c, 0xaf, 0xa3, 0x78, 0x56, 0xc8, 0xf7, 0x6c,
|
0x99, 0xff, 0x59, 0x03, 0xdd, 0xfa, 0x73, 0x7e, 0xb5, 0xe1, 0x3f, 0x99, 0x62, 0x47, 0xf1, 0xae,
|
||||||
0xf6, 0x0a, 0xfc, 0x11, 0xae, 0x8b, 0x0f, 0x4a, 0x4b, 0x0a, 0x69, 0xb3, 0x5e, 0x8e, 0x85, 0x6e,
|
0x90, 0xef, 0xdd, 0xec, 0x15, 0xf8, 0x3d, 0xfc, 0x2f, 0x3e, 0x2c, 0x2d, 0x29, 0xa4, 0xcd, 0x7a,
|
||||||
0xc6, 0x42, 0x77, 0xf1, 0x17, 0x6b, 0xde, 0x17, 0x3b, 0x3a, 0xbc, 0x1b, 0xb3, 0x77, 0xff, 0x07,
|
0x39, 0x56, 0xba, 0x19, 0x2b, 0xdd, 0xc5, 0x5f, 0xae, 0x79, 0x5f, 0x6e, 0xfc, 0x45, 0x83, 0x6b,
|
||||||
0xec, 0x39, 0xfc, 0x51, 0x04, 0xde, 0x19, 0xa1, 0x47, 0x50, 0x96, 0x5e, 0x51, 0xb4, 0x25, 0x72,
|
0xb3, 0x77, 0xff, 0x0b, 0xec, 0x39, 0xfc, 0x5e, 0x04, 0xde, 0x21, 0xa1, 0x07, 0x50, 0x96, 0x5e,
|
||||||
0xa8, 0x0f, 0xb9, 0xb1, 0x9d, 0x83, 0x32, 0x1f, 0xb5, 0xa0, 0xa2, 0x3e, 0x3d, 0x68, 0x57, 0x04,
|
0x53, 0xb4, 0x25, 0x72, 0xa8, 0x0f, 0xba, 0xb1, 0x9d, 0x83, 0x32, 0x1f, 0xb5, 0xa0, 0xa2, 0x3e,
|
||||||
0x66, 0x9e, 0x45, 0x43, 0xcf, 0x9f, 0x60, 0x7e, 0x44, 0x40, 0xea, 0x5d, 0x12, 0x02, 0x6a, 0x2b,
|
0x41, 0x68, 0x57, 0x04, 0x66, 0x9e, 0x47, 0x43, 0xcf, 0x9f, 0x60, 0x7e, 0x44, 0x40, 0xea, 0x61,
|
||||||
0x95, 0x10, 0x48, 0x37, 0x39, 0x4f, 0x60, 0x43, 0xee, 0x1a, 0xd0, 0x94, 0xa7, 0xdc, 0x9a, 0x18,
|
0x12, 0x02, 0x6a, 0x4b, 0x95, 0x10, 0x48, 0x37, 0x3b, 0x8f, 0x60, 0x43, 0xee, 0x1e, 0xd0, 0x94,
|
||||||
0x3b, 0x79, 0x30, 0xf3, 0xd1, 0x39, 0x6c, 0xe5, 0x5d, 0x74, 0x74, 0x53, 0xc4, 0xcf, 0x78, 0x0d,
|
0xa7, 0xdc, 0xa2, 0x18, 0x3b, 0x79, 0x30, 0xf3, 0xd1, 0x39, 0x6c, 0xe5, 0x5d, 0x78, 0x74, 0x5d,
|
||||||
0x8d, 0xbd, 0x79, 0xd3, 0x22, 0xad, 0x35, 0x27, 0xad, 0x35, 0x3f, 0xed, 0xcc, 0x2b, 0xe5, 0xf0,
|
0xc4, 0xcf, 0x78, 0x15, 0x8d, 0xbd, 0x79, 0xd3, 0x22, 0xad, 0x35, 0x27, 0xad, 0x35, 0x3f, 0xed,
|
||||||
0xeb, 0x96, 0x5b, 0x53, 0x68, 0x5f, 0x56, 0x98, 0x5b, 0xf1, 0x06, 0x5e, 0x14, 0x22, 0xfc, 0x94,
|
0xcc, 0x2b, 0xe5, 0xf0, 0xeb, 0x96, 0x5b, 0x53, 0x68, 0x5f, 0x56, 0x98, 0x5b, 0xf1, 0x06, 0x5e,
|
||||||
0xbb, 0x88, 0xc4, 0xcf, 0x54, 0xcf, 0x94, 0xf8, 0x99, 0x6e, 0x38, 0x9e, 0x6d, 0xbe, 0x2a, 0x9b,
|
0x14, 0x22, 0xfc, 0x94, 0xbb, 0x89, 0xc4, 0xcf, 0x54, 0xef, 0x94, 0xf8, 0x99, 0x6e, 0x3c, 0x9e,
|
||||||
0xbc, 0xf7, 0x7e, 0x1c, 0xfd, 0xbc, 0x5e, 0xe3, 0x8d, 0xf5, 0xfd, 0x5f, 0x01, 0x00, 0x00, 0xff,
|
0x6c, 0xbe, 0x28, 0x9b, 0xbc, 0x07, 0x7f, 0x18, 0xfd, 0xbc, 0x5c, 0xe3, 0x0d, 0xf6, 0xdd, 0x9f,
|
||||||
0xff, 0x24, 0xc8, 0xbf, 0xca, 0x94, 0x0b, 0x00, 0x00,
|
0x01, 0x00, 0x00, 0xff, 0xff, 0x88, 0x5d, 0x20, 0xc1, 0x9c, 0x0b, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ message SetReceiveMessageOptResp{
|
|||||||
|
|
||||||
message GetReceiveMessageOptReq{
|
message GetReceiveMessageOptReq{
|
||||||
string FromUserID = 1;
|
string FromUserID = 1;
|
||||||
repeated string conversationId = 2;
|
repeated string conversationIdList = 2;
|
||||||
string operationID = 3;
|
string operationID = 3;
|
||||||
string OpUserID = 4;
|
string OpUserID = 4;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user