Pārlūkot izejas kodu

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

Swdz-WangHaiJun 4 gadi atpakaļ
vecāks
revīzija
de5e6c2e1f

+ 0 - 2
app/Admin/Controllers/CouponManagement/CouponDistributionUserList.php

xqd
@@ -29,8 +29,6 @@ class CouponDistributionUserList extends AdminController
         $grid = new Grid(new User());
         $grid->filter(function($filter){
             $filter->disableIdFilter();
-            $filter->equal('phone','手机')->mobile()->placeholder("请输入手机");
-            $filter->like('patient.name','患者姓名')->placeholder("请输入患者姓名");
             $filter->like('nickname','昵称');
             $filter->equal('status','用户状态')->radio([
                 ''   => '不限',

+ 23 - 0
app/Admin/Controllers/CouponManagement/CouponManagementController.php

xqd xqd
@@ -145,6 +145,16 @@ class CouponManagementController extends AdminController
     {
         $form = new Form(new Coupon());
         $form->hidden('id', __('id'));
+        $form->editing(function ($f){
+            $f->model()->max_reduce_amount /=100;
+            $f->model()->min_consume_amount /=100;
+            $f->model()->money /=100;
+        });
+        $type = request('type');
+        if (isset($type))
+        {
+            admin_toastr('最低消费金额不能小于满减的优惠钱数', 'error');
+        }
         $form->text('name', __('优惠券名称'));
         $form->text('title', __('券标题'));
         $form->text('desc', __('使用说明'));
@@ -205,7 +215,20 @@ class CouponManagementController extends AdminController
                     $form->start_time = strtotime($form->start_time);
                     $form->end_time = strtotime($form->end_time);
                     $form->money = $form->money*100;
+                    $form->min_consume_amount = $form->min_consume_amount*100;
                     $form->max_reduce_amount = $form->max_reduce_amount*100;
+                    if ($form->money >$form->min_consume_amount)
+                    {
+                        if ($form->isEditing)
+                        {
+                            $arr = request()->route()->parameters;
+                            return redirect('admin/coupons/'.$arr['coupon'].'/edit?type=1');
+                        }else
+                        {
+                            return redirect('admin/coupons/create?type=1');
+                        }
+
+                    }
                 });
             });
         return $form;

+ 2 - 2
app/Admin/Controllers/ServiceManagement/ServiceController.php

xqd
@@ -70,8 +70,8 @@ class ServiceController extends AdminController
             2 => 'success',
             3 => 'default'
         ]);
