Browse Source

Merge remote-tracking branch 'refs/remotes/origin/newmaster'

# Conflicts:
#	game/game_cluster/nodes/webadmin/entity/admin.go
#	game/game_cluster/nodes/webadmin/service/playerMange.go
zhengtao 8 months ago
parent
commit
bf40a17ed9

+ 64 - 0
game/game_cluster/internal/mdb/models/reward.go

@@ -1,7 +1,10 @@
 package models
 
 import (
+	cutils "github.com/mhaya/extend/utils"
+	"github.com/mhaya/game/game_cluster/internal/constant"
 	"github.com/mhaya/game/game_cluster/internal/data"
+	"go.mongodb.org/mongo-driver/bson"
 )
 
 const (
@@ -34,3 +37,64 @@ type PlayerReward map[int]*PlayerRewardBase
 func NewPlayerReward() map[int]*PlayerRewardBase {
 	return make(map[int]*PlayerRewardBase)
 }
+
+type ToPlayerRewardBase struct {
+	UserName   string          `json:"userName" bson:"userName"`
+	AddReward  []*ToItemReward `json:"AddReward" bson:"addReward"`
+	Desc       interface{}     `json:"desc" bson:"desc"`
+	CreateTime int64           `json:"createTime" bson:"createTime"`
+}
+
+type ToItemReward struct {
+	ItemID   int     // itemID:道具ID
+	Amount   float64 // amount:数量
+	ItemName string  // itemName:道具名称
+}
+
+type ToDesc struct {
+	ID    int `json:"id" bson:"id"`
+	CurID int `json:"cur_id" bson:"curid"`
+}
+
+func (uw *PlayerRewardBase) To() *ToPlayerRewardBase {
+	return &ToPlayerRewardBase{
+		UserName: uw.UserName,
+		AddReward: func() []*ToItemReward {
+			ret := make([]*ToItemReward, 0, 8)
+			for _, v := range uw.AddReward {
+				itemName := ""
+				cfg, exist := data.ItemConfig.Get(v.ItemID)
+				if exist {
+					itemName = cfg.ItemKey
+				}
+
+				ret = append(ret, &ToItemReward{
+					ItemID: v.ItemID,
+					Amount: func() float64 {
+						if itemName == "u" || itemName == "ton" {
+							return cutils.QuoInt64ByRatioToFloat64(int64(v.Amount), constant.MoneyRatio)
+						}
+
+						return float64(v.Amount)
+					}(),
+					ItemName: itemName,
+				})
+			}
+
+			return ret
+		}(),
+		Desc: func() *ToDesc {
+			if uw.Desc == nil {
+				return nil
+			}
+
+			drawMap := uw.Desc.(bson.D).Map()
+			return &ToDesc{
+				ID:    int(drawMap["id"].(int32)),
+				CurID: int(drawMap["curid"].(int32)),
+			}
+		}(),
+		// Desc:       uw.Desc,
+		CreateTime: uw.CreateTime,
+	}
+}

+ 91 - 0
game/game_cluster/nodes/webadmin/controller/player.go

@@ -0,0 +1,91 @@
+package controller
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/mhaya/game/game_cluster/nodes/webadmin/entity"
+	"github.com/mhaya/game/game_cluster/nodes/webadmin/service"
+)
+
+type PlayerManage struct {
+	sev *service.PlayerManage
+}
+
+func NewPlayerManage() *PlayerManage {
+	return &PlayerManage{
+		sev: service.NewPlayerManage(),
+	}
+}
+
+func (w *PlayerManage) GetPlayerlist(ctx *gin.Context) {
+	req := entity.PlayerListReq{}
+	if err := ctx.ShouldBindJSON(&req); err != nil {
+		ctx.JSON(200, gin.H{
+			"code": 400,
+			"msg":  err.Error(),
+		})
+		return
+	}
+	resp, total, err := w.sev.List(ctx, req)
+	if err != nil {
+		ctx.JSON(200, gin.H{
+			"code": 400,
+			"msg":  err.Error(),
+		})
+		return
+	}
+	ctx.JSON(200, gin.H{
+		"code":  200,
+		"data":  resp,
+		"msg":   "success",
+		"total": total,
+	})
+}
+
+func (w *PlayerManage) GetPlayerInfo(ctx *gin.Context) {
+	req := entity.PlayerInfoReq{}
+	if err := ctx.ShouldBindJSON(&req); err != nil {
+		ctx.JSON(200, gin.H{
+			"code": 400,
+			"msg":  err.Error(),
+		})
+		return
+	}
+	resp, err := w.sev.PlayerInfo(ctx, req)
+	if err != nil {
+		ctx.JSON(200, gin.H{
+			"code": 400,
+			"msg":  err.Error(),
+		})
+		return
+	}
+	ctx.JSON(200, gin.H{
+		"code": 200,
+		"data": resp,
+		"msg":  "success",
+	})
+}
+
+func (w *PlayerManage) GetRewardList(ctx *gin.Context) {
+	req := entity.RewardListReq{}
+	if err := ctx.ShouldBindJSON(&req); err != nil {
+		ctx.JSON(200, gin.H{
+			"code": 400,
+			"msg":  err.Error(),
+		})
+		return
+	}
+	resp, total, err := w.sev.RewardList(ctx, req)
+	if err != nil {
+		ctx.JSON(200, gin.H{
+			"code": 400,
+			"msg":  err.Error(),
+		})
+		return
+	}
+	ctx.JSON(200, gin.H{
+		"code":  200,
+		"data":  resp,
+		"msg":   "success",
+		"total": total,
+	})
+}

