新增获取药品订单列表接口

This commit is contained in:
2023-03-11 14:42:01 +08:00
parent e5845adf01
commit ef2289b1f7
9 changed files with 728 additions and 440 deletions
+40 -2
View File
@@ -7,6 +7,8 @@ namespace App\Model;
use Hyperf\Database\Model\Collection;
use Hyperf\Database\Model\Relations\HasMany;
use Hyperf\Database\Model\Relations\HasOne;
use Hyperf\Snowflake\Concern\Snowflake;
/**
@@ -15,11 +17,13 @@ use Hyperf\Snowflake\Concern\Snowflake;
* @property int $order_prescription_id 订单-处方id
* @property int $doctor_id 医生id
* @property int $patient_id 患者id
* @property int $family_id 家庭成员id(就诊用户)
* @property string $order_product_no 订单编号
* @property string $escrow_trade_no 第三方支付流水号
* @property int $order_product_status 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已完成 6:已取消)
* @property int $order_product_status 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已取消)
* @property int $pay_channel 支付渠道(1:小程序支付 2:微信扫码支付)
* @property int $pay_status 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
* @property int $is_delete 删除状态(0:否 1:是)
* @property int $cancel_reason 订单取消原因(1:主动取消 2:复核失败/库存不足 3:支付超时)
* @property string $amount_total 订单金额
* @property string $payment_amount_total 实际付款金额
@@ -56,10 +60,18 @@ class OrderProduct extends Model
/**
* The attributes that are mass assignable.
*/
protected array $fillable = ['order_product_id', 'order_inquiry_id', 'order_prescription_id', 'doctor_id', 'patient_id', 'order_product_no', 'escrow_trade_no', 'order_product_status', 'pay_channel', 'pay_status', 'cancel_reason', 'amount_total', 'payment_amount_total', 'logistics_fee', 'logistics_no', 'pay_time', 'remarks', 'refund_status', 'cancel_remarks', 'province_id', 'province', 'city_id', 'city', 'county_id', 'county', 'address', 'address_mask', 'consignee_name', 'consignee_name_mask', 'consignee_tel', 'consignee_tel_mask', 'created_at', 'updated_at'];
protected array $fillable = ['order_product_id', 'order_inquiry_id', 'order_prescription_id', 'doctor_id', 'patient_id', 'family_id', 'order_product_no', 'escrow_trade_no', 'order_product_status', 'pay_channel', 'pay_status', 'is_delete', 'cancel_reason', 'amount_total', 'payment_amount_total', 'logistics_fee', 'logistics_no', 'pay_time', 'remarks', 'refund_status', 'cancel_remarks', 'province_id', 'province', 'city_id', 'city', 'county_id', 'county', 'address', 'address_mask', 'consignee_name', 'consignee_name_mask', 'consignee_tel', 'consignee_tel_mask', 'created_at', 'updated_at'];
protected string $primaryKey = "order_product_id";
/**
* 关联订单商品item表
*/
public function OrderProductItem(): HasMany
{
return $this->HasMany(OrderProductItem::class, 'order_product_id','order_product_id');
}
/**
* 获取信息-单条
* @param array $params
@@ -101,4 +113,30 @@ class OrderProduct 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 getPatientOrderProductPage(array $params,array $fields = ["*"], int $page = null, ?int $per_page = 10): array
{
$result = self::with([
"OrderProductItem:product_item_id,order_product_id,product_id,product_name,amount,manufacturer,product_cover_img,product_spec",
])
->where($params)
->paginate($per_page, $fields, "page", $page);
$data = array();
$data['current_page'] = $result->currentPage();// 当前页码
$data['total'] = $result->total();// 数据总数
$data['data'] = $result->items();// 数据
$data['per_page'] = $result->perPage();// 每页个数
$data['last_page'] = $result->lastPage();// 最后一页
return $data;
}
}