浏览代码

update 完善资产统计逻辑

Alvin 8 月之前
父节点
当前提交
5b36f61047
共有 1 个文件被更改,包括 93 次插入37 次删除
  1. 93 37
      game/game_cluster/nodes/webadmin/service/synthesis.go

+ 93 - 37
game/game_cluster/nodes/webadmin/service/synthesis.go

@@ -795,49 +795,105 @@ func (s *Synthesis) Turntable(req entity.TurntableReq) (*entity.TurntableResp, *
 
 // 资产统计
 func (s *Synthesis) Assets(req entity.AssetsReq) (*entity.AssetsResp, *code.Result) {
-	// TODO Assets
-	// page, pageSize := checkPageParam(req.Page, req.Size)
-
-	// var records []*eventmodels.TurntableEventContent
-
-	// where := &eventmodels.TurntableEventContent{
-	// 	UserBasic: eventmodels.UserBasic{
-	// 		UserId: req.UserName,
-	// 		TgId:   req.OpenId,
-	// 	},
-	// 	EventBasic: eventmodels.EventBasic{
-	// 		ServerId: s.nodeId,
-	// 	},
-	// }
-	// db := mdb.LogstashDB.Model(&eventmodels.TurntableEventContent{}).Where(where).Order("create_at")
-
-	// pages := Paginate(db, page, pageSize)
-	// err := db.Scopes(pages.Limit).Find(&records).Error
-	// if err != nil && err != gorm.ErrRecordNotFound {
-	// 	mhayaLogger.Warnf("Turntable Find error:%v", err)
-	// 	return nil, common.NewResult(code.InternalError)
-	// }
-
-	// var results []*entity.TurntableDetail
-	// for _, v := range records {
-	// 	results = append(results, &entity.TurntableDetail{
-	// 		UserName:               v.UserName,
-	// 		OpenId:                 v.TgId,
-	// 		TurntableExecutionTime: v.CreateAt,
-	// 		PrizeName:              v.PrizeName,
-	// 		PrizeNumber:            v.PrizeNumber,
-	// 	})
-	// }
-
-	count, codeResult := NewPlayerManage().GetPlayerTotalCount()
+	page, pageSize := checkPageParam(req.Page, req.Size)
+
+	playerMgr := NewPlayerManage()
+	listResp, codeResult := playerMgr.List(context.Background(), entity.PlayerListReq{
+		Page: page,
+		Size: pageSize,
+	})
+	if codeResult != nil {
+		mhayaLogger.Warnf("Assets List error:%v", codeResult)
+		return nil, codeResult
+	}
+
+	if req.UserName != "" || req.OpenId != "" {
+		var results []*entity.AssetsDetail
+
+		var totalUsdtAmount int64
+		var totalTonAmount int64
+		where := &eventmodels.AssetsEventContent{
+			UserBasic: eventmodels.UserBasic{
+				UserId: req.UserName,
+				TgId:   req.OpenId,
+			},
+			EventBasic: eventmodels.EventBasic{
+				ServerId: s.nodeId,
+			},
+		}
+		where.Currency = string(constant.UsdtCurrency)
+		err := mdb.LogstashDB.Model(&eventmodels.AssetsEventContent{}).Where(where).Pluck("SUM(amount) as total_amount", &totalUsdtAmount).Error
+		if err != nil {
+			mhayaLogger.Warnf("Assets Pluck UsdtCurrency error:%v", err)
+			return nil, common.NewResult(code.InternalError)
+		}
+
+		where.Currency = string(constant.TonCurrency)
+		err = mdb.LogstashDB.Model(&eventmodels.AssetsEventContent{}).Where(where).Pluck("SUM(amount) as total_amount", &totalTonAmount).Error
+		if err != nil {
+			mhayaLogger.Warnf("Assets Pluck TonCurrency error:%v", err)
+			return nil, common.NewResult(code.InternalError)
+		}
+
+		results = append(results, &entity.AssetsDetail{
+			UserName:        req.UserName,
+			OpenId:          req.OpenId,
+			TonValue:        totalTonAmount,
+			UsdtValue:       totalUsdtAmount,
+			StatisticalDate: mhayaTime.Now().Unix(),
+		})
+
+		return &entity.AssetsResp{
+			Details: results,
+			Total:   1,
+		}, nil
+	}
+
+	var results []*entity.AssetsDetail
+	for _, detail := range listResp.Details {
+		var totalUsdtAmount int64
+		var totalTonAmount int64
+		where := &eventmodels.AssetsEventContent{
+			UserBasic: eventmodels.UserBasic{
+				UserId: detail.UserName,
+				TgId:   detail.OpenId,
+			},
+			EventBasic: eventmodels.EventBasic{
+				ServerId: s.nodeId,
+			},
+		}
+		where.Currency = string(constant.UsdtCurrency)
+		err := mdb.LogstashDB.Model(&eventmodels.AssetsEventContent{}).Where(where).Pluck("SUM(amount) as total_amount", &totalUsdtAmount).Error
+		if err != nil {
+			mhayaLogger.Warnf("Assets Pluck UsdtCurrency error:%v", err)
+			return nil, common.NewResult(code.InternalError)
+		}
+
+		where.Currency = string(constant.TonCurrency)
+		err = mdb.LogstashDB.Model(&eventmodels.AssetsEventContent{}).Where(where).Pluck("SUM(amount) as total_amount", &totalTonAmount).Error
+		if err != nil {
+			mhayaLogger.Warnf("Assets Pluck TonCurrency error:%v", err)
+			return nil, common.NewResult(code.InternalError)
+		}
+
+		results = append(results, &entity.AssetsDetail{
+			UserName:        detail.UserName,
+			OpenId:          detail.OpenId,
+			TonValue:        totalTonAmount,
+			UsdtValue:       totalUsdtAmount,
+			StatisticalDate: mhayaTime.Now().Unix(),
+		})
+	}
+
+	count, codeResult := playerMgr.GetPlayerTotalCount()
 	if codeResult != nil {
 		mhayaLogger.Warnf("Assets GetPlayerTotalCount codeResult:%v", codeResult)
 		return nil, codeResult
 	}
 
 	return &entity.AssetsResp{
-		// Details: results,
-		Total: int64(count),
+		Details: results,
+		Total:   int64(count),
 	}, nil
 }