|
|
|
@ -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,23 +131,23 @@ 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['名称'],
|
|
|
|
];
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$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,
|
|
|
|
@ -582,24 +583,48 @@ class OrderController extends Controller
|
|
|
|
$peis = new PEISApiController();
|
|
|
|
$peis = new PEISApiController();
|
|
|
|
$dat = [
|
|
|
|
$dat = [
|
|
|
|
"预约Id" => $create_appointment['data'][0][0],
|
|
|
|
"预约Id" => $create_appointment['data'][0][0],
|
|
|
|
"预约开始时间" => $order_info->appointment_date . ' ' . $order_info->appointment_time,
|
|
|
|
"预约开始时间" => $order_info->appointment_date . ' ' . $order_info->appointment_time,
|
|
|
|
"预约截止时间" => $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();
|
|
|
|
|