qifengquan 1 年之前
父節點
當前提交
dfd314c8f2
共有 1 個文件被更改,包括 35 次插入6 次删除
  1. 35 6
      application/api/controller/TimedTask.php

+ 35 - 6
application/api/controller/TimedTask.php

@@ -4,13 +4,15 @@ namespace app\api\controller;
 
 use app\common\controller\Api;
 use app\common\model\Order;
+use think\Db;
+use think\Exception;
 
 /**
  * 定时任务
  */
 class TimedTask extends Api
 {
-    protected $noNeedLogin = ['cancellation_order'];
+    protected $noNeedLogin = ['*'];
     protected $noNeedRight = '*';
 
     /**
@@ -18,13 +20,40 @@ class TimedTask extends Api
      * @return void
      */
     public function cancellation_order(){
-        $list = Order::all(function ($query){
-            $query->where(['type'=>2])->field('id,create_time');
+        //订单过期自动取消
+        $orderlist = Order::all(function ($query){
+            $query->where(['type'=>1,'status'=>1])->field('id,create_time');
         });
-        foreach ($list as $k=>$v){
-            $valid_time = strtotime($v['create_time']) + 1800;
+        foreach ($orderlist as $k=>$value){
+            if($value){
+                $create_time = strtotime($value['create_time']) + 1800;
+                if($create_time < time()){
+                    Db::startTrans();
+                    try {
+                        Order::where('id',$value['id'])->update(['status'=>0]);
+                        Db::commit();
+                    }catch (Exception $exception){
+                        Db::rollback();
+                        $this->error($exception);
+                    }
+                }
+            }
+        }
+        //报价单过期自动取消
+        $pjdorderlist = Order::all(function ($query){
+            $query->where(['type'=>2,'status'=>1])->field('id,valid_time');
+        });
+        foreach ($pjdorderlist as $k=>$v){
+            $valid_time = strtotime($v['valid_time']);
             if($valid_time < time()){
-                Order::where('id',$v['id'])->update(['stauts'=>0]);
+                Db::startTrans();
+                try {
+                    Order::where('id',$v['id'])->update(['status'=>0]);
+                    Db::commit();
+                }catch (Exception $exception){
+                    Db::rollback();
+                    $this->error($exception);
+                }
             }
         }
     }