123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- <?php
- namespace app\services\system\crontab;
- use app\services\activity\combination\StorePinkServices;
- use app\services\activity\live\LiveGoodsServices;
- use app\services\activity\live\LiveRoomServices;
- use app\services\agent\AgentManageServices;
- use app\services\order\StoreOrderInvoiceServices;
- use app\services\order\StoreOrderServices;
- use app\services\order\StoreOrderTakeServices;
- use app\services\product\product\StoreProductServices;
- use app\services\system\attachment\SystemAttachmentServices;
- use think\facade\Log;
- /**
- * 执行定时任务
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- class CrontabRunServices
- {
- /**
- * 定时任务类型 每一个定义的类型会对应CrontabRunServices类中的一个方法
- * @var string[]
- */
- public $markList = [
- 'orderCancel' => '未支付自动取消订单',
- 'pinkExpiration' => '拼团到期订单处理',
- 'agentUnbind' => '到期自动解绑上级',
- 'liveProductStatus' => '自动更新直播商品状态',
- 'liveRoomStatus' => '自动更新直播间状态',
- 'takeDelivery' => '订单自动收货',
- 'advanceOff' => '预售商品到期自动下架',
- 'productReplay' => '订单商品自动好评',
- 'clearPoster' => '清除昨日海报',
- 'autoInvoice' => '自动开具发票以及退款自动冲红',
- 'customTimer' => '自定义定时任务',
- ];
- /**
- * 调用不存在的方法
- * @param $name
- * @param $arguments
- * @return mixed|void
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function __call($name, $arguments)
- {
- $this->crontabLog($name . '方法不存在');
- }
- /**
- * 定时任务日志
- * @param $msg
- */
- protected function crontabLog($msg)
- {
- $timer_log_open = config("log.timer_log", false);
- if ($timer_log_open) {
- $date = date('Y-m-d H:i:s', time());
- Log::write($date . $msg, 'crontab');
- }
- }
- /**
- * 未支付自动取消订单
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function orderCancel()
- {
- try {
- app()->make(StoreOrderServices::class)->orderUnpaidCancel();
- $this->crontabLog(' 执行未支付自动取消订单');
- } catch (\Throwable $e) {
- $this->crontabLog('自动取消订单失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 拼团到期订单处理
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function pinkExpiration()
- {
- try {
- app()->make(StorePinkServices::class)->statusPink();
- $this->crontabLog(' 执行拼团到期订单处理');
- } catch (\Throwable $e) {
- $this->crontabLog('拼团到期订单处理失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 自动解除上级绑定
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function agentUnbind()
- {
- try {
- app()->make(AgentManageServices::class)->removeSpread();
- $this->crontabLog(' 执行自动解绑上级绑定');
- } catch (\Throwable $e) {
- $this->crontabLog('自动解除上级绑定失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 更新直播商品状态
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function liveProductStatus()
- {
- try {
- app()->make(LiveGoodsServices::class)->syncGoodStatus();
- $this->crontabLog(' 执行更新直播商品状态');
- } catch (\Throwable $e) {
- $this->crontabLog('更新直播商品状态失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 更新直播间状态
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function liveRoomStatus()
- {
- try {
- app()->make(LiveRoomServices::class)->syncRoomStatus();
- $this->crontabLog(' 执行更新直播间状态');
- } catch (\Throwable $e) {
- $this->crontabLog('更新直播间状态失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 自动收货
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function takeDelivery()
- {
- try {
- app()->make(StoreOrderTakeServices::class)->autoTakeOrder();
- $this->crontabLog(' 执行自动收货');
- } catch (\Throwable $e) {
- $this->crontabLog('自动收货失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 预售到期商品自动下架
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function advanceOff()
- {
- try {
- app()->make(StoreProductServices::class)->downAdvance();
- $this->crontabLog(' 执行预售到期商品自动下架');
- } catch (\Throwable $e) {
- $this->crontabLog('预售到期商品自动下架失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 自动好评
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function productReplay()
- {
- try {
- app()->make(StoreOrderServices::class)->autoComment();
- $this->crontabLog(' 执行自动好评');
- } catch (\Throwable $e) {
- $this->crontabLog('自动好评失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 清除昨日海报
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function clearPoster()
- {
- try {
- app()->make(SystemAttachmentServices::class)->emptyYesterdayAttachment();
- $this->crontabLog(' 执行清除昨日海报');
- } catch (\Throwable $e) {
- $this->crontabLog('清除昨日海报失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 执行自动开具/冲红电子发票
- * @author 吴汐
- * @email 442384644@qq.com
- * @date 2023/03/01
- */
- public function autoInvoice()
- {
- try {
- $invoiceServices = app()->make(StoreOrderInvoiceServices::class);
- $invoiceServices->autoInvoice();
- $invoiceServices->autoInvoiceRed();
- $this->crontabLog(' 执行自动开具/冲红电子发票');
- } catch (\Throwable $e) {
- $this->crontabLog('自动开具/冲红电子发票失败,失败原因:' . $e->getMessage());
- }
- }
- /**
- * 自定义定时器
- * @param string $customCode
- * @author wuhaotian
- * @email 442384644@qq.com
- * @date 2024/6/6
- */
- public function customTimer($customCode = '')
- {
- try {
- eval($customCode);
- $this->crontabLog(' 自定义定时器执行成功');
- } catch (\Throwable $e) {
- $this->crontabLog('自定义定时器执行失败,失败原因:' . $e->getMessage());
- }
- }
- }
|