You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
4.2 KiB
PHP

<?php
namespace App\Http\Controllers\API\Admin\YeWu;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Services\Admin\YeWu\HealthCheckupService;
use App\Services\mH5\PersonService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class HealthCheckupController extends Controller
{
//创建体检记录
public function CreateRecord(){
$CheckupInfo=request('checkup_info');
if(!$CheckupInfo) return \Yz::echoError1('检查信息为空');
if(!$CheckupInfo['name']) return \Yz::echoError1('姓名不能为空');
if(!isset($CheckupInfo['id_card_num'])) return \Yz::echoError1('id_card_num不能为空');
if(!isset($CheckupInfo['type'])) return \Yz::echoError1('type不能为空');
if(!isset($CheckupInfo['institution_sn'])) return \Yz::echoError1('institution_sn不能为空');
if(!isset($CheckupInfo['tijian_num'])) return \Yz::echoError1('体检号tijian_num不能为空');
if(!isset($CheckupInfo['tijian_time'])) return \Yz::echoError1('体检时间tijian_time不能为空');
if(!isset($CheckupInfo['fee_type'])) return \Yz::echoError1('收费类型fee_type不能为空');
if(!isset($CheckupInfo['report_content'])) return \Yz::echoError1('报告内容report_content不能为空');
$s=app()->make(HealthCheckupService::class);
return $s->CreateRecord($CheckupInfo);
}
//查询能否进行免费体检
public function CheckRequirements(){
$id_card_num=request('id_card_num');
$s=app()->make(PersonService::class);
return $s->GetPersonRecode(['id_num'=>$id_card_num]);
}
//获取个人预约记录详情
public function GetAppointmentRecord(){
$id_card_num=request('id_card_num');
$s=app()->make(PersonService::class);
return $s->GetAppointmentRecord(['id_num'=>$id_card_num]);
}
//提交pdf文件
public function UploadFile(Request $request){
$file=request('file');
$id_card_num=request('id_card_num');
$tijian_num=request('tijian_num');
date_default_timezone_set('PRC');
$currentYear = date('Y');
$firstDay = date('Y-01-01', strtotime($currentYear));
$lastDay = date('Y-12-31', strtotime($currentYear));
$cha=DB::table('examination_records')->where(['id_card_num'=>$id_card_num,'tijian_num'=>$tijian_num])->whereBetween('created_at', [$firstDay, $lastDay])->get();
if(count($cha)==0) return \Yz::echoError1('未找到此用户对应的体检号记录,无法存储报告');
if ($file->isValid()) {
$s=app()->make(HealthCheckupService::class);
$save=$s->SaveFile(['file'=>$file]);
if(!$save['status']) return \Yz::echoError1('文件保持失败');
$u=DB::table('examination_records')->where(['id'=>$cha[0]->id])->update(['report_file'=>Storage::url($save['data'])]);
if($u>0){
return \Yz::Return(true,'上传成功',['file'=>$save['data']]);
}else{
return \Yz::echoError1('保存文件失败');
}
}else{
return \Yz::echoError1('获取文件失败');
}
}
//根据身份证号码查询体检记录列表
public function GetPersonCheckUpList(){
$id_card_num=request('id_card_num');
$s=app()->make(HealthCheckupService::class);
return $s->GetPersonCheckUpList(['id_card_num'=>$id_card_num]);
}
//根据体检号查询体检详情
public function GetPersonCheckUpDetail(){
$tijian_num=request('tijian_num');
$s=app()->make(HealthCheckupService::class);
return $s->GetPersonCheckUpDetail(['tijian_num'=>$tijian_num]);
}
//admin后台获取体检记录列表
public function GetCheckUpList(Request $request){
$userid = $request->get('userid');//中间件产生的参数
$group = $request->get('role');//中间件产生的参数
$page =request('page');
$pageSize =request('pageSize');
$searchInfo=request('searchInfo');
$s=app()->make(HealthCheckupService::class);
return $s->GetCheckUpList(['userid'=>$userid,'group'=>$group,'page'=>$page,'pageSize'=>$pageSize,'searchInfo'=>$searchInfo]);
}
}