mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
add management interface
This commit is contained in:
parent
68eaa51ebe
commit
66c1b19696
@ -117,6 +117,7 @@ push:
|
||||
accessID: 111
|
||||
secretKey: 111
|
||||
|
||||
appmanageruid: "openIM123456"
|
||||
secret: tuoyun
|
||||
|
||||
multiloginpolicy:
|
||||
|
@ -11,10 +11,11 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
/*
|
||||
type paramsAddBlackList struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
UID string `json:"uid" binding:"required"`
|
||||
}
|
||||
}*/
|
||||
|
||||
func AddBlacklist(c *gin.Context) {
|
||||
log.Info("", "", "api add blacklist init ....")
|
||||
@ -32,6 +33,7 @@ func AddBlacklist(c *gin.Context) {
|
||||
Uid: params.UID,
|
||||
OperationID: params.OperationID,
|
||||
Token: c.Request.Header.Get("token"),
|
||||
OwnerUid: params.OwnerUid,
|
||||
}
|
||||
log.Info(req.Token, req.OperationID, "api add blacklist is server:userID=%s", req.Uid)
|
||||
RpcResp, err := client.AddBlacklist(context.Background(), req)
|
||||
|
@ -11,18 +11,54 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
type paramsImportFriendReq struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
UID string `json:"uid" binding:"required"`
|
||||
OwnerUid string `json:"ownerUid"`
|
||||
}
|
||||
|
||||
type paramsAddFriend struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
UID string `json:"uid" binding:"required"`
|
||||
ReqMessage string `json:"reqMessage"`
|
||||
}
|
||||
|
||||
//
|
||||
func ImportFriend(c *gin.Context) {
|
||||
log.Info("", "", "ImportFriend init ....")
|
||||
|
||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||
client := pbFriend.NewFriendClient(etcdConn)
|
||||
|
||||
params := paramsImportFriendReq{}
|
||||
if err := c.BindJSON(¶ms); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
req := &pbFriend.ImportFriendReq{
|
||||
Uid: params.UID,
|
||||
OperationID: params.OperationID,
|
||||
OwnerUid: params.OwnerUid,
|
||||
Token: c.Request.Header.Get("token"),
|
||||
}
|
||||
log.Info(req.Token, req.OperationID, "api add friend is server")
|
||||
RpcResp, err := client.ImportFriend(context.Background(), req)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "err=%s,ImportFriend failed", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed"})
|
||||
return
|
||||
}
|
||||
log.InfoByArgs("ImportFriend success,args=%s", RpcResp.String())
|
||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
||||
c.JSON(http.StatusOK, resp)
|
||||
log.InfoByArgs("ImportFriend success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
||||
}
|
||||
|
||||
func AddFriend(c *gin.Context) {
|
||||
log.Info("", "", "api add friend init ....")
|
||||
|
||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||
client := pbFriend.NewFriendClient(etcdConn)
|
||||
//defer etcdConn.Close()
|
||||
|
||||
params := paramsAddFriend{}
|
||||
if err := c.BindJSON(¶ms); err != nil {
|
||||
|
@ -15,6 +15,7 @@ import (
|
||||
type paramsSearchFriend struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
UID string `json:"uid" binding:"required"`
|
||||
OwnerUid string `json:"ownerUid"`
|
||||
}
|
||||
|
||||
func GetFriendsInfo(c *gin.Context) {
|
||||
|
204
src/api/manage/management_chat.go
Normal file
204
src/api/manage/management_chat.go
Normal file
@ -0,0 +1,204 @@
|
||||
/*
|
||||
** description("").
|
||||
** copyright('open-im,www.open-im.io').
|
||||
** author("fg,Gordon@tuoyun.net").
|
||||
** time(2021/9/15 15:23).
|
||||
*/
|
||||
package manage
|
||||
|
||||
import (
|
||||
"Open_IM/src/common/config"
|
||||
"Open_IM/src/common/constant"
|
||||
"Open_IM/src/common/log"
|
||||
"Open_IM/src/grpc-etcdv3/getcdv3"
|
||||
pbChat "Open_IM/src/proto/chat"
|
||||
"Open_IM/src/utils"
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-playground/validator/v10"
|
||||
"github.com/mitchellh/mapstructure"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var validate *validator.Validate
|
||||
|
||||
type paramsManagementSendMsg struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
SendID string `json:"sendID" binding:"required"`
|
||||
RecvID string `json:"recvID" binding:"required"`
|
||||
SenderNickName string `json:"senderNickName" `
|
||||
SenderFaceURL string `json:"senderFaceURL" `
|
||||
ForceList []string `json:"forceList" `
|
||||
Content map[string]interface{} `json:"content" binding:"required"`
|
||||
ContentType int32 `json:"contentType" binding:"required"`
|
||||
SessionType int32 `json:"sessionType" binding:"required"`
|
||||
}
|
||||
|
||||
func newUserSendMsgReq(token string, params *paramsManagementSendMsg) *pbChat.UserSendMsgReq {
|
||||
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:
|
||||
|
||||
}
|
||||
pbData := pbChat.UserSendMsgReq{
|
||||
ReqIdentifier: constant.WSSendMsg,
|
||||
Token: token,
|
||||
SendID: params.SendID,
|
||||
SenderNickName: params.SenderNickName,
|
||||
SenderFaceURL: params.SenderFaceURL,
|
||||
OperationID: params.OperationID,
|
||||
PlatformID: 0,
|
||||
SessionType: params.SessionType,
|
||||
MsgFrom: constant.UserMsgType,
|
||||
ContentType: params.ContentType,
|
||||
RecvID: params.RecvID,
|
||||
ForceList: params.ForceList,
|
||||
Content: newContent,
|
||||
ClientMsgID: utils.GetMsgID(params.SendID),
|
||||
}
|
||||
return &pbData
|
||||
}
|
||||
func init() {
|
||||
validate = validator.New()
|
||||
}
|
||||
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.Custom:
|
||||
data = CustomElem{}
|
||||
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")
|
||||
if !utils.VerifyToken(token, config.Config.AppManagerUid) {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err,not authorized", "sendTime": 0, "MsgID": ""})
|
||||
return
|
||||
}
|
||||
|
||||
log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params)
|
||||
|
||||
pbData := newUserSendMsgReq(token, ¶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, _ := client.UserSendMsg(context.Background(), pbData)
|
||||
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 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 MergeElem struct {
|
||||
// Title string `json:"title"`
|
||||
// AbstractList []string `json:"abstractList"`
|
||||
// MultiMessage []*MsgStruct `json:"multiMessage"`
|
||||
//}
|
||||
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"`
|
||||
}
|
||||
|
||||
//type QuoteElem struct {
|
||||
// Text string `json:"text"`
|
||||
// QuoteMessage *MsgStruct `json:"quoteMessage"`
|
||||
//}
|
78
src/api/manage/management_user.go
Normal file
78
src/api/manage/management_user.go
Normal file
@ -0,0 +1,78 @@
|
||||
/*
|
||||
** description("").
|
||||
** copyright('open-im,www.open-im.io').
|
||||
** author("fg,Gordon@tuoyun.net").
|
||||
** time(2021/9/15 10:28).
|
||||
*/
|
||||
package manage
|
||||
|
||||
import (
|
||||
"Open_IM/src/common/config"
|
||||
"Open_IM/src/common/log"
|
||||
"Open_IM/src/grpc-etcdv3/getcdv3"
|
||||
pbUser "Open_IM/src/proto/user"
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type paramsDeleteUsers struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
DeleteUidList []string `json:"deleteUidList" binding:"required"`
|
||||
}
|
||||
type paramsGetAllUsersUid struct {
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
}
|
||||
|
||||
func DeleteUser(c *gin.Context) {
|
||||
params := paramsDeleteUsers{}
|
||||
if err := c.BindJSON(¶ms); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
log.InfoByKv("DeleteUser req come here", params.OperationID, "DeleteUidList", params.DeleteUidList)
|
||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
||||
client := pbUser.NewUserClient(etcdConn)
|
||||
//defer etcdConn.Close()
|
||||
|
||||
req := &pbUser.DeleteUsersReq{
|
||||
OperationID: params.OperationID,
|
||||
DeleteUidList: params.DeleteUidList,
|
||||
Token: c.Request.Header.Get("token"),
|
||||
}
|
||||
RpcResp, err := client.DeleteUsers(context.Background(), req)
|
||||
if err != nil {
|
||||
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"})
|
||||
return
|
||||
}
|
||||
log.InfoByKv("call delete user rpc server is success", params.OperationID, "resp args", RpcResp.String())
|
||||
resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList}
|
||||
c.JSON(http.StatusOK, resp)
|
||||
}
|
||||
func GetAllUsersUid(c *gin.Context) {
|
||||
params := paramsGetAllUsersUid{}
|
||||
if err := c.BindJSON(¶ms); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||
return
|
||||
}
|
||||
log.InfoByKv("GetAllUsersUid req come here", params.OperationID)
|
||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName)
|
||||
client := pbUser.NewUserClient(etcdConn)
|
||||
//defer etcdConn.Close()
|
||||
|
||||
req := &pbUser.GetAllUsersUidReq{
|
||||
OperationID: params.OperationID,
|
||||
Token: c.Request.Header.Get("token"),
|
||||
}
|
||||
RpcResp, err := client.GetAllUsersUid(context.Background(), req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error(), "uidList": []string{}})
|
||||
return
|
||||
}
|
||||
log.InfoByKv("call GetAllUsersUid rpc server is success", params.OperationID, "resp args", RpcResp.String())
|
||||
resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "uidList": RpcResp.UidList}
|
||||
c.JSON(http.StatusOK, resp)
|
||||
|
||||
}
|
@ -5,6 +5,7 @@ import (
|
||||
apiChat "Open_IM/src/api/chat"
|
||||
"Open_IM/src/api/friend"
|
||||
"Open_IM/src/api/group"
|
||||
"Open_IM/src/api/manage"
|
||||
apiThird "Open_IM/src/api/third"
|
||||
"Open_IM/src/api/user"
|
||||
"Open_IM/src/utils"
|
||||
@ -47,6 +48,7 @@ func main() {
|
||||
friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse)
|
||||
friendRouterGroup.POST("/set_friend_comment", friend.SetFriendComment)
|
||||
friendRouterGroup.POST("/is_friend", friend.IsFriend)
|
||||
friendRouterGroup.POST("/import_friend", friend.ImportFriend)
|
||||
}
|
||||
//group related routing group
|
||||
groupRouterGroup := r.Group("/group")
|
||||
@ -84,6 +86,12 @@ func main() {
|
||||
chatGroup.POST("/pull_msg", apiChat.UserPullMsg)
|
||||
chatGroup.POST("/send_msg", apiChat.UserSendMsg)
|
||||
}
|
||||
managementGroup := r.Group("/manager")
|
||||
{
|
||||
managementGroup.POST("/delete_user", manage.DeleteUser)
|
||||
managementGroup.POST("/send_msg", manage.ManagementSendMsg)
|
||||
managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid)
|
||||
}
|
||||
|
||||
ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port")
|
||||
flag.Parse()
|
||||
|
@ -22,6 +22,7 @@ type paramsStruct struct {
|
||||
Birth string `json:"birth"`
|
||||
Email string `json:"email"`
|
||||
Ex string `json:"ex"`
|
||||
Uid string `json:"uid"`
|
||||
}
|
||||
|
||||
func UpdateUserInfo(c *gin.Context) {
|
||||
@ -46,6 +47,7 @@ func UpdateUserInfo(c *gin.Context) {
|
||||
Birth: params.Birth,
|
||||
Email: params.Email,
|
||||
Ex: params.Ex,
|
||||
Uid: params.Uid,
|
||||
}
|
||||
log.InfoByKv("api update user info is server", req.OperationID, req.Token)
|
||||
RpcResp, err := client.UpdateUserInfo(context.Background(), req)
|
||||
|
@ -124,8 +124,8 @@ type config struct {
|
||||
MsgToPush string `yaml:"msgToPush"`
|
||||
}
|
||||
}
|
||||
|
||||
Secret string
|
||||
AppManagerUid string
|
||||
Secret string
|
||||
|
||||
MultiLoginPolicy struct {
|
||||
OnlyOneTerminalAccess bool `yaml:"onlyOneTerminalAccess"`
|
||||
|
@ -30,6 +30,7 @@ const (
|
||||
Video = 104
|
||||
File = 105
|
||||
AtText = 106
|
||||
Custom = 110
|
||||
|
||||
SyncSenderMsg = 108
|
||||
//SysRelated
|
||||
|
@ -30,6 +30,17 @@ func UserRegister(pb *pbAuth.UserRegisterReq) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func UserDelete(uid string) error {
|
||||
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = dbConn.Table("user").Where("uid=?", uid).Delete(User{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func FindUserByUID(uid string) (*User, error) {
|
||||
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
|
||||
if err != nil {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -40,6 +40,16 @@ message AddFriendReq{
|
||||
}
|
||||
|
||||
|
||||
message ImportFriendReq{
|
||||
string uid = 1;
|
||||
string OperationID = 2;
|
||||
string Token = 3;
|
||||
string OwnerUid = 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
message GetFriendApplyReq{
|
||||
string OperationID = 1;
|
||||
string Token = 2;
|
||||
@ -91,6 +101,7 @@ message AddBlacklistReq{
|
||||
string uid = 1;
|
||||
string OperationID = 2;
|
||||
string Token = 3;
|
||||
string OwnerUid = 4;
|
||||
}
|
||||
|
||||
|
||||
@ -167,4 +178,5 @@ service friend{
|
||||
rpc deleteFriend(DeleteFriendReq) returns(CommonResp);
|
||||
rpc addFriendResponse(AddFriendResponseReq) returns(CommonResp);
|
||||
rpc setFriendComment(SetFriendCommentReq) returns(CommonResp);
|
||||
rpc ImportFriend(ImportFriendReq) returns(CommonResp);
|
||||
}
|
@ -1,16 +1,15 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: user/user.proto
|
||||
|
||||
package user
|
||||
package user // import "user"
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
|
||||
import (
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
context "golang.org/x/net/context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -22,11 +21,11 @@ var _ = math.Inf
|
||||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
|
||||
type CommonResp struct {
|
||||
ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"`
|
||||
ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"`
|
||||
ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"`
|
||||
ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -36,17 +35,16 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
|
||||
func (m *CommonResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*CommonResp) ProtoMessage() {}
|
||||
func (*CommonResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_ed89022014131a74, []int{0}
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{0}
|
||||
}
|
||||
|
||||
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CommonResp.Unmarshal(m, b)
|
||||
}
|
||||
func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *CommonResp) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CommonResp.Merge(m, src)
|
||||
func (dst *CommonResp) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CommonResp.Merge(dst, src)
|
||||
}
|
||||
func (m *CommonResp) XXX_Size() int {
|
||||
return xxx_messageInfo_CommonResp.Size(m)
|
||||
@ -71,10 +69,202 @@ func (m *CommonResp) GetErrorMsg() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
type DeleteUsersResp struct {
|
||||
CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"`
|
||||
FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} }
|
||||
func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteUsersResp) ProtoMessage() {}
|
||||
func (*DeleteUsersResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{1}
|
||||
}
|
||||
func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteUsersResp.Merge(dst, src)
|
||||
}
|
||||
func (m *DeleteUsersResp) XXX_Size() int {
|
||||
return xxx_messageInfo_DeleteUsersResp.Size(m)
|
||||
}
|
||||
func (m *DeleteUsersResp) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo
|
||||
|
||||
func (m *DeleteUsersResp) GetCommonResp() *CommonResp {
|
||||
if m != nil {
|
||||
return m.CommonResp
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *DeleteUsersResp) GetFailedUidList() []string {
|
||||
if m != nil {
|
||||
return m.FailedUidList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type DeleteUsersReq struct {
|
||||
DeleteUidList []string `protobuf:"bytes,2,rep,name=deleteUidList" json:"deleteUidList,omitempty"`
|
||||
Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} }
|
||||
func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteUsersReq) ProtoMessage() {}
|
||||
func (*DeleteUsersReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{2}
|
||||
}
|
||||
func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteUsersReq.Merge(dst, src)
|
||||
}
|
||||
func (m *DeleteUsersReq) XXX_Size() int {
|
||||
return xxx_messageInfo_DeleteUsersReq.Size(m)
|
||||
}
|
||||
func (m *DeleteUsersReq) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo
|
||||
|
||||
func (m *DeleteUsersReq) GetDeleteUidList() []string {
|
||||
if m != nil {
|
||||
return m.DeleteUidList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *DeleteUsersReq) GetToken() string {
|
||||
if m != nil {
|
||||
return m.Token
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *DeleteUsersReq) GetOperationID() string {
|
||||
if m != nil {
|
||||
return m.OperationID
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type GetAllUsersUidReq struct {
|
||||
Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} }
|
||||
func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetAllUsersUidReq) ProtoMessage() {}
|
||||
func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{3}
|
||||
}
|
||||
func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetAllUsersUidReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetAllUsersUidReq.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *GetAllUsersUidReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetAllUsersUidReq.Merge(dst, src)
|
||||
}
|
||||
func (m *GetAllUsersUidReq) XXX_Size() int {
|
||||
return xxx_messageInfo_GetAllUsersUidReq.Size(m)
|
||||
}
|
||||
func (m *GetAllUsersUidReq) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetAllUsersUidReq.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetAllUsersUidReq proto.InternalMessageInfo
|
||||
|
||||
func (m *GetAllUsersUidReq) GetToken() string {
|
||||
if m != nil {
|
||||
return m.Token
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *GetAllUsersUidReq) GetOperationID() string {
|
||||
if m != nil {
|
||||
return m.OperationID
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type GetAllUsersUidResp struct {
|
||||
CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"`
|
||||
UidList []string `protobuf:"bytes,2,rep,name=uidList" json:"uidList,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} }
|
||||
func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetAllUsersUidResp) ProtoMessage() {}
|
||||
func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{4}
|
||||
}
|
||||
func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetAllUsersUidResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetAllUsersUidResp.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *GetAllUsersUidResp) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetAllUsersUidResp.Merge(dst, src)
|
||||
}
|
||||
func (m *GetAllUsersUidResp) XXX_Size() int {
|
||||
return xxx_messageInfo_GetAllUsersUidResp.Size(m)
|
||||
}
|
||||
func (m *GetAllUsersUidResp) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetAllUsersUidResp.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetAllUsersUidResp proto.InternalMessageInfo
|
||||
|
||||
func (m *GetAllUsersUidResp) GetCommonResp() *CommonResp {
|
||||
if m != nil {
|
||||
return m.CommonResp
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *GetAllUsersUidResp) GetUidList() []string {
|
||||
if m != nil {
|
||||
return m.UidList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type GetUserInfoReq struct {
|
||||
UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"`
|
||||
Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"`
|
||||
UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"`
|
||||
Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -84,17 +274,16 @@ func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} }
|
||||
func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetUserInfoReq) ProtoMessage() {}
|
||||
func (*GetUserInfoReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_ed89022014131a74, []int{1}
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{5}
|
||||
}
|
||||
|
||||
func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetUserInfoReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetUserInfoReq.Merge(m, src)
|
||||
func (dst *GetUserInfoReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetUserInfoReq.Merge(dst, src)
|
||||
}
|
||||
func (m *GetUserInfoReq) XXX_Size() int {
|
||||
return xxx_messageInfo_GetUserInfoReq.Size(m)
|
||||
@ -127,9 +316,9 @@ func (m *GetUserInfoReq) GetOperationID() string {
|
||||
}
|
||||
|
||||
type GetUserInfoResp struct {
|
||||
ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"`
|
||||
ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"`
|
||||
Data []*UserInfo `protobuf:"bytes,3,rep,name=Data,proto3" json:"Data,omitempty"`
|
||||
ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"`
|
||||
ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"`
|
||||
Data []*UserInfo `protobuf:"bytes,3,rep,name=Data" json:"Data,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -139,17 +328,16 @@ func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} }
|
||||
func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetUserInfoResp) ProtoMessage() {}
|
||||
func (*GetUserInfoResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_ed89022014131a74, []int{2}
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{6}
|
||||
}
|
||||
|
||||
func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetUserInfoResp) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetUserInfoResp.Merge(m, src)
|
||||
func (dst *GetUserInfoResp) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetUserInfoResp.Merge(dst, src)
|
||||
}
|
||||
func (m *GetUserInfoResp) XXX_Size() int {
|
||||
return xxx_messageInfo_GetUserInfoResp.Size(m)
|
||||
@ -182,14 +370,14 @@ func (m *GetUserInfoResp) GetData() []*UserInfo {
|
||||
}
|
||||
|
||||
type UserInfo struct {
|
||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"`
|
||||
Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"`
|
||||
Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"`
|
||||
Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"`
|
||||
Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"`
|
||||
Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"`
|
||||
Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
|
||||
Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"`
|
||||
Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"`
|
||||
Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"`
|
||||
Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"`
|
||||
Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"`
|
||||
Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -199,17 +387,16 @@ func (m *UserInfo) Reset() { *m = UserInfo{} }
|
||||
func (m *UserInfo) String() string { return proto.CompactTextString(m) }
|
||||
func (*UserInfo) ProtoMessage() {}
|
||||
func (*UserInfo) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_ed89022014131a74, []int{3}
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{7}
|
||||
}
|
||||
|
||||
func (m *UserInfo) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UserInfo.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *UserInfo) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UserInfo.Merge(m, src)
|
||||
func (dst *UserInfo) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UserInfo.Merge(dst, src)
|
||||
}
|
||||
func (m *UserInfo) XXX_Size() int {
|
||||
return xxx_messageInfo_UserInfo.Size(m)
|
||||
@ -277,8 +464,8 @@ func (m *UserInfo) GetEx() string {
|
||||
}
|
||||
|
||||
type LogoutReq struct {
|
||||
OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"`
|
||||
Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"`
|
||||
Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -288,17 +475,16 @@ func (m *LogoutReq) Reset() { *m = LogoutReq{} }
|
||||
func (m *LogoutReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*LogoutReq) ProtoMessage() {}
|
||||
func (*LogoutReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_ed89022014131a74, []int{4}
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{8}
|
||||
}
|
||||
|
||||
func (m *LogoutReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_LogoutReq.Unmarshal(m, b)
|
||||
}
|
||||
func (m *LogoutReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_LogoutReq.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *LogoutReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_LogoutReq.Merge(m, src)
|
||||
func (dst *LogoutReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_LogoutReq.Merge(dst, src)
|
||||
}
|
||||
func (m *LogoutReq) XXX_Size() int {
|
||||
return xxx_messageInfo_LogoutReq.Size(m)
|
||||
@ -324,15 +510,16 @@ func (m *LogoutReq) GetToken() string {
|
||||
}
|
||||
|
||||
type UpdateUserInfoReq struct {
|
||||
Icon string `protobuf:"bytes,1,opt,name=icon,proto3" json:"icon,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Gender int32 `protobuf:"varint,3,opt,name=gender,proto3" json:"gender,omitempty"`
|
||||
Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"`
|
||||
Birth string `protobuf:"bytes,5,opt,name=birth,proto3" json:"birth,omitempty"`
|
||||
Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
|
||||
Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"`
|
||||
Token string `protobuf:"bytes,8,opt,name=token,proto3" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,9,opt,name=OperationID,proto3" json:"OperationID,omitempty"`
|
||||
Icon string `protobuf:"bytes,1,opt,name=icon" json:"icon,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
|
||||
Gender int32 `protobuf:"varint,3,opt,name=gender" json:"gender,omitempty"`
|
||||
Mobile string `protobuf:"bytes,4,opt,name=mobile" json:"mobile,omitempty"`
|
||||
Birth string `protobuf:"bytes,5,opt,name=birth" json:"birth,omitempty"`
|
||||
Email string `protobuf:"bytes,6,opt,name=email" json:"email,omitempty"`
|
||||
Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"`
|
||||
Token string `protobuf:"bytes,8,opt,name=token" json:"token,omitempty"`
|
||||
OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"`
|
||||
Uid string `protobuf:"bytes,10,opt,name=Uid" json:"Uid,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -342,17 +529,16 @@ func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} }
|
||||
func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateUserInfoReq) ProtoMessage() {}
|
||||
func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_ed89022014131a74, []int{5}
|
||||
return fileDescriptor_user_9367ac00c24112e8, []int{9}
|
||||
}
|
||||
|
||||
func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *UpdateUserInfoReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateUserInfoReq.Merge(m, src)
|
||||
func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src)
|
||||
}
|
||||
func (m *UpdateUserInfoReq) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateUserInfoReq.Size(m)
|
||||
@ -426,8 +612,19 @@ func (m *UpdateUserInfoReq) GetOperationID() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *UpdateUserInfoReq) GetUid() string {
|
||||
if m != nil {
|
||||
return m.Uid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*CommonResp)(nil), "user.CommonResp")
|
||||
proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp")
|
||||
proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq")
|
||||
proto.RegisterType((*GetAllUsersUidReq)(nil), "user.GetAllUsersUidReq")
|
||||
proto.RegisterType((*GetAllUsersUidResp)(nil), "user.GetAllUsersUidResp")
|
||||
proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq")
|
||||
proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp")
|
||||
proto.RegisterType((*UserInfo)(nil), "user.UserInfo")
|
||||
@ -435,67 +632,34 @@ func init() {
|
||||
proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq")
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("user/user.proto", fileDescriptor_ed89022014131a74)
|
||||
}
|
||||
|
||||
var fileDescriptor_ed89022014131a74 = []byte{
|
||||
// 416 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x53, 0x4d, 0x8b, 0xd4, 0x40,
|
||||
0x10, 0xa5, 0x27, 0x1f, 0x9b, 0x54, 0x20, 0xbb, 0x16, 0xab, 0x36, 0x83, 0x48, 0xc8, 0x29, 0xa7,
|
||||
0x15, 0xd6, 0x9b, 0x7b, 0x73, 0x06, 0x65, 0x60, 0x45, 0x08, 0xec, 0xc5, 0x5b, 0xc6, 0x94, 0x99,
|
||||
0xe0, 0x24, 0x1d, 0x3b, 0x3d, 0x30, 0x37, 0xff, 0x92, 0xff, 0xc8, 0xbf, 0x22, 0xdd, 0xc9, 0x4c,
|
||||
0x32, 0x33, 0xd1, 0x8b, 0x97, 0x50, 0xef, 0x75, 0xa8, 0xaa, 0xf7, 0xaa, 0x0a, 0xae, 0x77, 0x2d,
|
||||
0xc9, 0x37, 0xfa, 0x73, 0xd7, 0x48, 0xa1, 0x04, 0xda, 0x3a, 0x8e, 0x3f, 0x00, 0x2c, 0x44, 0x55,
|
||||
0x89, 0x3a, 0xa5, 0xb6, 0xc1, 0x57, 0xe0, 0x93, 0x94, 0x42, 0x2e, 0x44, 0x4e, 0x9c, 0x45, 0x2c,
|
||||
0x71, 0xd2, 0x81, 0xc0, 0x39, 0x78, 0x06, 0x7c, 0x6a, 0x0b, 0x3e, 0x8b, 0x58, 0xe2, 0xa7, 0x47,
|
||||
0x1c, 0x6f, 0x20, 0xfc, 0x48, 0xea, 0xa9, 0x25, 0xb9, 0xaa, 0xbf, 0x89, 0x94, 0x7e, 0xe0, 0x6b,
|
||||
0x00, 0x5d, 0x61, 0xb5, 0x7c, 0x2c, 0x5b, 0xc5, 0x59, 0x64, 0x25, 0x7e, 0x3a, 0x62, 0xf0, 0x16,
|
||||
0x1c, 0x25, 0xbe, 0x53, 0xdd, 0xa7, 0xea, 0x00, 0x46, 0x10, 0x7c, 0x6e, 0x48, 0x66, 0xaa, 0x14,
|
||||
0xf5, 0x6a, 0xc9, 0x2d, 0xf3, 0x36, 0xa6, 0x62, 0x01, 0xd7, 0x27, 0x95, 0xfe, 0xa7, 0x6d, 0x8c,
|
||||
0xc1, 0x5e, 0x66, 0x2a, 0xe3, 0x56, 0x64, 0x25, 0xc1, 0x7d, 0x78, 0x67, 0xfc, 0x39, 0xe6, 0x36,
|
||||
0x6f, 0xf1, 0x2f, 0x06, 0xde, 0x81, 0xc2, 0x1b, 0xb0, 0x76, 0x65, 0x6e, 0x8a, 0xf8, 0xa9, 0x0e,
|
||||
0x11, 0xc1, 0xae, 0xb3, 0x8a, 0xfa, 0xd4, 0x26, 0xd6, 0x5c, 0xf9, 0x55, 0xd4, 0x7d, 0xfb, 0x26,
|
||||
0xc6, 0x17, 0xe0, 0x16, 0x54, 0xe7, 0x24, 0xb9, 0x6d, 0x3a, 0xec, 0x91, 0xe6, 0x2b, 0xb1, 0x2e,
|
||||
0xb7, 0xc4, 0x1d, 0xf3, 0x77, 0x8f, 0xb4, 0x3f, 0xeb, 0x52, 0xaa, 0x0d, 0x77, 0x3b, 0x7f, 0x0c,
|
||||
0xd0, 0x2c, 0x55, 0x59, 0xb9, 0xe5, 0x57, 0x1d, 0x6b, 0x00, 0x86, 0x30, 0xa3, 0x3d, 0xf7, 0x0c,
|
||||
0x35, 0xa3, 0x7d, 0xbc, 0x00, 0xff, 0x51, 0x14, 0x62, 0xa7, 0xf4, 0x20, 0xce, 0x2c, 0x65, 0x17,
|
||||
0x96, 0x4e, 0x8f, 0x22, 0xfe, 0xcd, 0xe0, 0xd9, 0x53, 0x93, 0x67, 0x8a, 0xc6, 0x63, 0x3d, 0x48,
|
||||
0x63, 0x23, 0x69, 0x53, 0x16, 0x0c, 0x72, 0xad, 0xbf, 0xc8, 0xb5, 0xa7, 0xe5, 0x3a, 0x93, 0x72,
|
||||
0xdd, 0x4b, 0xb9, 0x57, 0x07, 0xb9, 0x43, 0xff, 0xde, 0x3f, 0x56, 0xc9, 0xbf, 0xd0, 0x7d, 0xff,
|
||||
0x13, 0xcc, 0x11, 0xe0, 0x3b, 0x08, 0x8a, 0x61, 0xa5, 0xf0, 0xb6, 0x5b, 0x83, 0xd3, 0x7d, 0x9e,
|
||||
0x3f, 0x9f, 0x60, 0xdb, 0x06, 0x1f, 0x20, 0x3c, 0x35, 0x09, 0x5f, 0xf6, 0x5b, 0x74, 0x6e, 0xdd,
|
||||
0xfc, 0xa6, 0x7b, 0x18, 0xee, 0xed, 0x7d, 0xf0, 0xc5, 0xd7, 0xd4, 0x83, 0xfe, 0xac, 0x5d, 0x73,
|
||||
0x97, 0x6f, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x6d, 0x34, 0xa2, 0xaa, 0x03, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ context.Context
|
||||
var _ grpc.ClientConnInterface
|
||||
var _ grpc.ClientConn
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
const _ = grpc.SupportPackageIsVersion6
|
||||
const _ = grpc.SupportPackageIsVersion4
|
||||
|
||||
// Client API for User service
|
||||
|
||||
// UserClient is the client API for User service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
|
||||
type UserClient interface {
|
||||
GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error)
|
||||
UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error)
|
||||
DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error)
|
||||
GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error)
|
||||
}
|
||||
|
||||
type userClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
cc *grpc.ClientConn
|
||||
}
|
||||
|
||||
func NewUserClient(cc grpc.ClientConnInterface) UserClient {
|
||||
func NewUserClient(cc *grpc.ClientConn) UserClient {
|
||||
return &userClient{cc}
|
||||
}
|
||||
|
||||
func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) {
|
||||
out := new(GetUserInfoResp)
|
||||
err := c.cc.Invoke(ctx, "/user.user/getUserInfo", in, out, opts...)
|
||||
err := grpc.Invoke(ctx, "/user.user/getUserInfo", in, out, c.cc, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -504,28 +668,38 @@ func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts .
|
||||
|
||||
func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) {
|
||||
out := new(CommonResp)
|
||||
err := c.cc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, opts...)
|
||||
err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// UserServer is the server API for User service.
|
||||
func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) {
|
||||
out := new(DeleteUsersResp)
|
||||
err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) {
|
||||
out := new(GetAllUsersUidResp)
|
||||
err := grpc.Invoke(ctx, "/user.user/GetAllUsersUid", in, out, c.cc, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Server API for User service
|
||||
|
||||
type UserServer interface {
|
||||
GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error)
|
||||
UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error)
|
||||
}
|
||||
|
||||
// UnimplementedUserServer can be embedded to have forward compatible implementations.
|
||||
type UnimplementedUserServer struct {
|
||||
}
|
||||
|
||||
func (*UnimplementedUserServer) GetUserInfo(ctx context.Context, req *GetUserInfoReq) (*GetUserInfoResp, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented")
|
||||
}
|
||||
func (*UnimplementedUserServer) UpdateUserInfo(ctx context.Context, req *UpdateUserInfoReq) (*CommonResp, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateUserInfo not implemented")
|
||||
DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error)
|
||||
GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error)
|
||||
}
|
||||
|
||||
func RegisterUserServer(s *grpc.Server, srv UserServer) {
|
||||
@ -568,6 +742,42 @@ func _User_UpdateUserInfo_Handler(srv interface{}, ctx context.Context, dec func
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _User_DeleteUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(DeleteUsersReq)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(UserServer).DeleteUsers(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/user.user/DeleteUsers",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(UserServer).DeleteUsers(ctx, req.(*DeleteUsersReq))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetAllUsersUidReq)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(UserServer).GetAllUsersUid(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/user.user/GetAllUsersUid",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(UserServer).GetAllUsersUid(ctx, req.(*GetAllUsersUidReq))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
var _User_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "user.user",
|
||||
HandlerType: (*UserServer)(nil),
|
||||
@ -580,7 +790,56 @@ var _User_serviceDesc = grpc.ServiceDesc{
|
||||
MethodName: "UpdateUserInfo",
|
||||
Handler: _User_UpdateUserInfo_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DeleteUsers",
|
||||
Handler: _User_DeleteUsers_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetAllUsersUid",
|
||||
Handler: _User_GetAllUsersUid_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "user/user.proto",
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9367ac00c24112e8) }
|
||||
|
||||
var fileDescriptor_user_9367ac00c24112e8 = []byte{
|
||||
// 560 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40,
|
||||
0x10, 0x95, 0xed, 0x7c, 0x79, 0x22, 0x92, 0x74, 0x55, 0x60, 0x15, 0x21, 0x14, 0x59, 0x1c, 0x72,
|
||||
0x2a, 0x28, 0xdc, 0xe8, 0x09, 0x12, 0x51, 0x45, 0x14, 0x55, 0xb2, 0xe4, 0x0b, 0x27, 0x9c, 0xee,
|
||||
0x34, 0x5d, 0xe1, 0x78, 0x8d, 0xbd, 0x91, 0x7a, 0xe4, 0x27, 0xf1, 0xd7, 0xf8, 0x07, 0x68, 0xc7,
|
||||
0x71, 0xe2, 0xaf, 0x72, 0xa0, 0x17, 0x6b, 0xe7, 0xed, 0xfa, 0xbd, 0x7d, 0x33, 0xb3, 0x03, 0xe3,
|
||||
0x7d, 0x86, 0xe9, 0x5b, 0xf3, 0xb9, 0x48, 0x52, 0xa5, 0x15, 0xeb, 0x98, 0xb5, 0xf7, 0x19, 0x60,
|
||||
0xa9, 0x76, 0x3b, 0x15, 0xfb, 0x98, 0x25, 0xec, 0x15, 0xb8, 0x98, 0xa6, 0x2a, 0x5d, 0x2a, 0x81,
|
||||
0xdc, 0x9a, 0x59, 0xf3, 0xae, 0x7f, 0x02, 0xd8, 0x14, 0x06, 0x14, 0x7c, 0xcd, 0xb6, 0xdc, 0x9e,
|
||||
0x59, 0x73, 0xd7, 0x3f, 0xc6, 0x9e, 0x84, 0xf1, 0x0a, 0x23, 0xd4, 0x18, 0x64, 0x98, 0x66, 0x44,
|
||||
0xf6, 0x0e, 0xe0, 0xf6, 0x48, 0x4d, 0x6c, 0xc3, 0xc5, 0xe4, 0x82, 0x6e, 0x70, 0x92, 0xf4, 0x4b,
|
||||
0x67, 0xd8, 0x1b, 0x78, 0x76, 0x17, 0xca, 0x08, 0x45, 0x20, 0xc5, 0xb5, 0xcc, 0x34, 0xb7, 0x67,
|
||||
0xce, 0xdc, 0xf5, 0xab, 0xa0, 0x17, 0xc3, 0xa8, 0x22, 0xf5, 0xd3, 0xfc, 0x27, 0x72, 0xa4, 0xfa,
|
||||
0x5f, 0x05, 0x64, 0xe7, 0xd0, 0xd5, 0xea, 0x07, 0xc6, 0xdc, 0xa1, 0xbb, 0xe7, 0x01, 0x9b, 0xc1,
|
||||
0xf0, 0x26, 0xc1, 0x34, 0xd4, 0x52, 0xc5, 0xeb, 0x15, 0xef, 0xd0, 0x5e, 0x19, 0xf2, 0xbe, 0xc0,
|
||||
0xd9, 0x15, 0xea, 0x8f, 0x51, 0x44, 0x7a, 0x81, 0x14, 0x46, 0xf2, 0x48, 0x66, 0xd7, 0xc8, 0x54,
|
||||
0x89, 0x2c, 0x17, 0x2a, 0x43, 0xde, 0x77, 0x60, 0x75, 0xb2, 0xff, 0x4a, 0x15, 0x87, 0xfe, 0xbe,
|
||||
0x62, 0xb6, 0x08, 0xbd, 0x7b, 0x18, 0x5d, 0xa1, 0x36, 0xf4, 0xeb, 0xf8, 0x4e, 0x99, 0xbb, 0xbe,
|
||||
0x06, 0x30, 0x54, 0xeb, 0x15, 0x1d, 0xb7, 0xe8, 0x78, 0x09, 0x79, 0xdc, 0xcb, 0x4d, 0xd3, 0x4b,
|
||||
0x39, 0x31, 0x0a, 0xc6, 0x15, 0xa5, 0xa7, 0x34, 0x10, 0xf3, 0xa0, 0xb3, 0x0a, 0x75, 0xc8, 0x9d,
|
||||
0x99, 0x33, 0x1f, 0x2e, 0x46, 0xb9, 0xf9, 0x23, 0x37, 0xed, 0x79, 0xbf, 0x2d, 0x18, 0x14, 0x10,
|
||||
0x9b, 0x80, 0xb3, 0x97, 0x82, 0x44, 0x5c, 0xdf, 0x2c, 0x19, 0x83, 0x4e, 0x1c, 0xee, 0xf0, 0x40,
|
||||
0x4d, 0x6b, 0x83, 0xc9, 0x5b, 0x55, 0xd4, 0x9c, 0xd6, 0xec, 0x05, 0xf4, 0xb6, 0x18, 0x0b, 0x4c,
|
||||
0xa9, 0xda, 0x5d, 0xff, 0x10, 0x19, 0x7c, 0xa7, 0x36, 0x32, 0x42, 0xde, 0xa5, 0xd3, 0x87, 0xc8,
|
||||
0xe4, 0x67, 0x23, 0x53, 0x7d, 0xcf, 0x7b, 0x79, 0x7e, 0x28, 0x30, 0x28, 0xee, 0x42, 0x19, 0xf1,
|
||||
0x7e, 0x8e, 0x52, 0xc0, 0x46, 0x60, 0xe3, 0x03, 0x1f, 0x10, 0x64, 0xe3, 0x83, 0xb7, 0x04, 0xf7,
|
||||
0x5a, 0x6d, 0xd5, 0x5e, 0x9b, 0x42, 0xd4, 0x52, 0x6a, 0x35, 0x52, 0xda, 0x5e, 0x0a, 0xef, 0x8f,
|
||||
0x05, 0x67, 0x41, 0x22, 0xc2, 0xbc, 0xe5, 0x8b, 0xb2, 0x16, 0xd6, 0xac, 0x92, 0xb5, 0xb6, 0x14,
|
||||
0x9c, 0xec, 0x3a, 0x8f, 0xd8, 0xed, 0xb4, 0xdb, 0xed, 0xb6, 0xda, 0xed, 0x35, 0xed, 0xf6, 0x0b,
|
||||
0xbb, 0xa7, 0xfb, 0x0f, 0xfe, 0xd1, 0x4a, 0x6e, 0xd3, 0xf7, 0x04, 0x9c, 0x40, 0x0a, 0x0e, 0x79,
|
||||
0x31, 0x03, 0x29, 0x16, 0xbf, 0x6c, 0xa0, 0x09, 0xc5, 0x3e, 0xc0, 0x70, 0x7b, 0xea, 0x32, 0x76,
|
||||
0x9e, 0x77, 0x46, 0xb5, 0xc5, 0xa7, 0xcf, 0x5b, 0xd0, 0x2c, 0x61, 0x97, 0x30, 0xaa, 0xe6, 0x8d,
|
||||
0xbd, 0x3c, 0x34, 0x56, 0x3d, 0x9b, 0xd3, 0xc6, 0x73, 0x33, 0xc2, 0xa5, 0x39, 0x53, 0x08, 0x57,
|
||||
0x47, 0x4f, 0x21, 0x5c, 0x9f, 0x7d, 0x4b, 0x7a, 0x84, 0xa5, 0x67, 0x5e, 0x08, 0x37, 0x26, 0xc9,
|
||||
0x94, 0xb7, 0x6f, 0x64, 0xc9, 0xa7, 0xe1, 0x37, 0xd7, 0x6c, 0x5d, 0x9a, 0xcf, 0xa6, 0x47, 0x53,
|
||||
0xfb, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0x0f, 0x5a, 0xd9, 0xc8, 0x05, 0x00, 0x00,
|
||||
}
|
||||
|
@ -6,7 +6,25 @@ message CommonResp{
|
||||
int32 errorCode = 1;
|
||||
string errorMsg = 2;
|
||||
}
|
||||
message DeleteUsersResp{
|
||||
CommonResp commonResp = 1;
|
||||
repeated string failedUidList = 2;
|
||||
}
|
||||
message DeleteUsersReq{
|
||||
repeated string deleteUidList = 2;
|
||||
string token = 3;
|
||||
string OperationID = 4;
|
||||
}
|
||||
message GetAllUsersUidReq{
|
||||
string token = 2;
|
||||
string operationID = 3;
|
||||
|
||||
}
|
||||
message GetAllUsersUidResp{
|
||||
CommonResp commonResp = 1;
|
||||
repeated string uidList = 2;
|
||||
|
||||
}
|
||||
message GetUserInfoReq{
|
||||
repeated string userIDList = 1;
|
||||
string token = 2;
|
||||
@ -44,9 +62,12 @@ message UpdateUserInfoReq{
|
||||
string ex = 7;
|
||||
string token = 8;
|
||||
string OperationID = 9;
|
||||
string Uid = 10;
|
||||
}
|
||||
|
||||
service user {
|
||||
rpc getUserInfo(GetUserInfoReq) returns(GetUserInfoResp);
|
||||
rpc UpdateUserInfo(UpdateUserInfoReq) returns(CommonResp);
|
||||
rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp);
|
||||
rpc GetAllUsersUid(GetAllUsersUidReq)returns(GetAllUsersUidResp);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ func NewContentStructString(isDisplay int32, ID string, text string) string {
|
||||
c := Content{IsDisplay: isDisplay, ID: ID, Text: text}
|
||||
return c.contentToString()
|
||||
}
|
||||
|
||||
func (c *Content) contentToString() string {
|
||||
data, _ := json.Marshal(c)
|
||||
dataString := string(data)
|
||||
@ -62,6 +63,13 @@ type NotificationContent struct {
|
||||
DefaultTips string `json:"defaultTips"`
|
||||
Detail string `json:"detail"`
|
||||
}
|
||||
|
||||
func (c *NotificationContent) ContentToString() string {
|
||||
data, _ := json.Marshal(c)
|
||||
dataString := string(data)
|
||||
return dataString
|
||||
}
|
||||
|
||||
type KickGroupMemberApiReq struct {
|
||||
GroupID string `json:"groupID"`
|
||||
UidList []string `json:"uidList"`
|
||||
|
@ -17,7 +17,23 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl
|
||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil
|
||||
}
|
||||
err = im_mysql_model.InsertInToUserBlackList(claims.UID, req.Uid)
|
||||
|
||||
isMagagerFlag := 0
|
||||
tokenUid := claims.UID
|
||||
if tokenUid == config.Config.AppManagerUid {
|
||||
isMagagerFlag = 1
|
||||
}
|
||||
if isMagagerFlag == 0 {
|
||||
err = im_mysql_model.InsertInToUserBlackList(claims.UID, req.Uid)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error())
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil
|
||||
}
|
||||
log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid)
|
||||
return &pbFriend.CommonResp{}, nil
|
||||
}
|
||||
|
||||
err = im_mysql_model.InsertInToUserBlackList(req.OwnerUid, req.Uid)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error())
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil
|
||||
|
@ -51,3 +51,66 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
|
||||
}
|
||||
return &pbFriend.CommonResp{}, nil
|
||||
}
|
||||
|
||||
func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.CommonResp, error) {
|
||||
log.Info(req.Token, req.OperationID, "ImportFriendis server,userid=%s", req.OwnerUid)
|
||||
//Parse token, to find current user information
|
||||
claims, err := utils.ParseToken(req.Token)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil
|
||||
}
|
||||
if claims.UID != config.Config.AppManagerUid {
|
||||
log.Error(req.Token, req.OperationID, "not magager uid", claims.UID, config.Config.AppManagerUid)
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil
|
||||
}
|
||||
|
||||
if _, err = im_mysql_model.FindUserByUID(req.Uid); err != nil {
|
||||
log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend", req.Uid)
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil
|
||||
}
|
||||
|
||||
if _, err = im_mysql_model.FindUserByUID(req.OwnerUid); err != nil {
|
||||
log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend", req.OwnerUid)
|
||||
return &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil
|
||||
}
|
||||
|
||||
_, err = im_mysql_model.FindFriendRelationshipFromFriend(req.OwnerUid, req.Uid)
|
||||
|
||||
if err != nil {
|
||||
log.Error("", req.OperationID, err.Error())
|
||||
}
|
||||
//Establish two single friendship
|
||||
err = im_mysql_model.InsertToFriend(req.OwnerUid, req.Uid, 1)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error())
|
||||
}
|
||||
err = im_mysql_model.InsertToFriend(req.Uid, req.OwnerUid, 1)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error())
|
||||
}
|
||||
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: req.OwnerUid,
|
||||
RecvID: req.Uid,
|
||||
Content: content_struct.NewContentStructString(0, "", " add you as a friend."),
|
||||
SendTime: utils.GetCurrentTimestampBySecond(),
|
||||
MsgFrom: constant.UserMsgType, //Notification message identification
|
||||
ContentType: constant.AcceptFriendApplicationTip, //Add friend flag
|
||||
SessionType: constant.SingleChatType,
|
||||
OperationID: req.OperationID,
|
||||
})
|
||||
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: req.Uid,
|
||||
RecvID: req.OwnerUid,
|
||||
Content: content_struct.NewContentStructString(0, "", " add you as a friend."),
|
||||
SendTime: utils.GetCurrentTimestampBySecond(),
|
||||
MsgFrom: constant.UserMsgType, //Notification message identification
|
||||
ContentType: constant.AcceptFriendApplicationTip, //Add friend flag
|
||||
SessionType: constant.SingleChatType,
|
||||
OperationID: req.OperationID,
|
||||
})
|
||||
|
||||
return &pbFriend.CommonResp{}, nil
|
||||
}
|
||||
|
@ -7,7 +7,10 @@ import (
|
||||
"Open_IM/src/common/db/mysql_model/im_mysql_model"
|
||||
"Open_IM/src/common/log"
|
||||
"Open_IM/src/grpc-etcdv3/getcdv3"
|
||||
pbChat "Open_IM/src/proto/chat"
|
||||
pbGroup "Open_IM/src/proto/group"
|
||||
"Open_IM/src/push/content_struct"
|
||||
"Open_IM/src/push/logic"
|
||||
"Open_IM/src/utils"
|
||||
"context"
|
||||
"google.golang.org/grpc"
|
||||
@ -82,22 +85,30 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
}
|
||||
|
||||
//Add the group owner to the group first, otherwise the group creation will fail
|
||||
us, err := im_mysql_model.FindUserByUID(claims.UID)
|
||||
if err != nil {
|
||||
log.Error("", req.OperationID, "find userInfo failed", err.Error())
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
}
|
||||
err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Name, us.Icon, constant.GroupOwner)
|
||||
if err != nil {
|
||||
log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error())
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
isMagagerFlag := 0
|
||||
tokenUid := claims.UID
|
||||
if tokenUid == config.Config.AppManagerUid {
|
||||
isMagagerFlag = 1
|
||||
}
|
||||
|
||||
err = db.DB.AddGroupMember(groupId, claims.UID)
|
||||
if err != nil {
|
||||
log.Error("", "", "create mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error())
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
if isMagagerFlag == 0 {
|
||||
//Add the group owner to the group first, otherwise the group creation will fail
|
||||
us, err := im_mysql_model.FindUserByUID(claims.UID)
|
||||
if err != nil {
|
||||
log.Error("", req.OperationID, "find userInfo failed", err.Error())
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
}
|
||||
err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Name, us.Icon, constant.GroupOwner)
|
||||
if err != nil {
|
||||
log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error())
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
}
|
||||
|
||||
err = db.DB.AddGroupMember(groupId, claims.UID)
|
||||
if err != nil {
|
||||
log.Error("", "", "create mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error())
|
||||
return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil
|
||||
}
|
||||
}
|
||||
|
||||
//Binding group id and member id
|
||||
@ -116,17 +127,33 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
|
||||
log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error())
|
||||
}
|
||||
}
|
||||
////Push message when create group chat
|
||||
//logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
// SendID: claims.UID,
|
||||
// RecvID: groupId,
|
||||
// Content: content_struct.NewContentStructString(0, "", req.String()),
|
||||
// SendTime: utils.GetCurrentTimestampBySecond(),
|
||||
// MsgFrom: constant.SysMsgType, //Notification message identification
|
||||
// ContentType: constant.CreateGroupTip, //Add friend flag
|
||||
// SessionType: constant.GroupChatType,
|
||||
// OperationID: req.OperationID,
|
||||
//})
|
||||
|
||||
if isMagagerFlag == 1 {
|
||||
|
||||
//type NotificationContent struct {
|
||||
// IsDisplay int32 `json:"isDisplay"`
|
||||
// DefaultTips string `json:"defaultTips"`
|
||||
// Detail string `json:"detail"`
|
||||
//} n := NotificationContent{
|
||||
// IsDisplay: 1,
|
||||
// DefaultTips: "You have joined the group chat:" + createGroupResp.Data.GroupName,
|
||||
// Detail: createGroupResp.Data.GroupId,
|
||||
// }
|
||||
|
||||
////Push message when create group chat
|
||||
n := content_struct.NotificationContent{1, req.GroupName, groupId}
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: claims.UID,
|
||||
RecvID: groupId,
|
||||
Content: n.ContentToString(),
|
||||
SendTime: utils.GetCurrentTimestampByNano(),
|
||||
MsgFrom: constant.SysMsgType, //Notification message identification
|
||||
ContentType: constant.CreateGroupTip, //Add friend flag
|
||||
SessionType: constant.GroupChatType,
|
||||
OperationID: req.OperationID,
|
||||
})
|
||||
}
|
||||
|
||||
log.Info(req.Token, req.OperationID, "rpc create group success return")
|
||||
return &pbGroup.CreateGroupResp{GroupID: groupId}, nil
|
||||
}
|
||||
|
@ -2,7 +2,12 @@ package group
|
||||
|
||||
import (
|
||||
"Open_IM/src/common/config"
|
||||
"Open_IM/src/common/constant"
|
||||
"Open_IM/src/common/db"
|
||||
pbChat "Open_IM/src/proto/chat"
|
||||
"Open_IM/src/push/content_struct"
|
||||
"Open_IM/src/push/logic"
|
||||
"encoding/json"
|
||||
|
||||
imdb "Open_IM/src/common/db/mysql_model/im_mysql_model"
|
||||
"Open_IM/src/common/log"
|
||||
@ -59,7 +64,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
||||
}
|
||||
log.Info(claims.UID, req.OperationID, "recv req: ", req.String())
|
||||
|
||||
if !imdb.IsExistGroupMember(req.GroupID, claims.UID) {
|
||||
if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && claims.UID != config.Config.AppManagerUid {
|
||||
log.Error(req.Token, req.OperationID, "err= invite user not in group")
|
||||
return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil
|
||||
}
|
||||
@ -94,16 +99,6 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
||||
resp.Id2Result = append(resp.Id2Result, &resultNode)
|
||||
continue
|
||||
}
|
||||
/*
|
||||
err = imdb.InsertGroupRequest(req.GroupID, fromUserInfo.UID, fromUserInfo.Name, fromUserInfo.Icon, toUserInfo.UID, req.Reason, "invited", 1)
|
||||
if err != nil {
|
||||
log.Error(v, req.OperationID, "InsertGroupRequest failed, err: ", err.Error(), "params: ",
|
||||
req.GroupID, fromUserInfo.UID, fromUserInfo.Name, fromUserInfo.Icon, toUserInfo.UID, req.Reason)
|
||||
resultNode.Result = -1
|
||||
resp.Id2Result = append(resp.Id2Result, &resultNode)
|
||||
continue
|
||||
}
|
||||
*/
|
||||
|
||||
err = imdb.InsertGroupMember(req.GroupID, toUserInfo.UID, toUserInfo.Name, toUserInfo.Icon, 0)
|
||||
if err != nil {
|
||||
@ -122,22 +117,42 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
|
||||
}
|
||||
resp.ErrorCode = 0
|
||||
resp.ErrorMsg = "ok"
|
||||
/*
|
||||
var chatMsg pbChat.WSToMsgSvrChatMsg
|
||||
chatMsg.SendID = claims.UID
|
||||
chatMsg.RecvID = req.GroupID
|
||||
content, _ := json.Marshal(req)
|
||||
chatMsg.Content = string(content)
|
||||
chatMsg.SendTime = utils.GetCurrentTimestampBySecond()
|
||||
chatMsg.MsgFrom = constant.UserMsgType
|
||||
chatMsg.ContentType = constant.InviteUserToGroupTip
|
||||
chatMsg.SessionType = constant.GroupChatType
|
||||
logic.SendMsgByWS(&chatMsg)
|
||||
*/
|
||||
|
||||
if claims.UID == config.Config.AppManagerUid {
|
||||
var iu inviteUserToGroupReq
|
||||
iu.GroupID = req.GroupID
|
||||
iu.OperationID = req.OperationID
|
||||
iu.Reason = req.Reason
|
||||
iu.UidList = req.UidList
|
||||
n := content_struct.NotificationContent{1, req.GroupID, iu.ContentToString()}
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: claims.UID,
|
||||
RecvID: req.GroupID,
|
||||
Content: n.ContentToString(),
|
||||
SendTime: utils.GetCurrentTimestampByNano(),
|
||||
MsgFrom: constant.UserMsgType,
|
||||
ContentType: constant.InviteUserToGroupTip,
|
||||
SessionType: constant.GroupChatType,
|
||||
OperationID: req.OperationID,
|
||||
})
|
||||
}
|
||||
|
||||
return &resp, nil
|
||||
}
|
||||
|
||||
type inviteUserToGroupReq struct {
|
||||
GroupID string `json:"groupID"`
|
||||
UidList []string `json:"uidList"`
|
||||
Reason string `json:"reason"`
|
||||
OperationID string `json:"operationID"`
|
||||
}
|
||||
|
||||
func (c *inviteUserToGroupReq) ContentToString() string {
|
||||
data, _ := json.Marshal(c)
|
||||
dataString := string(data)
|
||||
return dataString
|
||||
}
|
||||
|
||||
func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) {
|
||||
claims, err := utils.ParseToken(req.Token)
|
||||
if err != nil {
|
||||
@ -209,6 +224,28 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr
|
||||
return &resp, nil
|
||||
}
|
||||
|
||||
type groupMemberFullInfo struct {
|
||||
GroupId string `json:"groupID"`
|
||||
UserId string `json:"userId"`
|
||||
Role int `json:"role"`
|
||||
JoinTime uint64 `json:"joinTime"`
|
||||
NickName string `json:"nickName"`
|
||||
FaceUrl string `json:"faceUrl"`
|
||||
}
|
||||
|
||||
type kickGroupMemberApiReq struct {
|
||||
GroupID string `json:"groupID"`
|
||||
UidListInfo []groupMemberFullInfo `json:"uidListInfo"`
|
||||
Reason string `json:"reason"`
|
||||
OperationID string `json:"operationID"`
|
||||
}
|
||||
|
||||
func (c *kickGroupMemberApiReq) ContentToString() string {
|
||||
data, _ := json.Marshal(c)
|
||||
dataString := string(data)
|
||||
return dataString
|
||||
}
|
||||
|
||||
func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) {
|
||||
claims, err := utils.ParseToken(req.Token)
|
||||
if err != nil {
|
||||
@ -230,6 +267,12 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
|
||||
break
|
||||
}
|
||||
}
|
||||
if flag != 1 {
|
||||
if claims.UID == config.Config.AppManagerUid {
|
||||
flag = 1
|
||||
}
|
||||
}
|
||||
|
||||
if flag != 1 {
|
||||
log.Error(claims.UID, req.OperationID, "no access kick")
|
||||
return &pbGroup.KickGroupMemberResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil
|
||||
@ -262,29 +305,48 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
|
||||
}
|
||||
|
||||
}
|
||||
var kq kickGroupMemberApiReq
|
||||
|
||||
/*
|
||||
var chatMsg pbChat.WSToMsgSvrChatMsg
|
||||
chatMsg.SendID = claims.UID
|
||||
chatMsg.RecvID = req.GroupID
|
||||
content, _ := json.Marshal(req)
|
||||
chatMsg.Content = string(content)
|
||||
chatMsg.SendTime = utils.GetCurrentTimestampBySecond()
|
||||
chatMsg.MsgFrom = constant.UserMsgType
|
||||
chatMsg.ContentType = constant.KickGroupMemberTip
|
||||
chatMsg.SessionType = constant.GroupChatType
|
||||
logic.SendMsgByWS(&chatMsg)
|
||||
kq.GroupID = req.GroupID
|
||||
kq.OperationID = req.OperationID
|
||||
kq.Reason = req.Reason
|
||||
|
||||
for _, v := range req.UidList {
|
||||
kickChatMsg := chatMsg
|
||||
kickChatMsg.RecvID = v
|
||||
kickChatMsg.SendTime = utils.GetCurrentTimestampBySecond()
|
||||
kickChatMsg.SessionType = constant.SingleChatType
|
||||
logic.SendMsgByWS(&kickChatMsg)
|
||||
var gf groupMemberFullInfo
|
||||
for _, v := range req.UidListInfo {
|
||||
gf.UserId = v.UserId
|
||||
gf.GroupId = req.GroupID
|
||||
kq.UidListInfo = append(kq.UidListInfo, gf)
|
||||
}
|
||||
|
||||
n := content_struct.NotificationContent{1, req.GroupID, kq.ContentToString()}
|
||||
|
||||
if claims.UID == config.Config.AppManagerUid {
|
||||
log.Info("", req.OperationID, claims.UID, req.GroupID)
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: claims.UID,
|
||||
RecvID: req.GroupID,
|
||||
Content: n.ContentToString(),
|
||||
SendTime: utils.GetCurrentTimestampByNano(),
|
||||
MsgFrom: constant.UserMsgType,
|
||||
ContentType: constant.KickGroupMemberTip,
|
||||
SessionType: constant.GroupChatType,
|
||||
OperationID: req.OperationID,
|
||||
})
|
||||
|
||||
for _, v := range req.UidListInfo {
|
||||
log.Info("", req.OperationID, claims.UID, v.UserId)
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: claims.UID,
|
||||
RecvID: v.UserId,
|
||||
Content: n.ContentToString(),
|
||||
SendTime: utils.GetCurrentTimestampBySecond(),
|
||||
MsgFrom: constant.UserMsgType,
|
||||
ContentType: constant.KickGroupMemberTip,
|
||||
SessionType: constant.SingleChatType,
|
||||
OperationID: req.OperationID,
|
||||
})
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
resp.ErrorCode = 0
|
||||
return &resp, nil
|
||||
}
|
||||
|
61
src/rpc/user/user/management_user.go
Normal file
61
src/rpc/user/user/management_user.go
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
** description("").
|
||||
** copyright('open-im,www.open-im.io').
|
||||
** author("fg,Gordon@tuoyun.net").
|
||||
** time(2021/9/15 10:28).
|
||||
*/
|
||||
package user
|
||||
|
||||
import (
|
||||
"Open_IM/src/common/config"
|
||||
"Open_IM/src/common/db/mysql_model/im_mysql_model"
|
||||
"Open_IM/src/common/log"
|
||||
pbUser "Open_IM/src/proto/user"
|
||||
"Open_IM/src/utils"
|
||||
"context"
|
||||
)
|
||||
|
||||
func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) {
|
||||
log.InfoByKv("rpc DeleteUsers arrived server", req.OperationID, "args", req.String())
|
||||
var resp pbUser.DeleteUsersResp
|
||||
c, err := utils.ParseToken(req.Token)
|
||||
if err != nil {
|
||||
log.ErrorByKv("parse token failed", req.OperationID, "err", err.Error())
|
||||
return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, FailedUidList: req.DeleteUidList}, nil
|
||||
}
|
||||
if c.UID != config.Config.AppManagerUid {
|
||||
log.ErrorByKv(" Authentication failed", req.OperationID, "args", c)
|
||||
return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrorCode: 401, ErrorMsg: "not authorized"}, FailedUidList: req.DeleteUidList}, nil
|
||||
}
|
||||
for _, uid := range req.DeleteUidList {
|
||||
err = im_mysql_model.UserDelete(uid)
|
||||
if err != nil {
|
||||
resp.CommonResp.ErrorCode = 201
|
||||
resp.CommonResp.ErrorMsg = "some uid deleted failed"
|
||||
resp.FailedUidList = append(resp.FailedUidList, uid)
|
||||
}
|
||||
}
|
||||
return &resp, nil
|
||||
|
||||
}
|
||||
|
||||
func (s *userServer) GetAllUsersUid(_ context.Context, req *pbUser.GetAllUsersUidReq) (*pbUser.GetAllUsersUidResp, error) {
|
||||
log.InfoByKv("rpc GetAllUsersUid arrived server", req.OperationID, "args", req.String())
|
||||
c, err := utils.ParseToken(req.Token)
|
||||
if err != nil {
|
||||
log.InfoByKv("parse token failed", req.OperationID, "err", err.Error())
|
||||
return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: err.Error()}}, nil
|
||||
}
|
||||
if c.UID != config.Config.AppManagerUid {
|
||||
log.ErrorByKv(" Authentication failed", req.OperationID, "args", c)
|
||||
return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: 401, ErrorMsg: "not authorized"}}, nil
|
||||
}
|
||||
uidList, err := im_mysql_model.SelectAllUID()
|
||||
if err != nil {
|
||||
log.ErrorByKv("db get failed", req.OperationID, "err", err.Error())
|
||||
return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: err.Error()}}, nil
|
||||
} else {
|
||||
return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: 0, ErrorMsg: ""}, UidList: uidList}, nil
|
||||
}
|
||||
|
||||
}
|
@ -22,7 +22,15 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI
|
||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
||||
return &pbUser.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, nil
|
||||
}
|
||||
err = im_mysql_model.UpDateUserInfo(claims.UID, req.Name, req.Icon, req.Mobile, req.Birth, req.Email, req.Ex, req.Gender)
|
||||
|
||||
ownerUid := ""
|
||||
if claims.UID == config.Config.AppManagerUid {
|
||||
ownerUid = req.Uid
|
||||
} else {
|
||||
ownerUid = claims.UID
|
||||
}
|
||||
|
||||
err = im_mysql_model.UpDateUserInfo(ownerUid, req.Name, req.Icon, req.Mobile, req.Birth, req.Email, req.Ex, req.Gender)
|
||||
if err != nil {
|
||||
log.Error(req.Token, req.OperationID, "update user some attribute failed,err=%s", err.Error())
|
||||
return &pbUser.CommonResp{ErrorCode: config.ErrModifyUserInfo.ErrCode, ErrorMsg: config.ErrModifyUserInfo.ErrMsg}, nil
|
||||
@ -43,7 +51,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI
|
||||
log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String())
|
||||
|
||||
}
|
||||
self, err := im_mysql_model.FindUserByUID(claims.UID)
|
||||
self, err := im_mysql_model.FindUserByUID(ownerUid)
|
||||
if err != nil {
|
||||
log.ErrorByKv("get self info failed", req.OperationID, "err", err.Error(), "req", req.String())
|
||||
}
|
||||
@ -53,12 +61,12 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI
|
||||
}
|
||||
for _, v := range RpcResp.Data {
|
||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
||||
SendID: claims.UID,
|
||||
SendID: ownerUid,
|
||||
RecvID: v.Uid,
|
||||
SenderNickName: name,
|
||||
SenderFaceURL: faceUrl,
|
||||
Content: claims.UID + "'s info has changed",
|
||||
SendTime: utils.GetCurrentTimestampBySecond(),
|
||||
Content: ownerUid + "'s info has changed",
|
||||
SendTime: utils.GetCurrentTimestampByNano(),
|
||||
MsgFrom: constant.SysMsgType,
|
||||
ContentType: constant.SetSelfInfoTip,
|
||||
SessionType: constant.SingleChatType,
|
||||
|
@ -8,6 +8,7 @@ package utils
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"math/rand"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
@ -53,3 +54,11 @@ func JsonStringToStruct(s string, args interface{}) error {
|
||||
err := json.Unmarshal([]byte(s), args)
|
||||
return err
|
||||
}
|
||||
|
||||
func GetMsgID(sendID string) string {
|
||||
t := int64ToString(GetCurrentTimestampByNano())
|
||||
return Md5(t + sendID + int64ToString(rand.Int63n(GetCurrentTimestampByNano())))
|
||||
}
|
||||
func int64ToString(i int64) string {
|
||||
return strconv.FormatInt(i, 10)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user