批量取消

main
yanzai 1 year ago
parent 4b72da2da6
commit 8c1d6d3864

@ -7,6 +7,7 @@ use App\Http\Controllers\Controller;
use App\Http\Controllers\API\PEISApiController; use App\Http\Controllers\API\PEISApiController;
use App\Lib\Tools; use App\Lib\Tools;
use App\Services\ConfigService; use App\Services\ConfigService;
use App\Services\OrderService;
use DateTime; use DateTime;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@ -19,17 +20,17 @@ class OrderController extends Controller
$openid = $request->post('openid'); $openid = $request->post('openid');
$user = DB::table('web_users')->where(['openid' => $openid, 'is_del' => 0])->first(); $user = DB::table('web_users')->where(['openid' => $openid, 'is_del' => 0])->first();
if (!$user) return \Yz::echoError1("openid对应用户不存在"); if (!$user) return \Yz::echoError1("openid对应用户不存在");
$persons_sfz=DB::table('web_user_person')->where(['user_id' => $user->id,'is_del'=>0])->pluck('id_number')->toArray(); $persons_sfz = DB::table('web_user_person')->where(['user_id' => $user->id, 'is_del' => 0])->pluck('id_number')->toArray();
$OrderList = DB::table('orders') $OrderList = DB::table('orders')
->select('id', 'title', 'status', 'name', 'appointment_time as time', 'order_number as order', ->select('id', 'title', 'status', 'name', 'appointment_time as time', 'order_number as order',
DB::raw("CASE WHEN type = 1 THEN '个检' WHEN type = 2 THEN '团检' ELSE 'unknown' END as type"), DB::raw("CASE WHEN type = 1 THEN '个检' WHEN type = 2 THEN '团检' ELSE 'unknown' END as type"),
'price', 'true_price', 'pay_time', 'refund_time', 'created_at') 'price', 'true_price', 'pay_time', 'refund_time', 'created_at')
->where(['web_user_id' => $user->id]) ->where(['web_user_id' => $user->id])
->orWhere(function($query) use ($persons_sfz) { ->orWhere(function ($query) use ($persons_sfz) {
$query->WhereIn('id_number', $persons_sfz) $query->WhereIn('id_number', $persons_sfz)
->where('person_id', 0); ->where('person_id', 0);
})->orderBy('id','desc')->get(); })->orderBy('id', 'desc')->get();
$WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間 $WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間
foreach ($OrderList as $key => $list) { foreach ($OrderList as $key => $list) {
if ($list->status == 1) { if ($list->status == 1) {
@ -51,9 +52,9 @@ class OrderController extends Controller
{ {
$id = request('id'); $id = request('id');
$order_info = DB::table('orders')->where(['id' => $id])->first(); $order_info = DB::table('orders')->where(['id' => $id])->first();
if(!!$order_info){ if (!!$order_info) {
$order_info->buy_info=json_decode($order_info->buy_info,true); $order_info->buy_info = json_decode($order_info->buy_info, true);
}else{ } else {
return \Yz::echoError1('未找到有效订单'); return \Yz::echoError1('未找到有效订单');
} }
return \Yz::Return(true, '获取成功', [ return \Yz::Return(true, '获取成功', [
@ -72,8 +73,8 @@ class OrderController extends Controller
$group_id = request('group_id');//团检id $group_id = request('group_id');//团检id
$item_ids = request('item_ids');//自选item的ids $item_ids = request('item_ids');//自选item的ids
if (count($item_ids) != 0 and $item_ids[0]=="") { if (count($item_ids) != 0 and $item_ids[0] == "") {
$item_ids=[]; $item_ids = [];
} }
$duo_xuan_yi = request('duo_xuan_yi'); //多选1 $duo_xuan_yi = request('duo_xuan_yi'); //多选1
@ -81,12 +82,12 @@ class OrderController extends Controller
$plan_nmr_id = request('plan_nmr_id');//核磁号源id $plan_nmr_id = request('plan_nmr_id');//核磁号源id
$doctor = request('doctor');//预约的医生名字 $doctor = request('doctor');//预约的医生名字
$jifen = request('jifen',0); //使用的积分数量 $jifen = request('jifen', 0); //使用的积分数量
$yucunkuan = request('yucunkuan',0);//使用的预存款数量 $yucunkuan = request('yucunkuan', 0);//使用的预存款数量
$wj_flag= request('wj'); //问卷标记 $wj_flag = request('wj'); //问卷标记
if(isset($wj_flag) and $wj_flag==1){ if (isset($wj_flag) and $wj_flag == 1) {
$wj_zhekou=config('app.globals.Wj_ZheKou');//问卷过来的折扣率 $wj_zhekou = config('app.globals.Wj_ZheKou');//问卷过来的折扣率
} }
if (!isset($hospital_id)) return \Yz::echoError1('医院id不能为空'); if (!isset($hospital_id)) return \Yz::echoError1('医院id不能为空');
@ -117,11 +118,11 @@ class OrderController extends Controller
'group' => [ 'group' => [
'id' => '', 'id' => '',
], ],
'nmr_list'=>[] 'nmr_list' => []
]; ];
//如果是套餐 //如果是套餐
$Nx1_arrInfo=[]; $Nx1_arrInfo = [];
$TJ_Leixing_id=1;//存储用体检类型 $TJ_Leixing_id = 1;//存储用体检类型
$checkup_type_id = false; //体检类型id $checkup_type_id = false; //体检类型id
if (isset($combo_id) and $combo_id <> 0) { if (isset($combo_id) and $combo_id <> 0) {
$combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first(); $combo_info = DB::table('combos')->where(['combo_id' => $combo_id, 'status' => 1])->first();
@ -130,15 +131,15 @@ class OrderController extends Controller
$checkup_type_id = $combo_info->checkup_type_id; $checkup_type_id = $combo_info->checkup_type_id;
//构建多选一数据 //构建多选一数据
if(isset($duo_xuan_yi) and !empty($duo_xuan_yi)){ if (isset($duo_xuan_yi) and !empty($duo_xuan_yi)) {
$combo_Nx1=json_decode($combo_info->duo_xuan_yi,true); $combo_Nx1 = json_decode($combo_info->duo_xuan_yi, true);
foreach ($duo_xuan_yi as $r_k=>$r_v){ foreach ($duo_xuan_yi as $r_k => $r_v) {
foreach ($combo_Nx1 as $k=> $n1v){ foreach ($combo_Nx1 as $k => $n1v) {
if($r_v['zu_name'] == $n1v['组名称']){ if ($r_v['zu_name'] == $n1v['组名称']) {
foreach ($n1v['包含项目'] as $k2 => $v2){ foreach ($n1v['包含项目'] as $k2 => $v2) {
if($v2['Id'] == $r_v['item_id']){ if ($v2['Id'] == $r_v['item_id']) {
if($v2['科室名称']=='影像科'){ if ($v2['科室名称'] == '影像科') {
$buy_info['nmr_list'][]=[ $buy_info['nmr_list'][] = [
'item_id' => $v2['Id'], 'item_id' => $v2['Id'],
'name' => $v2['名称'], 'name' => $v2['名称'],
]; ];
@ -146,7 +147,7 @@ class OrderController extends Controller
$Nx1_arrInfo[] = [ $Nx1_arrInfo[] = [
'id' => $v2['Id'], 'id' => $v2['Id'],
'name' => $v2['名称'], 'name' => $v2['名称'],
'price' =>0 'price' => 0
]; ];
} }
} }
@ -155,7 +156,7 @@ class OrderController extends Controller
} }
} }
$TJ_Leixing_id=$checkup_type_id; $TJ_Leixing_id = $checkup_type_id;
$price += $combo_info->price; $price += $combo_info->price;
$title = $combo_info->name; $title = $combo_info->name;
$buy_info['combo'] = [ $buy_info['combo'] = [
@ -164,10 +165,10 @@ class OrderController extends Controller
'price' => $combo_info->price, 'price' => $combo_info->price,
]; ];
//如果有影像科则存储在nmr_list字段 //如果有影像科则存储在nmr_list字段
$comboItem=DB::table('combo_items')->where(['combo_id' => $combo_id, 'status' => 1,'keshi_name'=>'影像科'])->get(); $comboItem = DB::table('combo_items')->where(['combo_id' => $combo_id, 'status' => 1, 'keshi_name' => '影像科'])->get();
if(count($comboItem)>0){ if (count($comboItem) > 0) {
foreach ($comboItem as $item){ foreach ($comboItem as $item) {
$buy_info['nmr_list'][]=[ $buy_info['nmr_list'][] = [
'item_id' => $item->item_id, 'item_id' => $item->item_id,
'name' => $item->name, 'name' => $item->name,
]; ];
@ -177,12 +178,12 @@ class OrderController extends Controller
//如果有自选项目 //如果有自选项目
$items_list = []; $items_list = [];
if (count($item_ids) != 0 ) { if (count($item_ids) != 0) {
$items_list = DB::table('items')->whereIn('item_id', $item_ids)->where(['status' => 1])->get(); $items_list = DB::table('items')->whereIn('item_id', $item_ids)->where(['status' => 1])->get();
$existingIds = []; $existingIds = [];
$item_price=0; $item_price = 0;
foreach ($items_list as $item) { foreach ($items_list as $item) {
$item_price+=$item->price; $item_price += $item->price;
$existingIds[] = $item->item_id; $existingIds[] = $item->item_id;
$buy_info['items'][] = [ $buy_info['items'][] = [
'id' => $item->item_id, 'id' => $item->item_id,
@ -190,23 +191,23 @@ class OrderController extends Controller
'price' => $item->price 'price' => $item->price
]; ];
//如果有影像科则存储在nmr_list字段 //如果有影像科则存储在nmr_list字段
if($item->keshi_name=='影像科'){ if ($item->keshi_name == '影像科') {
$buy_info['nmr_list'][]=[ $buy_info['nmr_list'][] = [
'item_id' => $item->item_id, 'item_id' => $item->item_id,
'name' => $item->name, 'name' => $item->name,
]; ];
} }
} }
if(isset($wj_flag) and $wj_flag==1){ if (isset($wj_flag) and $wj_flag == 1) {
$item_price=$item_price*$wj_zhekou; $item_price = $item_price * $wj_zhekou;
} }
$price += $item_price; $price += $item_price;
$missingIds = array_diff($item_ids, $existingIds); $missingIds = array_diff($item_ids, $existingIds);
if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用Id:" . implode(', ', $missingIds)); if (count($missingIds) > 0) return \Yz::echoError1("部分自选项目不可用Id:" . implode(', ', $missingIds));
} }
//如果有 多选一项目 //如果有 多选一项目
if(!empty($Nx1_arrInfo)){ if (!empty($Nx1_arrInfo)) {
$buy_info['items']=array_merge($buy_info['items'],$Nx1_arrInfo); $buy_info['items'] = array_merge($buy_info['items'], $Nx1_arrInfo);
} }
$true_price = $price; $true_price = $price;
@ -229,7 +230,7 @@ class OrderController extends Controller
'items' => $group_info['items'], 'items' => $group_info['items'],
'group_id' => $group_info['group_id'], 'group_id' => $group_info['group_id'],
]; ];
$TJ_Leixing_id=$group_info['checkup_type_id']; $TJ_Leixing_id = $group_info['checkup_type_id'];
$title = "单位团检" . $group_info['combo_name']; $title = "单位团检" . $group_info['combo_name'];
$price = $price + $group_info['sixi_zong_ji_jin_e']; $price = $price + $group_info['sixi_zong_ji_jin_e'];
$need_pay = ($price - $group_info['tongshou_xiane']) > 0 ? $price - $group_info['tongshou_xiane'] : 0; $need_pay = ($price - $group_info['tongshou_xiane']) > 0 ? $price - $group_info['tongshou_xiane'] : 0;
@ -239,11 +240,11 @@ class OrderController extends Controller
//如果有影像科则存储在nmr_list字段 //如果有影像科则存储在nmr_list字段
$all_items = DB::table('items')->where(['status' => 1,'keshi_name'=>'影像科'])->get(); $all_items = DB::table('items')->where(['status' => 1, 'keshi_name' => '影像科'])->get();
foreach ($group_info['items'] as $item) { foreach ($group_info['items'] as $item) {
foreach ($all_items as $it) { foreach ($all_items as $it) {
if ($it->item_id == $item['id']) { if ($it->item_id == $item['id']) {
$buy_info['nmr_list'][]=[ $buy_info['nmr_list'][] = [
'item_id' => $item->item_id, 'item_id' => $item->item_id,
'name' => $item->name, 'name' => $item->name,
]; ];
@ -317,39 +318,39 @@ class OrderController extends Controller
} }
//校验积分和预存款 //校验积分和预存款
$env=config('app.globals.Env'); $env = config('app.globals.Env');
$AspNet=new AspNetZhuanController(); $AspNet = new AspNetZhuanController();
if($env=='pro') { //如果是正式环境, 测试环境不抵扣 if ($env == 'pro') { //如果是正式环境, 测试环境不抵扣
if($jifen>0) { if ($jifen > 0) {
$all_jifen= $AspNet::GetJiFen_YuCunKuan(1,$person->ghzid); $all_jifen = $AspNet::GetJiFen_YuCunKuan(1, $person->ghzid);
if($jifen>$all_jifen) return \Yz::echoError1("用户剩余积分不足"); if ($jifen > $all_jifen) return \Yz::echoError1("用户剩余积分不足");
} }
if($yucunkuan>0) { if ($yucunkuan > 0) {
// return \Yz::echoError1("暂不支持预存款"); // return \Yz::echoError1("暂不支持预存款");
$all_yucunkuan= $AspNet::GetJiFen_YuCunKuan(2,$person->ghzid); $all_yucunkuan = $AspNet::GetJiFen_YuCunKuan(2, $person->ghzid);
if($yucunkuan>$all_yucunkuan) return \Yz::echoError1("用户剩余预存款不足"); if ($yucunkuan > $all_yucunkuan) return \Yz::echoError1("用户剩余预存款不足");
} }
$true_price=$true_price-($jifen+$yucunkuan); $true_price = $true_price - ($jifen + $yucunkuan);
if($true_price<-1) return \Yz::echoError1(""); if ($true_price < -1) return \Yz::echoError1("");
if($true_price<0) $true_price=0; if ($true_price < 0) $true_price = 0;
} }
$now_datetime=date('Y-m-d H:i:s'); $now_datetime = date('Y-m-d H:i:s');
//构建订单号 //构建订单号
$order_num = $this->generateOrderNumber(); $order_num = $this->generateOrderNumber();
$data = [ $data = [
'title' => $title, 'title' => $title,
'type' => $type, 'type' => $type,
'web_user_id' => $user->id, 'web_user_id' => $user->id,
'checkup_type_id'=>$TJ_Leixing_id, 'checkup_type_id' => $TJ_Leixing_id,
'person_id' => $person->id, 'person_id' => $person->id,
'name' => $person->name, 'name' => $person->name,
'id_number' => $person->id_number, 'id_number' => $person->id_number,
'buy_info' => json_encode($buy_info, JSON_UNESCAPED_UNICODE), 'buy_info' => json_encode($buy_info, JSON_UNESCAPED_UNICODE),
'price' => $price, 'price' => $price,
'true_price' =>number_format($true_price, 2, '.', ''), 'true_price' => number_format($true_price, 2, '.', ''),
'jifen'=>$jifen, 'jifen' => $jifen,
'yucunkuan'=>$yucunkuan, 'yucunkuan' => $yucunkuan,
'order_number' => $order_num, 'order_number' => $order_num,
'status' => 1, 'status' => 1,
'appointment_date' => $plan->date, 'appointment_date' => $plan->date,
@ -363,8 +364,8 @@ class OrderController extends Controller
'sex' => $person->sex, 'sex' => $person->sex,
'birthday' => $person->birthday, 'birthday' => $person->birthday,
'married' => $person->married, 'married' => $person->married,
'wj_flag'=>$wj_flag, 'wj_flag' => $wj_flag,
'created_at' =>$now_datetime, 'created_at' => $now_datetime,
]; ];
DB::beginTransaction(); DB::beginTransaction();
$insert = DB::table('orders')->insertGetId($data); $insert = DB::table('orders')->insertGetId($data);
@ -372,23 +373,23 @@ class OrderController extends Controller
'status' => 2 'status' => 2
]); ]);
//更新问卷log表 //更新问卷log表
DB::table('questionnaires_logs')->where(['person_id'=>$person->id,'order_id'=>0])->update([ DB::table('questionnaires_logs')->where(['person_id' => $person->id, 'order_id' => 0])->update([
'order_id' => $insert, 'order_id' => $insert,
]); ]);
//调用接口扣除积分和预存款 //调用接口扣除积分和预存款
$jifen_dikou_status=true; $jifen_dikou_status = true;
$yucunkuan_dikou_status=true; $yucunkuan_dikou_status = true;
$yyid=$hospital_id; $yyid = $hospital_id;
if($yyid==1) $yyid=6; if ($yyid == 1) $yyid = 6;
if($env=='pro') { //如果是正式环境 if ($env == 'pro') { //如果是正式环境
if($jifen>0) { if ($jifen > 0) {
$jifen_dikou_status=false; $jifen_dikou_status = false;
$jifen_dikou_status= $AspNet::UseJiFen($person->ghzid,-$jifen,$yyid,$insert,'tj_h5','抵扣体检H5订单',$now_datetime); $jifen_dikou_status = $AspNet::UseJiFen($person->ghzid, -$jifen, $yyid, $insert, 'tj_h5', '抵扣体检H5订单', $now_datetime);
} }
if($yucunkuan>0) { if ($yucunkuan > 0) {
$yucunkuan_dikou_status=false; $yucunkuan_dikou_status = false;
$yucunkuan_dikou_status= $AspNet::UseYuCunKuan($person->ghzid,-$yucunkuan,$yyid,0,$insert,'tj_h5','抵扣体检H5订单',$now_datetime); $yucunkuan_dikou_status = $AspNet::UseYuCunKuan($person->ghzid, -$yucunkuan, $yyid, 0, $insert, 'tj_h5', '抵扣体检H5订单', $now_datetime);
} }
} }
@ -422,36 +423,36 @@ class OrderController extends Controller
$plan_id = request('planid'); $plan_id = request('planid');
$nmr_plan_id = request('nmrPlanid'); $nmr_plan_id = request('nmrPlanid');
$doctor = request('doctor'); $doctor = request('doctor');
$orderInfo=DB::table('orders')->where(['id' => $orderid,'status'=>2])->first(); $orderInfo = DB::table('orders')->where(['id' => $orderid, 'status' => 2])->first();
if(!$orderInfo) return \Yz::echoError1("未找到有效订单"); if (!$orderInfo) return \Yz::echoError1("未找到有效订单");
$planInfo = DB::table('plans')->where(['id' => $plan_id,'status'=>1])->first(); $planInfo = DB::table('plans')->where(['id' => $plan_id, 'status' => 1])->first();
if(!$planInfo) return \Yz::echoError1("所选体检日期号源无效"); if (!$planInfo) return \Yz::echoError1("所选体检日期号源无效");
//判断核磁号源有效性能,日期范围是否正常,判断核磁新日期时间是否和旧的日期时间一样 //判断核磁号源有效性能,日期范围是否正常,判断核磁新日期时间是否和旧的日期时间一样
//判断体检日期是否在核磁3天左右 //判断体检日期是否在核磁3天左右
//判断体检日期时间是否和旧的日期时间一样。一样则跳过,不一样则更新 //判断体检日期时间是否和旧的日期时间一样。一样则跳过,不一样则更新
if(isset($plan_id) && $plan_id<>$orderInfo->plan_id){ if (isset($plan_id) && $plan_id <> $orderInfo->plan_id) {
$peis = new PEISApiController(); $peis = new PEISApiController();
$data="appointmentId=".$orderInfo->appointment_number."&appGroupId=66&appPlanId=".$plan_id."&appPlanNumber=".$planInfo->plan_number."&date=".urlencode($planInfo->date.' '.$planInfo->time); $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,[]); $ch = $peis::Post2('修改用户预约时间', $peis::Api('修改用户预约时间', $data), $orderInfo->hospital_id, []);
if($ch=='修改预约时刻保存成功'){ if ($ch == '修改预约时刻保存成功') {
//恢复旧的plans //恢复旧的plans
DB::table('plans')->where(['id' => $orderInfo->plan_id])->update( DB::table('plans')->where(['id' => $orderInfo->plan_id])->update(
['status'=>1] ['status' => 1]
); );
//使用新的plans //使用新的plans
DB::table('plans')->where(['id' => $plan_id])->update( DB::table('plans')->where(['id' => $plan_id])->update(
['status'=>2] ['status' => 2]
); );
//更新订单 //更新订单
DB::table('orders')->where(['id' => $orderInfo->id])->update([ DB::table('orders')->where(['id' => $orderInfo->id])->update([
'plan_id'=>$plan_id, 'plan_id' => $plan_id,
'plan_number'=>$planInfo->plan_number, 'plan_number' => $planInfo->plan_number,
'appointment_date'=>$planInfo->date, 'appointment_date' => $planInfo->date,
'appointment_time'=>$planInfo->time, 'appointment_time' => $planInfo->time,
'doctor'=>isset($doctor)?$doctor:null, 'doctor' => isset($doctor) ? $doctor : null,
]); ]);
} }
return \Yz::Return(true,"操作完成",[]); return \Yz::Return(true, "操作完成", []);
} }
return \Yz::echoError1("未更改内容,无需进行此操作"); return \Yz::echoError1("未更改内容,无需进行此操作");
} }
@ -528,25 +529,25 @@ class OrderController extends Controller
"已收费" => true, "已收费" => true,
]; ];
$cad2=[ $cad2 = [
"可选项目信息" => $item_arr, "可选项目信息" => $item_arr,
"总计金额" => $order_info->price, "总计金额" => $order_info->price,
]; ];
if($order_info->wj_flag == 1){ if ($order_info->wj_flag == 1) {
$temp=[]; $temp = [];
foreach ($item_arr as $k => $item) { foreach ($item_arr as $k => $item) {
$temp[]=[ $temp[] = [
"Id"=> $item['Id'], "Id" => $item['Id'],
"已收费"=>$item['已收费'], "已收费" => $item['已收费'],
"优惠方式"=>"打折", "优惠方式" => "打折",
"优惠值"=> config('app.globals.Wj_ZheKou') "优惠值" => config('app.globals.Wj_ZheKou')
]; ];
} }
$cad2=[ $cad2 = [
"可选项目信息" => $temp, "可选项目信息" => $temp,
]; ];
} }
$cad=array_merge($cad,$cad2); $cad = array_merge($cad, $cad2);
} else { } else {
$cad = [ $cad = [
'type' => 2, 'type' => 2,
@ -586,20 +587,44 @@ class OrderController extends Controller
"预约截止时间" => $order_info->appointment_date . ' ' . $order_info->appointment_time, "预约截止时间" => $order_info->appointment_date . ' ' . $order_info->appointment_time,
"AppDoctor" => $order_info->appdoctor "AppDoctor" => $order_info->appdoctor
]; ];
$info = $peis::Post('预约时段修改', $order_info->hospital_id,$dat); $info = $peis::Post('预约时段修改', $order_info->hospital_id, $dat);
} }
$u=DB::table('orders')->where(['order_number' => $order_number])->update([ $u = DB::table('orders')->where(['order_number' => $order_number])->update([
'appointment_number' => $create_appointment['data'][0][0], 'appointment_number' => $create_appointment['data'][0][0],
'appointment_back_info' => json_encode($appointment_info['data'][0], JSON_UNESCAPED_UNICODE) 'appointment_back_info' => json_encode($appointment_info['data'][0], JSON_UNESCAPED_UNICODE)
]); ]);
$is_sendMsg=DB::table('configs')->where(['label' => '预约完成短信通知'])->first(); $is_sendMsg = DB::table('configs')->where(['label' => '预约完成短信通知'])->first();
if(!!$is_sendMsg and $is_sendMsg->value==1){ if (!!$is_sendMsg and $is_sendMsg->value == 1) {
$asp=new AspNetZhuanController(); $asp = new AspNetZhuanController();
$asp::SendMsg($cha->hospital_id,$cha->phone,$cha->name,$cha->appointment_date.' '.substr($cha->appointment_time, 0, 5)); $asp::SendMsg($cha->hospital_id, $cha->phone, $cha->name, $cha->appointment_date . ' ' . substr($cha->appointment_time, 0, 5));
} }
return ['status' => true, 'msg' => "完成"]; return ['status' => true, 'msg' => "完成"];
} }
//未支付取消订单
public function Cancel()
{
}
//批量取消订单
public function BatchCancel()
{
$WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間
$orderInfos = DB::table('orders')->where(['status' => 1])->get();
foreach ($orderInfos as $k => $orderInfo) {
$person=DB::table('web_user_person')->where(['id' => $orderInfo->person_id])->first();
$datetime = new DateTime($orderInfo->created_at);
$timestamp = $datetime->getTimestamp();
$orderInfo->end_time = $timestamp + (60 * $WaitingPaymentTime);
if (time() > $orderInfo->end_time) {
$do=new OrderService();
$do->Cancel($orderInfo);
}
}
return \Yz::Return(true, "批量处理完成", []);
}
public function create_appointment($hospital, $data) public function create_appointment($hospital, $data)
{ {
$peis = new PEISApiController(); $peis = new PEISApiController();

@ -144,13 +144,19 @@ class PayController extends Controller
$yyid=$orderInfo->hospital_id; $yyid=$orderInfo->hospital_id;
if($yyid==1) $yyid=6; if($yyid==1) $yyid=6;
if($env=='pro') { //如果是正式环境 if($env=='pro') { //如果是正式环境
if($orderInfo->jifen>0) { if($orderInfo->jifen>0 and $orderInfo->is_refund_jifen==0) {
$jifen_huifu_status=false; $jifen_huifu_status=false;
$jifen_huifu_status= $AspNet::UseJiFen($person->ghzid,$orderInfo->jifen,$yyid,$orderInfo->id,'tj_h5','抵扣体检H5订单',$now_datetime); $jifen_huifu_status= $AspNet::UseJiFen($person->ghzid,$orderInfo->jifen,$yyid,$orderInfo->id,'tj_h5','抵扣体检H5订单',$now_datetime);
if( $jifen_huifu_status===true){
DB::table('orders')->where('id',$orderInfo->id)->update(['is_refund_jifen'=>1]);
} }
if($orderInfo->yucunkuan>0) { }
if($orderInfo->yucunkuan>0 and $orderInfo->is_refund_yucunkuan==0) {
$yucunkuan_huifu_status=false; $yucunkuan_huifu_status=false;
$yucunkuan_huifu_status= $AspNet::UseYuCunKuan($person->ghzid,$orderInfo->yucunkuan,$yyid,0,$orderInfo->id,'tj_h5','抵扣体检H5订单',$now_datetime); $yucunkuan_huifu_status= $AspNet::UseYuCunKuan($person->ghzid,$orderInfo->yucunkuan,$yyid,0,$orderInfo->id,'tj_h5','抵扣体检H5订单',$now_datetime);
if($yucunkuan_huifu_status===true){
DB::table('orders')->where('id',$orderInfo->id)->update(['is_refund_yucunkuan'=>1]);
}
} }
} }

@ -1,6 +1,7 @@
<?php <?php
namespace App\Services; namespace App\Services;
use App\Http\Controllers\API\AspNetZhuanController;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
class OrderService class OrderService
@ -71,4 +72,41 @@ class OrderService
return ['department_list'=>$de_list,'wait_day'=>"10"]; return ['department_list'=>$de_list,'wait_day'=>"10"];
} }
public function Cancel($orderInfo)
{
$person=DB::table('web_user_person')->where(['id' => $orderInfo->person_id])->first();
$now_datetime=date('Y-m-d H:i:s');
//调用接口恢复积分和预存款
$env=config('app.globals.Env');
$AspNet=new AspNetZhuanController();
$jifen_huifu_status=true;
$yucunkuan_huifu_status=true;
$yyid=$orderInfo->hospital_id;
if($yyid==1) $yyid=6;
if($env=='pro') { //如果是正式环境
if($orderInfo->jifen>0 and $orderInfo->is_refund_jifen==0) {
$jifen_huifu_status=false;
$jifen_huifu_status= $AspNet::UseJiFen($person->ghzid,$orderInfo->jifen,$yyid,$orderInfo->id,'tj_h5','抵扣体检H5订单',$now_datetime);
if( $jifen_huifu_status===true){
DB::table('orders')->where('id',$orderInfo->id)->update(['is_refund_jifen'=>1]);
}
}
if($orderInfo->yucunkuan>0 and $orderInfo->is_refund_yucunkuan==0) {
$yucunkuan_huifu_status=false;
$yucunkuan_huifu_status= $AspNet::UseYuCunKuan($person->ghzid,$orderInfo->yucunkuan,$yyid,0,$orderInfo->id,'tj_h5','抵扣体检H5订单',$now_datetime);
if($yucunkuan_huifu_status===true){
DB::table('orders')->where('id',$orderInfo->id)->update(['is_refund_yucunkuan'=>1]);
}
}
}
DB::table('orders')->where(['id' => $orderInfo->id,'status'=>1])->update([
'status' => 3
]);
//恢复号源
$up_plan = DB::table('plans')->where(['id' => $orderInfo->plan_id, 'status' => 2])->update([
'status' => 1
]);
return true;
}
} }

@ -91,3 +91,5 @@ Route::group(['prefix' => 'api/Web'], function () {
//对外------ //对外------
Route::any('/TJPushInfo', 'App\Http\Controllers\API\Internal\SiXinPushController@PushInfo');//接收思信推送 Route::any('/TJPushInfo', 'App\Http\Controllers\API\Internal\SiXinPushController@PushInfo');//接收思信推送
Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck');//到检 Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck');//到检
Route::any('/OrderBatchCancel', 'App\Http\Controllers\API\H5\OrderController@BatchCancel');//批量取消

Loading…
Cancel
Save