我的账户数据修改-获取我的账户数据

This commit is contained in:
2024-04-22 14:30:46 +08:00
parent 155ce8d7aa
commit 5d79f4795b
9 changed files with 426 additions and 205 deletions
+36 -93
View File
@@ -107,7 +107,7 @@ class InquiryService extends BaseService
// 检测是否存在同类型未完成的问诊订单
$PatientOrderService = new PatientOrderService();
$order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry($request_params['inquiry_type'],$request_params['inquiry_mode'],$user_info['client_user_id']);
$order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry($request_params['inquiry_type'], $request_params['inquiry_mode'], $user_info['client_user_id']);
if (!empty($order_inquiry_id)) {
$result['status'] = 2;
$result['message'] = "当前患者存在进行中的问诊订单";
@@ -170,7 +170,7 @@ class InquiryService extends BaseService
}
// 问诊购药
if ($request_params['inquiry_type'] == 4){
if ($request_params['inquiry_type'] == 4) {
// 检测当前是否符合系统问诊时间
$inquiryService = new InquiryService();
$is_system_time_pass = $inquiryService->checkSystemInquiryTime($request_params['inquiry_type']);
@@ -485,7 +485,7 @@ class InquiryService extends BaseService
// 增加至未支付取消订单延迟队列
$time = 60 * 30;
if (\Hyperf\Config\config('app_env') == "dev"){
if (\Hyperf\Config\config('app_env') == "dev") {
$time = 60 * 5;
}
@@ -506,7 +506,7 @@ class InquiryService extends BaseService
// 专家问诊-公益问诊
if (!empty($request_params['doctor_id']) && ($request_params['inquiry_type'] == 1 || $request_params['inquiry_type'] == 3)) {
$time = 60 * 60 * 24;
if (\Hyperf\Config\config('app_env') == "dev"){
if (\Hyperf\Config\config('app_env') == "dev") {
$time = 60 * 10;
}
@@ -974,19 +974,19 @@ class InquiryService extends BaseService
// 处理问诊回合数及时长-兼容旧数据
if (empty($order_inquiry['times_number']) || empty($order_inquiry['duration'])) {
// 疑难问诊特殊处理
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 6 ){
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 6) {
$params = array();
$params['doctor_id'] = $order_inquiry['doctor_id'];
$params['inquiry_type'] = $order_inquiry['inquiry_type'];
$params['inquiry_mode'] = $order_inquiry['inquiry_mode'];
$doctor_inquiry_config_service = DoctorInquiryConfigService::getOne($params);
if (empty($doctor_inquiry_config_service)){
if (empty($doctor_inquiry_config_service)) {
return fail();
}
$order_inquiry['times_number'] = $doctor_inquiry_config_service['service_rounds']; // 服务回合数
$order_inquiry['duration'] = $doctor_inquiry_config_service['service_period'] * 24 * 60; // 服务周期
}else{
} else {
$params = array();
$params['inquiry_type'] = $order_inquiry['inquiry_type'];
$params['inquiry_mode'] = $order_inquiry['inquiry_mode'];
@@ -1187,7 +1187,7 @@ class InquiryService extends BaseService
$data['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$time = 60 * 60 * 24 * 3;
if (\Hyperf\Config\config("app_env") == "dev"){
if (\Hyperf\Config\config("app_env") == "dev") {
$time = 60;
}
@@ -1299,7 +1299,7 @@ class InquiryService extends BaseService
// 检测是否存在同类型未完成的问诊订单
$PatientOrderService = new PatientOrderService();
$result = $PatientOrderService->getNotFinishedOrderInquiry($order_inquiry['inquiry_type'],$order_inquiry['inquiry_mode'], $order_inquiry['patient_id']);
$result = $PatientOrderService->getNotFinishedOrderInquiry($order_inquiry['inquiry_type'], $order_inquiry['inquiry_mode'], $order_inquiry['patient_id']);
if (!empty($result)) {
return fail(HttpEnumCode::HTTP_ERROR, "当前患者存在进行中的问诊订单");
}
@@ -1506,7 +1506,7 @@ class InquiryService extends BaseService
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$order_service_package_inquiry = OrderServicePackageInquiry::getOne($params);
if (empty($order_service_package_inquiry)){
if (empty($order_service_package_inquiry)) {
return success();
}
@@ -1541,26 +1541,26 @@ class InquiryService extends BaseService
if ($order_service_package_detail['monthly_frequency'] != 0 && !empty($order_service_package['start_time'])) {
// 获取服务包当月已问诊次数
$OrderServicePackageService = new OrderServicePackageService();
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['start_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']);
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['start_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']);
}
// 处理剩余服务天数
$finish_day = null;
if (!empty($order_service_package['finish_time'])){
if (!empty($order_service_package['finish_time'])) {
$finish_day = ceil((strtotime($order_service_package['finish_time']) - time()) / 60 / 60 / 24);
}
// 获取剩余药品数量
$remaining_quantity = 0;
if ($order_service_package['order_service_type'] == 1){
if ($order_service_package['order_service_type'] == 1) {
// 健康包商品数据
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
$order_service_package_products = OrderServicePackageProduct::getList($params);
if (!empty($order_service_package_products)){
foreach ($order_service_package_products as $order_service_package_product){
if (!empty($order_service_package_products)) {
foreach ($order_service_package_products as $order_service_package_product) {
$remaining_quantity += $order_service_package_product['quantity'] - $order_service_package_product['used_quantity'];
if ($remaining_quantity < 0){
if ($remaining_quantity < 0) {
$remaining_quantity = 0;
}
}
@@ -1629,9 +1629,10 @@ class InquiryService extends BaseService
* 状态:已接诊
* @param string $doctor_id
* @param string $date
* @param string|int $is_platform_deep_cooperation 是否坐班医生
* @return float
*/
public function getDoctorDayAmountTotal(string $doctor_id, string $date): float
public function getDoctorDayAmountTotal(string $doctor_id, string $date, string|int $is_platform_deep_cooperation): float
{
// 获取当天开始时间
$start_date = date('Y-m-d 00:00:00', strtotime($date));
@@ -1650,41 +1651,12 @@ class InquiryService extends BaseService
$inquiry_status_params = [4, 5]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
$amount_total_sum = OrderInquiry::getDoctorAmountTotal($params, $reception_time, $inquiry_status_params);
$inquiry_type_not_params = [];
if ($is_platform_deep_cooperation) {
$inquiry_type_not_params = [2, 4];
}
return $amount_total_sum ?: 0;
}
/**
* 获取医生当日接诊的订单金额-坐班医生
* 状态:已接诊
* 排除快速-购药
* @param string $doctor_id
* @param string $date
* @return float
*/
public function getCooperationDoctorDayAmountTotal(string $doctor_id, string $date): float
{
// 获取当天开始时间
$start_date = date('Y-m-d 00:00:00', strtotime($date));
// 获取当天结束时间
$end_date = date('Y-m-d 23:59:59', strtotime($date));
// 获取医生当日接诊订单金额
$params = array();
$params['doctor_id'] = $doctor_id;
$params['inquiry_refund_status'] = 0; // 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭)
$params['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
$params['is_withdrawal'] = 0; // 是否提现(0:否 1:是 2:提现中)
$reception_time = [$start_date, $end_date];
$inquiry_status_params = [4, 5]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
$inquiry_type_not_params = [2, 4];
$amount_total_sum = OrderInquiry::getCooperationDoctorAmountTotal($params, $reception_time, $inquiry_status_params, $inquiry_type_not_params);
$amount_total_sum = OrderInquiry::getDoctorAmountTotal($params, $reception_time, $inquiry_status_params, $inquiry_type_not_params);
return $amount_total_sum ?: 0;
}
@@ -1694,9 +1666,10 @@ class InquiryService extends BaseService
* 状态:已完成
* @param string $doctor_id
* @param string $date
* @param string|int $is_platform_deep_cooperation 是否坐班医生
* @return float
*/
public function getDoctorDayCompletedAmountTotal(string $doctor_id, string $date): float
public function getDoctorDayCompletedAmountTotal(string $doctor_id, string $date,string|int $is_platform_deep_cooperation): float
{
// 获取当天开始时间
$start_date = date('Y-m-d 00:00:00', strtotime($date));
@@ -1715,41 +1688,11 @@ class InquiryService extends BaseService
$inquiry_status_params = [5]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
$amount_total_sum = OrderInquiry::getDoctorAmountTotal($params, $reception_time, $inquiry_status_params);
if ($is_platform_deep_cooperation) {
$inquiry_type_not_params = [2, 4];
}
return $amount_total_sum ?: 0;
}
/**
* 获取医生当日已完成未结束的订单金额-坐班医生
* 状态:已完成
* 排除快速-购药
* @param string $doctor_id
* @param string $date
* @return float
*/
public function getCooperationDoctorCompletedAmountTotal(string $doctor_id, string $date): float
{
// 获取当天开始时间
$start_date = date('Y-m-d 00:00:00', strtotime($date));
// 获取当天结束时间
$end_date = date('Y-m-d 23:59:59', strtotime($date));
// 获取医生当日接诊订单金额
$params = array();
$params['doctor_id'] = $doctor_id;
$params['inquiry_refund_status'] = 0; // 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭)
$params['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
$params['is_withdrawal'] = 0; // 是否提现(0:否 1:是 2:提现中)
$reception_time = [$start_date, $end_date];
$inquiry_status_params = [5]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
$inquiry_type_not_params = [2, 4];
$amount_total_sum = OrderInquiry::getCooperationDoctorAmountTotal($params, $reception_time, $inquiry_status_params, $inquiry_type_not_params);
$amount_total_sum = OrderInquiry::getDoctorAmountTotal($params, $reception_time, $inquiry_status_params,$inquiry_type_not_params);
return $amount_total_sum ?: 0;
}
@@ -2046,7 +1989,7 @@ class InquiryService extends BaseService
}
}
}
}catch (\Throwable $e){
} catch (\Throwable $e) {
throw new BusinessException($e->getMessage());
}
@@ -2247,12 +2190,12 @@ class InquiryService extends BaseService
* @param string $end_date
* @return array
*/
public function getPatientServiceInquiry(string|int $order_service_type,string $patient_id, string $doctor_id,string $start_date,string $end_date): array
public function getPatientServiceInquiry(string|int $order_service_type, string $patient_id, string $doctor_id, string $start_date, string $end_date): array
{
if ($order_service_type == 1){
if ($order_service_type == 1) {
$inquiry_type = 1;
$inquiry_mode = 8;
}else{
} else {
$inquiry_type = 1;
$inquiry_mode = 9;
}
@@ -2268,10 +2211,10 @@ class InquiryService extends BaseService
$created_at = [$start_date, $end_date];
$inquiry_status_params = [1,2,3,4,5,6]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
$inquiry_status_params = [1, 2, 3, 4, 5, 6]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
$result = OrderInquiry::getInquiryWithCreateTime($params,$created_at,$inquiry_status_params);
if (empty($result)){
$result = OrderInquiry::getInquiryWithCreateTime($params, $created_at, $inquiry_status_params);
if (empty($result)) {
return [];
}