Browse Source

Merge branch '20241029_fl_order' of http://git.bjzxtw.org.cn:3000/zxt/order_producer into 20241029_fl_order

15313670163 1 month ago
parent
commit
9166543dc5
2 changed files with 40 additions and 8 deletions
  1. 8 3
      app/JsonRpc/OrderService.php
  2. 32 5
      app/Task/EndOrderAdminTask.php

+ 8 - 3
app/JsonRpc/OrderService.php

@@ -269,6 +269,11 @@ class OrderService implements OrderServiceInterface
         $order->price = $data['price'];
         $order->price = $data['price'];
         $order->sttime = $data['sttime'];
         $order->sttime = $data['sttime'];
         $order->edtime = $data['edtime'];
         $order->edtime = $data['edtime'];
+        //保留小数点两位
+
+        $days = strtotime($data['edtime']) - strtotime($data['sttime']);
+        $days = round($days / 86400, 2);
+        $order->days = $days;
         $order->save();
         $order->save();
         return Result::success($order);
         return Result::success($order);
     }
     }
@@ -451,9 +456,9 @@ class OrderService implements OrderServiceInterface
         $start = Carbon::parse($data['starttime']);
         $start = Carbon::parse($data['starttime']);
         $end = Carbon::parse($data['endtime']);
         $end = Carbon::parse($data['endtime']);
         // $status = [
         // $status = [
-            // 0 => '1',
-            // 1 => '7',
-            // 2 => '6',
+        // 0 => '1',
+        // 1 => '7',
+        // 2 => '6',
         // ];
         // ];
         //订单状态:1:通过;2:驳回;3:撤回;5:过期;6:待审核;7:结束
         //订单状态:1:通过;2:驳回;3:撤回;5:过期;6:待审核;7:结束
         // 筛选已上架的广告有时间冲突的广告位
         // 筛选已上架的广告有时间冲突的广告位

+ 32 - 5
app/Task/EndOrderAdminTask.php

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