fix(fsgx): 修复5个未修复Bug — 积分解耦/定时任务/积分日志/团队统计/历史补偿

Bug3: 解耦积分奖励与佣金发放,报单订单只要推荐人存在即触发积分,
不再依赖 brokeragePrice > 0;grantFrozenPointsByBrokerage 移至
佣金判断之前独立执行。

Bug1: 定时任务手动触发返回真实结果 —— 补充 fsgx_release_frozen_points
到 taskName 映射;runNow() try/catch 后抛出异常;控制器捕获并返回
fail;修复 SystemTimer listener catch 块运算符优先级 bug。

Bug5: PointsReleaseServices 每日释放同步写入 eb_user_bill,使管理
后台积分日志页面可见;UserPointServices::pointRecord $status 数组
补充 hjf_frozen_direct/hjf_frozen_umbrella/frozen_points_release 等
fsgx 类型映射,防止未知类型报错。

Bug2: hjfMember.js getTeamData 改为 POST 与路由匹配;loadTeamData
字段映射 total/totalLevel/order_count → 界面展示字段。

Bug4: 新增 HjfPatchMissingRewards 命令(hjf:patch-rewards),支持
扫描全量/指定订单补发缺失积分奖励,支持 --dry-run 预览;注册命令
到 config/console.php。

Made-with: Cursor
This commit is contained in:
mac
2026-03-24 20:40:46 +08:00
parent a41e0ab0f7
commit 451918bc73
11 changed files with 180 additions and 23 deletions

View File

@@ -6,6 +6,7 @@ namespace app\services\hjf;
use app\dao\hjf\PointsReleaseLogDao;
use app\dao\user\UserDao;
use app\services\BaseServices;
use app\services\user\UserBillServices;
use crmeb\services\SystemConfigService;
use think\annotation\Inject;
use think\facade\Db;
@@ -29,6 +30,9 @@ class PointsReleaseServices extends BaseServices
#[Inject]
protected UserDao $userDao;
#[Inject]
protected UserBillServices $userBillServices;
/**
* 执行今日积分释放(批量)
*
@@ -89,6 +93,18 @@ class PointsReleaseServices extends BaseServices
'status' => 'released',
'release_date' => $releaseDate,
]);
// 同步写入 eb_user_bill使管理后台积分日志页面可见
$integralBalance = (int)($this->userDao->value(['uid' => $user['uid']], 'integral') ?: 0);
$this->userBillServices->income(
'frozen_points_release',
(int)$user['uid'],
(int)$releaseAmount,
$integralBalance,
0,
0,
"积分每日自动解冻,释放日期 {$releaseDate}"
);
});
$totalReleased += $releaseAmount;