fix(agent): 规范分销商详情展示,明确合伙股东仅为会员进阶身份并杜绝误导管理员

- 修复非合伙股东会员(品酒师)被误判为自购考核已暂停的问题,明确赋值为免自购考核

- 分离基础会员信息与合伙股东进阶身份展示,对非合伙股东提供清晰的身份说明与免考核提示

- 纠正佣金规则提示文案为收益中心固定金额规则,收益现金统一规范为收益中心累计现金

- 列表页与详情页同步优化非合伙股东 30 日活跃状态呈现

- 增加 TDD 自动化验证测试套件 verify_agent_partner_identity_spec.js 并通过全部回归测试
这个提交包含在:
wikiboss
2026-09-17 15:08:46 +08:00
父节点 b67d15983e
当前提交 a67e23391e
共有 4 个文件被更改,包括 178 次插入 和 47 次删除

查看文件

@@ -58,18 +58,43 @@ class Agent extends Common
$last = intval($detail->last_self_order_time ?? 0);
$days = \addons\shopro\service\partner\PartnerConfig::activeDays();
$ago = $last ? intval(floor((time() - $last) / 86400)) : null;
$cash = \app\admin\model\shopro\partner\Reward::where('user_id', $id)
->where('status', 1)
->where('amount', '>', 0)
->sum('amount');
$identityInfo = \addons\shopro\service\partner\IdentityService::build($detail);
$isPartner = !empty($identityInfo['is_partner']);
$detail->is_partner = $isPartner ? 1 : 0;
$detail->next_push3_amount = number_format((float) $next, 2, '.', '');
$detail->next_push3_text = '第 ' . ($seq + 1) . ' 单将返 ' . $detail->next_push3_amount;
$detail->last_self_order_text = $last ? date('Y-m-d H:i:s', $last) : '从未下单';
$detail->active_status_text = !empty($detail->active_30d)
? '正常领取'
: ('已暂停' . ($ago !== null ? '(距今 ' . $ago . ' 天)' : ''));
$detail->partner_cash_income = number_format((float) $cash, 2, '.', '');
// 业务核心规范:合伙股东仅是会员专属进阶身份,普通会员与品酒师免自购考核
if (!$isPartner) {
$detail->active_status_text = '免自购考核 (基础会员/品酒师)';
} else {
$detail->active_status_text = !empty($detail->active_30d)
? '正常领取'
: ('已暂停' . ($ago !== null ? '(距今 ' . $ago . ' 天)' : ''));
}
$totalCash = \app\admin\model\shopro\partner\Reward::where('user_id', $id)
->where('status', 1)
->where('amount', '>', 0)
->sum('amount');
$push3Cash = \app\admin\model\shopro\partner\Reward::where('user_id', $id)
->where('status', 1)
->where('amount', '>', 0)
->where('reward_type', 'push3')
->sum('amount');
$partnerExclusiveCash = \app\admin\model\shopro\partner\Reward::where('user_id', $id)
->where('status', 1)
->where('amount', '>', 0)
->where('reward_type', '<>', 'push3')
->sum('amount');
$detail->income_total_cash = number_format((float) $totalCash, 2, '.', '');
$detail->push3_cash_income = number_format((float) $push3Cash, 2, '.', '');
$detail->partner_exclusive_cash = number_format((float) $partnerExclusiveCash, 2, '.', '');
$detail->partner_cash_income = $detail->income_total_cash;
$detail->partner_mode = \addons\shopro\service\partner\PartnerConfig::isPartnerMode() ? 1 : 0;
$rate = (new \addons\shopro\service\partner\RateService())->currentRate();
$detail->madow_value = \addons\shopro\service\partner\IdentityService::formatMoney((float) ($detail->madow ?? 0) * (float) $rate);