hrjy 2 years ago
parent
commit
ef4e2e6da6

+ 14 - 5
app/admin/model/diagnosis/DiagnosisOrder.php

@@ -231,7 +231,7 @@ class DiagnosisOrder extends BaseModel
         if (!$order)return self::setErrorInfo('订单不存在!');
         if ($order['paid'] == 1) return self::setErrorInfo('订单已支付!');
         if ($order['user_card_id']){
-            self::card($order['user_card_id'], $order['cate_id']);
+            self::card($order['user_card_id'], $order['cate_id'], $order['uid']);
         }
 
         self::where('order_id', $orderId)->update(['paid' => 1, 'pay_time' => time()]);
@@ -249,12 +249,21 @@ class DiagnosisOrder extends BaseModel
      * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
      */
-    public static function card($card_id, $c_id)
+    public static function card($card_id, $c_id, $uid)
     {
+        $c_id = explode(',', $c_id);
+        $equity = [];
+        foreach ($c_id as $item){
+            $id = UserEquity::where('user_card_id', 'in', $card_id)->where('uid', $uid)->where('c_id', 'like', '%'.$item.'%')->value('id');
+            if ($id){
+                $equity[] = $id;
+            }
 
-        $equity = UserEquity::where('user_card_id', 'in', $card_id)->where('c_id', 'like', '%'.$c_id.'%')->select();
-        if ($equity){
-            foreach ($equity as $item){
+        }
+        $equity = array_unique($equity);
+        $equitys = UserEquity::where('id', 'in', $equity)->select();
+        if ($equitys){
+            foreach ($equitys as $item){
                 if ($item['type'] == 2){
                     if ($item['number'] == 1){
                         UserEquity::where('id', $item['id'])->update(['use' => 0]);

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

@@ -51,10 +51,10 @@ class DiagnosisOrderController
             ['transfer_address'],
             ['remarks'],
         ]);
-        $address = get_address($data['hospital']);
-        if (empty($data['type'])) return app('json')->fail('传入type');
 
+        if (empty($data['type'])) return app('json')->fail('传入type');
         if ($data['type'] == 1){
+            $address = get_address($data['hospital']);
             if (!strstr($data['transfer_address'], $address['city'])){
                 return app('json')->fail('接送地址和医院不在同一个市');
             }
@@ -79,7 +79,7 @@ class DiagnosisOrderController
             $commission += $cate['reward'];
         }
         if ($data['type'] == 2){
-            $ot_price = sys_config('basics_price');
+            $ot_price += sys_config('basics_price');
         }
         if ($data['type'] == 2 and !$card_id){
             $price += sys_config('basics_price');
@@ -256,6 +256,7 @@ class DiagnosisOrderController
         if ($user['is_receiver'] != 1) return app('json')->fail('你不是接单员');
         if (!$id) return app('json')->fail('传入订单id!');
         $order = DiagnosisOrder::where('id', $id)->lock(true)->find();
+        if ($order['status'] < 0) return app('json')->fail('订单已取消');
         if ($order['status'] > 0)  return app('json')->fail('该订单已被接');
         $order['order_receiving'] = $request->uid();
         $order['status'] = 1;