实现获取用户角色列表接口
This commit is contained in:
@ -20,4 +20,5 @@ type IUserV1 interface {
|
|||||||
GetBoundUrl(ctx context.Context, req *v1.GetBoundUrlReq) (res *v1.GetBoundUrlRes, err error)
|
GetBoundUrl(ctx context.Context, req *v1.GetBoundUrlReq) (res *v1.GetBoundUrlRes, err error)
|
||||||
GetUnboundUrl(ctx context.Context, req *v1.GetUnboundUrlReq) (res *v1.GetUnboundUrlRes, err error)
|
GetUnboundUrl(ctx context.Context, req *v1.GetUnboundUrlReq) (res *v1.GetUnboundUrlRes, err error)
|
||||||
DelUser(ctx context.Context, req *v1.DelUserReq) (res *v1.DelUserRes, err error)
|
DelUser(ctx context.Context, req *v1.DelUserReq) (res *v1.DelUserRes, err error)
|
||||||
|
GetUserGameRoleList(ctx context.Context, req *v1.GetUserGameRoleListReq) (res *v1.GetUserGameRoleListRes, err error)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -99,3 +99,14 @@ type DelUserReq struct {
|
|||||||
type DelUserRes struct {
|
type DelUserRes struct {
|
||||||
Success bool `json:"success" dc:"是否成功"`
|
Success bool `json:"success" dc:"是否成功"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GetUserGameRoleListReq struct {
|
||||||
|
g.Meta `path:"/user/gameRoleList" method:"get" tags:"User" summary:"(PC)获取用户游戏角色列表"`
|
||||||
|
PopenId string `json:"popenId" v:"required#popenId不能为空" dc:"用户详情接口返回的 wxPopenId 或者是 qqPopenId"`
|
||||||
|
GameId int `json:"gameId" v:"required#gameId不能为空" dc:"游戏id"`
|
||||||
|
Area int `json:"area" v:"required#area不能为空" dc:"游戏区"`
|
||||||
|
BindType int `json:"bindType" v:"required|in:1,2#请选择绑定方式,只能为1或2" dc:"绑定方式,默认值1,1: qq; 2: wx" default:"1"`
|
||||||
|
}
|
||||||
|
type GetUserGameRoleListRes struct {
|
||||||
|
List interface{} `json:"list"`
|
||||||
|
}
|
||||||
|
|||||||
@ -12,4 +12,5 @@ const (
|
|||||||
const (
|
const (
|
||||||
GetNonLoginTaskList = "GetNonloginTaskList"
|
GetNonLoginTaskList = "GetNonloginTaskList"
|
||||||
GetTaskList = "GetTaskList"
|
GetTaskList = "GetTaskList"
|
||||||
|
QueryUserRoleList = "QueryUserRoleList"
|
||||||
)
|
)
|
||||||
|
|||||||
17
internal/controller/user/user_v1_get_user_game_role_list.go
Normal file
17
internal/controller/user/user_v1_get_user_game_role_list.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package user
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"server/internal/model"
|
||||||
|
"server/internal/service"
|
||||||
|
|
||||||
|
"server/api/user/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c *ControllerV1) GetUserGameRoleList(ctx context.Context, req *v1.GetUserGameRoleListReq) (res *v1.GetUserGameRoleListRes, err error) {
|
||||||
|
out, err := service.User().GetUserGameRole(ctx, &model.GetUserGameRoleIn{BindType: req.BindType, GameId: req.GameId, PopenId: req.PopenId, Area: req.Area})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &v1.GetUserGameRoleListRes{List: out.RoleList}, nil
|
||||||
|
}
|
||||||
@ -299,3 +299,17 @@ func (s *sUser) DelUser(ctx context.Context, in *model.DelUserIn) (out *model.De
|
|||||||
|
|
||||||
return &model.DeleteOut{Success: true}, nil
|
return &model.DeleteOut{Success: true}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *sUser) GetUserGameRole(ctx context.Context, in *model.GetUserGameRoleIn) (out *model.GetUserGameRoleOut, err error) {
|
||||||
|
activity, err := gamelife.GetGamelifeClient(ctx).RequestActivity(ctx, &model.QQNetbarActivityIn{ServiceName: consts.QueryUserRoleList, PopenId: in.PopenId, BindType: in.BindType, UserRoleParam: model.UserRoleParam{Gid: in.GameId, Area: in.Area}})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result, ok := activity.(*[]model.UserRole)
|
||||||
|
if !ok {
|
||||||
|
return nil, ecode.Fail.Sub("获取用户游戏角色失败")
|
||||||
|
}
|
||||||
|
return &model.GetUserGameRoleOut{
|
||||||
|
RoleList: *result,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|||||||
@ -58,9 +58,21 @@ type TaskParam struct {
|
|||||||
Source string `json:"source"`
|
Source string `json:"source"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UserRoleParam struct {
|
||||||
|
Area int `json:"area,omitempty"` // 可选参数
|
||||||
|
Gid int `json:"gid"`
|
||||||
|
}
|
||||||
|
type UserRole struct {
|
||||||
|
RoleName string `json:"role_name"`
|
||||||
|
RoleIdx string `json:"roleIdx"`
|
||||||
|
}
|
||||||
|
type UserRoleListResponse struct {
|
||||||
|
RoleList []UserRole `json:"role_list"`
|
||||||
|
}
|
||||||
type QQNetbarActivityIn struct {
|
type QQNetbarActivityIn struct {
|
||||||
ServiceName string // 服务名称
|
ServiceName string // 服务名称
|
||||||
TaskParam TaskParam // 参数体
|
TaskParam TaskParam // 参数体
|
||||||
|
UserRoleParam UserRoleParam
|
||||||
PopenId string
|
PopenId string
|
||||||
BindType int
|
BindType int
|
||||||
}
|
}
|
||||||
|
|||||||
@ -183,3 +183,12 @@ type DelUserIn struct {
|
|||||||
type DelUserOut struct {
|
type DelUserOut struct {
|
||||||
Success bool
|
Success bool
|
||||||
}
|
}
|
||||||
|
type GetUserGameRoleIn struct {
|
||||||
|
PopenId string
|
||||||
|
GameId int
|
||||||
|
BindType int
|
||||||
|
Area int
|
||||||
|
}
|
||||||
|
type GetUserGameRoleOut struct {
|
||||||
|
RoleList []UserRole
|
||||||
|
}
|
||||||
|
|||||||
@ -23,6 +23,7 @@ type (
|
|||||||
UnBoundUrl(ctx context.Context, in *model.UserBoundUrlIn) (out *model.UserUnBoundUrlOut, err error)
|
UnBoundUrl(ctx context.Context, in *model.UserBoundUrlIn) (out *model.UserUnBoundUrlOut, err error)
|
||||||
BoundInfo(ctx context.Context, in *model.UserBoundInfoIn) (out *model.UserBoundInfoOut, err error)
|
BoundInfo(ctx context.Context, in *model.UserBoundInfoIn) (out *model.UserBoundInfoOut, err error)
|
||||||
DelUser(ctx context.Context, in *model.DelUserIn) (out *model.DeleteOut, err error)
|
DelUser(ctx context.Context, in *model.DelUserIn) (out *model.DeleteOut, err error)
|
||||||
|
GetUserGameRole(ctx context.Context, in *model.GetUserGameRoleIn) (out *model.GetUserGameRoleOut, err error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -346,6 +346,42 @@ func (s *gamelifeClient) RequestActivity(ctx context.Context, in *model.QQNetbar
|
|||||||
return nil, ecode.Fail.Sub("请求出现异常")
|
return nil, ecode.Fail.Sub("请求出现异常")
|
||||||
}
|
}
|
||||||
return &result, nil
|
return &result, nil
|
||||||
|
case consts.QueryUserRoleList:
|
||||||
|
cache, err := s.getOrRefreshCache(ctx, in.PopenId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cacheKey := fmt.Sprintf(consts.GameLifeUserKey, in.PopenId)
|
||||||
|
if cache.Params == "" {
|
||||||
|
// Reconstruct Params with default values
|
||||||
|
value, err := dao.Games.Ctx(ctx).Where(do.Games{GameId: in.UserRoleParam.Gid}).Fields(dao.Games.Columns().GameCode).Value()
|
||||||
|
if err != nil {
|
||||||
|
return nil, ecode.Fail.Sub("获取游戏名称失败")
|
||||||
|
}
|
||||||
|
|
||||||
|
cache.Params, err = s.buildQueryParams(ctx, in.PopenId, cache, value.String(), "", in.BindType, true)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
// Update cache with new Params
|
||||||
|
ttl, err := g.Redis().TTL(ctx, cacheKey)
|
||||||
|
if err != nil {
|
||||||
|
return nil, ecode.Fail.Sub("获取缓存过期时间失败")
|
||||||
|
}
|
||||||
|
if err := g.Redis().SetEX(ctx, cacheKey, cache, ttl); err != nil {
|
||||||
|
return nil, ecode.Fail.Sub("更新缓存失败")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var result model.UserRoleListResponse
|
||||||
|
resp, err := client.R().
|
||||||
|
SetContext(ctx).
|
||||||
|
SetBody(in.UserRoleParam).
|
||||||
|
SetResult(&result).
|
||||||
|
Post(fmt.Sprintf("%s%s?%s", taskURL, consts.QueryUserRoleList, cache.Params))
|
||||||
|
if err != nil || resp.IsError() {
|
||||||
|
return nil, ecode.Fail.Sub("请求出现异常")
|
||||||
|
}
|
||||||
|
return &result.RoleList, nil
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nil, ecode.Fail.Sub(fmt.Sprintf("不支持的任务: %s", in.ServiceName))
|
return nil, ecode.Fail.Sub(fmt.Sprintf("不支持的任务: %s", in.ServiceName))
|
||||||
|
|||||||
@ -56,14 +56,16 @@ func init() {
|
|||||||
enforcer.AddPolicy("user", "/x/upload/image", "POST", "上传图片")
|
enforcer.AddPolicy("user", "/x/upload/image", "POST", "上传图片")
|
||||||
enforcer.AddPolicy("user", "/x/upload/user", "POST", "上传头像图片")
|
enforcer.AddPolicy("user", "/x/upload/user", "POST", "上传头像图片")
|
||||||
|
|
||||||
//
|
|
||||||
enforcer.AddPolicy("user", "/x/user", "PUT", "修改个人信息")
|
enforcer.AddPolicy("user", "/x/user", "PUT", "修改个人信息")
|
||||||
enforcer.AddPolicy("user", "/x/user/getPhoneCode", "POST", "获取验证码")
|
enforcer.AddPolicy("user", "/x/user/getPhoneCode", "POST", "获取验证码")
|
||||||
enforcer.AddPolicy("user", "/x/user/bindPhone", "POST", "绑定手机号")
|
enforcer.AddPolicy("user", "/x/user/bindPhone", "POST", "绑定手机号")
|
||||||
enforcer.AddPolicy("user", "/x/user/info", "GET", "查询用户个人信息")
|
enforcer.AddPolicy("user", "/x/user/info", "GET", "查询用户个人信息")
|
||||||
|
|
||||||
|
// 游戏人生
|
||||||
enforcer.AddPolicy("user", "/x/user/boundInfo", "GET", "查询用户绑定信息")
|
enforcer.AddPolicy("user", "/x/user/boundInfo", "GET", "查询用户绑定信息")
|
||||||
enforcer.AddPolicy("user", "/x/user/boundUrl", "GET", "获取用户绑定的URL")
|
enforcer.AddPolicy("user", "/x/user/boundUrl", "GET", "获取用户绑定的URL")
|
||||||
enforcer.AddPolicy("user", "/x/user/unBoundUrl", "GET", "获取用户取消绑定的URL")
|
enforcer.AddPolicy("user", "/x/user/unBoundUrl", "GET", "获取用户取消绑定的URL")
|
||||||
|
enforcer.AddPolicy("user", "/x/user/gameRoleList", "GET", "查询用户游戏角色列表")
|
||||||
|
|
||||||
// 反馈信息
|
// 反馈信息
|
||||||
enforcer.AddPolicy("user", "/x/feedback", "GET", "获取反馈信息列表")
|
enforcer.AddPolicy("user", "/x/feedback", "GET", "获取反馈信息列表")
|
||||||
|
|||||||
Reference in New Issue
Block a user