Browse Source

Merge branch 'master' of http://git.9026.com/swdz-WangHaijun/BaoMa

Swdz-WangHaiJun 4 years ago
parent
commit
98951b4250

+ 13 - 8
app/Http/Controllers/Api/V1/DocterController.php

xqd xqd xqd
@@ -11,6 +11,7 @@ namespace App\Http\Controllers\Api\V1;
 use App\Models\Collection;
 use App\Models\Docter;
 use App\Models\DocterServiceTime;
+use App\Models\DocterSetting;
 use App\Models\Organization;
 use App\Models\Schedule;
 use App\Models\SchedulePeriod;
@@ -41,13 +42,12 @@ class DocterController extends AuthController
         $list_type = !empty($req['list_type']) ? $req['list_type'] : 0;
         $now_line = (int)date('Hi');
         if ($list_type == 1) {
-            $ids = DocterServiceTime::where('type', 1)->where('start_time_line', '<=', $now_line)->where('end_time_line', '>', $now_line)->pluck('docter_id')->toArray();
-            $builder->where('is_phone', 1)->whereIn('id', $ids);
+            $docter_ids5 = DocterServiceTime::where('type', 1)->where('start_time_line', '<=', $now_line)->where('end_time_line', '>', $now_line)->pluck('docter_id')->toArray();
+            $builder->where('is_phone', 1)->whereIn('id', $docter_ids5);
         }
         if ($list_type == 2) {
-            $ids = DocterServiceTime::where('type', 2)->where('start_time_line', '<=', $now_line)->where('end_time_line', '>', $now_line)->pluck('docter_id')->toArray();
-            $builder->where('is_phone', 1)->whereIn('id', $ids);
-            $builder->where('is_chat', 1);
+            $docter_ids6 = DocterServiceTime::where('type', 2)->where('start_time_line', '<=', $now_line)->where('end_time_line', '>', $now_line)->pluck('docter_id')->toArray();
+            $builder->where('is_chat', 1)->whereIn('id', $docter_ids6);
         }
         if ($list_type == 3) {
             $builder->where('is_appoint', 1);
@@ -199,9 +199,14 @@ class DocterController extends AuthController
                     if (!empty($v1['organization'])) {
                         $v1['organization']['distance'] = get_user_distance($user, $v1['organization']['latitude'], $v1['organization']['longitude']);
                     }
-
-                    $can_appoint_num = $v['per_time_num'] - $v1['order_num'];
-                    $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
+                    $docterSettings = DocterSetting::select(['service_num'])->where('docter_id', $req['docter_id'])->where('type', 1)->where('org_id', $v1['organization_id'])->first();
+                    if (empty($docterSettings)) {
+                        $v1['can_appoint_num'] = 0;
+                    }
+                    else {
+                        $can_appoint_num = $docterSettings['service_num'] - $v1['order_num'];
+                        $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
+                    }
                 }
             }
         }

+ 26 - 6
app/Http/Controllers/Api/V1/OrderController.php

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -8,7 +8,6 @@
 
 namespace App\Http\Controllers\Api\V1;
 
-use App\Models\Docter;
 use App\Models\Nurse;
 use App\Models\Order;
 use App\Models\OrderNurse;
@@ -17,7 +16,6 @@ use App\Models\OrderPatient;
 use App\Models\OrderVaccine;
 use App\Models\Patient;
 use App\Models\Payment;
-use App\Models\SchedulePeriod;
 use App\Models\ServicePack;
 use App\Models\Team;
 use App\Models\TimePeriod;
@@ -70,6 +68,11 @@ class OrderController extends AuthController
             return out(null, 10011, '请输入支付密码');
         }
 
+        //图文咨询订单未结束时不能针对同一医生再次下图文订单
+        if ($req['product_type'] == 2 && Order::where('docter_id', $req['docter_id'])->whereIn('order_status', [2,3])->exists()) {
+            return out(null, 10012, '您已经下过该医生的图文订单了,并且订单还未完成');
+        }
+
         if ($req['payment_type'] == 2) {
             if ($user['balance'] < $payment_amount) {
                 return out(null, 601, '余额不足');
@@ -77,7 +80,7 @@ class OrderController extends AuthController
         }
 
         if ($req['payment_type'] == 3) {
-            OrderPack::checkUserServicePack($req['order_pack_id'], $user['id'], $req['payment_type'], $payment_amount);
+            OrderPack::checkUserServicePack($req['order_pack_id'], $user['id'], $req['product_type'], $payment_amount);
         }
 
         $order_status = $payment_status = 1;
@@ -168,6 +171,11 @@ class OrderController extends AuthController
                 Order::payCompletedHandle($order['id']);
             }
 
+            //如果有优惠券就标记优惠券为已使用
+            if (!empty($req['user_coupon_id'])) {
+                UserCoupon::where('id', $req['user_coupon_id'])->update(['order_id' => $order['id'], 'status' => 2, 'use_time' => time()]);
+            }
+
             DB::commit();
         } catch (Exception $e) {
             DB::rollBack();
@@ -236,7 +244,7 @@ class OrderController extends AuthController
         }
 
         if ($req['payment_type'] == 3) {
-            OrderPack::checkUserServicePack($req['order_pack_id'], $user['id'], $req['payment_type'], $payment_amount);
+            OrderPack::checkUserServicePack($req['order_pack_id'], $user['id'], $req['product_type'], $payment_amount);
         }
 
         $order_status = $payment_status = 1;
@@ -343,6 +351,11 @@ class OrderController extends AuthController
                 Order::payCompletedHandle($order['id']);
             }
 
+            //如果有优惠券就标记优惠券为已使用
+            if (!empty($req['user_coupon_id'])) {
+                UserCoupon::where('id', $req['user_coupon_id'])->update(['order_id' => $order['id'], 'status' => 2, 'use_time' => time()]);
+            }
+
             DB::commit();
         } catch (Exception $e) {
             DB::rollBack();
@@ -487,11 +500,18 @@ class OrderController extends AuthController
                     //改变用户余额
                     $change_amount = 0 - $payment_amount;
                     User::changeBalance($user['id'], $change_amount, 1, $order['id'], '购买服务包');
-
-                    Order::payCompletedHandle($order['id']);
                 }
             }
 
+            if ($payment_amount == 0 || $req['payment_type'] == 2) {
+                Order::payCompletedHandle($order['id']);
+            }
+
+            //如果有优惠券就标记优惠券为已使用
+            if (!empty($req['user_coupon_id'])) {
+                UserCoupon::where('id', $req['user_coupon_id'])->update(['order_id' => $order['id'], 'status' => 2, 'use_time' => time()]);
+            }
+
             DB::commit();
         } catch (Exception $e) {
             DB::rollBack();

+ 1 - 1
app/Models/Order.php

xqd
@@ -103,7 +103,7 @@ class Order extends BaseModel
 
         //如果是服务包支付的,就扣服务包的次数
         if ($order['payment_type'] == 3) {
-            OrderPack::deductPackData($order['pay_order_pack_id'], $order['payment_type'], $order['payment_amount']);
+            OrderPack::deductPackData($order['pay_order_pack_id'], $order['product_type'], $order['payment_amount']);
         }
 
         if (!empty($order['docter_id'])) {