Просмотр исходного кода

update 获取玩家信息的分享数据

Alvin 8 месяцев назад
Родитель
Сommit
ee9d171ef4
1 измененных файлов с 52 добавлено и 1 удалено
  1. 52 1
      game/game_cluster/nodes/webadmin/service/playerMange.go

+ 52 - 1
game/game_cluster/nodes/webadmin/service/playerMange.go

@@ -2,8 +2,10 @@ package service
 
 import (
 	"context"
+	"time"
 
 	jsoniter "github.com/json-iterator/go"
+	mhayaTime "github.com/mhaya/extend/time"
 	cutils "github.com/mhaya/extend/utils"
 	"github.com/mhaya/game/game_cluster/internal/code"
 	"github.com/mhaya/game/game_cluster/internal/constant"
@@ -473,6 +475,40 @@ func (a *PlayerManage) GetLastestTaskInfo(userName, taskId string) (*eventmodels
 	return taskRecord, nil
 }
 
+// 获取玩家的分享记录 date:2006-01-02
+func (a *PlayerManage) GetShareRecord(userName, date string) (*eventmodels.ShareEventContent, *code.Result) {
+	where := &eventmodels.ShareEventContent{
+		UserBasic: eventmodels.UserBasic{
+			UserId: userName,
+		},
+	}
+	db := mdb.LogstashDB.Model(&eventmodels.ShareEventContent{}).Where(where)
+
+	t, err := time.Parse(time.DateOnly, date)
+	if err != nil {
+		mhayaLogger.Warnf("GetShareRecord Parse date:%s error:%v", date, err)
+		return nil, common.NewResult(code.InternalError)
+	}
+	dateTime := mhayaTime.CreateFromDate(t.Year(), int(t.Month()), t.Day())
+
+	startTime := dateTime.StartOfDay().Unix()
+	endTime := dateTime.EndOfDay().Unix()
+	db = db.Where("create_at >= ? and create_at <= ?", startTime, endTime)
+
+	shareRecord := &eventmodels.ShareEventContent{}
+	err = db.First(&shareRecord).Error
+	if err != nil && err != gorm.ErrRecordNotFound {
+		mhayaLogger.Warnf("GetShareRecord First error:%v", err)
+		return nil, common.NewResult(code.InternalError)
+	}
+
+	if err == gorm.ErrRecordNotFound {
+		return nil, nil
+	}
+
+	return shareRecord, nil
+}
+
 // 获取玩家详情
 func (a *PlayerManage) PlayerInfo(ctx context.Context, req entity.PlayerInfoReq) (*entity.PlayerInfoResp, *code.Result) {
 	registerRecord, codeResult := a.GetPlayerRegisterRecord(req.UserName)
@@ -498,6 +534,12 @@ func (a *PlayerManage) PlayerInfo(ctx context.Context, req entity.PlayerInfoReq)
 		return nil, codeResult
 	}
 
+	shareRecord, codeResult := a.GetShareRecord(req.UserName, mhayaTime.Now().Format(time.DateOnly))
+	if codeResult != nil {
+		mhayaLogger.Warnf("PlayerInfo GetShareRecord error:%v", codeResult)
+		return nil, codeResult
+	}
+
 	return &entity.PlayerInfoResp{
 		UserName: func() string {
 			if updateRecord != nil {
@@ -680,8 +722,17 @@ func (a *PlayerManage) PlayerInfo(ctx context.Context, req entity.PlayerInfoReq)
 
 			return 0
 		}(),
+		Share: func() *models.Share {
+			if shareRecord != nil {
+				return &models.Share{
+					IsDrawShare:   shareRecord.RewardDrawStatus,
+					DrawShareTime: shareRecord.CreateAt,
+				}
+			}
+
+			return nil
+		}(),
 		// TODO 其他玩家信息
-		Share:       nil, // TODO 每天分享一次
 		FirstReward: 0,
 		// Item:,
 		// SinIn:,