HasMany(OrderProductItem::class, 'order_product_id','order_product_id'); } /** * 关联订单-处方表 */ public function OrderPrescription(): HasOne { return $this->hasOne(OrderPrescription::class, 'order_prescription_id','order_prescription_id'); } /** * 关联患者家庭成员信息表-基本信息 */ public function PatientFamily(): HasOne { return $this->hasOne(PatientFamily::class, 'family_id','family_id'); } /** * 关联处方关联疾病表 */ public function OrderPrescriptionIcd(): HasMany { return $this->HasMany(OrderPrescriptionIcd::class, 'order_prescription_id','order_prescription_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 $params * @return bool */ public static function getExists(array $params): bool { return self::where($params)->exists(); } /** * 获取数量 * @param array $params * @return int */ public static function getCount(array $params): int { 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; } /** * 修改 * @param array $params * @param array $data * @return int */ public static function edit(array $params = [], array $data = []): int { return self::where($params)->update($data); } /** * 新增 * @param array $data * @return \Hyperf\Database\Model\Model|OrderProduct */ public static function addOrderProduct(array $data): \Hyperf\Database\Model\Model|OrderProduct { return self::create($data); } /** * 患者用药记录查询 * @param array $params * @param array $fields * @param int|null $page * @param int|null $per_page * @return array */ public static function getProductRecordPage(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", "OrderPrescriptionIcd:prescription_icd_id,order_prescription_id,icd_id,icd_name", "PatientFamily:family_id,card_name_mask,sex,age", ]) ->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; } }