123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types=1);
- namespace app\console\task;
- use app\console\service\Order as OrderService;
- use app\common\model\Order as OrderModel;
- /**
- * 定时任务:自提订单超时未核销系统退款
- * Class PickupOrderRefund
- * @package app\console\task
- */
- class PickupOrderRefund extends Task
- {
- // 当前任务唯一标识
- private $taskKey = 'PickupOrderRefund';
- // 任务执行间隔时长 (单位:秒)
- protected $taskExpire = 30;
- // 当前商城ID
- private $storeId;
- /**
- * 任务处理
- * @param array $param
- * @throws \think\Exception
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function handle(array $param)
- {
- // log_record([
- // 'name' => '超时未自提订单自动退款',
- // 'data' => 1111
- // ]);
- ['storeId' => $this->storeId] = $param;
- $this->setInterval($this->storeId, $this->taskKey, $this->taskExpire, function () {
- // echo $this->taskKey . PHP_EOL;
- $this->refundPickupEvent();
- });
- }
- /**
- * 超时未自提订单自动退款
- */
- private function refundPickupEvent()
- {
- // log_record([
- // 'name' => '超时未自提订单自动退款',
- // 'data' => '222'
- // ]);
- // 自动关闭自提订单的分钟数
- $closeMinutes = OrderModel::getPickupDeadline(); // 提交订单2天后
- log_record([
- 'name' => '超时未自提订单自动退款',
- 'data' => $closeMinutes
- ]);
- // 执行自动关闭
- if ($closeMinutes > 0) {
- $service = new OrderService;
- $service->refundPickupEvent($this->storeId, $closeMinutes);
- }
- }
- }
|