二线预约基本完成

main
yanzai 1 year ago
parent f9e217c942
commit e5c6fc5c07

@ -45,6 +45,7 @@ class AspNetZhuanController extends Controller
public static function ErXian($data,$nonce)
{
$res= self::Post(self::$BaseUrl . '/erxianzhongzhuan.aspx?str='.$nonce,$data,'二线号源');
if($data['action']==2) return $res['gid']??false;
return $res['data']??true;
}

@ -574,7 +574,7 @@ class OrderController extends Controller
public function Finish_test() //删除!!!
{
$f = self::Finish('20240916154519911MbHwIE');
$f = self::Finish('20241030111035259T2IBC6');
dd($f);
}
@ -584,6 +584,8 @@ class OrderController extends Controller
$AspNet=new AspNetZhuanController();
$order_info = DB::table('orders')->where(['order_number' => $order_number])->first();
if (!$order_info) return ['status' => false, 'msg' => "未找到有效订单。"];
$person=DB::table('web_user_person')->where(['id' => $order_info->person_id])->first();
if(!$person) return ['status' => false, 'msg' => "体检人信息无效。"];
$yyid=6;
if($order_info->hospital_id == 1){
$yyid=6;
@ -603,7 +605,7 @@ class OrderController extends Controller
];
//调用接口校验号源是否可用
$erxian_status = $AspNet::ErXian(['YYRQ' => $p_nmr_data['date'], 'YYSJ' => $p_nmr_data['time'], 'yyid' => $yyid, 'action' => 4], uniqid());
if ($erxian_status !== true) return \Yz::echoError1($p_nmr_data['name'] . '号源不可用');
if ($erxian_status !== true) return ['status' => false, 'msg' => $p_nmr_data['name'] . '号源不可用'];
}
}
@ -684,6 +686,49 @@ class OrderController extends Controller
$cha = DB::table('orders')->where(['order_number' => $order_number, 'status' => 2])->first();
if (!$cha) return ['status' => false, 'msg' => "订单未支付,禁止预约"];
//把状态更新为支付后,先二线,然后再开始预约思信
$nowDateTime=date('Y-m-d H:i:s');
if (isset($erxian_info) and !empty($erxian_info)) {
// foreach ($erxian_info as $key => $plan_nmr) {
$plan_nmr=$erxian_info[0];
$sex="未知";
if($order_info->sex==1) $sex='男';
if($order_info->sex==2) $sex='女';
$p_nmr_data = [
'ghzid'=>$person->ghzid,
'YYRQ'=>$plan_nmr['date'],
'YYSJ'=>$plan_nmr['time'],
'U_SFID'=>$plan_nmr['item_id'],
'U_SFMC'=>$plan_nmr['name'],
'HBXMJE'=>$plan_nmr['price'],
'CJSJ'=>$nowDateTime,
'YYDH'=>$order_info->phone,
'YYXM'=>$order_info->name,
'YYXB'=>$sex,
'YYSR'=>$order_info->birthday,
'YYNL'=>Tools::GetAge($order_info->birthday).'岁' ,
'YYZJ'=>$order_info->id_number,
'YYSJ_B'=>$plan_nmr['time'].':00',
'YYSJ_E'=>$plan_nmr['time'].':00',
'YYSJ_BE'=>$plan_nmr['time'].'-'.$plan_nmr['time'],
'ZCRQ'=>$nowDateTime,
'yyid'=>$yyid,
'action'=>2,
];
//调用接口校验号源是否可用
$erxian_yuyue= $AspNet::ErXian($p_nmr_data, uniqid());
if(!!$erxian_yuyue){
$erxian_info[0]['gid']=$erxian_yuyue;
$ex_u= DB::table('orders')->where(['id' => $order_info->id])->update([
'erxian_appointment_info'=>json_encode($erxian_info, JSON_UNESCAPED_UNICODE),
]);
if(!$ex_u) return ['status' => false, 'msg' => "二线预约失败"];
}else{
return ['status' => false, 'msg' => "二线预约失败"];
}
// }
}
$create_appointment = self::create_appointment($order_info->hospital_id, $cad);

@ -119,6 +119,31 @@ class PayController extends Controller
'预约Id' => $orderInfo->appointment_number
]);
if ($cancel['code'] != 0) return \Yz::echoError1("取消预约失败," . $cancel['message']);
//如果有二线取消二线
$yyid=6;
if($orderInfo->hospital_id == 1){
$yyid=6;
}
if($orderInfo->hospital_id == 4){
$yyid=2;
}
$AspNet=new AspNetZhuanController();
$erxian_info=json_decode($orderInfo->erxian_appointment_info, true);
if (isset($erxian_info) and !empty($erxian_info)) {
foreach ($erxian_info as $key => $plan_nmr) {
if(isset($plan_nmr['gid'])){
//调用接口校验号源是否可用
$erxian_status = $AspNet::ErXian(['id' =>$plan_nmr['gid'], 'yyid' => $yyid, 'action' => 3], uniqid());
$erxian_info[$key]['gid']='';
$ex_u= DB::table('orders')->where(['id' => $orderInfo->id])->update([
'erxian_appointment_info'=>json_encode($erxian_info, JSON_UNESCAPED_UNICODE),
]);
}
}
}
//如果真实支付大于0 则调用小程序退款
if ($orderInfo->true_price > 0) {
$data = [

@ -2,6 +2,7 @@
namespace App\Lib;
use DateTime;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
@ -56,4 +57,16 @@ class Tools
Log::info("短信发送失败");
}
}
//根据生日 获取年龄
public static function GetAge($birthday) {
$dob = new DateTime($birthday);
$now = new DateTime();
// 计算两个日期之间的差值
$interval = $now->diff($dob);
// 返回年龄
return $interval->y;
}
}

Loading…
Cancel
Save