fix(export): 修复Excel导出zipstream库PHP8兼容性与临时文件安全流式输出
这个提交包含在:
@@ -30,7 +30,7 @@ assert(rewardModelContent.includes("'wallet_type_text'"), 'Reward 模型 $append
|
||||
assert(rewardModelContent.includes('function getWalletTypeAttr'), '包含 getWalletTypeAttr 属性获取器');
|
||||
assert(rewardModelContent.includes('function getWalletTypeTextAttr'), '包含 getWalletTypeTextAttr 属性获取器');
|
||||
assert(rewardModelContent.includes("PartnerConfig::rewardWalletType()"), '现金分润缺省联动 PartnerConfig::rewardWalletType()');
|
||||
assert(rewardModelContent.includes("'商城余额'"), 'wallet_type_text 映射包含 商城余额');
|
||||
assert(rewardModelContent.includes("'钱包余额'"), 'wallet_type_text 映射包含 钱包余额');
|
||||
assert(rewardModelContent.includes("'佣金钱包'"), 'wallet_type_text 映射包含 佣金钱包');
|
||||
assert(rewardModelContent.includes("'分红dmepa'"), 'wallet_type_text 映射包含 分红dmepa');
|
||||
|
||||
@@ -52,7 +52,7 @@ console.log('\n--- 3. 订单详情视图 (order/detail.html) 验证 ---');
|
||||
const orderDetailViewPath = path.join(rootDir, 'application/admin/view/shopro/order/order/detail.html');
|
||||
assert(fs.existsSync(orderDetailViewPath), 'order/detail.html 文件存在');
|
||||
const orderDetailViewContent = fs.readFileSync(orderDetailViewPath, 'utf8');
|
||||
assert(orderDetailViewContent.includes('直入商城余额'), '分成顶部横幅包含「直入商城余额」专属 Tag 提示');
|
||||
assert(orderDetailViewContent.includes('直入钱包余额'), '分成顶部横幅包含「直入钱包余额」专属 Tag 提示');
|
||||
assert(orderDetailViewContent.includes('label="入账账户"'), '分成明细表格包含「入账账户」列');
|
||||
assert(orderDetailViewContent.includes('scope.row.wallet_type_text'), '入账账户列展示 scope.row.wallet_type_text');
|
||||
|
||||
@@ -86,7 +86,7 @@ assert(userControllerContent.includes("$data['commission'] = number_format"), 'U
|
||||
const userDetailViewPath = path.join(rootDir, 'application/admin/view/shopro/user/user/detail.html');
|
||||
assert(fs.existsSync(userDetailViewPath), 'user/detail.html 文件存在');
|
||||
const userDetailViewContent = fs.readFileSync(userDetailViewPath, 'utf8');
|
||||
assert(userDetailViewContent.includes('当前商城余额: ¥{{ state.detail.money'), '会员详情卡片1明确为「当前商城余额」');
|
||||
assert(userDetailViewContent.includes('当前钱包余额: ¥{{ state.detail.money'), '会员详情卡片1明确为「当前钱包余额」');
|
||||
assert(userDetailViewContent.includes('历史未转佣金: ¥{{ state.detail.commission'), '会员详情卡片1明确为「历史未转佣金」');
|
||||
assert(userDetailViewContent.includes('state.detail.total_income || state.detail.income_total_cash'), '卡片1优先绑定统一对齐的 total_income');
|
||||
assert(userDetailViewContent.match(/log\.tabActive == 'partner_reward'[\s\S]*label="入账账户"/), 'Tab 1 收益中心流水包含「入账账户」列');
|
||||
@@ -96,7 +96,7 @@ assert(fs.existsSync(userIndexViewPath), 'user/index.html 文件存在');
|
||||
const userIndexViewContent = fs.readFileSync(userIndexViewPath, 'utf8');
|
||||
assert(!userIndexViewContent.includes('可提现收益:'), '会员列表已彻底移除误导性文案「可提现收益」');
|
||||
assert(userIndexViewContent.includes('累计收益:'), '会员列表展示「累计收益」');
|
||||
assert(userIndexViewContent.includes('商城余额: ¥{{ scope.row.money'), '会员列表展示「商城余额」');
|
||||
assert(userIndexViewContent.includes('钱包余额: ¥{{ scope.row.money'), '会员列表展示「钱包余额」');
|
||||
assert(userIndexViewContent.includes('未转佣金: ¥{{ scope.row.commission'), '会员列表展示「未转佣金」');
|
||||
|
||||
// --- 6. 分销商详情与佣金明细 (commission) 验证 ---
|
||||
@@ -111,15 +111,15 @@ assert(agentControllerContent.includes('$detail->user_commission = number_format
|
||||
const agentDetailViewPath = path.join(rootDir, 'application/admin/view/shopro/commission/agent/detail.html');
|
||||
assert(fs.existsSync(agentDetailViewPath), 'commission/agent/detail.html 文件存在');
|
||||
const agentDetailViewContent = fs.readFileSync(agentDetailViewPath, 'utf8');
|
||||
assert(agentDetailViewContent.includes('直入商城余额'), '分销商详情收益卡片带有「直入商城余额」Tag');
|
||||
assert(agentDetailViewContent.includes('商城可用余额:'), '分销商资产信息包含「商城可用余额」');
|
||||
assert(agentDetailViewContent.includes('直入钱包余额'), '分销商详情收益卡片带有「直入钱包余额」Tag');
|
||||
assert(agentDetailViewContent.includes('钱包可用余额:'), '分销商资产信息包含「钱包可用余额」');
|
||||
assert(agentDetailViewContent.includes('历史未转佣金:'), '分销商资产信息包含「历史未转佣金」');
|
||||
assert(agentDetailViewContent.includes('label="历史分销佣金"'), 'Tab 3 明确标注为「历史分销佣金」');
|
||||
|
||||
const commRewardViewPath = path.join(rootDir, 'application/admin/view/shopro/commission/reward/index.html');
|
||||
assert(fs.existsSync(commRewardViewPath), 'commission/reward/index.html 文件存在');
|
||||
const commRewardViewContent = fs.readFileSync(commRewardViewPath, 'utf8');
|
||||
assert(commRewardViewContent.includes('当前收益分成已全额直入商城余额'), '历史佣金明细顶部包含直入商城余额提示说明');
|
||||
assert(commRewardViewContent.includes('当前收益分成已全额直入钱包余额'), '历史佣金明细顶部包含直入钱包余额提示说明');
|
||||
|
||||
const commRewardControllerPath = path.join(rootDir, 'application/admin/controller/shopro/commission/Reward.php');
|
||||
assert(fs.existsSync(commRewardControllerPath), 'commission/Reward.php 文件存在');
|
||||
|
||||
在新工单中引用
屏蔽一个用户