Jelajahi Sumber

update 封装玩家数据查询

Alvin 8 bulan lalu
induk
melakukan
919eb8729b
1 mengubah file dengan 185 tambahan dan 0 penghapusan
  1. 185 0
      game/game_cluster/nodes/webadmin/service/playerMange.go

+ 185 - 0
game/game_cluster/nodes/webadmin/service/playerMange.go

@@ -174,6 +174,162 @@ func (a *PlayerManage) List(ctx context.Context, req entity.PlayerListReq) (*ent
 	}, nil
 }
 
+// 获取累计登录次数
+func (a *PlayerManage) GetMaxSuccessions(userName string) (int64, *code.Result) {
+	loginWhere := &eventmodels.UserLoginEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+	}
+	loginDb := mdb.LogstashDB.Model(&eventmodels.UserLoginEventContent{}).Where(loginWhere).Order("create_at")
+	var loginCount int64
+	err := loginDb.Count(&loginCount).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetMaxSuccessions loginCount error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return loginCount, nil
+}
+
+// 获取用户骰子点击次数
+func (a *PlayerManage) GetDiceHits(userName string) (int64, *code.Result) {
+	diceClickWhere := &eventmodels.ClickEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+		ClickName: string(constant.DiceClickName),
+	}
+	clickDb := mdb.LogstashDB.Model(&eventmodels.ClickEventContent{}).Where(diceClickWhere).Order("create_at")
+	var diceHits int64
+	err := clickDb.Count(&diceHits).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetDiceHits diceHits error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return diceHits, nil
+}
+
+// 获取邀请点击次数
+func (a *PlayerManage) GetInvitationHits(userName string) (int64, *code.Result) {
+	inviteClickWhere := &eventmodels.ClickEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+		ClickName: string(constant.InviteClickName),
+	}
+	clickDb := mdb.LogstashDB.Model(&eventmodels.ClickEventContent{}).Where(inviteClickWhere).Order("create_at")
+	var invitationHits int64
+	err := clickDb.Count(&invitationHits).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetInvitationHits invitationHits error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return invitationHits, nil
+}
+
+// 获取转盘点击次数
+func (a *PlayerManage) GetTurntableClicks(userName string) (int64, *code.Result) {
+	turntableClickWhere := &eventmodels.ClickEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+		ClickName: string(constant.TurntableClickName),
+	}
+	clickDb := mdb.LogstashDB.Model(&eventmodels.ClickEventContent{}).Where(turntableClickWhere).Order("create_at")
+	var turntableClicks int64
+	err := clickDb.Count(&turntableClicks).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetTurntableClicks turntableClicks error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return turntableClicks, nil
+}
+
+// 获取转盘实际抽奖次数
+func (a *PlayerManage) GetTurntableRuns(userName string) (int64, *code.Result) {
+	turntableWhere := &eventmodels.TurntableEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+	}
+	turntableDb := mdb.LogstashDB.Model(&eventmodels.TurntableEventContent{}).Where(turntableWhere).Order("create_at")
+	var turntableRuns int64
+	err := turntableDb.Count(&turntableRuns).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetTurntableRuns turntableRuns error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return turntableRuns, nil
+}
+
+// 获取邀请成功人数 status:查询的事件状态
+func (a *PlayerManage) GetSuccessfulInvitations(userName string, status int) (int64, *code.Result) {
+	inviteWhere := &eventmodels.InviteEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+		EventBasic: eventmodels.EventBasic{
+			Status: status,
+		},
+	}
+	inviteDb := mdb.LogstashDB.Model(&eventmodels.InviteEventContent{}).Where(inviteWhere).Order("create_at")
+	var successfulInvitations int64
+	err := inviteDb.Count(&successfulInvitations).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetSuccessfulInvitations successfulInvitations error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return successfulInvitations, nil
+}
+
+// 获取提现次数 status:查询的事件状态
+func (a *PlayerManage) GetWithdrawalCount(userName string, status int) (int64, *code.Result) {
+	withdrawalWhere := &eventmodels.UserWithdrawEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+		EventBasic: eventmodels.EventBasic{
+			Status: status,
+		},
+	}
+	withdrawalDb := mdb.LogstashDB.Model(&eventmodels.UserWithdrawEventContent{}).Where(withdrawalWhere).Order("create_at")
+	var withdrawals int64
+	err := withdrawalDb.Count(&withdrawals).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetWithdrawalCount withdrawals error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return withdrawals, nil
+}
+
+// 获取累计提现金额 currency:货币类型 status:查询的事件状态
+func (a *PlayerManage) GetCumulativeWithdrawalAmount(userName, currency string, status int) (int64, *code.Result) {
+	withdrawalAmountWhere := &eventmodels.UserWithdrawEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+		EventBasic: eventmodels.EventBasic{
+			Status: status,
+		},
+		Currency: currency,
+	}
+	var cumulativeWithdrawalAmount int64
+	err := mdb.LogstashDB.Model(&eventmodels.UserWithdrawEventContent{}).Where(withdrawalAmountWhere).Pluck("SUM(amount) as total_amount", &cumulativeWithdrawalAmount).Error
+	if err != nil {
+		mhayaLogger.Warnf("GetCumulativeWithdrawalAmount Pluck currency error:%v", err)
+		return 0, common.NewResult(code.InternalError)
+	}
+
+	return cumulativeWithdrawalAmount, nil
+}
+
 // 获取的是注册的总人数
 func (a *PlayerManage) GetPlayerTotalCount() (int64, *code.Result) {
 	where := &eventmodels.UserRegisterEventContent{
@@ -212,6 +368,35 @@ func (a *PlayerManage) GetLoginedPlayerTotalCount() (int64, *code.Result) {
 	return count, nil
 }
 
+// 获取最新的用户信息更新记录
+func (a *PlayerManage) GetPlayerLastestUpdateRecord(userName string) (*eventmodels.UserUpdateInfoEventContent, *code.Result) {
+	var updateRecord *eventmodels.UserUpdateInfoEventContent
+	updateWhere := &eventmodels.UserUpdateInfoEventContent{
+		UserBasic: eventmodels.UserBasic{UserId: userName},
+	}
+	err := mdb.LogstashDB.Model(&eventmodels.UserUpdateInfoEventContent{}).Where(updateWhere).Order("create_at desc").First(&updateRecord).Error
+	if err != nil && err != gorm.ErrRecordNotFound {
+		mhayaLogger.Warnf("GetPlayerLastestUpdateRecord First updateRecord error:%v", err)
+		return nil, common.NewResult(code.InternalError)
+	}
+
+	return updateRecord, nil
+}
+
+func (a *PlayerManage) GetPlayerRegisterRecord(userName string) (*eventmodels.UserRegisterEventContent, *code.Result) {
+	var registerRecord *eventmodels.UserRegisterEventContent
+	where := &eventmodels.UserRegisterEventContent{
+		UserBasic: eventmodels.UserBasic{UserId: userName},
+	}
+	err := mdb.LogstashDB.Model(&eventmodels.UserRegisterEventContent{}).Where(where).First(&registerRecord).Error
+	if err != nil && err != gorm.ErrRecordNotFound {
+		mhayaLogger.Warnf("GetPlayerRegisterRecord First registerRecord error:%v", err)
+		return nil, common.NewResult(code.InternalError)
+	}
+
+	return registerRecord, nil
+}
+
 // 获取玩家详情
 func (a *PlayerManage) PlayerInfo(ctx context.Context, req entity.PlayerInfoReq) (*entity.PlayerInfoResp, *code.Result) {
 	// 获取最新的用户信息更新记录