feat(dashboard): 完善全角色身份会员数量、马豆存量、分佣及市值统计矩阵
这个提交包含在:
@@ -61,6 +61,7 @@ class DashboardWealthTest
|
||||
echo "========================================================\n\n";
|
||||
|
||||
$this->testTotalWealthData();
|
||||
$this->testAllRolesStatisticsIntegrity();
|
||||
$this->testChartNormalData();
|
||||
$this->testChartEmptyDateFallback();
|
||||
$this->testRankingPartnerAndDailyData();
|
||||
@@ -108,10 +109,49 @@ class DashboardWealthTest
|
||||
|
||||
$this->assert(!empty($network) && isset($network['maker_count'], $network['taster_count'], $network['active_rate']),
|
||||
'total() 返回完整的 partner_network 合伙股东活力分布');
|
||||
|
||||
$this->assert(!empty($network['role_list']) && is_array($network['role_list']),
|
||||
'total() 返回 role_list 全角色身份矩阵列表');
|
||||
|
||||
$this->assert(!empty($network['role_stats']) && is_array($network['role_stats']),
|
||||
'total() 返回 role_stats 全角色身份字典索引');
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试 2:核心走势 chart() 正常日期区间返回
|
||||
* 测试 2:每一个角色身份的会员数、马豆数量、分佣数量与马豆价值精算校验
|
||||
*/
|
||||
public function testAllRolesStatisticsIntegrity()
|
||||
{
|
||||
$controller = new TestableDashboard();
|
||||
$controller->total();
|
||||
|
||||
$roleStats = $controller->lastOutput['data']['partner_network']['role_stats'] ?? [];
|
||||
$requiredRoles = ['taster', 'maker_v1', 'maker_v2', 'maker_v3', 'maker_v4', 'maker_v5', 'maker_v6', 'maker_total', 'venue', 'county', 'partner_total', 'all_total'];
|
||||
|
||||
foreach ($requiredRoles as $roleKey) {
|
||||
$this->assert(isset($roleStats[$roleKey]), "矩阵包含角色身份: {$roleKey}");
|
||||
$item = $roleStats[$roleKey] ?? [];
|
||||
$this->assert(isset($item['user_count'], $item['madow_total'], $item['madow_cny'], $item['reward_amount'], $item['reward_count'], $item['active_rate']),
|
||||
"角色 {$roleKey} 完整包含会员数、持豆量、马豆市值、分佣总额、分佣笔数与活跃率");
|
||||
}
|
||||
|
||||
// 勾稽校验:品酒师 (553.75) + 创客队伍 (838.00) = 全网分佣 (1391.75)
|
||||
$tasterReward = (float)($roleStats['taster']['reward_amount'] ?? 0);
|
||||
$makerReward = (float)($roleStats['maker_total']['reward_amount'] ?? 0);
|
||||
$allReward = (float)($roleStats['all_total']['reward_amount'] ?? 0);
|
||||
$this->assert(abs(($tasterReward + $makerReward) - $allReward) < 0.01,
|
||||
"分佣勾稽校验: 品酒师({$tasterReward}) + 创客队伍({$makerReward}) == 全员分佣({$allReward})");
|
||||
|
||||
// 马豆总量勾稽校验:品酒师 (699.0) + 创客队伍 (699.0) = 全网马豆 (1398.0)
|
||||
$tasterMadow = (float)($roleStats['taster']['madow_total'] ?? 0);
|
||||
$makerMadow = (float)($roleStats['maker_total']['madow_total'] ?? 0);
|
||||
$allMadow = (float)($roleStats['all_total']['madow_total'] ?? 0);
|
||||
$this->assert(abs(($tasterMadow + $makerMadow) - $allMadow) < 0.0001,
|
||||
"马豆勾稽校验: 品酒师({$tasterMadow}) + 创客队伍({$makerMadow}) == 全网马豆({$allMadow})");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试 3:核心走势 chart() 正常日期区间返回
|
||||
*/
|
||||
public function testChartNormalData()
|
||||
{
|
||||
|
||||
在新工单中引用
屏蔽一个用户