吴昊天 2 лет назад
Родитель
Сommit
76ecfb5aa7

+ 2 - 4
crmeb/app/listener/crontab/SystemCrontabListener.php

@@ -36,7 +36,8 @@ class SystemCrontabListener implements ListenerInterface
     }
 
     /**
-     *  0   1   2   3   4   5
+     * 获取定时任务时间表达式
+     * 0   1   2   3   4   5
      * |   |   |   |   |   |
      * |   |   |   |   |   +------ day of week (0 - 6) (Sunday=0)
      * |   |   |   |   +------ month (1 - 12)
@@ -44,9 +45,6 @@ class SystemCrontabListener implements ListenerInterface
      * |   |   +---------- hour (0 - 23)
      * |   +------------ min (0 - 59)
      * +-------------- sec (0-59)[可省略,如果没有0位,则最小时间粒度是分钟]
-     */
-    /**
-     * 获取定时任务时间表达式
      * @param $data
      * @return string
      */

+ 16 - 0
crmeb/app/services/system/crontab/CrontabRunServices.php

@@ -20,6 +20,22 @@ use think\facade\Log;
  */
 class CrontabRunServices
 {
+    /**
+     * 定时任务类型 每一个定义的类型会对应CrontabRunServices类中的一个方法
+     * @var string[]
+     */
+    public $markList = [
+        'orderCancel' => '未支付自动取消订单',
+        'pinkExpiration' => '拼团到期订单处理',
+        'agentUnbind' => '到期自动解绑上级',
+        'liveProductStatus' => '自动更新直播商品状态',
+        'liveRoomStatus' => '自动更新直播间状态',
+        'takeDelivery' => '订单自动收货',
+        'advanceOff' => '预售商品到期自动下架',
+        'productReplay' => '订单商品自动好评',
+        'clearPoster' => '清除昨日海报',
+    ];
+
     /**
      * 调用不存在的方法
      * @param $name

+ 2 - 18
crmeb/app/services/system/crontab/SystemCrontabServices.php

@@ -18,22 +18,6 @@ use think\helper\Str;
 
 class SystemCrontabServices extends BaseServices
 {
-    /**
-     * 定时任务类型 每一个定义的类型会对应CrontabRunServices类中的一个方法
-     * @var string[]
-     */
-    private $markList = [
-        'order_cancel' => '未支付自动取消订单',
-        'pink_expiration' => '拼团到期订单处理',
-        'agent_unbind' => '到期自动解绑上级',
-        'live_product_status' => '自动更新直播商品状态',
-        'live_room_status' => '自动更新直播间状态',
-        'take_delivery' => '订单自动收货',
-        'advance_off' => '预售商品到期自动下架',
-        'product_replay' => '订单商品自动好评',
-        'clear_poster' => '清除昨日海报',
-    ];
-
     public function __construct(SystemCrontabDao $dao)
     {
         $this->dao = $dao;
@@ -80,7 +64,7 @@ class SystemCrontabServices extends BaseServices
      */
     public function getMarkList(): array
     {
-        return $this->markList;
+        return app()->make(CrontabRunServices::class)->markList;
     }
 
     /**
@@ -93,7 +77,7 @@ class SystemCrontabServices extends BaseServices
         if (!$data['id'] && $this->dao->getCount(['mark' => $data['mark'], 'is_del' => 0])) {
             throw new AdminException('该定时任务已存在,请勿重复添加');
         }
-        $data['name'] = $this->markList[$data['mark']];
+        $data['name'] = $this->getMarkList()[$data['mark']];
         $data['add_time'] = time();
         if (!$data['id']) {
             unset($data['id']);

+ 9 - 9
crmeb/public/install/crmeb.sql

@@ -34875,15 +34875,15 @@ CREATE TABLE IF NOT EXISTS `eb_system_timer` (
 --
 
 INSERT INTO `eb_system_timer` (`id`, `name`, `mark`, `content`, `type`, `week`, `day`, `hour`, `minute`, `second`, `last_execution_time`, `next_execution_time`, `add_time`, `is_del`, `is_open`) VALUES
-(1, '未支付自动取消订单', 'order_cancel', '每隔30秒执行自动取消到期未支付的订单', 1, 1, 1, 1, 30, 30, 0, 1670642407, 1670642377, 0, 1),
-(2, '拼团到期订单处理', 'pink_expiration', '每隔1分钟拼团到期之后的操作', 2, 1, 1, 1, 1, 0, 0, 1670642487, 1670642427, 0, 1),
-(3, '到期自动解绑上级', 'agent_unbind', '每隔1分钟执行到期的绑定关系的解除', 2, 1, 1, 1, 1, 0, 0, 1670642534, 1670642474, 0, 1),
-(4, '自动更新直播商品状态', 'live_product_status', '每隔3分钟执行更新直播商品状态', 2, 1, 1, 1, 3, 0, 0, 1670642694, 1670642514, 0, 1),
-(5, '自动更新直播间状态', 'live_room_status', '每隔3分钟执行更新直播间状态', 2, 1, 1, 1, 3, 0, 0, 1670642709, 1670642529, 0, 1),
-(6, '订单自动收货', 'take_delivery', '每隔5分钟执行订单到期自动收货', 2, 1, 1, 1, 5, 0, 0, 1670642891, 1670642591, 0, 1),
-(7, '预售商品到期自动下架', 'advance_off', '每隔5分钟执行预售商品到期下架', 2, 1, 1, 1, 5, 0, 0, 1670642913, 1670642613, 0, 1),
-(8, '订单商品自动好评', 'product_replay', '每隔5分钟执行订单到期商品好评', 2, 1, 1, 1, 5, 0, 0, 1670642933, 1670642633, 0, 1),
-(9, '清除昨日海报', 'clear_poster', '每天0时30分0秒执行一次清除昨日海报', 5, 1, 1, 0, 30, 0, 0, 1670862600, 1670815378, 0, 1);
+(1, '未支付自动取消订单', 'orderCancel', '每隔30秒执行自动取消到期未支付的订单', 1, 1, 1, 1, 30, 30, 0, 1670642407, 1670642377, 0, 1),
+(2, '拼团到期订单处理', 'pinkExpiration', '每隔1分钟拼团到期之后的操作', 2, 1, 1, 1, 1, 0, 0, 1670642487, 1670642427, 0, 1),
+(3, '到期自动解绑上级', 'agentUnbind', '每隔1分钟执行到期的绑定关系的解除', 2, 1, 1, 1, 1, 0, 0, 1670642534, 1670642474, 0, 1),
+(4, '自动更新直播商品状态', 'liveProductStatus', '每隔3分钟执行更新直播商品状态', 2, 1, 1, 1, 3, 0, 0, 1670642694, 1670642514, 0, 1),
+(5, '自动更新直播间状态', 'liveRoomStatus', '每隔3分钟执行更新直播间状态', 2, 1, 1, 1, 3, 0, 0, 1670642709, 1670642529, 0, 1),
+(6, '订单自动收货', 'takeDelivery', '每隔5分钟执行订单到期自动收货', 2, 1, 1, 1, 5, 0, 0, 1670642891, 1670642591, 0, 1),
+(7, '预售商品到期自动下架', 'advanceOff', '每隔5分钟执行预售商品到期下架', 2, 1, 1, 1, 5, 0, 0, 1670642913, 1670642613, 0, 1),
+(8, '订单商品自动好评', 'productReplay', '每隔5分钟执行订单到期商品好评', 2, 1, 1, 1, 5, 0, 0, 1670642933, 1670642633, 0, 1),
+(9, '清除昨日海报', 'clearPoster', '每天0时30分0秒执行一次清除昨日海报', 5, 1, 1, 0, 30, 0, 0, 1670862600, 1670815378, 0, 1);
 
 -- --------------------------------------------------------