hasOne(OrderServicePackageCase::class, 'order_service_id', 'order_service_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 OrderServicePackage|\Hyperf\Database\Model\Model */ public static function addOrderServicePackage(array $data): \Hyperf\Database\Model\Model|OrderServicePackage { 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); } /** * 获取某一状态下的订单-多条 * @param array $params * @param array $order_service_status * @param array $fields * @return Collection|array */ public static function getStatusList(array $params = [],array $order_service_status = [], array $fields = ['*']): Collection|array { return self::where($params)->whereIn('order_service_status',$order_service_status)->get($fields); } /** * 获取某一状态下的订单-单条 * @param array $params * @param array $order_service_status * @param array $fields * @return object|null */ public static function getStatusOne(array $params = [],array $order_service_status = [], array $fields = ['*']): object|null { return self::where($params)->whereIn('order_service_status',$order_service_status)->first($fields); } /** * 获取服务包订单-分页 * @param array $params * @param array $order_service_status_params * @param array $fields * @param int|null $page * @param int|null $per_page * @return int|mixed|string */ public static function getPatientOrderServicePage(array $params, array $order_service_status_params, array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed { $raw = self::with([ 'OrderServicePackageCase:order_service_case_id,order_service_id,disease_desc', ]) ->where($params) ->when($order_service_status_params, function ($query, $order_service_status_params) { $query->whereIn('order_service_status', $order_service_status_params); }) ->orderBy('created_at', 'desc') ->paginate($per_page, $fields, "page", $page); $data = array(); $data['current_page'] = $raw->currentPage();// 当前页码 $data['total'] = $raw->total();//数据总数 $data['data'] = $raw->items();//数据 $data['per_page'] = $raw->perPage();//每页个数 $data['last_page'] = $raw->lastPage();//最后一页 return $data; } /** * 获取某一时间段服务包订单-结束时间 * @param array $params * @param array $finish_time_params 结束时间区间 * @return Collection|array */ public static function getInquiryWithFinishTime(array $params, array $finish_time_params): Collection|array { return self::where($params) ->whereBetween('finish_time', $finish_time_params) ->orderBy('finish_time') ->get(); } /** * 获取医生当日的服务包订单 * @param array $params * @param array $order_service_status_params * @param array $start_time_params 开始时间区间 * @return Collection|array */ public static function getDoctorDayOrderServiceWithStartTime(array $params, array $order_service_status_params,array $start_time_params): Collection|array { return self::where($params) ->whereIn('order_service_status',$order_service_status_params) ->whereIn('refund_status',[0,4,5]) ->whereBetween('start_time', $start_time_params) ->orderBy('start_time') ->get(); } /** * 获取医生当日未结束的服务包订单 * @param array $params * @param array $order_service_status_params * @param string $finish_time_params 当前时间 * @return Collection|array */ public static function getDoctorDayNoFinishOrderService(array $params, array $order_service_status_params,string $finish_time_params): Collection|array { return self::where($params) ->whereIn('order_service_status',$order_service_status_params) ->whereIn('refund_status',[0,4,5]) ->where('finish_time','>', $finish_time_params) ->orderBy('start_time') ->get(); } }