diff --git a/app/Controller/PatientOrderController.php b/app/Controller/PatientOrderController.php index ca880f4..fad55a9 100644 --- a/app/Controller/PatientOrderController.php +++ b/app/Controller/PatientOrderController.php @@ -157,4 +157,20 @@ class PatientOrderController extends AbstractController $data = $PatientOrderService->addPatientProductOrder(); return $this->response->json($data); } + + /** + * 获取处方订单列表 + * @return ResponseInterface + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function getPatientPrescriptionOrderList(): ResponseInterface + { + $request = $this->container->get(PatientOrderRequest::class); + $request->scene('getPatientPrescriptionOrderList')->validateResolved(); + + $PatientOrderService = new PatientOrderService(); + $data = $PatientOrderService->getPatientPrescriptionOrderList(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Controller/UserController.php b/app/Controller/UserController.php index 9866280..36f9778 100644 --- a/app/Controller/UserController.php +++ b/app/Controller/UserController.php @@ -20,6 +20,8 @@ use Extend\TencentIm\Group; use Extend\TencentIm\Message; use Extend\TencentIm\MessageParams; use Extend\TencentIm\Profile; +use Extend\VerifyDun\BankCard; +use Extend\VerifyDun\IdCard; use Extend\Wechat\Wechat; use Extend\Wechat\WechatPay; use Hyperf\Amqp\Producer; @@ -220,7 +222,17 @@ class UserController extends AbstractController // $imService = new ImService(); // $imService->addRecentContactRecordCache("491925054779883520", 2, 10004, $data); - + // 银行卡三要素认证 +// $BankCard = new BankCard(); +// +// $params = array(); +// $params['bankCardNo'] = "6217000010175646317"; +// $params['name'] = "吴从兴"; +// $params['idCardNo'] = "372929199610075412"; +// $res = $BankCard->checkBankCard($params); +// if (!empty($res)) { +// return fail(HttpEnumCode::HTTP_ERROR, $res); +// } } } \ No newline at end of file diff --git a/app/Model/OrderPrescription.php b/app/Model/OrderPrescription.php index fa8dba6..ff0933b 100644 --- a/app/Model/OrderPrescription.php +++ b/app/Model/OrderPrescription.php @@ -18,7 +18,7 @@ use Hyperf\Snowflake\Concern\Snowflake; * @property int $doctor_id 医生id * @property int $patient_id 患者id * @property int $pharmacist_id 药师id - * @property int $prescription_status 处方状态(1:待审核 3:待使用 4:已失效 5:已使用) + * @property int $prescription_status 处方状态(1:待审核 2:待使用 3:已失效 4:已使用) * @property int $pharmacist_audit_status 药师审核状态(0:审核中 1:审核成功 2:审核驳回) * @property string $pharmacist_fail_reason 药师审核驳回原因 * @property int $platform_audit_status 处方平台审核状态(0:审核中 1:审核成功 2:审核驳回) @@ -52,13 +52,29 @@ class OrderPrescription extends Model protected string $primaryKey = "order_prescription_id"; /** - * 关联处方病例表 + * 关联处方疾病表 */ public function OrderPrescriptionIcd(): HasMany { return $this->HasMany(OrderPrescriptionIcd::class, 'order_prescription_id','order_prescription_id'); } + /** + * 关联处方商品表 + */ + public function OrderPrescriptionProduct(): HasMany + { + return $this->HasMany(OrderPrescriptionProduct::class, 'order_prescription_id','order_prescription_id'); + } + + /** + * 关联医生表 + */ + public function UserDoctor(): HasOne + { + return $this->hasOne(UserDoctor::class, 'doctor_id','doctor_id'); + } + /** * 获取信息-单条 * @param array $params @@ -168,4 +184,33 @@ class OrderPrescription extends Model return self::where($params)->count(); } + /** + * 分页 + * 处方疾病表 + * 处方商品表 + * @param array $params + * @param array $fields + * @param int|null $page + * @param int|null $per_page + * @return array + */ + public static function getWithPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array + { + $raw = self::with([ + "UserDoctor:doctor_id,user_name,doctor_title", + "OrderPrescriptionIcd:prescription_icd_id,order_prescription_id,icd_name", + "OrderPrescriptionProduct:prescription_product_id,order_prescription_id,product_name,product_spec" + ]) + ->where($params)->paginate($per_page, $fields, "page", $page); + + $data = array(); + $data['current_page'] = $raw->currentPage();// 当前页码 + $data['total'] = $raw->total();//数据总数 + $data['data'] = $raw->items();//数据 + $data['per_page'] = $raw->perPage();//每页个数 + $data['last_page'] = $raw->lastPage();//最后一页 + + return $data; + } + } diff --git a/app/Request/PatientOrderRequest.php b/app/Request/PatientOrderRequest.php index 1a36847..57caf96 100644 --- a/app/Request/PatientOrderRequest.php +++ b/app/Request/PatientOrderRequest.php @@ -24,6 +24,8 @@ class PatientOrderRequest extends FormRequest ], 'addPatientProductOrder' => [ // 创建药品订单 ], + 'getPatientPrescriptionOrderList' => [ // 获取处方订单列表 + ], ]; /** diff --git a/app/Request/UserDoctorRequest.php b/app/Request/UserDoctorRequest.php index 7c59d69..dd8d8c3 100644 --- a/app/Request/UserDoctorRequest.php +++ b/app/Request/UserDoctorRequest.php @@ -41,7 +41,7 @@ class UserDoctorRequest extends FormRequest 'county_id', ], 'getPrescriptionList' => [ // 获取处方列表 - 'prescription_status' // 处方审核状态(0:审核中 1:审核成功 2:审核驳回) + 'pharmacist_audit_status' // 药师审核状态(0:审核中 1:审核成功 2:审核驳回) ], 'getDoctorWords' => [ // 获取常用语列表 'words_type' @@ -98,7 +98,7 @@ class UserDoctorRequest extends FormRequest 'province_id' => 'required|required_with:city_id,county_id', 'city_id' => 'required|required_with:county_id', 'county_id' => 'required', - 'prescription_status' => 'required|integer|min:0|max:2', + 'pharmacist_audit_status' => 'required|integer|min:0|max:2', 'words_type' => 'required|integer|min:1|max:3', 'words' => 'required', 'doctor_id' => 'required', @@ -145,10 +145,10 @@ class UserDoctorRequest extends FormRequest 'city_id.required_with' => "请选择城市", 'city_id.required' => "请选择城市", 'county_id.required' => "请选择区县", - 'prescription_status.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), - 'prescription_status.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), - 'prescription_status.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), - 'prescription_status.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'pharmacist_audit_status.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'pharmacist_audit_status.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'pharmacist_audit_status.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'pharmacist_audit_status.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), 'words_type.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), 'words_type.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), 'words_type.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index 753df1b..0cced5b 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -484,9 +484,13 @@ class InquiryService extends BaseService return success(); } - public function getInquiryLowestPrice(){ + /** + * 获取问诊最低价格 + * @return array + */ + public function getInquiryLowestPrice(): array + { $user_info = $this->request->getAttribute("userInfo") ?? []; - $doctor_id = $this->request->input('doctor_id'); // 快速 $quick_inquiry_price = 0; @@ -525,7 +529,6 @@ class InquiryService extends BaseService } // 公益问诊 - $welfare_inquiry_price = 0; $params = array(); $params['inquiry_type'] = 1; $params['inquiry_mode'] = 1; diff --git a/app/Services/OrderPrescriptionService.php b/app/Services/OrderPrescriptionService.php index d3ee804..1a4e797 100644 --- a/app/Services/OrderPrescriptionService.php +++ b/app/Services/OrderPrescriptionService.php @@ -100,7 +100,7 @@ class OrderPrescriptionService extends BaseService /** * 获取患者某一状态下的处方数量 * @param string $patient_id 患者id - * @param int $prescription_status 处方状态(1:待审核 3:待使用 4:已失效 5:已使用) + * @param int $prescription_status 处方状态(1:待审核 2:待使用 3:已失效 4:已使用) * @return int */ public function getPatientPrescriptionWithStatus(string $patient_id,int $prescription_status): int diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 40bb003..b227f36 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -705,4 +705,28 @@ class PatientOrderService extends BaseService public function addPatientProductOrder(){ return success(); } + + public function getPatientPrescriptionOrderList(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + $page = $this->request->input('page',1); + $per_page = $this->request->input('per_page',10); + + // 获取处方数据 + $params = array(); + $params['patient_id'] = $user_info['client_user_id']; + $params['pharmacist_audit_status'] = 1; + $params['platform_audit_status'] = 1; + $params['is_delete'] = 0; + $order_prescription = OrderPrescription::getWithPage($params,['*'],$page,$per_page); + if (!empty($order_prescription['data'])){ + foreach ($order_prescription['data'] as &$item){ + if (!empty($item['UserDoctor'])){ + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + } + } + } + + return success($order_prescription); + } } \ No newline at end of file diff --git a/app/Services/SystemService.php b/app/Services/SystemService.php index d6ca63c..050c6f2 100644 --- a/app/Services/SystemService.php +++ b/app/Services/SystemService.php @@ -47,7 +47,6 @@ class SystemService extends BaseService return fail(); } - $time = []; foreach ($system_inquiry_time as $item){ $time[] = $item['start_time'] . '-' . $item['end_time']; diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 7da69cf..6bd570f 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -376,7 +376,7 @@ class UserDoctorService extends BaseService { $user_info = $this->request->getAttribute("userInfo") ?? []; - $prescription_status = $this->request->input('prescription_status'); + $pharmacist_audit_status = $this->request->input('pharmacist_audit_status'); $page = $this->request->input('page', 1); $per_page = $this->request->input('per_page', 10); @@ -410,7 +410,7 @@ class UserDoctorService extends BaseService // 获取处方数据 $params = array(); $params['doctor_id'] = $user_info['client_user_id']; - $params['pharmacist_audit_status'] = $prescription_status; + $params['pharmacist_audit_status'] = $pharmacist_audit_status; $params['is_delete'] = 0; $order_prescriptions = OrderPrescription::getWithIcdPage($params,$page,$per_page); if (empty($order_prescriptions)) { @@ -939,7 +939,7 @@ class UserDoctorService extends BaseService } // 检测处方状态 - if ($order_prescription['prescription_status'] == 5) { + if ($order_prescription['prescription_status'] == 4) { // 已使用 return fail(HttpEnumCode::HTTP_ERROR, "处方已使用,无法更改"); } diff --git a/config/routes.php b/config/routes.php index 3fdcbe7..f0da549 100644 --- a/config/routes.php +++ b/config/routes.php @@ -315,7 +315,7 @@ Router::addGroup('/patient', function () { // 处方订单 Router::addGroup('/prescription', function () { // 获取处方订单列表 - Router::post('/14', [PatientOrderController::class, 'imCallBack']); + Router::get('', [PatientOrderController::class, 'getPatientPrescriptionOrderList']); // 获取处方订单详情 Router::post('/8', [PatientOrderController::class, 'imCallBack']); diff --git a/extend/VerifyDun/BankCard.php b/extend/VerifyDun/BankCard.php new file mode 100644 index 0000000..4bc9cc6 --- /dev/null +++ b/extend/VerifyDun/BankCard.php @@ -0,0 +1,78 @@ +api_url . $this->version . '/bankcard/check'; + + $this->params['businessId'] = "98c43b77719e4752b15519fbce011a58"; + + $this->params = array_merge($this->params,$params); + + // 获取签名 + $this->params['signature'] = $this->gen_signature(); + + $this->options["form_params"] = $this->params; + + $result = $this->httpRuest->postRequest($api_url,$this->options); + + if (empty($result)){ + return "银行卡认证失败"; + } + + if ($result['code'] != "200"){ + throw new BusinessException("银行卡认证失败"); + } + + if (empty($result['result'])){ + return "银行卡认证失败"; + } + + // 处理不通过情况 + if ($result['result']['status'] == 2){ + switch ($result['result']['reasonType']) { + case 2: + return "持卡人信息与输入信息不一致"; + break; + case 3: + return "查无此银行卡"; + break; + case 4: + return "查无此身份证"; + break; + case 5: + return "手机号码格式不正确"; + break; + case 6: + return "银行卡号不正确"; + break; + case 7: + return "其他出错,请联系客服"; + break; + + default: + return "银行卡认证失败"; + break; + } + } + + // 处理status为其他情况 + if ($result['result']['status'] != 1){ + return "身份证认证失败"; + } + + return ""; + } catch (\Exception $e) { + throw new BusinessException($e->getMessage()); + } + } +} \ No newline at end of file diff --git a/hospital-deploy.sh b/hospital-deploy.sh index 67be045..38dc3a7 100644 --- a/hospital-deploy.sh +++ b/hospital-deploy.sh @@ -12,7 +12,7 @@ DOMAIN_NAME_PROD=https://dev.hospital.applets.igandanyiyuan.com/ # [mysql] DB_DRIVER=mysql -DB_HOST=123.57.91.25 +DB_HOST=121.5.206.61 DB_PORT=3306 DB_DATABASE=internet_hospital DB_USERNAME=root @@ -22,7 +22,7 @@ DB_COLLATION=utf8mb4_unicode_ci DB_PREFIX=gdxz_ # [redis] -REDIS_HOST=123.57.91.25 +REDIS_HOST=121.5.206.61 REDIS_AUTH=Wucongxing1.. REDIS_PORT=6379 REDIS_DB=0