Selaa lähdekoodia

Merge branch 'develop'

wanghaijun 4 vuotta sitten
vanhempi
commit
0c8566613a

+ 2 - 2
app/Community/Actions/Vaccine/AddVaccine.php

xqd
@@ -82,9 +82,9 @@ class AddVaccine extends RowAction
         $order_id = $this->row->id;
 
         if($is_admin){
-            $list = Vaccine::pluck('name','id');
+            $list = Vaccine::where('stock','>',0)->pluck('name','id');
         } else {
-            $list = Vaccine::where('org_id',$org_id)->pluck('name','id');
+            $list = Vaccine::where('stock','>',0)->where('org_id',$org_id)->pluck('name','id');
         }
         $ids = OrderVaccine::where(['order_id'=>$order_id])->pluck('vaccine_id')->toArray();
         $this->multipleSelect('vaccine_id','选择疫苗')->options($list)->value($ids)->required();

+ 4 - 2
app/Community/Controllers/ApiController.php

xqd xqd xqd
@@ -1042,6 +1042,7 @@ class ApiController extends Controller
 //        ];
         $time_t = [];
 //        echo '社区id  '.$org_id.' 医生id  '.$docter_id;
+        $fcount = 0;
         DB::beginTransaction();
         try {
             foreach ($schedule['schedulelingList'] as $t => $v) {
@@ -1092,6 +1093,7 @@ class ApiController extends Controller
                     }
 
                 } else if ($v['status'] == false) { //取消
+                    $fcount ++;
                     $data = [
                         'organization_id' => $org_id,
 //                        'week'=>$week,
@@ -1117,13 +1119,13 @@ class ApiController extends Controller
 //                    if(!$week_schedule) continue;
 //
 //                    //删除排班日期
-                    $s_id = Schedule::where(['schedule_date' => $today, 'schedule_type' => $sType, 'docter_id' => $docter_id])->value('id');
+                    $s_id = Schedule::where(['schedule_date' => $today, 'schedule_type' => $sType, 'organization_id'=>$org_id,'docter_id' => $docter_id])->value('id');
                     unset($data['type']);
 //                        $scount = SelfSchedule::where($data)->count();
                     $pcount = SchedulePeriod::where($data)->count();
 
 
-                    if ($s_id && $pcount == 0) {
+                    if ($s_id && $fcount == 3) {
                         Schedule::where(['id' => $s_id])->delete();
                     }
 //                    //删除排班和详细排班数据

+ 1 - 1
app/Community/Controllers/OrderController.php

xqd
@@ -100,7 +100,7 @@ class OrderController extends AdminController
             $filter->column(1/2, function ($filter)   {
                 $filter->equal('docter_id','排班医生')->select('/cdms/api/getDocter');
                 $filter->equal('order_status','订单状态')->select(Order::$_order_status);
-                $filter->between('orderPatient.appoint_start_time','预约时间')->datetime();
+                $filter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();
             });
         });
         return $grid;

+ 1 - 1
app/Community/Controllers/OrderNurseController.php

xqd
@@ -95,7 +95,7 @@ class OrderNurseController extends AdminController
             $filter->column(1/2, function ($filter) {
 //                $filter->equal('orders.docter_id','排班医生')->select('/cdms/api/getDocter');
                 $filter->equal('order_status','订单状态')->select(Order::$_order_status);
-                $filter->between('orderPatient.appoint_start_time','预约时间')->datetime();
+                $filter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();
             });
         });
 

+ 22 - 3
app/Community/Controllers/OrderVaccinesController.php

xqd xqd xqd xqd
@@ -9,12 +9,14 @@ use App\Community\Actions\Vaccine\OrderCance;
 use App\Community\Actions\Vaccine\Reserved;
 use App\Models\Docter;
 use App\Models\Order;
+use App\Models\OrderPatient;
 use App\Models\OrderVaccine;
 use Encore\Admin\Controllers\AdminController;
 use Encore\Admin\Facades\Admin;
 use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Show;
+use Illuminate\Support\Facades\DB;
 
 class OrderVaccinesController extends AdminController
 {
@@ -33,11 +35,27 @@ class OrderVaccinesController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Order());
+
+        $res = request()->all();
+
         $grid->model()->orderByDesc('id');
 
