// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\timer\controller\dealer; use app\timer\controller\Controller; use app\timer\service\dealer\Order as DealerOrderService; /** * 定时任务:商城订单 * Class Order * @package app\timer\controller\dealer */ class Order extends Controller { // 当前任务唯一标识 private string $taskKey = 'DealerOrder'; // 任务执行间隔时长 (单位:秒) protected int $taskExpire = 60 * 30; // 当前商城ID private int $storeId; /** * 任务处理 * @param array $param */ public function handle(array $param) { ['storeId' => $this->storeId] = $param; $this->setInterval($this->storeId, $this->taskKey, $this->taskExpire, function () { echo $this->taskKey . PHP_EOL; // 标记失效的分销订单 $this->invalidEvent(); // 分销佣金结算(已完成订单) $this->grantMoneyEvent(); }); } /** * 标记失效的分销订单 */ private function invalidEvent() { $service = new DealerOrderService; $service->invalidEvent($this->storeId); } /** * 分销佣金结算(已完成订单) * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ private function grantMoneyEvent() { $service = new DealerOrderService; $service->grantMoneyEvent($this->storeId); } }