新增医生当日问诊数量问题

This commit is contained in:
wucongxing 2023-04-17 17:21:57 +08:00
parent bcbd632895
commit 3e09cdad05
2 changed files with 50 additions and 30 deletions

View File

@ -5,7 +5,6 @@ declare(strict_types=1);
namespace App\Model; namespace App\Model;
use Hyperf\Database\Model\Collection; use Hyperf\Database\Model\Collection;
use Hyperf\Database\Model\Relations\HasOne; use Hyperf\Database\Model\Relations\HasOne;
use Hyperf\Database\Query\Builder; use Hyperf\Database\Query\Builder;
@ -46,8 +45,8 @@ use Hyperf\Snowflake\Concern\Snowflake;
* @property int $patient_age 患者年龄-就诊人 * @property int $patient_age 患者年龄-就诊人
* @property \Carbon\Carbon $created_at 创建时间 * @property \Carbon\Carbon $created_at 创建时间
* @property \Carbon\Carbon $updated_at 修改时间 * @property \Carbon\Carbon $updated_at 修改时间
* @property-read OrderInquiryCase $OrderInquiryCase * @property-read OrderInquiryCase $OrderInquiryCase
* @property-read UserDoctor $UserDoctor * @property-read UserDoctor $UserDoctor
*/ */
class OrderInquiry extends Model class OrderInquiry extends Model
{ {
@ -70,7 +69,7 @@ class OrderInquiry extends Model
*/ */
public function UserDoctor(): HasOne public function UserDoctor(): HasOne
{ {
return $this->hasOne(UserDoctor::class, 'doctor_id','doctor_id'); return $this->hasOne(UserDoctor::class, 'doctor_id', 'doctor_id');
} }
/** /**
@ -78,7 +77,7 @@ class OrderInquiry extends Model
*/ */
public function OrderInquiryCase(): HasOne public function OrderInquiryCase(): HasOne
{ {
return $this->hasOne(OrderInquiryCase::class, 'order_inquiry_id','order_inquiry_id'); return $this->hasOne(OrderInquiryCase::class, 'order_inquiry_id', 'order_inquiry_id');
} }
/** /**
@ -123,6 +122,17 @@ class OrderInquiry extends Model
return self::where($params)->count(); return self::where($params)->count();
} }
/**
* 获取某段时间数量
* @param array $params
* @param array $created_at
* @return int
*/
public static function getDateCount(array $params, array $created_at): int
{
return self::where($params)->whereBetween('created_at', $created_at)->count();
}
/** /**
* 获取单条,排序 * 获取单条,排序
* @param array $params * @param array $params
@ -131,10 +141,11 @@ class OrderInquiry extends Model
*/ */
public static function getOrderOne(array $params, array $fields = ['*']): object|null public static function getOrderOne(array $params, array $fields = ['*']): object|null
{ {
return self::where($params)->orderBy('created_at','desc')->first($fields); return self::where($params)->orderBy('created_at', 'desc')->first($fields);
} }
// public static function // public static function
/** /**
* 获取医生某一时间段接诊订单分页数据 * 获取医生某一时间段接诊订单分页数据
* 已结束 * 已结束
@ -148,7 +159,7 @@ class OrderInquiry extends Model
public static function getDoctorDateOrderInquiryPage(array $params, array $reception_time, array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed public static function getDoctorDateOrderInquiryPage(array $params, array $reception_time, array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed
{ {
$raw = self::where($params) $raw = self::where($params)
->whereBetween('finish_time',$reception_time) ->whereBetween('finish_time', $reception_time)
->orderBy('finish_time') ->orderBy('finish_time')
->paginate($per_page, $fields, "page", $page); ->paginate($per_page, $fields, "page", $page);
@ -171,10 +182,10 @@ class OrderInquiry extends Model
* @param int|null $per_page * @param int|null $per_page
* @return int|mixed|string * @return int|mixed|string
*/ */
public static function getDoctorOrderInquiryPage(array $params,array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed public static function getDoctorOrderInquiryPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed
{ {
$raw = self::where($params) $raw = self::where($params)
->orderBy('finish_time','desc') ->orderBy('finish_time', 'desc')
->paginate($per_page, $fields, "page", $page); ->paginate($per_page, $fields, "page", $page);
$data = array(); $data = array();
@ -197,8 +208,8 @@ class OrderInquiry extends Model
public static function getOrderInquiryBetweenTimeAmountTotalSum(array $params, array $reception_time, array $inquiry_status_params): mixed public static function getOrderInquiryBetweenTimeAmountTotalSum(array $params, array $reception_time, array $inquiry_status_params): mixed
{ {
return self::where($params) return self::where($params)
->whereIn('inquiry_status',$inquiry_status_params) ->whereIn('inquiry_status', $inquiry_status_params)
->whereBetween('reception_time',$reception_time) ->whereBetween('reception_time', $reception_time)
->orderBy('reception_time') ->orderBy('reception_time')
->sum("amount_total"); ->sum("amount_total");
} }
@ -212,7 +223,7 @@ class OrderInquiry extends Model
public static function getOrderInquiryAmountTotalSum(array $params, array $inquiry_status_params): mixed public static function getOrderInquiryAmountTotalSum(array $params, array $inquiry_status_params): mixed
{ {
return self::where($params) return self::where($params)
->whereIn('inquiry_status',$inquiry_status_params) ->whereIn('inquiry_status', $inquiry_status_params)
->orderBy('reception_time') ->orderBy('reception_time')
->sum("amount_total"); ->sum("amount_total");
} }
@ -227,12 +238,12 @@ class OrderInquiry extends Model
public static function getInquiryStatusWithDoctorList(array $params, array $inquiry_status_params, array $fields = ["*"]): Collection|array public static function getInquiryStatusWithDoctorList(array $params, array $inquiry_status_params, array $fields = ["*"]): Collection|array
{ {
return self::with([ return self::with([
'UserDoctor' => function ($query){ 'UserDoctor' => function ($query) {
$query->orderBy('is_platform_deep_cooperation', 'desc'); $query->orderBy('is_platform_deep_cooperation', 'desc');
} }
]) ])
->where($params) ->where($params)
->whereIn('inquiry_status',$inquiry_status_params) ->whereIn('inquiry_status', $inquiry_status_params)
->get($fields); ->get($fields);
} }
@ -244,16 +255,16 @@ class OrderInquiry extends Model
* @param array $fields * @param array $fields
* @return Collection|array * @return Collection|array
*/ */
public static function getInquiryStatusWithDoctorNotInList(array $params, array $inquiry_status_params,array $not_in_params, array $fields = ["*"]): Collection|array public static function getInquiryStatusWithDoctorNotInList(array $params, array $inquiry_status_params, array $not_in_params, array $fields = ["*"]): Collection|array
{ {
return self::with([ return self::with([
'UserDoctor' => function ($query){ 'UserDoctor' => function ($query) {
$query->orderBy('is_platform_deep_cooperation', 'desc'); $query->orderBy('is_platform_deep_cooperation', 'desc');
} }
]) ])
->where($params) ->where($params)
->whereIn('inquiry_status',$inquiry_status_params) ->whereIn('inquiry_status', $inquiry_status_params)
->whereNotIn('doctor_id',$not_in_params) ->whereNotIn('doctor_id', $not_in_params)
->get($fields); ->get($fields);
} }
@ -264,10 +275,10 @@ class OrderInquiry extends Model
* @param array $fields * @param array $fields
* @return object|null * @return object|null
*/ */
public static function getInquiryStatusOne(array $params,array $inquiry_status_params,array $fields = ["*"]): object|null public static function getInquiryStatusOne(array $params, array $inquiry_status_params, array $fields = ["*"]): object|null
{ {
return self::where($params) return self::where($params)
->whereIn('inquiry_status',$inquiry_status_params) ->whereIn('inquiry_status', $inquiry_status_params)
->first($fields); ->first($fields);
} }
@ -292,16 +303,16 @@ class OrderInquiry extends Model
* @param int|null $per_page * @param int|null $per_page
* @return int|mixed|string * @return int|mixed|string
*/ */
public static function getPatientOrderInquiryPage(array $params,array $inquiry_status_params ,array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed public static function getPatientOrderInquiryPage(array $params, array $inquiry_status_params, array $fields = ["*"], int $page = null, ?int $per_page = 10): mixed
{ {
$raw = self::with([ $raw = self::with([
'OrderInquiryCase:inquiry_case_id,order_inquiry_id,disease_desc', 'OrderInquiryCase:inquiry_case_id,order_inquiry_id,disease_desc',
]) ])
->where($params) ->where($params)
->when($inquiry_status_params, function ($query, $inquiry_status_params) { ->when($inquiry_status_params, function ($query, $inquiry_status_params) {
$query->whereIn('inquiry_status',$inquiry_status_params); $query->whereIn('inquiry_status', $inquiry_status_params);
}) })
->orderBy('created_at','desc') ->orderBy('created_at', 'desc')
->paginate($per_page, $fields, "page", $page); ->paginate($per_page, $fields, "page", $page);
$data = array(); $data = array();
@ -321,9 +332,9 @@ class OrderInquiry extends Model
* @param array $fields * @param array $fields
* @return object|null * @return object|null
*/ */
public static function getInList(array $params, array $in_params,array $fields = ['*']): object|null public static function getInList(array $params, array $in_params, array $fields = ['*']): object|null
{ {
return self::where($params)->whereIn('order_inquiry_id',$in_params)->get($fields); return self::where($params)->whereIn('order_inquiry_id', $in_params)->get($fields);
} }
@ -335,7 +346,7 @@ class OrderInquiry extends Model
*/ */
public static function getInquiryStatusCount(array $params, array $inquiry_status_params): int public static function getInquiryStatusCount(array $params, array $inquiry_status_params): int
{ {
return self::where($params)->whereIn("inquiry_status",$inquiry_status_params)->count(); return self::where($params)->whereIn("inquiry_status", $inquiry_status_params)->count();
} }
/** /**
@ -347,11 +358,11 @@ class OrderInquiry extends Model
* @param int|null $per_page * @param int|null $per_page
* @return array * @return array
*/ */
public static function getInquiryStatusWithDoctorPage(array $params, array $inquiry_status_params,array $fields = ["*"], int $page = null, ?int $per_page = 10): array public static function getInquiryStatusWithDoctorPage(array $params, array $inquiry_status_params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array
{ {
$raw = self::where($params) $raw = self::where($params)
->whereIn('inquiry_status',$inquiry_status_params) ->whereIn('inquiry_status', $inquiry_status_params)
->orderBy('complete_time','desc') ->orderBy('complete_time', 'desc')
->paginate($per_page, $fields, "page", $page); ->paginate($per_page, $fields, "page", $page);
$data = array(); $data = array();

View File

@ -258,7 +258,16 @@ class PatientDoctorService extends BaseService
$params[] = ['inquiry_type', '=', $value['inquiry_type']]; $params[] = ['inquiry_type', '=', $value['inquiry_type']];
$params[] = ['inquiry_mode', '=', 1]; $params[] = ['inquiry_mode', '=', 1];
$params[] = ['inquiry_refund_status', '=', 0]; $params[] = ['inquiry_refund_status', '=', 0];
$value['order_inquiry_count'] = OrderInquiry::getCount($params);
// 获取当天开始时间
$start_date = date('Y-m-d 00:00:00', time());
// 获取当天结束时间
$end_date = date('Y-m-d 23:59:59', time());
$created_at = [$start_date, $end_date];
$value['order_inquiry_count'] = OrderInquiry::getDateCount($params,$created_at);
// 获取系统问诊配置 // 获取系统问诊配置
$fields = [ $fields = [