Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zhaominxu
Open-IM-Server
提交
f933abe4
O
Open-IM-Server
项目概览
zhaominxu
/
Open-IM-Server
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Open-IM-Server
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f933abe4
编写于
12月 17, 2021
作者:
programor_guo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add check user is registered
上级
be946745
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
350 addition
and
71 deletion
+350
-71
internal/api/manage/management_user.go
internal/api/manage/management_user.go
+30
-0
internal/rpc/user/management_user.go
internal/rpc/user/management_user.go
+31
-0
pkg/common/constant/constant.go
pkg/common/constant/constant.go
+2
-0
pkg/common/db/mysql_model/im_mysql_model/user_model.go
pkg/common/db/mysql_model/im_mysql_model/user_model.go
+28
-0
pkg/proto/user/user.pb.go
pkg/proto/user/user.pb.go
+259
-71
未找到文件。
internal/api/manage/management_user.go
浏览文件 @
f933abe4
...
...
@@ -32,6 +32,10 @@ type paramsGetUsersOnlineStatus struct {
OperationID
string
`json:"operationID" binding:"required"`
UserIDList
[]
string
`json:"userIDList" binding:"required,lte=200"`
}
type
paramsAccountCheck
struct
{
OperationID
string
`json:"operationID" binding:"required"`
UserIDList
[]
string
`json:"userIDList" binding:"required,lte=100"`
}
func
DeleteUser
(
c
*
gin
.
Context
)
{
params
:=
paramsDeleteUsers
{}
...
...
@@ -87,6 +91,32 @@ func GetAllUsersUid(c *gin.Context) {
resp
:=
gin
.
H
{
"errCode"
:
RpcResp
.
CommonResp
.
ErrorCode
,
"errMsg"
:
RpcResp
.
CommonResp
.
ErrorMsg
,
"uidList"
:
RpcResp
.
UidList
}
c
.
JSON
(
http
.
StatusOK
,
resp
)
}
func
AccountCheck
(
c
*
gin
.
Context
)
{
params
:=
paramsAccountCheck
{}
if
err
:=
c
.
BindJSON
(
&
params
);
err
!=
nil
{
c
.
JSON
(
http
.
StatusBadRequest
,
gin
.
H
{
"errCode"
:
400
,
"errMsg"
:
err
.
Error
()})
return
}
log
.
InfoByKv
(
"AccountCheck req come here"
,
params
.
OperationID
,
params
.
UserIDList
)
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
.
AccountCheckReq
{
OperationID
:
params
.
OperationID
,
Token
:
c
.
Request
.
Header
.
Get
(
"token"
),
UidList
:
params
.
UserIDList
,
}
RpcResp
,
err
:=
client
.
AccountCheck
(
context
.
Background
(),
req
)
if
err
!=
nil
{
c
.
JSON
(
http
.
StatusInternalServerError
,
gin
.
H
{
"errCode"
:
500
,
"errMsg"
:
err
.
Error
()})
return
}
log
.
InfoByKv
(
"call AccountCheck rpc server is success"
,
params
.
OperationID
,
"resp args"
,
RpcResp
.
String
())
resp
:=
gin
.
H
{
"errCode"
:
RpcResp
.
CommonResp
.
ErrorCode
,
"errMsg"
:
RpcResp
.
CommonResp
.
ErrorMsg
,
"Result"
:
RpcResp
.
Result
}
c
.
JSON
(
http
.
StatusOK
,
resp
)
}
func
GetUsersOnlineStatus
(
c
*
gin
.
Context
)
{
params
:=
paramsGetUsersOnlineStatus
{}
...
...
internal/rpc/user/management_user.go
浏览文件 @
f933abe4
...
...
@@ -63,3 +63,34 @@ func (s *userServer) GetAllUsersUid(_ context.Context, req *pbUser.GetAllUsersUi
}
}
func
(
s
*
userServer
)
AccountCheck
(
_
context
.
Context
,
req
*
pbUser
.
AccountCheckReq
)
(
*
pbUser
.
AccountCheckResp
,
error
)
{
log
.
InfoByKv
(
"rpc AccountCheck arrived server"
,
req
.
OperationID
,
"args"
,
req
.
String
())
c
,
err
:=
token_verify
.
ParseToken
(
req
.
Token
)
if
err
!=
nil
{
log
.
InfoByKv
(
"parse token failed"
,
req
.
OperationID
,
"err"
,
err
.
Error
())
return
&
pbUser
.
AccountCheckResp
{
CommonResp
:
&
pbUser
.
CommonResp
{
ErrorCode
:
constant
.
ErrParseToken
.
ErrCode
,
ErrorMsg
:
err
.
Error
()}},
nil
}
if
!
utils
.
IsContain
(
c
.
UID
,
config
.
Config
.
Manager
.
AppManagerUid
)
{
log
.
ErrorByKv
(
" Authentication failed"
,
req
.
OperationID
,
"args"
,
c
)
return
&
pbUser
.
AccountCheckResp
{
CommonResp
:
&
pbUser
.
CommonResp
{
ErrorCode
:
401
,
ErrorMsg
:
"not authorized"
}},
nil
}
uidList
,
err
:=
im_mysql_model
.
SelectSomeUID
(
req
.
UidList
)
if
err
!=
nil
{
log
.
ErrorByKv
(
"db get SelectSomeUID failed"
,
req
.
OperationID
,
"err"
,
err
.
Error
())
return
&
pbUser
.
AccountCheckResp
{
CommonResp
:
&
pbUser
.
CommonResp
{
ErrorCode
:
constant
.
ErrMysql
.
ErrCode
,
ErrorMsg
:
err
.
Error
()}},
nil
}
else
{
var
r
[]
*
pbUser
.
AccountCheckResp_SingleUserStatus
for
_
,
v
:=
range
req
.
UidList
{
temp
:=
new
(
pbUser
.
AccountCheckResp_SingleUserStatus
)
temp
.
UserID
=
v
if
utils
.
IsContain
(
v
,
uidList
)
{
temp
.
AccountStatus
=
constant
.
Registered
}
else
{
temp
.
AccountStatus
=
constant
.
UnRegistered
}
r
=
append
(
r
,
temp
)
}
return
&
pbUser
.
AccountCheckResp
{
CommonResp
:
&
pbUser
.
CommonResp
{
ErrorCode
:
0
,
ErrorMsg
:
""
},
Result
:
r
},
nil
}
}
pkg/common/constant/constant.go
浏览文件 @
f933abe4
...
...
@@ -87,6 +87,8 @@ const (
OnlineStatus
=
"online"
OfflineStatus
=
"offline"
Registered
=
"registered"
UnRegistered
=
"unregistered"
//MsgReceiveOpt
ReceiveMessage
=
0
...
...
pkg/common/db/mysql_model/im_mysql_model/user_model.go
浏览文件 @
f933abe4
...
...
@@ -133,6 +133,25 @@ func SelectAllUID() ([]string, error) {
}
return
uid
,
nil
}
func
SelectSomeUID
(
uids
[]
string
)
([]
string
,
error
)
{
var
uid
[]
string
dbConn
,
err
:=
db
.
DB
.
MysqlDB
.
DefaultGormDB
()
if
err
!=
nil
{
return
uid
,
err
}
rows
,
err
:=
dbConn
.
Raw
(
"select uid from user where uid in ("
+
sqlStringHandle
(
uids
)
+
")"
)
.
Rows
()
if
err
!=
nil
{
return
uid
,
err
}
defer
rows
.
Close
()
var
strUID
string
for
rows
.
Next
()
{
rows
.
Scan
(
&
strUID
)
uid
=
append
(
uid
,
strUID
)
}
return
uid
,
nil
}
func
IsExistUser
(
uid
string
)
bool
{
dbConn
,
err
:=
db
.
DB
.
MysqlDB
.
DefaultGormDB
()
...
...
@@ -149,3 +168,12 @@ func IsExistUser(uid string) bool {
}
return
true
}
func
sqlStringHandle
(
ss
[]
string
)
(
s
string
)
{
for
i
:=
0
;
i
<
len
(
ss
);
i
++
{
s
+=
"'"
+
ss
[
i
]
+
"'"
if
i
<
len
(
ss
)
-
1
{
s
+=
","
}
}
return
s
}
pkg/proto/user/user.pb.go
浏览文件 @
f933abe4
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录