From a2b9199ee56a1b46109e442ac4d22c149d7e364a Mon Sep 17 00:00:00 2001 From: yanzai Date: Fri, 19 Jul 2024 16:03:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=93=E6=A3=80=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=20=E6=80=A7=E5=88=AB=E3=80=81=E5=B9=B4=E9=BE=84=E3=80=81?= =?UTF-8?q?=E7=94=9F=E6=97=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/YeWu/HealthCheckupController.php | 8 ++++- .../Controllers/API/mH5/PersonController.php | 8 +++++ Laravel/app/Lib/Tools.php | 36 +++++++++---------- .../Admin/YeWu/HealthCheckupService.php | 5 +++ mH5/src/views/AppLogin.vue | 4 +-- mH5/src/views/ShowReport.vue | 6 +++- 6 files changed, 44 insertions(+), 23 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php index 515da91..52b9b0f 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php @@ -82,6 +82,7 @@ class HealthCheckupController extends Controller //对外接口,创建体检记录 姓名、电话、身份证、体检机构编码、体检号、pdfs public function CreateCheckupPdf() { + date_default_timezone_set('PRC'); $id_card_num=request('id_card_num'); $name=request('name'); $tel=request('tel'); @@ -99,7 +100,9 @@ class HealthCheckupController extends Controller //检查体检流水号是否存在,存在禁止再次插入。 $check_cunzai=DB::table('examination_records')->where('tijian_num',$tijian_num)->get(); if(count($check_cunzai)>0) return \Yz::echoError1('此体检号已经存在,禁止创建'); - + $sex=\App\Lib\Tools::getGenderFromIDCard($id_card_num); + $age=\App\Lib\Tools::calculateAgeFromID($id_card_num,date('Y-m-d H:i:s')); + $birthday=\App\Lib\Tools::getBirthdayFromIDCard($id_card_num); //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($id_card_num); if($HSM_sfz['status']!=true){ @@ -122,7 +125,10 @@ class HealthCheckupController extends Controller $i=DB::table('examination_records')->insertGetId([ "name"=>$name, + "age"=>$age, + "birthday"=>$birthday, "tel"=>$tel, + "sex"=>$sex, "id_card_num"=>$id_card_num, "type"=>$type, "institution_id"=>$org_id->id, diff --git a/Laravel/app/Http/Controllers/API/mH5/PersonController.php b/Laravel/app/Http/Controllers/API/mH5/PersonController.php index ffb18e8..6a6752b 100644 --- a/Laravel/app/Http/Controllers/API/mH5/PersonController.php +++ b/Laravel/app/Http/Controllers/API/mH5/PersonController.php @@ -54,6 +54,14 @@ class PersonController extends Controller } $info->id_card_num=$HSM_sfz['data']; } + if(strlen($info->tel)>20){ + //HSM解密 + $HSM_tel =\App\Lib\HSM::HsmDecrypt($info->tel); + if($HSM_tel['status']!=true){ + return \Yz::echoError1('调用HSM解密失败'); + } + $info->tel=$HSM_tel['data']; + } return \Yz::Return(true,'',['info'=>$info]); }else{ diff --git a/Laravel/app/Lib/Tools.php b/Laravel/app/Lib/Tools.php index 92e7d40..1efe01b 100644 --- a/Laravel/app/Lib/Tools.php +++ b/Laravel/app/Lib/Tools.php @@ -5,25 +5,6 @@ use DateTime; class Tools{ //根据当前日期和身份证获取年龄 public static function calculateAgeFromID($idNumber, $targetDate) { -// // 提取出生年月日 -// $birthYear = substr($idNumber, 6, 4); -// $birthMonth = substr($idNumber, 10, 2); -// $birthDay = substr($idNumber, 12, 2); -// -// // 创建出生日期和目标日期的 DateTime 对象 -// $birthdate = new DateTime("$birthYear-$birthMonth-$birthDay"); -// $target = new DateTime($targetDate); -// -// // 计算年龄 -// $interval = $birthdate->diff($target); -// $age = $interval->y; -// -// // 如果生日还没到,减一岁 -// if ($target->format('m-d') < $birthdate->format('m-d')) { -// $age--; -// } -// -// return $age; // 提取出生年月日 $birthYear = substr($idNumber, 6, 4); $birthMonth = substr($idNumber, 10, 2); @@ -64,4 +45,21 @@ class Tools{ // 格式化并返回日期字符串 return date('Y-m-d', strtotime($birthday)); } + //根据身份证判断性别 + public static function getGenderFromIDCard($idCard) { + // 检查身份证号是否合法(长度应该是18) + if (strlen($idCard) != 18) { + return null; + } + + // 获取身份证号的第17位 + $genderBit = intval($idCard[16]); + + // 判断性别 + if ($genderBit % 2 == 0) { + return 0; + } else { + return 1; + } + } } diff --git a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php index 3b1179e..b7c8c8c 100644 --- a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php +++ b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php @@ -15,6 +15,9 @@ class HealthCheckupService $firstDay = date('Y-01-01', strtotime($currentYear)); $lastDay = date('Y-12-31', strtotime($currentYear)); + $age=\App\Lib\Tools::calculateAgeFromID($CheckupInfo['id_card_num'],date('Y-m-d H:i:s')); + $birthday=\App\Lib\Tools::getBirthdayFromIDCard($CheckupInfo['id_card_num']); + //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($CheckupInfo['id_card_num']); if($HSM_sfz['status']!=true){ @@ -81,6 +84,8 @@ class HealthCheckupService $u2=DB::table('examination_records')->insertGetId([ "name"=>$CheckupInfo['name'], "sex"=>$CheckupInfo['sex'], + "age"=>$age, + "birthday"=>$birthday, "tel"=>$CheckupInfo['tel'], "head_img"=>$img_url, "id_card_num"=>$CheckupInfo['id_card_num'], diff --git a/mH5/src/views/AppLogin.vue b/mH5/src/views/AppLogin.vue index c0cb47a..38c3c69 100644 --- a/mH5/src/views/AppLogin.vue +++ b/mH5/src/views/AppLogin.vue @@ -238,8 +238,8 @@ }) //测试 跳过大兴app验证 const tiaoGuoAppYanzheng = () => { - //sessionStorage.setItem('sfz', "130302199910001112"); - sessionStorage.setItem('sfz', "110224195909090061"); + sessionStorage.setItem('sfz', "130302199910011112"); + //sessionStorage.setItem('sfz', "110224195909090061"); sessionStorage.setItem('name', '测试'); sessionStorage.setItem('tel', "13333356789"); sessionStorage.setItem('sex', 1); diff --git a/mH5/src/views/ShowReport.vue b/mH5/src/views/ShowReport.vue index 7306a10..0f45001 100644 --- a/mH5/src/views/ShowReport.vue +++ b/mH5/src/views/ShowReport.vue @@ -8,10 +8,14 @@ {{reportinfo.name}} + 姓名: + {{reportinfo.tel}} + + 身份证: {{reportinfo.id_card_num}}