hospital-applets-api/app/Model/ReportRegulatory.php
2024-04-29 16:39:47 +08:00

159 lines
5.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
namespace App\Model;
use Carbon\Carbon;
use Hyperf\Database\Model\Builder;
use Hyperf\Database\Model\Collection;
use Hyperf\Snowflake\Concern\Snowflake;
/**
* @property int $report_regulatory_id 主键id
* @property int $order_inquiry_id 订单-问诊id
* @property int $order_prescription_id 订单-处方表id无需上报处方时为null
* @property int $order_product_id 订单-商品表id无需上报处方时为null
* @property int $report_consult_status 上报网络咨询状态0:未上报 1:已上报 2:上报失败)
* @property int $report_consult_int 网络咨询上报次数
* @property string $report_consult_time 网络咨询上报时间
* @property string $report_consult_fail_reason 网络咨询上报失败原因
* @property int $is_further_consult 是否需要上报网络复诊0:否 1:是)
* @property int $report_further_consult_status 上报网络复诊状态0:未上报 1:已上报 2:上报失败)
* @property int $report_further_consult_int 网络复诊上报次数
* @property string $report_further_consult_time 网络复诊上报时间
* @property string $report_further_consult_fail_reason 网络复诊上报失败原因
* @property int $is_prescription 是否需要上报处方0:否 1:是)
* @property int $report_prescription_status 处方上报状态0:未上报 1:已上报 2:上报失败)
* @property int $report_prescription_int 处方上报次数
* @property string $report_prescription_time 处方上报时间
* @property string $report_prescription_fail_reason 处方上报失败原因
* @property Carbon $created_at 创建时间
* @property Carbon $updated_at 修改时间
*/
class ReportRegulatory extends Model
{
use Snowflake;
/**
* The table associated with the model.
*/
protected ?string $table = 'report_regulatory';
/**
* The attributes that are mass assignable.
*/
protected array $fillable = ['report_regulatory_id', 'order_inquiry_id', 'order_prescription_id', 'order_product_id', 'report_consult_status', 'report_consult_int', 'report_consult_time', 'report_consult_fail_reason', 'is_further_consult', 'report_further_consult_status', 'report_further_consult_int', 'report_further_consult_time', 'report_further_consult_fail_reason', 'is_prescription', 'report_prescription_status', 'report_prescription_int', 'report_prescription_time', 'report_prescription_fail_reason', 'created_at', 'updated_at'];
protected string $primaryKey = "report_regulatory_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 ReportRegulatory|\Hyperf\Database\Model\Model
*/
public static function addReportRegulatory(array $data): ReportRegulatory|\Hyperf\Database\Model\Model
{
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 $or_params
* @return int
*/
public static function getOrStatusCount(array $params = [],array $or_params = []): int
{
return self::where($params)->orWhere($or_params)->count();
}
/**
* 列表-限制数量
* @param array $params
* @param array $or_params
* @param array $fields
* @param int $offset
* @param int $limit
* @return Collection|array
*/
public static function getOrStatusLimit(array $params = [],array $or_params = [], array $fields = ["*"],int $offset = 0,int $limit = 10): Collection|array
{
return self::where($params)
->orWhere($or_params)
->offset($offset)
->limit($limit)
->get($fields);
}
/**
* 检测是否存在
* @param array $params
* @return bool
*/
public static function getExists(array $params): bool
{
return self::where($params)->exists();
}
/**
* 获取未上报监管平台列表
* @param array $fields
* @return Collection|array
*/
public static function getNotReportList(array $fields = ["*"]): Collection|array
{
return self::orWhere(function ($query) {
$query->Where('is_further_consult','=',1);
$query->Where('report_further_consult_status','!=',1);
$query->Where('report_further_consult_int','<',5);
})
->orWhere(function ($query) {
$query->Where('is_prescription','=',1);
$query->Where('report_prescription_status','!=',1);
$query->Where('report_prescription_int','<',5);
})
->orWhere(function ($query) {
$query->Where('report_consult_status','!=',1);
$query->Where('report_consult_int','<',5);
})
->get($fields);
}
}