diff --git a/crmeb/app/listener/crontab/SystemCrontab.php b/crmeb/app/listener/crontab/SystemCrontab.php index bd9d80e83..335c5e0d1 100644 --- a/crmeb/app/listener/crontab/SystemCrontab.php +++ b/crmeb/app/listener/crontab/SystemCrontab.php @@ -22,10 +22,8 @@ class SystemCrontab implements ListenerInterface { public function handle($event): void { + //自动写入文件方便检测是否启动定时任务命令 $time = time(); - $date = date('Y-m-d H:i:s', time()); - $timer_log_open = config("log.timer_log", false); - new Crontab('*/6 * * * * *', function () use ($time) { file_put_contents(root_path() . 'runtime/.timer', $time); }); @@ -38,7 +36,7 @@ class SystemCrontab implements ListenerInterface $timeStr = $this->getTimerStr($item); //未支付自动取消订单 if ($item['mark'] == 'order_cancel') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + new Crontab($timeStr, function () { try { /** @var StoreOrderServices $orderServices */ $orderServices = app()->make(StoreOrderServices::class); @@ -50,8 +48,8 @@ class SystemCrontab implements ListenerInterface }); } //拼团到期订单处理 - if ($item['mark'] == 'pink_expiration') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'pink_expiration') { + new Crontab($timeStr, function () { try { /** @var StorePinkServices $storePinkServices */ $storePinkServices = app()->make(StorePinkServices::class); @@ -63,8 +61,8 @@ class SystemCrontab implements ListenerInterface }); } //自动解绑上级绑定 - if ($item['mark'] == 'agent_unbind') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'agent_unbind') { + new Crontab($timeStr, function () { try { /** @var AgentManageServices $agentManage */ $agentManage = app()->make(AgentManageServices::class); @@ -76,8 +74,8 @@ class SystemCrontab implements ListenerInterface }); } //更新直播商品状态 - if ($item['mark'] == 'live_product_status') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'live_product_status') { + new Crontab($timeStr, function () { try { /** @var LiveGoodsServices $liveGoods */ $liveGoods = app()->make(LiveGoodsServices::class); @@ -89,8 +87,8 @@ class SystemCrontab implements ListenerInterface }); } //更新直播间状态 - if ($item['mark'] == 'live_room_status') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'live_room_status') { + new Crontab($timeStr, function () { try { /** @var LiveRoomServices $liveRoom */ $liveRoom = app()->make(LiveRoomServices::class); @@ -103,8 +101,8 @@ class SystemCrontab implements ListenerInterface }); } //自动收货 - if ($item['mark'] == 'take_delivery') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'take_delivery') { + new Crontab($timeStr, function () { try { /** @var StoreOrderTakeServices $services */ $services = app()->make(StoreOrderTakeServices::class); @@ -116,8 +114,8 @@ class SystemCrontab implements ListenerInterface }); } //查询预售到期商品自动下架 - if ($item['mark'] == 'advance_off') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'advance_off') { + new Crontab($timeStr, function () { try { /** @var StoreProductServices $product */ $product = app()->make(StoreProductServices::class); @@ -129,8 +127,8 @@ class SystemCrontab implements ListenerInterface }); } //自动好评 - if ($item['mark'] == 'product_replay') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'product_replay') { + new Crontab($timeStr, function () { try { /** @var StoreOrderServices $orderServices */ $orderServices = app()->make(StoreOrderServices::class); @@ -142,8 +140,8 @@ class SystemCrontab implements ListenerInterface }); } //清除昨日海报 - if ($item['mark'] == 'clear_poster') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { + elseif ($item['mark'] == 'clear_poster') { + new Crontab($timeStr, function () { try { /** @var SystemAttachmentServices $attach */ $attach = app()->make(SystemAttachmentServices::class); @@ -154,6 +152,10 @@ class SystemCrontab implements ListenerInterface } }); } + // + else { + + } } } @@ -165,7 +167,7 @@ class SystemCrontab implements ListenerInterface $timer_log_open = config("log.timer_log", false); if ($timer_log_open){ $date = date('Y-m-d H:i:s', time()); - Log::notice($date . ' 执行清除昨日海报'); + Log::notice($date . $msg); } } /** diff --git a/crmeb/app/listener/timer/SystemTimer.php b/crmeb/app/listener/timer/SystemTimer.php deleted file mode 100644 index add6798dc..000000000 --- a/crmeb/app/listener/timer/SystemTimer.php +++ /dev/null @@ -1,198 +0,0 @@ -make(SystemTimerServices::class); - $list = $systemTimerServices->selectList(['is_del' => 0, 'is_open' => 1])->toArray(); - foreach ($list as &$item) { - //获取定时任务时间字符串 - $timeStr = $this->getTimerStr($item); - //未支付自动取消订单 - if ($item['mark'] == 'order_cancel') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var StoreOrderServices $orderServices */ - $orderServices = app()->make(StoreOrderServices::class); - $orderServices->orderUnpaidCancel(); - if ($timer_log_open) Log::notice($date . ' 执行未支付自动取消订单'); - } catch (\Throwable $e) { - Log::error('自动取消订单失败,失败原因:' . $e->getMessage()); - } - }); - } - //拼团到期订单处理 - if ($item['mark'] == 'pink_expiration') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var StorePinkServices $storePinkServices */ - $storePinkServices = app()->make(StorePinkServices::class); - $storePinkServices->statusPink(); - if ($timer_log_open) Log::notice($date . ' 执行拼团到期订单处理'); - } catch (\Throwable $e) { - Log::error('拼团到期订单处理失败,失败原因:' . $e->getMessage()); - } - }); - } - //自动解绑上级绑定 - if ($item['mark'] == 'agent_unbind') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var AgentManageServices $agentManage */ - $agentManage = app()->make(AgentManageServices::class); - $agentManage->removeSpread(); - if ($timer_log_open) Log::notice($date . ' 执行自动解绑上级绑定'); - } catch (\Throwable $e) { - Log::error('自动解除上级绑定失败,失败原因:' . $e->getMessage()); - } - }); - } - //更新直播商品状态 - if ($item['mark'] == 'live_product_status') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var LiveGoodsServices $liveGoods */ - $liveGoods = app()->make(LiveGoodsServices::class); - $liveGoods->syncGoodStatus(); - if ($timer_log_open) Log::notice($date . ' 执行更新直播商品状态'); - } catch (\Throwable $e) { - Log::error('更新直播商品状态失败,失败原因:' . $e->getMessage()); - } - }); - } - //更新直播间状态 - if ($item['mark'] == 'live_room_status') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var LiveRoomServices $liveRoom */ - $liveRoom = app()->make(LiveRoomServices::class); - $liveRoom->syncRoomStatus(); - if ($timer_log_open) Log::notice($date . ' 执行更新直播间状态'); - } catch (\Throwable $e) { - Log::error('更新直播间状态失败,失败原因:' . $e->getMessage()); - } - }); - } - //自动收货 - if ($item['mark'] == 'take_delivery') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var StoreOrderTakeServices $services */ - $services = app()->make(StoreOrderTakeServices::class); - $services->autoTakeOrder(); - if ($timer_log_open) Log::notice($date . ' 执行自动收货'); - } catch (\Throwable $e) { - Log::error('自动收货失败,失败原因:' . $e->getMessage()); - } - }); - } - //查询预售到期商品自动下架 - if ($item['mark'] == 'advance_off') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var StoreProductServices $product */ - $product = app()->make(StoreProductServices::class); - $product->downAdvance(); - if ($timer_log_open) Log::notice($date . ' 执行预售到期商品自动下架'); - } catch (\Throwable $e) { - Log::error('预售到期商品自动下架失败,失败原因:' . $e->getMessage()); - } - }); - } - //自动好评 - if ($item['mark'] == 'product_replay') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var StoreOrderServices $orderServices */ - $orderServices = app()->make(StoreOrderServices::class); - $orderServices->autoComment(); - if ($timer_log_open) Log::notice($date . ' 执行自动好评'); - } catch (\Throwable $e) { - Log::error('自动好评失败,失败原因:' . $e->getMessage()); - } - }); - } - //清除昨日海报 - if ($item['mark'] == 'clear_poster') { - new Crontab($timeStr, function () use ($date, $timer_log_open) { - try { - /** @var SystemAttachmentServices $attach */ - $attach = app()->make(SystemAttachmentServices::class); - $attach->emptyYesterdayAttachment(); - if ($timer_log_open) Log::notice($date . ' 执行清除昨日海报'); - } catch (\Throwable $e) { - Log::error('清除昨日海报失败,失败原因:' . $e->getMessage()); - } - }); - } - } - } - /** - * 0 1 2 3 4 5 - * | | | | | | - * | | | | | +------ day of week (0 - 6) (Sunday=0) - * | | | | +------ month (1 - 12) - * | | | +-------- day of month (1 - 31) - * | | +---------- hour (0 - 23) - * | +------------ min (0 - 59) - * +-------------- sec (0-59)[可省略,如果没有0位,则最小时间粒度是分钟] - */ - /** - * 获取定时任务时间表达式 - * @param $data - * @return string - */ - public function getTimerStr($data): string - { - $timeStr = ''; - switch ($data['type']) { - case 1:// 每隔几秒 - $timeStr = '*/' . $data['second'] . ' * * * * *'; - break; - case 2:// 每隔几分 - $timeStr = '0 */' . $data['minute'] . ' * * * *'; - break; - case 3:// 每隔几时第几分钟执行 - $timeStr = '0 ' . $data['minute'] . ' */' . $data['hour'] . ' * * *'; - break; - case 4:// 每隔几日第几小时第几分钟执行 - $timeStr = '0 ' . $data['minute'] . ' ' . $data['hour'] . ' */' . $data['day'] . ' * *'; - break; - case 5:// 每日几时几分几秒 - $timeStr = $data['second'] . ' ' . $data['minute'] . ' ' . $data['hour'] . ' * * *'; - break; - case 6:// 每周周几几时几分几秒 - $timeStr = $data['second'] . ' ' . $data['minute'] . ' ' . $data['hour'] . ' * * ' . ($data['week'] == 7 ? 0 : $data['week']); - break; - case 7:// 每月几日几时几分几秒 - $timeStr = $data['second'] . ' ' . $data['minute'] . ' ' . $data['hour'] . ' ' . $data['day'] . ' * *'; - break; - } - return $timeStr; - } -}