|
|
@@ -33,8 +33,10 @@ use Carbon\Carbon;
|
|
|
*/
|
|
|
class InfoHandler extends BaseHandler
|
|
|
{
|
|
|
+
|
|
|
/**
|
|
|
* 是否需要登录
|
|
|
+ *
|
|
|
* @var bool
|
|
|
*/
|
|
|
protected bool $need_login = true;
|
|
|
@@ -61,6 +63,7 @@ class InfoHandler extends BaseHandler
|
|
|
Log::info('用户未进入URS推广系统', [
|
|
|
'user_id' => $this->user_id
|
|
|
]);
|
|
|
+
|
|
|
return $this->setEmptyResponse($response);
|
|
|
}
|
|
|
|
|
|
@@ -77,8 +80,8 @@ class InfoHandler extends BaseHandler
|
|
|
$rewardStats = $this->getRewardStats($ursUserId);
|
|
|
|
|
|
// 获取达人等级信息
|
|
|
- $talentInfo = UrsTalentService::getTalentInfo($ursUserId);
|
|
|
- $starLevel = $talentInfo ? $talentInfo->talentLevel : 0;
|
|
|
+ $talentInfo = UrsTalentService::getTalentInfo($this->user_id);
|
|
|
+ $starLevel = $talentInfo ? $talentInfo->talentLevel : 0;
|
|
|
|
|
|
// 设置响应数据
|
|
|
$response->setTotalCount($referralStats['total_team_count'] ?? 0);
|
|
|
@@ -97,17 +100,17 @@ class InfoHandler extends BaseHandler
|
|
|
$response->setTotalReward($totalReward);
|
|
|
|
|
|
Log::info('推广团队信息获取成功', [
|
|
|
- 'user_id' => $this->user_id,
|
|
|
- 'urs_user_id' => $ursUserId,
|
|
|
- 'total_count' => $referralStats['total_team_count'] ?? 0,
|
|
|
+ 'user_id' => $this->user_id,
|
|
|
+ 'urs_user_id' => $ursUserId,
|
|
|
+ 'total_count' => $referralStats['total_team_count'] ?? 0,
|
|
|
'direct_count' => $referralStats['direct_count'] ?? 0
|
|
|
]);
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
Log::error('获取推广团队信息失败', [
|
|
|
'user_id' => $this->user_id,
|
|
|
- 'error' => $e->getMessage(),
|
|
|
- 'trace' => $e->getTraceAsString()
|
|
|
+ 'error' => $e->getMessage(),
|
|
|
+ 'trace' => $e->getTraceAsString()
|
|
|
]);
|
|
|
|
|
|
// 发生错误时返回空数据
|
|
|
@@ -175,7 +178,7 @@ class InfoHandler extends BaseHandler
|
|
|
$teamMembers = UrsReferralService::getTeamMembers($ursUserId);
|
|
|
|
|
|
$directNewCount = 0;
|
|
|
- $teamNewCount = 0;
|
|
|
+ $teamNewCount = 0;
|
|
|
|
|
|
// 统计今日新增的直推用户
|
|
|
if (!empty($teamMembers[1])) {
|
|
|
@@ -194,7 +197,7 @@ class InfoHandler extends BaseHandler
|
|
|
}
|
|
|
|
|
|
// 统计今日新增的间推和三推用户
|
|
|
- foreach ([2, 3] as $level) {
|
|
|
+ foreach ([ 2, 3 ] as $level) {
|
|
|
if (!empty($teamMembers[$level])) {
|
|
|
foreach ($teamMembers[$level] as $member) {
|
|
|
$farmUserId = UrsUserMappingService::getFarmUserId($member);
|
|
|
@@ -211,18 +214,18 @@ class InfoHandler extends BaseHandler
|
|
|
|
|
|
return [
|
|
|
'direct_new_count' => $directNewCount,
|
|
|
- 'team_new_count' => $teamNewCount
|
|
|
+ 'team_new_count' => $teamNewCount
|
|
|
];
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
Log::error('获取今日统计数据失败', [
|
|
|
'urs_user_id' => $ursUserId,
|
|
|
- 'error' => $e->getMessage()
|
|
|
+ 'error' => $e->getMessage()
|
|
|
]);
|
|
|
|
|
|
return [
|
|
|
'direct_new_count' => 0,
|
|
|
- 'team_new_count' => 0
|
|
|
+ 'team_new_count' => 0
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
@@ -236,11 +239,11 @@ class InfoHandler extends BaseHandler
|
|
|
private function getActiveStats(int $ursUserId): array
|
|
|
{
|
|
|
try {
|
|
|
- $teamMembers = UrsReferralService::getTeamMembers($ursUserId);
|
|
|
+ $teamMembers = UrsReferralService::getTeamMembers($ursUserId);
|
|
|
$activeThreshold = Carbon::now()->subHours(24); // 24小时内活跃
|
|
|
|
|
|
$directActiveCount = 0;
|
|
|
- $teamActiveCount = 0;
|
|
|
+ $teamActiveCount = 0;
|
|
|
|
|
|
// 统计直推活跃用户
|
|
|
if (!empty($teamMembers[1])) {
|
|
|
@@ -257,7 +260,7 @@ class InfoHandler extends BaseHandler
|
|
|
}
|
|
|
|
|
|
// 统计间推和三推活跃用户
|
|
|
- foreach ([2, 3] as $level) {
|
|
|
+ foreach ([ 2, 3 ] as $level) {
|
|
|
if (!empty($teamMembers[$level])) {
|
|
|
foreach ($teamMembers[$level] as $member) {
|
|
|
$farmUserId = UrsUserMappingService::getFarmUserId($member);
|
|
|
@@ -273,18 +276,18 @@ class InfoHandler extends BaseHandler
|
|
|
|
|
|
return [
|
|
|
'direct_active_count' => $directActiveCount,
|
|
|
- 'team_active_count' => $teamActiveCount
|
|
|
+ 'team_active_count' => $teamActiveCount
|
|
|
];
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
Log::error('获取活跃用户统计失败', [
|
|
|
'urs_user_id' => $ursUserId,
|
|
|
- 'error' => $e->getMessage()
|
|
|
+ 'error' => $e->getMessage()
|
|
|
]);
|
|
|
|
|
|
return [
|
|
|
'direct_active_count' => 0,
|
|
|
- 'team_active_count' => 0
|
|
|
+ 'team_active_count' => 0
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
@@ -301,7 +304,8 @@ class InfoHandler extends BaseHandler
|
|
|
// 获取对应的农场用户ID
|
|
|
$farmUserId = UrsUserMappingService::getFarmUserId($ursUserId);
|
|
|
if (!$farmUserId) {
|
|
|
- Log::info('URS用户未映射到农场用户', ['urs_user_id' => $ursUserId]);
|
|
|
+ Log::info('URS用户未映射到农场用户', [ 'urs_user_id' => $ursUserId ]);
|
|
|
+
|
|
|
return [
|
|
|
'today_reward' => null,
|
|
|
'total_reward' => null
|
|
|
@@ -309,12 +313,11 @@ class InfoHandler extends BaseHandler
|
|
|
}
|
|
|
|
|
|
// 获取今日收益统计
|
|
|
- $today = Carbon::today()->format('Y-m-d');
|
|
|
- $tomorrow = Carbon::tomorrow()->format('Y-m-d');
|
|
|
+ $today = Carbon::today()->format('Y-m-d');
|
|
|
+ $tomorrow = Carbon::tomorrow()->format('Y-m-d');
|
|
|
$todayStats = $this->getRewardStatsFromLogs($farmUserId, $today, $tomorrow);
|
|
|
|
|
|
|
|
|
-
|
|
|
// 获取总收益统计
|
|
|
$totalStats = $this->getRewardStatsFromLogs($farmUserId);
|
|
|
|
|
|
@@ -338,7 +341,7 @@ class InfoHandler extends BaseHandler
|
|
|
} catch (\Exception $e) {
|
|
|
Log::error('获取收益统计失败', [
|
|
|
'urs_user_id' => $ursUserId,
|
|
|
- 'error' => $e->getMessage()
|
|
|
+ 'error' => $e->getMessage()
|
|
|
]);
|
|
|
|
|
|
return [
|
|
|
@@ -359,10 +362,10 @@ class InfoHandler extends BaseHandler
|
|
|
private function getRewardStatsFromLogs(int $farmUserId, ?string $startDate = null, ?string $endDate = null): array
|
|
|
{
|
|
|
$stats = [
|
|
|
- 'total_amount' => 0,
|
|
|
- 'total_count' => 0,
|
|
|
- 'items' => [], // 物品奖励列表
|
|
|
- 'coins' => [], // 代币奖励列表
|
|
|
+ 'total_amount' => 0,
|
|
|
+ 'total_count' => 0,
|
|
|
+ 'items' => [], // 物品奖励列表
|
|
|
+ 'coins' => [], // 代币奖励列表
|
|
|
'by_source_type' => []
|
|
|
];
|
|
|
|
|
|
@@ -377,7 +380,6 @@ class InfoHandler extends BaseHandler
|
|
|
];
|
|
|
|
|
|
|
|
|
-
|
|
|
// 1.1. 从物品交易日志表中统计URS推广奖励(补充查询)
|
|
|
$itemQuery = \App\Module\GameItems\Models\ItemTransactionLog::where('user_id', $farmUserId)
|
|
|
->where('transaction_type', 1) // 收入类型
|
|
|
@@ -395,7 +397,7 @@ class InfoHandler extends BaseHandler
|
|
|
foreach ($itemLogs as $log) {
|
|
|
$stats['total_count']++;
|
|
|
|
|
|
- $itemId = $log->item_id;
|
|
|
+ $itemId = $log->item_id;
|
|
|
$quantity = $log->quantity;
|
|
|
|
|
|
if ($itemId > 0) {
|
|
|
@@ -410,7 +412,7 @@ class InfoHandler extends BaseHandler
|
|
|
// 按来源类型统计
|
|
|
$sourceType = $log->source_type;
|
|
|
if (!isset($stats['by_source_type'][$sourceType])) {
|
|
|
- $stats['by_source_type'][$sourceType] = ['amount' => 0, 'count' => 0];
|
|
|
+ $stats['by_source_type'][$sourceType] = [ 'amount' => 0, 'count' => 0 ];
|
|
|
}
|
|
|
$stats['by_source_type'][$sourceType]['count']++;
|
|
|
}
|
|
|
@@ -418,7 +420,7 @@ class InfoHandler extends BaseHandler
|
|
|
// 2. 从资金日志表中统计钻石奖励
|
|
|
$fundQuery = FundLogModel::where('user_id', $farmUserId)
|
|
|
->where('fund_id', FUND_TYPE::FUND2->value) // 钻石类型
|
|
|
- ->where('amount', '>', 0) // 只统计收入
|
|
|
+ ->where('amount', '>', 0) // 只统计收入
|
|
|
->where('remark', 'like', '%推广%'); // 包含推广关键词的备注
|
|
|
|
|
|
if ($startDate) {
|
|
|
@@ -447,7 +449,7 @@ class InfoHandler extends BaseHandler
|
|
|
// 按备注内容推断来源类型
|
|
|
$sourceType = $this->inferSourceTypeFromRemark($log->remark);
|
|
|
if (!isset($stats['by_source_type'][$sourceType])) {
|
|
|
- $stats['by_source_type'][$sourceType] = ['amount' => 0, 'count' => 0];
|
|
|
+ $stats['by_source_type'][$sourceType] = [ 'amount' => 0, 'count' => 0 ];
|
|
|
}
|
|
|
$stats['by_source_type'][$sourceType]['amount'] += $amount;
|
|
|
$stats['by_source_type'][$sourceType]['count']++;
|
|
|
@@ -456,9 +458,9 @@ class InfoHandler extends BaseHandler
|
|
|
} catch (\Exception $e) {
|
|
|
Log::error('从日志获取收益统计失败', [
|
|
|
'farm_user_id' => $farmUserId,
|
|
|
- 'start_date' => $startDate,
|
|
|
- 'end_date' => $endDate,
|
|
|
- 'error' => $e->getMessage()
|
|
|
+ 'start_date' => $startDate,
|
|
|
+ 'end_date' => $endDate,
|
|
|
+ 'error' => $e->getMessage()
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
@@ -466,7 +468,6 @@ class InfoHandler extends BaseHandler
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 从备注推断收益来源类型
|
|
|
*
|
|
|
@@ -536,4 +537,5 @@ class InfoHandler extends BaseHandler
|
|
|
|
|
|
return $reward;
|
|
|
}
|
|
|
+
|
|
|
}
|