-        $grid->column('created_at', __('创建时间'));
-        $grid->column('updated_at', __('更新时间'));
+        $grid->column('created_at', __('创建时间'))->sortable();
+        $grid->column('updated_at', __('更新时间'))->sortable();
 
         $grid->filter(function ($filter){
             $filter->equal('service_type','服务类型')->select([1 => '图文', 2 => '电话', 3 => '问诊']);

+ 21 - 3
app/Admin/Controllers/UserManagement/DocterManagement/ApproveController.php

xqd
@@ -48,17 +48,35 @@ class ApproveController extends AdminController
         $grid->column('remarks', __('备注'));
         $grid->column('docter.practice','医生照片和执业证书')->display(function ($img) {
             $arr = explode(',',$img);
-            return $arr;
+            $new_arr = [];
+            foreach ($arr as $value)
+            {
+                $value = str_replace('upload/','',$value);
+                array_push($new_arr,$value);
+            }
+            return  $new_arr;
         })->lightbox(['width' =>'', 'height' => 30]);
 
         $grid->column('docter.card_photo','	身份证正反面')->display(function ($img) {
             $arr = explode(',',$img);
-            return $arr;
+            $new_arr = [];
+            foreach ($arr as $value)
+            {
+                $value = str_replace('upload/','',$value);
+                array_push($new_arr,$value);
+            }
+            return  $new_arr;
         })->lightbox(['width' =>'', 'height' => 30]);
 
         $grid->column('docter.is_quail','照片和资格证书')->display(function ($img) {
             $arr = explode(',',$img);
-            return $arr;
+            $new_arr = [];
+            foreach ($arr as $value)
+            {
+                $value = str_replace('upload/','',$value);
+                array_push($new_arr,$value);
+            }
+            return  $new_arr;
         })->lightbox(['width' =>'', 'height' => 30]);
 
         $grid->column('state', __('认证状态'))->using([1=>'已认证',2=>'审核驳回',3=>'待审核'])->label('info');

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

xqd xqd xqd
@@ -180,17 +180,12 @@ class DocterController extends AuthController
         $req = request()->post();
         $this->validate(request(), [
             'docter_id' => 'required|integer',
-            'organization_id' => 'integer',
             'per_page' => 'integer',
             'latitude' => 'numeric',
             'longitude' => 'numeric',
         ]);
         $user = $this->user;
-        $builder = Schedule::with(['schedulePeriod.timePeriod', 'schedulePeriod.organization'])->where('docter_id', $req['docter_id'])->where('schedule_type', 1)->where('schedule_day', '>=', date('Ymd'))->orderBy('schedule_day', 'asc');
-        if (!empty($req['organization_id'])) {
-            $builder->where('organization_id', $req['organization_id']);
-        }
-        $data = $builder->paginate($req['per_page']??15)->toArray();
+        $data = Schedule::with(['schedulePeriod.timePeriod', 'schedulePeriod.organization'])->where('docter_id', $req['docter_id'])->where('schedule_type', 1)->where('schedule_day', '>=', date('Ymd'))->orderBy('schedule_day', 'asc')->paginate($req['per_page']??15)->toArray();
         if (!empty($data)) {
             foreach ($data['data'] as $k => &$v) {
                 foreach ($v['schedule_period'] as $k1 => &$v1) {
@@ -205,7 +200,13 @@ class DocterController extends AuthController
                         $can_appoint_num = $docterSettings['service_num'] - $v1['order_num'];
                         $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
                     }
+                    //预约时间已经过了,就不展示了
+                    $schedule_time = strtotime($v1['schedule_date'].' '.$v1['time_period']['end_time_period'].':00');
+                    if ($schedule_time < time()) {
+                        unset($v['schedule_period'][$k1]);
+                    }
                 }
+                $v['schedule_period'] = array_values($v['schedule_period']);
             }
         }
 
@@ -246,7 +247,13 @@ class DocterController extends AuthController
                         $can_appoint_num = $docterSettings['service_num'] - $v1['order_num'];
                         $v1['can_appoint_num'] = $can_appoint_num < 0 ? 0 : $can_appoint_num;
                     }
+                    //预约时间已经过了,就不展示了
+                    $schedule_time = strtotime($v1['schedule_date'].' '.$v1['time_period']['end_time_period'].':00');
+                    if ($schedule_time < time()) {
+                        unset($v['schedule_period'][$k1]);
+                    }
                 }
+                $v['schedule_period'] = array_values($v['schedule_period']);
             }
         }
 

+ 3 - 3
app/Http/Controllers/Api/V1/OrderController.php

