创建服务包订单增加健康包订单关联商品、新增了获取患者服务包订单服务权益详情(待完成)

This commit is contained in:
wucongxing8150 2024-04-12 18:32:57 +08:00
parent 24c248f8cd
commit f8cabb455a
6 changed files with 173 additions and 2 deletions

View File

@ -356,4 +356,15 @@ class PatientOrderController extends AbstractController
$data = $PatientOrderService->getPatientServiceOrderInfo();
return $this->response->json($data);
}
/**
* 获取患者服务包订单服务权益详情
* @return ResponseInterface
*/
public function getPatientServiceOrderDetailInfo(): ResponseInterface
{
$PatientOrderService = new PatientOrderService();
$data = $PatientOrderService->getPatientServiceOrderDetailInfo();
return $this->response->json($data);
}
}

View File

@ -17,8 +17,8 @@ use Hyperf\Snowflake\Concern\Snowflake;
* @property string $effective_days 服务有效天数
* @property string $service_rate 服务费率。100为满值表示1正常费率。
* @property string $discount_product_total_amount 折扣商品总价格
* @property \Carbon\Carbon $created_at 创建时间
* @property \Carbon\Carbon $updated_at 修改时间
* @property Carbon $created_at 创建时间
* @property Carbon $updated_at 修改时间
*/
class HealthPackage extends Model
{

View File

@ -0,0 +1,81 @@
<?php
declare(strict_types=1);
namespace App\Model;
use Carbon\Carbon;
use Hyperf\Database\Model\Collection;
use Hyperf\Snowflake\Concern\Snowflake;
/**
* @property int $service_product_id 主键id
* @property int $order_service_id 订单-服务包id
* @property int $product_id 商品id
* @property string $product_name 商品名称
* @property int $quantity 商品数量
* @property string $discount_product_price 折扣商品价格
* @property Carbon $created_at 创建时间
* @property Carbon $updated_at 修改时间
*/
class OrderServicePackageProduct extends Model
{
use Snowflake;
/**
* The table associated with the model.
*/
protected ?string $table = 'order_service_package_product';
/**
* The attributes that are mass assignable.
*/
protected array $fillable = ['service_product_id', 'order_service_id', 'product_id', 'product_name', 'quantity', 'discount_product_price', 'created_at', 'updated_at'];
protected string $primaryKey = "service_product_id";
/**
* 获取信息-单条
* @param array $params
* @param array $fields
* @return object|null
*/
public static function getOne(array $params, array $fields = ['*']): object|null
{
return self::where($params)->first($fields);
}
/**
* 多条
* @param array $params
* @param array $fields
* @return Collection|array
*/
public static function getList(array $params, array $fields = ['*']): Collection|array
{
return self::where($params)->get($fields);
}
/**
* 新增
* @param array $data
* @return OrderServicePackageProduct|\Hyperf\Database\Model\Model
*/
public static function addOrderServicePackageProduct(array $data): \Hyperf\Database\Model\Model|OrderServicePackageProduct
{
return self::create($data);
}
/**
* 修改
* @param array $params
* @param array $data
* @return int
*/
public static function edit(array $params = [], array $data = []): int
{
return self::where($params)->update($data);
}
}

View File

@ -13,6 +13,7 @@ use App\Model\DoctorConfigFollowPackageItem;
use App\Model\DoctorConfigHealthPackage;
use App\Model\DoctorInquiryConfig;
use App\Model\HealthPackage;
use App\Model\HealthPackageProduct;
use App\Model\InquiryCaseProduct;
use App\Model\Order;
use App\Model\OrderCoupon;
@ -23,6 +24,7 @@ use App\Model\OrderServicePackage;
use App\Model\OrderServicePackageCase;
use App\Model\OrderServicePackageDetail;
use App\Model\OrderServicePackageInquiry;
use App\Model\OrderServicePackageProduct;
use App\Model\PatientFamily;
use App\Model\PatientFamilyHealth;
use App\Model\PatientFamilyPersonal;
@ -531,6 +533,41 @@ class OrderServicePackageService extends BaseService
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
}
// 增加健康包订单关联商品
if ($request_params['service_type'] == 1){
// 获取医生健康包配置
$params = array();
$health_package = HealthPackage::getOne($params);
if (empty($health_package)){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
}
// 获取医生健康包关联商品
$params = array();
$params['package_id'] = $health_package['package_id'];
$health_package_products = HealthPackageProduct::getList($params);
if (empty($health_package_product)){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
}
// 增加健康包订单关联商品
foreach ($health_package_products as $health_package_product){
$data = array();
$data['order_service_id'] = $order_service_package['order_service_id'];
$data['product_id'] = $health_package_product['product_id'];
$data['product_name'] = $health_package_product['product_name'];
$data['quantity'] = $health_package_product['quantity'];
$data['discount_product_price'] = $health_package_product['discount_product_price'];
$order_service_package_product = OrderServicePackageProduct::addOrderServicePackageProduct($data);
if (empty($order_service_package_product)){
Db::rollBack();
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
}
}
}
// 增加患者服务包病例
$data = array();
$data['user_id'] = $user_info['user_id'];
@ -616,6 +653,8 @@ class OrderServicePackageService extends BaseService
/**
* 创建服务包问诊订单
* @return array
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function addServiceInquiryOrder(): array
{

View File

@ -31,6 +31,7 @@ use App\Model\OrderProductItem;
use App\Model\OrderProductLogistic;
use App\Model\OrderServicePackage;
use App\Model\OrderServicePackageCase;
use App\Model\OrderServicePackageDetail;
use App\Model\OrderServicePackageRefund;
use App\Model\PatientFamily;
use App\Model\PatientFamilyHealth;
@ -2690,6 +2691,42 @@ class PatientOrderService extends BaseService
return success($order_service_package->toArray());
}
/**
* 获取患者服务包订单服务权益详情
* @return array
*/
public function getPatientServiceOrderDetailInfo(): array
{
$user_info = $this->request->getAttribute("userInfo") ?? [];
$order_no = $this->request->route('order_no');
// 获取订单数据
$params = array();
$params['patient_id'] = $user_info['client_user_id'];
$params['order_service_no'] = $order_no;
$params['is_delete'] = 0;
$order_service_package = OrderServicePackage::getOne($params);
if (empty($order_service_package)) {
return fail(HttpEnumCode::HTTP_ERROR,"非法订单");
}
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
if (empty($order_service_package_detail)){
return fail(HttpEnumCode::HTTP_ERROR,"非法订单");
}
// 健康报
if ($order_service_package['order_service_type'] == 1){
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
}
return success($order_service_package_detail->toArray());
}
/**
* 获取患者未完成订单
* @param string $patient_id

View File

@ -558,6 +558,9 @@ Router::addGroup('/patient', function () {
// 获取患者服务包订单详情
Router::get('/{order_no}', [PatientOrderController::class, 'getPatientServiceOrderInfo']);
// 获取患者服务包订单服务权益详情
Router::get('/detail/{order_no}', [PatientOrderController::class, 'getPatientServiceOrderDetailInfo']);
});
// 获取患者订单支付数据