Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zhaominxu
Open-IM-Server
提交
4623b5d5
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,体验更适合开发者的 AI 搜索 >>
提交
4623b5d5
编写于
12月 29, 2021
作者:
W
wenxu12345
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor code
上级
4e4bab2b
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
175 addition
and
114 deletion
+175
-114
internal/api/friend/friend.go
internal/api/friend/friend.go
+6
-1
internal/rpc/friend/firend.go
internal/rpc/friend/firend.go
+16
-13
pkg/base_info/friend_api_struct.go
pkg/base_info/friend_api_struct.go
+5
-1
pkg/proto/friend/friend.pb.go
pkg/proto/friend/friend.pb.go
+148
-99
未找到文件。
internal/api/friend/friend.go
浏览文件 @
4623b5d5
...
...
@@ -72,8 +72,13 @@ func ImportFriend(c *gin.Context) {
c
.
JSON
(
http
.
StatusInternalServerError
,
gin
.
H
{
"errCode"
:
500
,
"errMsg"
:
"cImportFriend failed "
+
err
.
Error
()})
return
}
resp
:=
api
.
ImportFriendResp
{
CommResp
:
api
.
CommResp
{
ErrCode
:
RpcResp
.
CommonResp
.
ErrCode
,
ErrMsg
:
RpcResp
.
CommonResp
.
ErrMsg
}}
if
resp
.
ErrCode
==
0
{
for
_
,
v
:=
range
RpcResp
.
UserIDResultList
{
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
api
.
UserIDResult
{
v
.
UserID
,
v
.
Result
})
}
}
resp
:=
api
.
ImportFriendResp
{
CommResp
:
api
.
CommResp
{
ErrCode
:
RpcResp
.
CommonResp
.
ErrCode
,
ErrMsg
:
RpcResp
.
CommonResp
.
ErrMsg
},
Data
:
RpcResp
.
FailedFriendUserIDList
}
log
.
NewInfo
(
req
.
OperationID
,
"ImportFriend api return "
,
resp
)
c
.
JSON
(
http
.
StatusOK
,
resp
)
}
...
...
internal/rpc/friend/firend.go
浏览文件 @
4623b5d5
...
...
@@ -166,49 +166,52 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
log
.
NewError
(
req
.
OperationID
,
"not authorized"
,
req
.
OpUserID
,
config
.
Config
.
Manager
.
AppManagerUid
)
c
.
ErrCode
=
constant
.
ErrAccess
.
ErrCode
c
.
ErrMsg
=
constant
.
ErrAccess
.
ErrMsg
return
&
pbFriend
.
ImportFriendResp
{
CommonResp
:
&
c
,
FailedFriendUserIDList
:
req
.
FriendUserIDList
},
nil
for
_
,
v
:=
range
req
.
FriendUserIDList
{
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
&
pbFriend
.
UserIDResult
{
UserID
:
v
,
Result
:
-
1
})
}
resp
.
CommonResp
=
&
c
return
&
resp
,
nil
}
if
_
,
err
:=
imdb
.
GetUserByUserID
(
req
.
FromUserID
);
err
!=
nil
{
log
.
NewError
(
req
.
OperationID
,
"GetUserByUserID failed "
,
err
.
Error
(),
req
.
FromUserID
)
c
.
ErrCode
=
constant
.
ErrDB
.
ErrCode
c
.
ErrMsg
=
"this user not exists,cant not add friend"
return
&
pbFriend
.
ImportFriendResp
{
CommonResp
:
&
c
,
FailedFriendUserIDList
:
req
.
FriendUserIDList
},
nil
for
_
,
v
:=
range
req
.
FriendUserIDList
{
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
&
pbFriend
.
UserIDResult
{
UserID
:
v
,
Result
:
-
1
})
}
resp
.
CommonResp
=
&
c
return
&
resp
,
nil
}
for
_
,
v
:=
range
req
.
FriendUserIDList
{
if
_
,
fErr
:=
imdb
.
GetUserByUserID
(
v
);
fErr
!=
nil
{
c
.
ErrMsg
=
"some uid establish failed"
c
.
ErrCode
=
408
resp
.
FailedFriendUserIDList
=
append
(
resp
.
FailedFriendUserIDList
,
v
)
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
&
pbFriend
.
UserIDResult
{
UserID
:
v
,
Result
:
-
1
})
}
else
{
if
_
,
err
:=
imdb
.
GetFriendRelationshipFromFriend
(
req
.
FromUserID
,
v
);
err
!=
nil
{
//Establish two single friendship
toInsertFollow
:=
imdb
.
Friend
{
OwnerUserID
:
req
.
FromUserID
,
FriendUserID
:
v
}
err1
:=
imdb
.
InsertToFriend
(
&
toInsertFollow
)
if
err1
!=
nil
{
resp
.
FailedFriendUserIDList
=
append
(
resp
.
FailedFriendUserIDList
,
v
)
log
.
NewError
(
req
.
OperationID
,
"InsertToFriend failed"
,
req
.
FromUserID
,
v
,
err1
.
Error
())
c
.
ErrMsg
=
"some uid establish failed"
c
.
ErrCode
=
408
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
&
pbFriend
.
UserIDResult
{
UserID
:
v
,
Result
:
-
1
})
continue
}
toInsertFollow
=
imdb
.
Friend
{
OwnerUserID
:
v
,
FriendUserID
:
req
.
FromUserID
}
err2
:=
imdb
.
InsertToFriend
(
&
toInsertFollow
)
if
err2
!=
nil
{
resp
.
FailedFriendUserIDList
=
append
(
resp
.
FailedFriendUserIDList
,
v
)
log
.
NewError
(
req
.
OperationID
,
"InsertToFriend failed"
,
v
,
req
.
FromUserID
,
err2
.
Error
())
c
.
ErrMsg
=
"some uid establish failed"
c
.
ErrCode
=
408
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
&
pbFriend
.
UserIDResult
{
UserID
:
v
,
Result
:
-
1
})
continue
}
for
_
,
v
:=
range
req
.
FriendUserIDList
{
chat
.
FriendAddedNotification
(
req
.
OperationID
,
req
.
OpUserID
,
req
.
FromUserID
,
v
)
resp
.
UserIDResultList
=
append
(
resp
.
UserIDResultList
,
&
pbFriend
.
UserIDResult
{
UserID
:
v
,
Result
:
0
})
}
}
}
}
resp
.
CommonResp
=
&
c
log
.
NewInfo
(
req
.
OperationID
,
"ImportFriend rpc ok "
,
resp
)
resp
.
CommonResp
.
ErrCode
=
0
log
.
NewInfo
(
req
.
OperationID
,
"ImportFriend rpc ok "
,
resp
.
String
()
)
return
&
resp
,
nil
}
...
...
pkg/base_info/friend_api_struct.go
浏览文件 @
4623b5d5
...
...
@@ -20,9 +20,13 @@ type ImportFriendReq struct {
OperationID
string
`json:"operationID" binding:"required"`
FromUserID
string
`json:"fromUserID" binding:"required"`
}
type
UserIDResult
struct
{
UserID
string
`json:"userID" binding:"required"`
Result
int32
`json:"result" binding:"required"`
}
type
ImportFriendResp
struct
{
CommResp
Data
[]
string
`json:"data"`
UserIDResultList
[]
UserIDResult
`json:"data"`
}
type
AddFriendReq
struct
{
...
...
pkg/proto/friend/friend.pb.go
浏览文件 @
4623b5d5
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录