diff --git a/app/Model/OrderServicePackageDetail.php b/app/Model/OrderServicePackageDetail.php index 3a43bfd..eba323e 100644 --- a/app/Model/OrderServicePackageDetail.php +++ b/app/Model/OrderServicePackageDetail.php @@ -14,14 +14,15 @@ use Hyperf\Snowflake\Concern\Snowflake; * @property int $order_service_detail_id 主键id * @property int $order_service_id 服务包订单id * @property int $order_id 订单id + * @property int $package_id 健康包配置id(随访包时为空) * @property string $order_service_no 系统订单编号 * @property int $service_period 服务周期(天) * @property int $service_count 总服务次数(0表示不限次) * @property int $monthly_frequency 每月次数(0表示不限次) * @property string $single_inquiry_price 单次图文问诊价格 * @property string $service_price 总服务价格 - * @property Carbon $created_at 创建时间 - * @property Carbon $updated_at 修改时间 + * @property \Carbon\Carbon $created_at 创建时间 + * @property \Carbon\Carbon $updated_at 修改时间 */ class OrderServicePackageDetail extends Model { @@ -35,7 +36,7 @@ class OrderServicePackageDetail extends Model /** * The attributes that are mass assignable. */ - protected array $fillable = ['order_service_detail_id', 'order_service_id', 'order_id', 'order_service_no', 'service_period', 'service_count', 'monthly_frequency', 'single_inquiry_price', 'service_price', 'created_at', 'updated_at']; + protected array $fillable = ['order_service_detail_id', 'order_service_id', 'order_id', 'package_id', 'order_service_no', 'service_period', 'service_count', 'monthly_frequency', 'single_inquiry_price', 'service_price', 'created_at', 'updated_at']; protected string $primaryKey = "order_service_detail_id"; diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index a493e09..af63096 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -503,6 +503,9 @@ class OrderServicePackageService extends BaseService $data = array(); $data['order_service_id'] = $order_service_package['order_service_id']; $data['order_id'] = $order_service_package['order_id']; + if ($order_service_package['order_service_type'] == 1){ + $data['package_id'] = 1; + } $data['order_service_no'] = $order_service_package['order_service_no']; $data['service_period'] = $service_period; // 服务周期(天) $data['service_count'] = $service_count; // 总服务次数(0表示不限次) @@ -1236,6 +1239,23 @@ class OrderServicePackageService extends BaseService return $result; } + /** + * 获取服务包内所有药品 + * @param string|int $package_id + * @return array + */ + public function getOrderServiceProduct(string|int $package_id): array + { + $params = array(); + $params['package_id'] = $$package_id; + $health_package_products = HealthPackage::getList($params); + if (empty($health_package_products)){ + return []; + } + + return $health_package_products->toArray(); + } + /** * 获取服务包内某一药品的总数量 * @param string|int $product_id diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 4b5f2f8..c6248ae 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -3101,16 +3101,13 @@ class PatientOrderService extends BaseService $result['order_service_package']['current_month_finish_date'] = $current_month_date['current_month_finish_date']; // 获取服务包当月已问诊次数 - $result['order_service_package']['month_inquiry_count'] = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$user_info['client_user_id'], $order_service_package['doctor_id']); + if (!empty($order_service_package['pay_time'])){ + $OrderServicePackageService = new OrderServicePackageService(); + $result['order_service_package_detail']['month_inquiry_count'] = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + } } } - // 获取服务包当月已问诊次数 - if (!empty($order_service_package['pay_time'])){ - $OrderServicePackageService = new OrderServicePackageService(); - $result['order_service_package_detail']['month_inquiry_count'] = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - // 健康包数据 if ($order_service_package['order_service_type'] == 1){ // 健康包商品数据 @@ -3146,13 +3143,15 @@ class PatientOrderService extends BaseService $result['order_product'] = $order_products->toArray(); } - if (!empty($order_service_package_products)) { - foreach ($order_service_package_products as $order_service_package_product) { + // 获取服务包内所有药品 + $health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']); + if (!empty($health_package_products)) { + foreach ($health_package_products as $health_package_product) { // 获取服务包内某一药品的总数量 - $total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_product['product_id']); + $total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($health_package_product['product_id']); // 获取服务包内某一药品的剩余数量 - $result['order_service_package_detail']['remaining_quantity'] = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$order_service_package_product['product_id'],$total_quantity); + $result['order_service_package_detail']['remaining_quantity'] = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$total_quantity); } } }