+ 35 - 25
game/game_cluster/nodes/webadmin/entity/admin.go

@@ -1,5 +1,7 @@
 package entity
 
+import "github.com/mhaya/game/game_cluster/internal/mdb/models"
+
 // AdminResp \game\game_cluster\nodes\webadmin\entity\admin.go
 type AdminResp struct {
 	ToKen  string `json:"token"`
@@ -98,31 +100,39 @@ type PlayerInfoReq struct {
 }
 
 type PlayerInfoResp struct {
-	UserName       string `json:"userName" bson:"userName"`             // 用户名
-	OpenId         string `json:"openId" bson:"openId"`                 // 对应tgid
-	UserNameMaybe  string `json:"userNameMaybe" bson:"userNameMaybe"`   // 昵称
-	NickName       string `json:"nickName" bson:"nickName"`             // 昵称
-	Pid            string `json:"pid" bson:"pid"`                       // 上级ID
-	XID            string `json:"xID" bson:"xID"`                       // 绑定推特ID
-	TonWall        string `json:"tonWall" bson:"tonWall"`               // 绑定钱包地址
-	Email          string `json:"email" bson:"email"`                   // 邮箱
-	Level          int    `json:"level" bson:"level"`                   // 等级
-	Status         int    `json:"status" bson:"status"`                 // 状态  1:有效 2:禁用
-	LoginTime      int64  `json:"loginTime" bson:"loginTime"`           // 登陆时间
-	LoginIP        string `json:"loginIP" bson:"loginIP"`               // 登录IP
-	JoinIP         string `json:"joinIP" bson:"joinIP"`                 // 注册IP
-	JoinTime       int64  `json:"joinTime" bson:"joinTime"`             // 注册时间
-	Avatar         string `json:"avatar" bson:"avatar"`                 // 头像
-	IsRobot        int    `json:"isRobot" bson:"isRobot"`               // 是否为机器人
-	IsLeader       int    `json:"isLeader" bson:"isLeader"`             // 是否是社区长
-	IsVip          int    `json:"isVip" bson:"isVip"`                   // 是否为VIP
-	Successions    int    `json:"successions" bson:"successions"`       // 连续登陆天数
-	MaxSuccessions int    `json:"maxSuccessions" bson:"maxSuccessions"` // 最大连续等级天数
-	PrevTime       int64  `json:"prevTime" bson:"prevTime"`             // 上次登陆时间
-	UpdateTime     int64  `json:"updateTime" bson:"updateTime"`         // 更新时间
-	IsDrawShare    int    `json:"isDrawShare" bson:"isDrawShare"`       // 0未领取,1已领取
-	DrawShareTime  int64  `json:"drawShareTime" bson:"drawShareTime"`   // 领取时间
-	FirstReward    int    `json:"firstReward" bson:"firstReward"`       // 是否已领取首次登陆奖励
+	UserName       string               `json:"userName" bson:"userName"`             // 用户名
+	OpenId         string               `json:"openId" bson:"openId"`                 // 对应tgid
+	UserNameMaybe  string               `json:"userNameMaybe" bson:"userNameMaybe"`   // 昵称
+	NickName       string               `json:"nickName" bson:"nickName"`             // 昵称
+	Pid            string               `json:"pid" bson:"pid"`                       // 上级ID
+	XID            string               `json:"xID" bson:"xID"`                       // 绑定推特ID
+	TonWall        string               `json:"tonWall" bson:"tonWall"`               // 绑定钱包地址
+	Email          string               `json:"email" bson:"email"`                   // 邮箱
+	Level          int                  `json:"level" bson:"level"`                   // 等级
+	Status         int                  `json:"status" bson:"status"`                 // 状态  1:有效 2:禁用
+	LoginTime      int64                `json:"loginTime" bson:"loginTime"`           // 登陆时间
+	LoginIP        string               `json:"loginIP" bson:"loginIP"`               // 登录IP
+	JoinIP         string               `json:"joinIP" bson:"joinIP"`                 // 注册IP
+	JoinTime       int64                `json:"joinTime" bson:"joinTime"`             // 注册时间
+	Avatar         string               `json:"avatar" bson:"avatar"`                 // 头像
+	IsRobot        int                  `json:"isRobot" bson:"isRobot"`               // 是否为机器人
+	IsLeader       int                  `json:"isLeader" bson:"isLeader"`             // 是否是社区长
+	IsVip          int                  `json:"isVip" bson:"isVip"`                   // 是否为VIP
+	Successions    int                  `json:"successions" bson:"successions"`       // 连续登陆天数
+	MaxSuccessions int                  `json:"maxSuccessions" bson:"maxSuccessions"` // 最大连续等级天数
+	PrevTime       int64                `json:"prevTime" bson:"prevTime"`             // 上次登陆时间
+	UpdateTime     int64                `json:"updateTime" bson:"updateTime"`         // 更新时间
+	IsDrawShare    int                  `json:"isDrawShare" bson:"isDrawShare"`       // 0未领取,1已领取
+	DrawShareTime  int64                `json:"drawShareTime" bson:"drawShareTime"`   // 领取时间
+	FirstReward    int                  `json:"firstReward" bson:"firstReward"`       // 是否已领取首次登陆奖励
+	Item           models.ItemBasePack  `json:"item" bson:"item"`                     // 道具
+	SinIn          models.SignIn        `json:"sinIn" bson:"sinIn"`                   // 签到
+	DailyTask      models.DailyTask     `json:"dailyTask" bson:"dailyTask"`           // 日常任务
+	AchieveTask    models.AchieveTask   `json:"achieveTask" bson:"achieveTask"`       // 成就任务
+	RankReward     models.RankReward    `json:"rankReward" bson:"rankReward"`         // 排行奖励
+	Invite         models.Invite        `json:"invite" bson:"invite"`                 // 邀请
+	InviteReward   *models.InviteReward `json:"inviteReward" bson:"inviteReward"`     // 邀请奖励
+	Roll           *models.Roll         `json:"roll" bson:"roll"`                     // 抽奖
 }
 
 type RewardListReq struct {

+ 3 - 0
game/game_cluster/nodes/webadmin/router/router.go

@@ -69,6 +69,9 @@ func (c *Controller) InitApiRouter(u *gin.RouterGroup) {
 	u.POST("/whitelist/add", controller.NewWhitelist().AddWhitelist)
 	u.POST("/whitelist/remove", controller.NewWhitelist().RemoveWhitelist)
 	u.POST("/whitelist/list", controller.NewWhitelist().GetWhitelist)
+	u.POST("/player/list", controller.NewPlayerManage().GetPlayerlist)
+	u.POST("/player/info", controller.NewPlayerManage().GetPlayerInfo)
+	u.POST("/player/rewardList", controller.NewPlayerManage().GetRewardList)
 }
 
 // func (c *Controller) InitMdb() {

+ 9 - 2
game/game_cluster/nodes/webadmin/service/playerMange.go

@@ -1,4 +1,3 @@
-
 package service
 
 import (
@@ -158,6 +157,14 @@ func (a *PlayerManage) PlayerInfo(ctx context.Context, req entity.PlayerInfoReq)
 		IsDrawShare:    player.Share.IsDrawShare,
 		DrawShareTime:  player.Share.DrawShareTime,
 		FirstReward:    player.FirstReward,
+		Item:           player.Item,
+		SinIn:          player.SinIn,
+		DailyTask:      player.DailyTask,
+		AchieveTask:    player.AchieveTask,
+		RankReward:     player.RankReward,
+		Invite:         player.Invite,
+		InviteReward:   player.InviteReward,
+		Roll:           player.Roll,
 	}, nil
 }
 
@@ -236,4 +243,4 @@ func (a *PlayerManage) RewardList(ctx context.Context, req entity.RewardListReq)
 	}
 
 	return results, count, nil
-}
+}