| 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;
|
| xqd
@@ -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();
|
|
|
+
|
|
|
}
|
|
|
}
|