AI 1 maand geleden
bovenliggende
commit
49664a1664
1 gewijzigde bestanden met toevoegingen van 29 en 1 verwijderingen
  1. 29 1
      app/Task/EndOrderAdminTask.php

+ 29 - 1
app/Task/EndOrderAdminTask.php

@@ -21,16 +21,24 @@ class EndOrderAdminTask
     private $logger;
     public function __construct(LoggerInterface $logger)
     {
+        date_default_timezone_set('Asia/Shanghai');
         $this->logger = $logger;
     }
     public function __invoke()
     {
+
         // 获取需要处理的订单ID列表  判断是否能够结束
         $currentTime = date('Y-m-d H:i:s');
         $orderIds = Order::where('status', 1) //已经审核,等待结束
             ->where('edtime', '<=', $currentTime)
             ->pluck('id')
             ->toArray();
+        //获取需要处理的订单id,判断是否生效
+        $orderIdsTO2 = Order::where('status', 1) //已经审核,等待开始
+            ->where('sttime', '<=', $currentTime)
+            ->where('edtime', '>=', $currentTime)
+            ->pluck('id')
+            ->toArray();
 
         //单个处理
         // foreach ($orderIds as $orderId) {
@@ -42,6 +50,10 @@ class EndOrderAdminTask
             $this->logger->info('需要处理的订单ID列表:' . implode(', ', $orderIds));
             $this->OverOder($orderIds);
         }
+        if ($orderIdsTO2) {
+            $this->logger->info('需要处理的订单ID列表:' . implode(', ', $orderIdsTO2));
+            $this->startOder($orderIdsTO2);
+        }
         //过期时间
         //$exploredTime = date('Y-m-d H:i:s', (time() + 60 * 60 * 2));
         // 获取所有状态为6的订单
@@ -96,6 +108,21 @@ class EndOrderAdminTask
             $this->logger->error("处理订单ID: {$data['id']} 时发生错误: " . $e->getMessage());
         }
     }
+    private function startOder(array $data): void
+    {
+        Db::beginTransaction();
+        try {
+            //ad 变更状态为已经审核但是不生效,或者删除订单,或者加入别的状态:比如过期
+            OrderAd::whereIn('order_id', $data)->update(['status' => 1]);
+            OrderAd::whereIn('order_id', $data)->update(['status' => 1]);
+            $pid = OrderAd::whereIn('order_id', $data)->pluck('pid')->toArray();
+            Ad::whereIn('pid', $pid)->update(['status' => 1]);
+            Db::commit();
+        } catch (\Exception $e) {
+            Db::rollBack();
+            $this->logger->error("处理订单ID: {$data['id']} 时发生错误: " . $e->getMessage());
+        }
+    }
     private function OverOder(array $data): void
     {
         Db::beginTransaction();
@@ -105,7 +132,8 @@ class EndOrderAdminTask
             //设置广告状态
             OrderAd::whereIn('order_id', $data)->update(['status' => 7]);
             //ad 变更状态为已经审核但是不生效,或者删除订单,或者加入别的状态:比如过期
-            Ad::whereIn('order_id', $data)->update(['status' => 2]);
+            $pid = OrderAd::whereIn('order_id', $data)->pluck('pid')->toArray();
+            Ad::whereIn('pid', $pid)->update(['status' => 2]);
             Db::commit();
         } catch (\Exception $e) {
             Db::rollBack();