'integer', 'user_id' => 'integer', 'patient_id' => 'integer', 'doctor_id' => 'integer', 'family_id' => 'integer', 'inquiry_type' => 'integer', 'inquiry_mode' => 'integer', 'inquiry_status' => 'integer', 'is_delete' => 'integer', 'inquiry_refund_status' => 'integer', 'inquiry_pay_channel' => 'integer', 'inquiry_pay_status' => 'integer', 'inquiry_no' => 'integer', 'settlement_status' => 'integer', 'cancel_reason' => 'integer', 'patient_sex' => 'integer', 'patient_age' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime']; protected string $primaryKey = "order_inquiry_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 $data 新增数据 * @return \Hyperf\Database\Model\Model|OrderInquiry */ public static function addOrderInquiry(array $data): \Hyperf\Database\Model\Model|OrderInquiry { return self::create($data); } /** * 获取信息-多条 * @param array $params * @param array $fields * @return object|null */ public static function getList(array $params, array $fields = ['*']): object|null { return self::where($params)->get($fields); } /** * 获取数量 * @param array $params * @return int */ public static function getCount(array $params): int { return self::where($params)->count(); } /** * 获取医生接诊订单列表 * 已结束-已取消 * inquiry_status:问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) * inquiry_refund_status:问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭) * cancel_reason:取消订单原因(0:默认 1:医生未接诊 2:主动取消 3:无可分配医生 4:客服取消 5:支付超时) * @param array $params * @param array $reception_time 接诊时间区间 ['2023-01-02','2023-01-03'] * @param array $fields * @param int|null $page * @param int|null $per_page * @return int|mixed|string */ public static function getDoctorAccountInfoPage(array $params, array $reception_time,array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed { $raw = self::where($params) ->whereIn('inquiry_status',[6,7]) ->whereIn('inquiry_refund_status',[0,3]) ->whereIn('cancel_reason',[0,4]) ->whereBetween('finish_time',$reception_time) ->orderBy('finish_time') ->orderBy('cancel_time') ->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 $reception_time 接诊时间区间 * @param array $inquiry_status_params inquiry_status字段搜索条件 * @return int|mixed|string */ public static function getOrderInquiryAmountTotalSum(array $params, array $reception_time,array $inquiry_status_params): mixed { return self::where($params) ->whereIn('inquiry_status',$inquiry_status_params) ->whereBetween('reception_time',$reception_time) ->orderBy('reception_time') ->sum("amount_total"); } }