diff --git a/Laravel/app/Http/Controllers/API/ApiMapController.php b/Laravel/app/Http/Controllers/API/ApiMapController.php
index 10f9ef6..18cb5af 100644
--- a/Laravel/app/Http/Controllers/API/ApiMapController.php
+++ b/Laravel/app/Http/Controllers/API/ApiMapController.php
@@ -64,6 +64,7 @@ class ApiMapController extends Controller
'AnalysisTypeGetList' => $base_url . '/api/H5/AnalysisTypeGetList',//趋势分析项目列表
'ReportAnalysis' => $base_url . '/api/H5/ReportAnalysis',//报告趋势详情
'HunQianQuestionSubmit' => $base_url . '/api/H5/HunQianQuestionSubmit',//婚前问卷提交
+ 'ChangeAppointment' => $base_url . '/api/H5/ChangeAppointment',//改约
'FenzhenAbandon' => $base_url . '/api/H5/Fenzhen/abandon',// 分诊弃检
'FenzhenList' => $base_url . '/api/H5/Fenzhen/list',// 分诊时间线
diff --git a/Laravel/app/Http/Controllers/API/H5/ComboController.php b/Laravel/app/Http/Controllers/API/H5/ComboController.php
index aa3b246..c6a03b0 100644
--- a/Laravel/app/Http/Controllers/API/H5/ComboController.php
+++ b/Laravel/app/Http/Controllers/API/H5/ComboController.php
@@ -336,10 +336,10 @@ select combo_id as c_id,count(*) as sale_count from orders where status in(2,4)
'pay_item_count' => $pay_item_count,//需要付费的项目数量
'lose_price'=>number_format($lose_price, 2, '.', ''),//剩余的不用就会浪费的金额
'nmr_list' => [
-// [
-// 'item_id' => "1",
-// "name" => "磁共振平扫(腰椎)"
-// ]
+ [
+ 'item_id' => "1",
+ "name" => "磁共振平扫(腰椎)"
+ ]
]//核磁项目列表
];
return \Yz::Return(true, "查询成功", $data);
diff --git a/Laravel/app/Http/Controllers/API/H5/OrderController.php b/Laravel/app/Http/Controllers/API/H5/OrderController.php
index 96f5058..8cd5838 100644
--- a/Laravel/app/Http/Controllers/API/H5/OrderController.php
+++ b/Laravel/app/Http/Controllers/API/H5/OrderController.php
@@ -315,6 +315,45 @@ class OrderController extends Controller
return \Yz::echoError1('操作失败');
}
}
+ //订单改约
+ public function ChangeAppointment()
+ {
+ $orderid = request('orderid');
+ $plan_id = request('planid');
+ $nmr_plan_id = request('nmrPlanid');
+ $doctor = request('doctor');
+ $orderInfo=DB::table('orders')->where(['id' => $orderid,'status'=>2])->first();
+ if(!$orderInfo) return \Yz::echoError1("未找到有效订单");
+ $planInfo = DB::table('plans')->where(['id' => $plan_id,'status'=>1])->first();
+ if(!$planInfo) return \Yz::echoError1("所选体检日期号源无效");
+ //判断核磁号源有效性能,日期范围是否正常,判断核磁新日期时间是否和旧的日期时间一样
+ //判断体检日期是否在核磁3天左右
+ //判断体检日期时间是否和旧的日期时间一样。一样则跳过,不一样则更新
+ if(isset($plan_id) && $plan_id<>$orderInfo->plan_id){
+ $peis = new PEISApiController();
+ $data="appointmentId=".$orderInfo->appointment_number."&appGroupId=66&appPlanId=".$plan_id."&appPlanNumber=".$planInfo->plan_number."&date=".urlencode($planInfo->date.' '.$planInfo->time);
+ $ch = $peis::Post2('修改用户预约时间', $peis::Api('修改用户预约时间',$data),$orderInfo->hospital_id,[]);
+ if($ch=='修改预约时刻保存成功'){
+ //恢复旧的plans
+ DB::table('plans')->where(['id' => $orderInfo->plan_id])->update(
+ ['status'=>1]
+ );
+ //使用新的plans
+ DB::table('plans')->where(['id' => $plan_id])->update(
+ ['status'=>2]
+ );
+ //更新订单
+ DB::table('orders')->where(['id' => $orderInfo->id])->update([
+ 'plan_id'=>$plan_id,
+ 'plan_number'=>$planInfo->plan_number,
+ 'appointment_date'=>$planInfo->date,
+ 'appointment_time'=>$planInfo->time,
+ ]);
+ }
+ return \Yz::Return(true,"操作完成",[]);
+ }
+ return \Yz::echoError1("未更改内容,无需进行此操作");
+ }
public function generateOrderNumber()
{
diff --git a/Laravel/app/Http/Controllers/API/PEISApiController.php b/Laravel/app/Http/Controllers/API/PEISApiController.php
index 20b077b..1f80a83 100644
--- a/Laravel/app/Http/Controllers/API/PEISApiController.php
+++ b/Laravel/app/Http/Controllers/API/PEISApiController.php
@@ -29,6 +29,7 @@ class PEISApiController extends Controller
$api['团检预约取消'] = "{$url}/PEISCommon/CancelUnitAppointment/{$code}";
$api['体检报告查询'] = "{$url}/PEISCommon/QueryExamReport/{$code}";
$api['预约时段修改'] = "{$url}/PEISCommon/ModifyAppointmentDTRange/{$code}";
+ $api['修改用户预约时间'] = "http://10.0.20.227:8888/ExtAPI/SetAppointmentMoment?key=YmMxOGI2MDUxZmFh&{$code}";
return $api["{$url_code}"] ?? $url_code;
}
@@ -62,6 +63,52 @@ class PEISApiController extends Controller
+ if (!json_decode($res_string, true)) {
+ return \Yz::Return(false, '获取失败', [
+ 'url' => $url,
+ 'data' => $data,
+ 'res' => $res_string
+ ]);
+ }
+ $res = json_decode($res_string, true);
+ if ($res['ResultCode'] != 0){
+ throw new HttpResponseException( \Yz::echoError1("体检系统提示:". $res['ResultContent']));
+ }
+
+ return [
+ 'code' => $res['ResultCode'],
+ 'message' => $res['ResultContent'],
+ 'data' => $res['Records']
+ ];
+ }
+ public static function Post2($url_code,$url, $hospital_id, $data)
+ {
+
+ $hospital = DB::table('hospitals')->where(['id' => $hospital_id, 'status' => 1, 'is_del' => 0])->first();
+ if (!$hospital) return \Yz::echoError1('医院不存在或不可用');
+ $code = $hospital->code;
+ self::RequestLog($url, $data, $code, $url_code);
+ $data_string = json_encode($data, JSON_UNESCAPED_UNICODE);
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, [
+ 'Content-Type: application/json; charset=utf-8',
+ 'Content-Length: ' . strlen($data_string)
+ ]);
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
+ $res_string = curl_exec($ch);
+ curl_close($ch);
+ $str_len = mb_strlen($res_string, 'utf-8');
+ $str_size = $str_len / 1024;
+ $save_res = $res_string;
+ if ($str_size > 10) $save_res = '{"data":"Row size too large"}';
+ self::$request->response_data = $save_res;
+ self::$request->save();
+
+
+
if (!json_decode($res_string, true)) {
return \Yz::Return(false, '获取失败', [
'url' => $url,
diff --git a/Laravel/routes/web.php b/Laravel/routes/web.php
index 003faa7..24c2d3f 100644
--- a/Laravel/routes/web.php
+++ b/Laravel/routes/web.php
@@ -64,6 +64,7 @@ Route::group(['middleware' => ['log'],'prefix' => 'api/H5'], function () {
Route::post('/CheckPay', 'App\Http\Controllers\API\H5\PayController@CheckPay');//支付结果查询接口
Route::post('/Refund', 'App\Http\Controllers\API\H5\PayController@Refund');//退款
Route::post('/GetOrderDetail', 'App\Http\Controllers\API\H5\OrderController@GetDetail');//获取订单详情
+ Route::post('/ChangeAppointment', 'App\Http\Controllers\API\H5\OrderController@ChangeAppointment');//改约
Route::post('/ReportContrast', 'App\Http\Controllers\API\H5\ReportController@contrast');//报告对比
Route::post('/ReportAnalysis', 'App\Http\Controllers\API\H5\ReportController@Analysis');//报告趋势
Route::post('/AnalysisTypeGetList', 'App\Http\Controllers\API\H5\AnalysisTypeController@GetList');//趋势分析项目列表
diff --git a/h5/pages/main/ctime/ctime.vue b/h5/pages/main/ctime/ctime.vue
index c80bfca..7d915c9 100644
--- a/h5/pages/main/ctime/ctime.vue
+++ b/h5/pages/main/ctime/ctime.vue
@@ -199,9 +199,7 @@
}
itemSelected.value = type
}
- const StartYuYue = () => {
- console.log(tj_plan_id.value, tj_time.value);
- }
+
let DoctorMonthCalendar = ref(null)
const selectDoctor = () => {
if (orderInfo.value.buy_info.nmr_list && orderInfo.value.buy_info.nmr_list.length > 0) {
@@ -231,7 +229,6 @@
let currentDate = ref(null); //月历当前日期
const monthSwitch = (e) => { //月历切换月份
let ym=e.year+""+"-"+e.month+""
- console.log(e);
if (itemSelected.value == 'nmr') {
NMRGetMonthPlanListFunc(ym)
}
@@ -240,7 +237,24 @@
}
}
const MonthConfirm = (e) => { //月历确认日期
-
+ console.log(e.fulldate)
+ selectedDate.value=e.fulldate
+ selectedTime.value = null
+ if (itemSelected.value == 'nmr') {
+ nmr_time.value = null
+ nmr_date.value = e.fulldate
+
+ tj_time.value = null //如果切换核磁日期则清空体检选择的日期时间
+ tj_date.value = null
+ doctor_name.value = null //清空体检医生
+ NMRGetDayPlanListFunc()
+ }
+ if (itemSelected.value == 'tj') {
+ tj_time.value = null
+ tj_date.value = e.fulldate
+ doctor_name.value = null //清空体检医生
+ GetDayPlanListFunc()
+ }
}
//获取体检每月号源数量
const GetMonthPlanListFunc = async (ym='') => {
@@ -300,6 +314,33 @@
}
MonthCalendar.value.open()
}
+ //点击提交
+ const StartYuYue = async() => {
+ if(tj_time.value==null){
+ uni.$lu.toast("请选择体检日期");
+ return false
+ }
+ console.log(tj_plan_id.value);
+ uni.showLoading();
+ let data = {
+ orderid: orderInfo.value.id,
+ planid: tj_plan_id,
+ nmrPlanid:nmr_plan_id,
+ doctor: doctor_name.value
+ }
+ const response = await $api("ChangeAppointment", data);
+ uni.hideLoading();
+ $response(response, () => {
+ if(response.status){
+ uni.showToast({
+ title: '改约完成'
+ });
+ uni.redirectTo({
+ url:'/pages/main/order/order'
+ })
+ }
+ });
+ }
let temp = null
onMounted(() => {
diff --git a/h5/pages/main/index/index.vue b/h5/pages/main/index/index.vue
index 95fde4d..9e70cbe 100644
--- a/h5/pages/main/index/index.vue
+++ b/h5/pages/main/index/index.vue
@@ -261,7 +261,7 @@
- 10082019
+ 10111124
diff --git a/h5/pages/main/order/src/order.vue b/h5/pages/main/order/src/order.vue
index 7861bf2..7adc5b8 100644
--- a/h5/pages/main/order/src/order.vue
+++ b/h5/pages/main/order/src/order.vue
@@ -188,8 +188,8 @@ onMounted(() => {
class="button_item_wrapper pay_button_wrapper"
>继续付款
-
+
+ 改约