- Add HJF jobs, services, DAOs, models, admin/API controllers, release command - Respect brokerage_timing (on_pay vs confirm); dispatch HjfOrderPayJob for queue goods - Queue-only cycle commission and position index fix in StoreOrderCreateServices - UserBill income types: frozen_points_brokerage, frozen_points_release - Timer: fsgx_release_frozen_points -> PointsReleaseServices - Agent tasks: no_assess filtering for direct/umbrella counts - Migrations: queue_pool, points_release_log, fsgx_v1 checklist updates - Admin/uniapp: crontab preset, membership level, user list, finance routes, docs Made-with: Cursor
48 lines
1.1 KiB
PHP
48 lines
1.1 KiB
PHP
<?php
|
||
declare(strict_types=1);
|
||
|
||
namespace app\jobs\hjf;
|
||
|
||
use app\services\hjf\PointsReleaseServices;
|
||
use crmeb\basic\BaseJobs;
|
||
use crmeb\traits\QueueTrait;
|
||
use think\facade\Log;
|
||
|
||
/**
|
||
* 积分每日释放 Job
|
||
*
|
||
* 由定时任务(crontab 或 Swoole Timer)在每天凌晨 00:01 触发。
|
||
* 调用方式:PointsReleaseJob::dispatch()
|
||
*
|
||
* Class PointsReleaseJob
|
||
* @package app\jobs\hjf
|
||
*/
|
||
class PointsReleaseJob extends BaseJobs
|
||
{
|
||
use QueueTrait;
|
||
|
||
/**
|
||
* 执行积分释放
|
||
* @return bool
|
||
*/
|
||
public function doJob(): bool
|
||
{
|
||
try {
|
||
/** @var PointsReleaseServices $releaseServices */
|
||
$releaseServices = app()->make(PointsReleaseServices::class);
|
||
$result = $releaseServices->executeRelease();
|
||
|
||
Log::info('[PointsReleaseJob] 执行完成', $result);
|
||
} catch (\Throwable $e) {
|
||
response_log_write([
|
||
'message' => '积分每日释放任务失败: ' . $e->getMessage(),
|
||
'file' => $e->getFile(),
|
||
'line' => $e->getLine(),
|
||
]);
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
}
|