+        if(!empty($res['orderPatient']['appoint_start_time']['start']) || !empty($res['orderPatient']['appoint_start_time']['start']) ){
+
+            $grid->model()->whereHas('orderPatient',function($query){
+                $query->orderBy( OrderPatient::select('appoint_start_time')
+                    ->whereColumn('order_id', 'orders.id')
+                    ->orderBy('appoint_start_time', 'asc'));
+            });
+        } else {
+            $grid->model()->whereHas('orderPatient',function($query){
+                return $query->orderBy('appoint_start_time','desc')->groupBy('appoint_start_time');
+            });
+        }
         $user = Admin::user();
         $is_admin = Admin::user()->inRoles(['administrator','devloper']);
 
+
         $is_docter = $user->docter_id;
         if(!$is_admin){
             $org_id = $user->org_id;
@@ -52,9 +70,10 @@ class OrderVaccinesController extends AdminController
         $grid->column('user.nickname', __('预约用户'));
 //        $grid->column('yuyue', __('预约时间'))->display(function ($w){
 //            if(empty($this->orderPatient) || empty($this->orderPatient->appoint_start_time)) return '';
-//            return date('Y-m-d H:i:s',($this->orderPatient->appoint_start_time)) .'致' . date('Y-m-d H:i:s',($this->orderPatient->appoint_end_time));
+//            return date('Y-m-d H:i',($this->orderPatient->appoint_start_time)) .'致' . date('H:i',($this->orderPatient->appoint_end_time));
 //        });
         $grid->column('orderPatient.appoint_start_time', __('预约时间'))->display(function ($w){
+            if(empty($this->orderPatient) || empty($this->orderPatient->appoint_start_time)) return '';
             return date('Y-m-d H:i',$w).'~'.date('H:i',$this->orderPatient->appoint_end_time);
         });
         $grid->column('end_time', __('接种时间'))->display(function ($w){
@@ -80,9 +99,9 @@ class OrderVaccinesController extends AdminController
 
         $grid->filter(function ($filter)  {
             $filter->column(1/2, function ($filter) {
-                $filter->equal('docter.id','排班医生')->select('/cdms/api/getDocter');
+//                $filter->equal('docter.id','排班医生')->select('/cdms/api/getDocter');
                 $filter->equal('order_status','订单状态')->select(Order::$_order_status);
-                $filter->between('orderPatient.appoint_start_time','预约时间')->datetime();
+                $filter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();
             });
         });
         $grid->tools(function ($tools) {

+ 2 - 1
app/Community/Controllers/UserNoticeController.php

xqd
@@ -47,8 +47,9 @@ class UserNoticeController extends AdminController
         $grid->filter(function ($flter){
             $flter->like('name','请输入患者姓名');
             $flter->like('user.nickname','请输入监护人姓名');
+            $flter->like('phone','电话');
             $flter->between('birthday','生日')->datetime();
-            $flter->between('orderpatient.appoint_start_time','预约时间')->datetime();
+            $flter->timestampBetween('orderPatient.appoint_start_time','预约时间')->datetime();
             $flter->equal('order.product_type','用户类型')->select([4=>'计免',5=>'儿保']);
         });
 

+ 1 - 1
app/Http/Controllers/Api/V2/DoctorController.php

xqd
@@ -2208,7 +2208,7 @@ class DoctorController extends AuthController
                 if($lists){
                     $schedule_id = $lists['id'];
                 }else{
-                    $lists2 = Schedule::create(['schedule_type'=>1,'schedule_date'=>$req['schedule_date'],'schedule_day'=>str_replace('-','/',$req['schedule_date']),'week'=>$req['week'],'docter_id'=>$doctor_id,'organization_id'=>0,'per_time_num'=>0]);
+                    $lists2 = Schedule::create(['schedule_type'=>1,'schedule_date'=>$req['schedule_date'],'schedule_day'=>str_replace('-','',$req['schedule_date']),'week'=>$req['week'],'docter_id'=>$doctor_id,'organization_id'=>0,'per_time_num'=>0]);
                     if ($lists2){
                         $schedule_id = $lists2['id'];
                     }else{

+ 3 - 4
app/Http/Controllers/Api/V2/PatientController.php

xqd xqd
@@ -1077,9 +1077,9 @@ class PatientController extends AuthController
         $Order = Order::with(['orderPatient','user'])->where(['id'=>$order_id])->first();
         $type = '';
         if ($Order['product_type']==1){
-            $type = '电话咨询';
+            $type = '电话咨询已结束';
         }elseif ($Order['product_type']==2){
-            $type = '图文咨询 ';
+            $type = '图文咨询已结束 ';
         }elseif ($Order['product_type']==3){
             $type = '门诊预约';
         }
@@ -1090,8 +1090,7 @@ class PatientController extends AuthController
                     "pages/index",
                     $Order['order_sn'],
                     $type,
-                    date('Y-m-d H:i',$Order['receiving_time']),
-                    $Order['order_patient']['phone'],
+                    $Order['payment_amount'],
                 ],'wechat_small_program');
             }
         }

+ 89 - 23
app/Http/Controllers/AppiontController.php

xqd xqd
@@ -4,6 +4,8 @@
 namespace App\Http\Controllers;
 
 
+use Illuminate\Support\Facades\DB;
+use App\Models\Order;
 use App\Models\OrderPatient;
 use App\Models\Patient;
 use App\Models\User;
@@ -17,39 +19,103 @@ class AppiontController extends Controller
            'server_handle_result'=>0,
            'reserve_check_result'=>0,
            'allow_get_ticket'=>0,
-           'allow_get_ticket'=>0,
            'tip_msg'=>'',
-           'reserve_service_no'=>0,
+           'reserve_service_no'=>'Y',
            'reserve_date'=>'',
            'reserve_start_time'=>'',
            'reserve_end_time'=>'',
            'allow_post_ticket'=>0,
        ];
-       if(empty($data['telphone'])){
-           $defaulRes['tip_msg'] = '请输入手机号';
-           exit(json_encode($defaulRes));
-       }
-       if(empty($data['sig'])){
-           $defaulRes['tip_msg'] = '请输入sig签名';
-           exit(json_encode($defaulRes));
-       }
-       if(empty($data['SecretKey']) || $data['SecretKey'] != 2018){
-           $defaulRes['tip_msg'] = 'SecretKey秘钥错误';
-           exit(json_encode($defaulRes));
-       }
 
-       if(empty($data['st']) ){
-           $defaulRes['tip_msg'] = '请输入时间信息';
+       if(request()->isMethod('post')){
+           $defaulRes = ['server_handle_result'=>1,'tip_msg'=>''];
+           if(empty($data['orderId'])){
+               $defaulRes['tip_msg'] = '请输入订单id';
+               exit(json_encode($defaulRes));
+           }
+
+           if($data['reqNo']) {
+               Order::where('id',$data['orderId'])->update(['is_ticket'=>1]);
+               $defaulRes['tip_msg'] = 'ok';
+           }
            exit(json_encode($defaulRes));
-       }
 
-       $sign = mdt($data['id'].$data['telphone'].$data['barcode'].$data['st'].$data['st'].$data['area'].$data['st'].$data['st'].$data['SecretKey']);
-       if($data['sig'] != $sign){
-           $defaulRes['sig'] = '签名验证失败';
+       } else {
+           if(empty($data['telphone'])){
+               $defaulRes['tip_msg'] = '请输入手机号';
+               exit(json_encode($defaulRes));
+           }
+           if(empty($data['sig'])){
+               $defaulRes['tip_msg'] = '请输入sig签名';
+               exit(json_encode($defaulRes));
+           }
+           if(empty($data['SecretKey']) || $data['SecretKey'] != 2018){
+               $defaulRes['tip_msg'] = 'SecretKey秘钥错误';
+               exit(json_encode($defaulRes));
+           }
+
+           if(empty($data['st']) ){
+               $defaulRes['tip_msg'] = '请输入时间信息';
+               exit(json_encode($defaulRes));
+           }
+
+           $sign = md5($data['id'].$data['telphone'].$data['barcode'].$data['st'].$data['st'].$data['area'].$data['st'].$data['st'].$data['SecretKey']);
+           if($data['sig'] != $sign){
+               $defaulRes['sig'] = '签名验证失败';
+               exit(json_encode($defaulRes));
+           }
+
+           //先用患者表找,如果没有就直接查找用户表
+           $user_id = Patient::where('phone',$data['telphone'])->value('user_id');
+           if(empty($user_id)){
+               $user_id = User::where('phone',$data['telphone'])->value('id');
+           }
+
+           if(empty($user_id)){
+               $defaulRes['tip_msg'] = '无效账号';
+               exit(json_encode($defaulRes));
+           }
+
+           DB::enableQueryLog();
+           $order = Order::where('user_id',$user_id)->where('organization_id',$data['area'])->select('id','order_sn','user_id','patient_id','is_ticket')->with('orderPatient:order_id,appoint_start_time,appoint_end_time');
+
+           if($data['st']){
+               $order = $order->whereHas('orderPatient',function ($query) use ($data){
+                   $query->where('appoint_start_time','<=',$data['st']);
+                   $query->where('appoint_end_time','>=',$data['st']);
+               });
+           }
+           $order_list =$order->first();
+           if(empty($order_list)){
+               $defaulRes['tip_msg'] = '无预约';
+               exit(json_encode($defaulRes));
+           }
+           $order = $order_list->toArray();
+
+           $defaulRes['orderId'] = $order['id'];
+           $defaulRes['server_handle_result'] = 1;
+           if( $order['is_ticket'] == 0 && !empty($order['order_patient'])){
+               $start = intval($order['order_patient']['appoint_start_time']);
+               $end = intval($order['order_patient']['appoint_end_time']);
+               $date = date('Y-m-d',intval($order['order_patient']['appoint_start_time']));
+
+               if($end < intval($data['st']) || intval($data['st']) < time()){
+                   $defaulRes['tip_msg'] = '预约已过期,您预约的时间为:'.$date.' '.date('H:i',$start).'~'.date('H:i',$end);
+                   exit(json_encode($defaulRes));
+               }
+               $defaulRes['reserve_start_time']  = date('H:i',$start);
+               $defaulRes['reserve_end_time']  = date('H:i',$end);
+               $defaulRes['allow_post_ticket']  = 1;
+               $defaulRes['allow_get_ticket']  = 1;
+               $defaulRes['reserve_check_result']  = 1;
+               $defaulRes['reserve_date']  = $date;
+           } else {
+               $defaulRes['reserve_check_result']  = 1;
+               $defaulRes['allow_post_ticket']  = 0;
+           }
+
            exit(json_encode($defaulRes));
        }
-       $user_id = User::where('phone',$data['phone'])->user_id;
-       $patient_id = Patient::where('user_id',$user_id)->pluck('id')->toArray();
-       $order_list = OrderPatient::whereIn('patient_id',$patient_id)->where('patient_id',$patient_id)->where('appiont_start_time',$data['st'])->get();
+
    }
 }

+ 3 - 5
config/config.php

xqd xqd
@@ -884,7 +884,7 @@ return [
             'touser' => '%s',
             'mp_template_msg' => [
                 'appid' => env('OFFICIAL_WECHAT_APPID'),
-                'template_id' => 'grtzjXaIQNMTI-UoxY8cakzVna4q65s6qqZFbW67rIk',
+                'template_id' => 'kXr_VrMMLMKwxs17sYzGdzYyGy3aq9ZtqmFnNNiiBoc',
                 'url' => '',
                 'miniprogram' => [
                     'appid' => env('WECHAT_APPID', 'wx6131f74e623bf6bf'),
@@ -903,11 +903,9 @@ return [
                     'keyword3' => [
                         'value' => '%s',
                     ],
-                    'keyword4' => [
-                        'value' => '%s',
-                    ],
+
                     'remark' => [
-                        'value' => '点击进入小程序查看详情!',
+                        'value' => '点击进入小程序查看详情,感谢您的使用!',
                     ],
                 ]
             ],

+ 4 - 0
routes/web.php

xqd
@@ -38,4 +38,8 @@ Route::get('/test', 'IndexController@test');
 
 //用户信息
 Route::get('/api/getScheduleInfo', 'ScheDuleController@getScheduleInfo');
+Route::get('/api/getAppiontInfo', 'Appiontcontroller@getAppiontInfo');
+Route::get('/api/docterList', 'Appiontcontroller@docterList');
+Route::get('/api/organizationList', 'AppiontController@organizationList');
+Route::post('/api/organizationList', 'AppiontController@organizationList');