xqd xqd
@@ -234,7 +234,7 @@ class OrderController extends AuthController
 
         //检查号源
         if ($product_type == 3) {
-            $schedulePeriod = SchedulePeriod::where('docter_id', $req['docter_id'])->where('time_period_id', $req['time_period_id'])->where('schedule_date', date('schedule_date'))->where('schedule_type', 1)->first();
+            $schedulePeriod = SchedulePeriod::where('docter_id', $req['docter_id'])->where('time_period_id', $req['time_period_id'])->where('schedule_date', $req['schedule_date'])->where('schedule_type', 1)->first();
             if (empty($schedulePeriod)) {
                 return out(null, 10012, '医生无该时间段的排班');
             }
@@ -245,11 +245,11 @@ class OrderController extends AuthController
         }
         elseif (in_array($product_type, [4,5])) {
             $schedule_type_map = [4 => 2, 5 => 3];
-            $schedulePeriod = SchedulePeriod::where('time_period_id', $req['time_period_id'])->where('schedule_date', date('schedule_date'))->where('organization_id', $req['organization_id'])->where('schedule_type', $schedule_type_map[$product_type])->first();
+            $schedulePeriod = SchedulePeriod::where('time_period_id', $req['time_period_id'])->where('schedule_date', $req['schedule_date'])->where('organization_id', $req['organization_id'])->where('schedule_type', $schedule_type_map[$product_type])->first();
             if (empty($schedulePeriod)) {
                 return out(null, 10013, '机构无该时间段的排班');
             }
-            $docterSettings = DocterSetting::select(['service_num'])->where('org_id', $req['organization_id'])->where('type', $req['schedule_type'])->first();
+            $docterSettings = DocterSetting::select(['service_num'])->where('org_id', $req['organization_id'])->where('type', $schedule_type_map[$product_type])->first();
             if ($docterSettings['service_num'] <= $schedulePeriod['order_sn']) {
                 return out(null, 10015, '机构该时间段已经预约满了');
             }

+ 24 - 16
app/Http/Controllers/Api/V2/CommonController.php

xqd xqd xqd xqd xqd
@@ -63,7 +63,8 @@ class CommonController extends Controller
                 'avatar' => $req['avatar'] ?? '',
                 'latitude' => $req['latitude'] ?? 0,
                 'longitude' => $req['longitude'] ?? 0,
-                'session_key' => $session_key
+                'session_key' => $session_key,
+                'is_docter' => 1
             ]);
         }
         else {
@@ -223,10 +224,14 @@ class CommonController extends Controller
         $req = request()->post();
         $this->validate(request(), [
             'phone|手机号' => 'required|integer',
+            'verify|验证码' => 'required|integer',
         ]);
-        $req['verify'] = 0;
+        $verify = (int)$req['verify'];
+        $verifyCode = Cache::get($req['phone'].'-', $verify, config('config.aly_sms.sms_verify_code_expire'));
+        if ($verifyCode!=$verify){
+            return out('',401,'验证码错误!');
+        }
         $find = Docter::where('phone','=',$req['phone'])->first();
-
         if (empty($find)){
             $docter_list = [
                 'type' => 1,
@@ -278,19 +283,16 @@ class CommonController extends Controller
         if ($find['status'] == 0) {
             return out(null, 10002, '该账号已被冻结');
         }
-        if ($req['verify']==0){
-            $datas = [
-                'avatar' => $find['avatar'],
-                'name' => $find['name'],
-                'flag' => 'doctor_'.$find['id'],
-            ];
-            // 验证是否正确
-            $token = aes_encrypt(['doctor_id' => $find['id'], 'time' => time()]);
-            return out(['token' => $token,'data'=>$datas]);
-        }else{
-            return out(null, 401, '验证码错误');
 
-        }
+        $datas = [
+            'avatar' => $find['avatar'],
+            'name' => $find['name'],
+            'flag' => 'doctor_'.$find['id'],
+        ];
+        // 验证是否正确
+        $token = aes_encrypt(['doctor_id' => $find['id'], 'time' => time()]);
+        return out(['token' => $token,'data'=>$datas]);
+
 
     }
 
@@ -367,7 +369,13 @@ class CommonController extends Controller
         $this->validate(request(), [
             'phone|手机号' => 'required|integer',
             'password|密码' => 'required',
+            'verify|验证码' => 'required|integer',
         ]);
+        $verify = (int)$req['verify'];
+        $verifyCode = Cache::get($req['phone'].'-', $verify, config('config.aly_sms.sms_verify_code_expire'));
+        if ($verifyCode!=$verify){
+            return out('',401,'验证码错误!');
+        }
 
         // 查询是否注册过!
         $docters = Docter::where('phone','=',$req['phone'])->first();
@@ -450,7 +458,7 @@ class CommonController extends Controller
             return out(null, 10001, '文件不能为空');
         }
 
-        $path = $file->store('uploads/'.date('Ymd'));
+        $path = $file->store('upload/docter/'.date('Ymd'));
 //        $url = request()->getScheme().'://'.request()->getHost().'/'.$path;
 
         return out(['url' => $path]);

+ 24 - 10
app/Http/Controllers/Api/V2/DoctorController.php

xqd xqd xqd xqd xqd
@@ -561,6 +561,7 @@ class DoctorController extends AuthController
         $finds = Docter::select(['is_chat', 'is_phone', 'is_appoint'])->where('id', $doctor_id)->first();
         $flag = false;
 
+
         Db::beginTransaction();
         try {
             if ($finds['is_appoint'] == 0) {
@@ -632,6 +633,7 @@ class DoctorController extends AuthController
                         }
 
                     }
+
                     if($times_data&&$setting_data){
                         foreach ($times_data as $k => $v) {
                             TimePeriod::insert($v);
@@ -1286,19 +1288,21 @@ class DoctorController extends AuthController
         $fuw_order = Order::with('orderPack')->where($ws)->orderBy('created_at', 'desc')->get();
         if ($fuw_order) {
             $fuw_order = $fuw_order->toArray();
+//            var_dump($fuw_order);
 
             foreach ($fuw_order as $kk => $vv) {
                 $fuwArr[$kk]['order_id'] = $vv['id'];
                 if ($vv['order_pack']) {
-                    foreach ($vv['order_pack'] as $k => $v) {
-                        $fuwArr[$kk]['id'] = $v['id'];
-                        $fuwArr[$kk]['pack_name'] = $v['pack_name'];
-                        $fuwArr[$kk]['pack_intro'] = $v['pack_intro'];
-                        $fuwArr[$kk]['pack_price'] = $v['pack_price'];
-                        $fuwArr[$kk]['effective_days'] = $v['effective_days'];
-                        $fuwArr[$kk]['start_time'] = date('Y-m-d,H:i', $v['start_time']);
-                        $fuwArr[$kk]['end_time'] = date('Y-m-d,H:i', $v['end_time']);
-                    }
+
+//                    foreach ($vv['order_pack'] as $k => $v) {
+                    $fuwArr[$kk]['id'] = $vv['order_pack']['id'];
+                    $fuwArr[$kk]['pack_name'] = $vv['order_pack']['pack_name'];
+                    $fuwArr[$kk]['pack_intro'] = $vv['order_pack']['pack_intro'];
+                    $fuwArr[$kk]['pack_price'] = $vv['order_pack']['pack_price'];
+                    $fuwArr[$kk]['effective_days'] = $vv['order_pack']['effective_days'];
+                    $fuwArr[$kk]['start_time'] = date('Y-m-d,H:i', $vv['order_pack']['start_time']);
+                    $fuwArr[$kk]['end_time'] = date('Y-m-d,H:i', $vv['order_pack']['end_time']);
+//                    }
                 }
 
             }
@@ -2362,12 +2366,13 @@ class DoctorController extends AuthController
         $where[] = ['docter_id', $doctor_id];
         $list = Order::with('user')->where($where)->orderBy('receiving_time', 'desc')->get();
         $newList = [];
+        $isflag = [];
         if ($list) {
             $list = $list->toArray();
             foreach ($list as $k => $v) {
                 $messages = ImMessage::where(['senderId'=>'doctor_'.$doctor_id,'receiverId'=>'member_'.$v['user_id']])->orWhere(function ($query) use ($req,$doctor_id,$v){
                     $query->where(['senderId'=>'member_'.$v['user_id'],'receiverId'=>'doctor_'.$doctor_id]);
-                })->orderBy('id','desc')->first();
+                })->orderBy('id','asc')->first();
                 if($messages){
                     if($messages['type']=='text'){
                         $newList[$v['user_id']]['out_message'] = $messages['payload'];
@@ -2388,12 +2393,21 @@ class DoctorController extends AuthController
                 }
 
                 $newList[$v['user_id']]['flag'] = 'member_' . $v['user_id'];
+                $newList[$v['user_id']]['user_id'] = $v['user_id'];
+                if ($v['order_status']==3){
+                    $isflag[$k] =$v['user_id'];
+                }
                 $newList[$v['user_id']]['order_status'] = $v['order_status'];
                 $newList[$v['user_id']]['nickname'] = $v['user']['nickname'];
                 $newList[$v['user_id']]['avatar'] = $v['user']['avatar'];
                 $newList[$v['user_id']]['remark'] = !empty($v['user']['remark'])?$v['user']['remark']:'';
             }
             $newList = array_values($newList);
+            foreach ($newList as $k=>$v){
+                if (in_array($v['user_id'],$isflag)){
+                    $newList[$k]['order_status'] = 3;
+                }
+            }
         }
         return out($newList);
     }

+ 1 - 1
app/Models/SchedulePeriod.php

xqd
@@ -17,7 +17,7 @@ class SchedulePeriod extends BaseModel
 
     public function timePeriod()
     {
-        return $this->belongsTo(TimePeriod::class)->select(['id', 'start_time_period', 'end_time_period'])->where('end_time_period', '>', date('H:i'));
+        return $this->belongsTo(TimePeriod::class)->select(['id', 'start_time_period', 'end_time_period']);
     }
 
     public function docter()