|
|
<?php
|
|
|
|
|
|
namespace App\Http\Controllers\API\Internal;
|
|
|
|
|
|
use App\Http\Controllers\API\PEISApiController;
|
|
|
use App\Http\Controllers\Controller;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class OrderController extends Controller
|
|
|
{
|
|
|
//到检
|
|
|
public function TJCheck()
|
|
|
{
|
|
|
$password = request('password');
|
|
|
$serve_id = request('serve_id');
|
|
|
$exam_id = request('exam_id');
|
|
|
if(!isset($exam_id) or empty($exam_id)) return \Yz::echoError1("体检号不能为空");
|
|
|
if ($password !== 'YRtA1rx1iWgbpYKX') return \Yz::echoError1("校验密码失败");
|
|
|
if (isset($serve_id) and !empty($serve_id) and $serve_id <> '') { //到检通知
|
|
|
$orderInfo = DB::table('orders')->where('appointment_number', $serve_id)->orderBy('id', 'desc')->first();
|
|
|
if (!$orderInfo){
|
|
|
return $this->CreateOrder($exam_id);
|
|
|
}else{
|
|
|
if (!!$exam_id) {
|
|
|
if ($orderInfo->status == 1) return \Yz::echoError1("订单未付款");
|
|
|
if ($orderInfo->status == 3) return \Yz::echoError1("订单已取消");
|
|
|
if ($orderInfo->status == 4 || $orderInfo->check_status == 2) return \Yz::echoError1("人员已经到检");
|
|
|
if ($orderInfo->status == 5) return \Yz::echoError1("订单已退款");
|
|
|
// $peis = new PEISApiController();
|
|
|
// $data = [
|
|
|
// "电话号码" => $orderInfo->phone,
|
|
|
// "证件号码" => $orderInfo->id_number,
|
|
|
// ];
|
|
|
// $info = $peis::Post('分诊查询体检号', $orderInfo->hospital_id,$data);
|
|
|
DB::table('orders')->where('id', $orderInfo->id)->update([
|
|
|
'status' => 4,
|
|
|
// 'tj_number'=>$info['data'][0]['体检号'],
|
|
|
'tj_number' => $exam_id,
|
|
|
'check_status' => 2,
|
|
|
'check_time' => date('Y-m-d H:i:s'),
|
|
|
'check_read_status'=>1
|
|
|
]);
|
|
|
return \Yz::Return(true, "", ['id' => $orderInfo->id]);
|
|
|
} else {
|
|
|
return \Yz::echoError1("体检号不能为空");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} else { //体检直接登记用户信息,没经过h5登记。根据体检号查询信息入库
|
|
|
return $this->CreateOrder($exam_id);
|
|
|
}
|
|
|
}
|
|
|
//根据体检号拉取数据进行存储
|
|
|
public function CreateOrder($exam_id)
|
|
|
{
|
|
|
if (isset($exam_id)) {
|
|
|
$peis = new PEISApiController();
|
|
|
$data = [
|
|
|
'电话号码' => "",
|
|
|
'证件号码' => "",
|
|
|
'体检号' => $exam_id,
|
|
|
'包含内部信息' => true
|
|
|
];
|
|
|
$reports = $peis::Post('体检报告查询', 1, $data);
|
|
|
if (isset($reports['data'][0]['收费项目列表'])) {
|
|
|
$data = $reports['data'][0];
|
|
|
$items=[];
|
|
|
foreach ($data['收费项目列表'] as $it) {
|
|
|
$items[]=[
|
|
|
'id' => $it['收费项目Id'],
|
|
|
'name' => $it['收费项目名称'],
|
|
|
'price' => '',
|
|
|
];
|
|
|
}
|
|
|
$buyInfo=[
|
|
|
'combo'=>[
|
|
|
'id'=>0,
|
|
|
'name'=>'',
|
|
|
'price'=>''
|
|
|
],
|
|
|
'items'=>$items,
|
|
|
'group'=>[
|
|
|
'id'=>'',
|
|
|
]
|
|
|
];
|
|
|
$sex = 0;
|
|
|
if ($data['性别'] == '男') $sex = 1;
|
|
|
if ($data['性别'] == '女') $sex = 2;
|
|
|
$dataInfo = [
|
|
|
'hospital_id'=>1,
|
|
|
'title' => $data['套餐名称'],
|
|
|
'type' => $data['单位名称'] == '个人' ? 1 : 2,
|
|
|
'source' => '体检推送',
|
|
|
'name' => $data['姓名'],
|
|
|
'id_number' => $data['证件号码'],
|
|
|
'person_id'=>0,
|
|
|
'buy_info' => json_encode($buyInfo, JSON_UNESCAPED_UNICODE),
|
|
|
'status' => 4,
|
|
|
'plan_number' => $data['分诊信息'],
|
|
|
'appointment_date' => explode('T', $data['登记时间'])[0],
|
|
|
'tj_number' => $exam_id,
|
|
|
'phone' => $data['电话号码'],
|
|
|
'sex' => $sex,
|
|
|
'birthday' => explode('T', $data['出生日期'])[0],
|
|
|
'check_status' => 2,
|
|
|
'check_time' => $data['登记时间'],
|
|
|
];
|
|
|
$insert=DB::table('orders')->insert($dataInfo);
|
|
|
if($insert){
|
|
|
return \Yz::Return(true, "创建成功", ['id' => $insert]);
|
|
|
}else{
|
|
|
return \Yz::echoError1("创建失败");
|
|
|
}
|
|
|
} else {
|
|
|
return \Yz::echoError1("根据体检号查询用户信息出错,结果非预期");
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
return \Yz::echoError1("体检号不能为空");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public function GetH5Order()
|
|
|
{
|
|
|
$appointment_number = request('appointment_number');//思信预约完成后的id
|
|
|
if (!isset($appointment_number) || empty($appointment_number)) return \Yz::echoError1('预约id 不能为空');
|
|
|
$order_info = DB::table('orders')->where(['appointment_number' => $appointment_number, 'status' => 2, 'check_status' => 1])->first();
|
|
|
if (!!$order_info) {
|
|
|
$order_info->buy_info = json_decode($order_info->buy_info, true);
|
|
|
$order_info->erxian_appointment_info = json_decode($order_info->erxian_appointment_info, true);
|
|
|
} else {
|
|
|
return \Yz::echoError1('未找到有效订单');
|
|
|
}
|
|
|
return \Yz::Return(true, '获取成功', [
|
|
|
'info' => $order_info
|
|
|
]);
|
|
|
}
|
|
|
}
|