Commit 2d25adc7 authored by hujiebin's avatar hujiebin

feat:内部获取用户cp

parent 174ccbdd
package cp_cv
// cp信息
type CvCp struct {
CpInfo CvCpInfo `json:"cpInfo"` // cp信息
CpLevel CvCpLevel `json:"cpLevel"` // cp等级
PrivilegeList []CvPrivilege `json:"privilegeList"` // 等级特权
}
......@@ -49,6 +49,7 @@ func InitRouter() *gin.Engine {
{
innerUser.GET("/levels", wrapper(user_r.MGetUserLevels))
innerUser.GET("/bag/id", wrapper(user_r.GetUserBagId))
innerUser.GET("/cp", wrapper(user_r.GetUserCp))
}
// 道具相关
innerProp := inner.Group("/prop")
......
......@@ -5,8 +5,11 @@ import (
"git.hilo.cn/hilo-common/mycontext"
"git.hilo.cn/hilo-common/resource/mysql"
"github.com/gin-gonic/gin"
"hilo-user/_const/enum/cp_e"
"hilo-user/cv/cp_cv"
"hilo-user/cv/user_cv"
"hilo-user/domain/model/bag_m"
"hilo-user/domain/model/cp_m"
"hilo-user/domain/model/noble_m"
"hilo-user/domain/model/res_m"
"hilo-user/domain/model/user_m"
......@@ -90,3 +93,78 @@ func GetUserBagId(c *gin.Context) (*mycontext.MyContext, error) {
})
return myCtx, nil
}
type GetUserCpReq struct {
Id mysql.ID `form:"id" binding:"required"`
}
// @Tags 用户-内部
// @Summary 获取用户cp
// @Param id query int true "用户id"
// @Success 200 {object} cp_cv.CvCp
// @Router /inner/user/cp [get]
func GetUserCp(c *gin.Context) (*mycontext.MyContext, error) {
myContext := mycontext.CreateMyContext(c.Keys)
var model = domain.CreateModelContext(myContext)
var req GetUserCpReq
if err := c.ShouldBindQuery(&req); err != nil {
return myContext, err
}
userId := req.Id
userInfo, err := user_m.GetUser(model, userId)
if err != nil {
return myContext, err
}
var response cp_cv.CvCp
cpLevel := cp_e.CpLevel0
cpRelation, exists := cp_m.GetCpRelation(model, userId)
if !exists {
resp.ResponseOk(c, response)
}
var cpUserInfo *user_m.User
var myPrivilegeList []cp_cv.CvPrivilege
level := cp_m.GetCpLevel(model, cpRelation.ID)
if level.ExpireAt.Before(time.Now()) {
level.ExpireAt = time.Now().AddDate(0, 1, 0)
}
cpLevel = level.Level
cpUserId := cpRelation.UserId2
if cpUserId == userId {
cpUserId = cpRelation.UserId1
}
cpUserInfo, err = user_m.GetUser(model, cpUserId)
if err != nil {
return myContext, err
}
userPrivileges, err := cp_m.MGetUserSvipPrivilege(model, []uint64{userId})
if err != nil {
return myContext, err
}
privilegeList := cp_cv.CopyCpLevelPrivilegeList(level.Level, "en")
for i, v := range privilegeList {
if v.CanSwitch {
privilegeList[i].UserSwitch = userPrivileges[userId][v.Type]
}
}
// 我的特权,有开关并且打开才返回
for i, v := range privilegeList {
if !v.CanSwitch {
myPrivilegeList = append(myPrivilegeList, privilegeList[i])
} else if v.UserSwitch {
myPrivilegeList = append(myPrivilegeList, privilegeList[i])
}
}
// 返回值
response = cp_cv.CvCp{
CpInfo: cp_cv.CvCpInfo{
UserInfo: user_cv.UserToTiny(*userInfo),
CpUserInfo: user_cv.UserToTiny(*cpUserInfo),
},
CpLevel: cp_cv.CvCpLevel{
Level: cpLevel,
},
PrivilegeList: myPrivilegeList,
}
resp.ResponseOk(c, response)
return myContext, nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment