hrjy 3 gadi atpakaļ
vecāks
revīzija
ccd4e19f39

+ 2 - 1
app/admin/controller/diagnosis/DiagnosisOrder.php

@@ -37,12 +37,13 @@ class DiagnosisOrder extends AuthController
      */
     public function index()
     {
-        $count['djd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 0)->count();
+        $count['djd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 0)->where('paid', 1)->count();
         $count['yjd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 1)->count();
         $count['dqd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 2)->count();
         $count['ywc'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 3)->count();
         $count['sh'] = \app\admin\model\diagnosis\DiagnosisOrder::where('after_sales', 1)->count();
         $count['qx'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', -1)->count();
+        $count['gq'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', -2)->count();
 
         $this->assign([
             'year' => get_month(),

+ 9 - 0
app/admin/model/diagnosis/DiagnosisOrder.php

@@ -72,6 +72,9 @@ class DiagnosisOrder extends BaseModel
         }elseif ($where['status'] == 5){
 
             $model->where('a.status', -1);
+        }elseif ($where['status'] == 6){
+
+            $model->where('a.status', -2);
         }
         if (isset($where['data']) && $where['data'] !== '') {
             $model = self::getModelTime($where, $model,   'create_time');
@@ -111,6 +114,12 @@ class DiagnosisOrder extends BaseModel
                         $item['status'] = '已退款';
                     }
 
+                }elseif ($item['status'] == -2){
+                    if ($item['refund_status'] == 0){
+                        $item['status'] = '过期订单';
+                    }elseif ($item['refund_status'] == 1){
+                        $item['status'] = '已退款';
+                    }
                 }
             }
             if ($item['paid'] == 1) $item['paid'] = '已支付';

+ 2 - 1
app/admin/view/diagnosis/diagnosis_order/index.php

@@ -172,7 +172,7 @@
                                     <i class="fa fa-edit"></i> 删除
                                 </a>
                             </li>
-                            {{# if(d.status == '待退款' || d.status == '已退款' || d.after_sales == 1){ }}
+                            {{# if(d.status == '待退款' || d.status == '已退款' || d.after_sales == 1 || d.status == '过期订单'){ }}
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('编辑','{:Url('refund')}?id={{d.id}}',{h:950,w:800})">
                                     <i class="fa fa-edit"></i> 退款
@@ -373,6 +373,7 @@
                     {name: '已完成', value: 3, count: orderCount.ywc},
                     {name: '申请售后', value: 4, count: orderCount.sh, class: true},
                     {name: '取消订单', value: 5, count: orderCount.qx, class: true},
+                    {name: '过期订单', value: 6, count: orderCount.gq, class: true},
                 ],
                 where: {
                     data: '',

+ 6 - 4
app/api/controller/diagnosis/DiagnosisOrderController.php

@@ -38,8 +38,8 @@ class DiagnosisOrderController
     public function confirm(Request $request)
     {
         $data = UtilService::getMore([
-            ['cate', []],
-            ['service_id', []],
+            ['cate'],
+            ['service_id'],
             ['type'],
             ['time'],
             ['name'],
@@ -51,10 +51,9 @@ class DiagnosisOrderController
             ['transfer_address'],
             ['remarks'],
         ]);
-
         $address = get_address($data['hospital']);
         if ($data['type'] == 1){
-            if (strstr($data['hospital'], $address['city'])){
+            if (!strstr($data['hospital'], $address['city'])){
                 return app('json')->fail('接送地址和医院不在同一个市');
             }
         }
@@ -62,6 +61,7 @@ class DiagnosisOrderController
         $ot_price = 0;
         $commission = 0; //佣金
         $card_id = [];
+        $data['cate'] = explode(',', $data['cate']);
         foreach ($data['cate'] as $item){
             $da = date('w');
             if ($da == 0) $da = 7;
@@ -78,9 +78,11 @@ class DiagnosisOrderController
         }
         $card_id = implode(',', $card_id);
         if ($data['service_id']){
+            $data['service_id'] = explode(',', $data['service_id']);
             foreach ($data['service_id'] as $item){
                 $cate = DiagnosisService::where('id', $item)->find();
                 $price += $cate['price'];
+                $ot_price += $cate['price'];
                 $commission += $cate['reward'];
             }
         }

+ 1 - 2
app/api/controller/user/UserController.php

@@ -3,6 +3,7 @@
 namespace app\api\controller\user;
 
 use app\admin\model\diagnosis\DiagnosisApply;
+use app\admin\model\diagnosis\DiagnosisOrder;
 use app\http\validates\user\AddressValidate;
 use app\models\system\SystemCity;
 use app\models\user\UserVisit;
@@ -696,9 +697,7 @@ class UserController
                 $item['images'] = json_decode($item['images']);
 
             }
-
         }
-
         return app('json')->successful($list);
     }
 }

+ 30 - 0
app/models/user/User.php

@@ -3,10 +3,12 @@
 
 namespace app\models\user;
 
+use app\admin\model\diagnosis\DiagnosisOrder;
 use app\admin\model\user\UserCard;
 use app\admin\model\user\UserEquity;
 use app\models\store\StoreOrder;
 use app\models\store\StoreProduct;
+use app\Request;
 use crmeb\services\SystemConfigService;
 use think\db\exception\DataNotFoundException;
 use think\db\exception\DbException;
@@ -765,4 +767,32 @@ class User extends BaseModel
         }
     }
 
+
+    /**
+     * 订单过期
+     * @param Request $request
+     * @return mixed
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+    public static function order_overdue()
+    {
+        $list = DiagnosisOrder::alias('a')
+            ->field('a.*')
+            ->leftJoin('diagnosis_order_attr b', 'a.id = b.oid')
+            ->where('a.status', 0)
+            ->where('a.paid', 1)
+            ->where('b.time', '<', time())
+            ->select();
+
+        if ($list){
+            foreach ($list as $item)
+            {
+                DiagnosisOrder::where('id', $item['id'])->update(['status' => -2]);
+            }
+        }
+        return app('json')->successful($list);
+    }
+
 }

+ 8 - 0
crmeb/subscribes/TaskSubscribe.php

@@ -84,6 +84,14 @@ class TaskSubscribe
         } catch (\Exception $e) {
             Db::rollback();
         }
+
+        try {
+            Db::startTrans();
+            User::order_overdue();//订单过期
+            Db::commit();
+        } catch (\Exception $e) {
+            Db::rollback();
+        }
     }
 
     /**