Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-user
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenweijian
hilo-user
Commits
3b73212b
Commit
3b73212b
authored
Jul 26, 2023
by
chenweijian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口优化
parent
e4ce8b28
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
114 additions
and
0 deletions
+114
-0
user.go
cv/user_cv/user.go
+51
-0
router.go
route/router.go
+1
-0
user.go
route/user_r/user.go
+62
-0
No files found.
cv/user_cv/user.go
View file @
3b73212b
package
user_cv
import
(
"encoding/json"
"git.hilo.cn/hilo-common/_const/common"
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/mylogrus"
...
...
@@ -493,6 +494,49 @@ type CvUserDetail struct {
Cp
*
CvCp
`json:"cp,omitempty"`
// cp信息
}
//用户详细信息-在房间里面时需要的
type
CvUserDetailRoom
struct
{
//不会有返回值
//不会有返回值
Id
*
mysql
.
ID
`json:"id,omitempty"`
//头像,不存在为nil
Avatar
*
string
`json:"avatar"`
//是否默认头像 true:是 false:不是
DefaultAvatar
*
bool
`json:"defaultAvatar"`
//用户对外ID
ExternalId
*
string
`json:"externalId"`
//昵称,不存在为nil
Nick
*
string
`json:"nick"`
//性别 1:男 2:女,不存在为nil
Sex
*
uint8
`json:"sex"`
//国家,不存在为nil
Country
*
string
`json:"country"`
//国旗图标,不存在为nil
CountryIcon
*
string
`json:"countryIcon"`
//邀请码
Code
*
string
`json:"code"`
IsPrettyCode
bool
`json:"isPrettyCode"`
// 是否靓号
//生日,如果是其它人用户信息,年龄则按照是否展示显示,如果是本人,年龄则按照是否存在展示
Birthday
*
uint64
`json:"birthday"`
//是否展示年龄, 是本人才有数据,看其他用户均为nil
IsShowAge
*
uint8
`json:"isShowAge"`
//是否VIP用户
IsVip
bool
`json:"isVip"`
Svip
rpc
.
CvSvip
`json:"svip"`
// svip结构,等级+权限
Medals
[]
uint32
`json:"medals"`
// 勋章列表
Noble
noble_cv
.
CvNoble
`json:"noble"`
// 当前的
CountryManager
*
CVCountryManager
`json:"countryManager,omitempty"`
// 国家管理员
Headwear
*
headwear_cv
.
CvHeadwear
`json:"headwear"`
// 当前使用的头饰
WealthUserGrade
uint32
`json:"wealthUserGrade"`
//财富等级
CharmUserGrade
uint32
`json:"charmUserGrade"`
//魅力等级
ActivityUserGrade
uint32
`json:"activityUserGrade"`
//活跃等级
GroupPower
rpc
.
CvGroupPowerInfo
`json:"groupPower"`
// 家族
//是否喜欢(本人没有数据,//20210205 已废弃nil,产品说:可以自己喜欢自己)
IsLike
*
bool
`json:"isLike"`
//别人是否喜欢我,自己本人没有数据 (20210205 已废弃nil,产品说:可以自己喜欢自己)
IsLikeMe
*
bool
`json:"isLikeMe"`
Cp
*
CvCp
`json:"cp,omitempty"`
// cp信息
}
// cv国家管理人员
type
CVCountryManager
struct
{
Country
string
`json:"country"`
// 国家name
...
...
@@ -536,3 +580,10 @@ func UserBaseToUserLittle(base *CvUserBase) *CvUserLittle {
Nick
:
base
.
Nick
,
}
}
func
CvUserDetailToCvUserDetailRoom
(
info
*
CvUserDetail
)
*
CvUserDetailRoom
{
res
:=
new
(
CvUserDetailRoom
)
jData
,
_
:=
json
.
Marshal
(
info
)
_
=
json
.
Unmarshal
(
jData
,
&
res
)
return
res
}
route/router.go
View file @
3b73212b
...
...
@@ -32,6 +32,7 @@ func InitRouter() *gin.Engine {
user
.
GET
(
"/bag/:resType"
,
wrapper
(
user_r
.
UserBag
))
user
.
GET
(
"/detail"
,
EncryptHandle
,
wrapper
(
user_r
.
UserDetail
))
user
.
GET
(
"/detail/:userExternalId"
,
EncryptHandle
,
wrapper
(
user_r
.
UserDetailByExternalId
))
user
.
GET
(
"/detail/room/:userExternalId"
,
EncryptHandle
,
wrapper
(
user_r
.
GetUserDetailInRoom
))
}
cp
:=
v2
.
Group
(
"/cp"
)
{
...
...
route/user_r/user.go
View file @
3b73212b
...
...
@@ -7,6 +7,7 @@ import (
"git.hilo.cn/hilo-common/resource/redisCli"
"github.com/gin-gonic/gin"
"hilo-user/_const/redis_key/user_k"
"hilo-user/cv/user_cv"
"hilo-user/domain/model/group_m"
"hilo-user/domain/model/tim_m"
"hilo-user/domain/service/user_s"
...
...
@@ -106,3 +107,64 @@ func UserDetailByExternalId(c *gin.Context) (*mycontext.MyContext, error) {
resp
.
ResponseOk
(
c
,
cvUserDetail
)
return
myContext
,
nil
}
// @Tags 用户
// @Summary 房间内获取用户信息
// @Param userExternalId path string true "userExternalId"
// @Param groupId query string false "群组id,当传了该id,则返回该用户在该群组的身份"
// @Success 200 {object} user_cv.CvUserDetail
// @Router /v1/user/detail/room/{userExternalId} [get]
func
GetUserDetailInRoom
(
c
*
gin
.
Context
)
(
*
mycontext
.
MyContext
,
error
)
{
myContext
:=
mycontext
.
CreateMyContext
(
c
.
Keys
)
userId
,
lang
,
err
:=
req
.
GetUserIdLang
(
c
,
myContext
)
if
err
!=
nil
{
return
myContext
,
err
}
otherUserId
,
err
:=
req
.
ToUserId
(
myContext
,
mysql
.
Str
(
c
.
Param
(
"userExternalId"
)))
if
err
!=
nil
{
return
nil
,
err
}
model
:=
domain
.
CreateModelContext
(
myContext
)
imGroupId
:=
c
.
Query
(
"groupId"
)
if
imGroupId
!=
""
{
imGroupId
,
err
=
group_m
.
ToImGroupId
(
model
,
imGroupId
)
if
err
!=
nil
{
return
myContext
,
err
}
}
cvUserDetail
,
err
:=
user_s
.
NewUserService
(
myContext
)
.
GetUserDetail
(
otherUserId
,
userId
,
lang
)
if
err
!=
nil
{
return
myContext
,
err
}
if
imGroupId
!=
""
{
cvUserDetail
.
GroupRole
,
err
=
group_m
.
GetGroupRoleById
(
model
,
imGroupId
,
otherUserId
)
if
err
!=
nil
{
return
myContext
,
err
}
}
if
cvUserDetail
!=
nil
{
// 检查是否需要同步
if
n
,
err
:=
redisCli
.
GetRedis
()
.
Exists
(
model
,
user_k
.
GetKeySyncTimHilo
(
userId
))
.
Result
();
err
==
nil
{
if
n
==
0
{
// FIXME:转异步执行
err
=
tim_m
.
FlushHiloInfo
(
*
cvUserDetail
.
ExternalId
,
cvUserDetail
.
IsVip
,
cvUserDetail
.
IsPrettyCode
,
cvUserDetail
.
Medals
,
cvUserDetail
.
MyGroupPowerName
,
cvUserDetail
.
Noble
.
Level
)
if
err
==
nil
{
redisCli
.
GetRedis
()
.
Set
(
model
,
user_k
.
GetKeySyncTimHilo
(
userId
),
"1"
,
time
.
Minute
)
}
else
{
model
.
Log
.
Info
(
"UserBaseByExternalId, FlushHiloInfo failed: "
,
err
)
}
}
else
{
model
.
Log
.
Info
(
"UserDetailByExternalId, no need to sync yet: "
,
userId
)
}
}
else
{
model
.
Log
.
Info
(
"UserDetailByExternalId, check KeySyncTimHilo failed"
,
err
)
}
}
resp
.
ResponseOk
(
c
,
user_cv
.
CvUserDetailToCvUserDetailRoom
(
cvUserDetail
))
return
myContext
,
nil
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment