From 8a87298095bd27737b6a6b34d50e3d31de1b7ca1 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Mon, 27 Feb 2023 09:45:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=B3=BB=E7=BB=9F=E9=97=AE?= =?UTF-8?q?=E8=AF=8A=E6=97=B6=E9=97=B4=E6=A8=A1=E5=9E=8B=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E9=97=AE=E8=AF=8A=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/DoctorInquiryConfig.php | 23 +++------- app/Model/SystemInquiryConfig.php | 6 +-- app/Model/SystemInquiryTime.php | 63 +++++++++++++++++++++++++++ app/Services/DoctorAccountService.php | 2 +- app/Services/DoctorInquiryService.php | 35 ++++++++++----- app/Services/PatientDoctorService.php | 2 - app/Services/UserDoctorService.php | 10 ----- config/routes.php | 1 - 8 files changed, 97 insertions(+), 45 deletions(-) create mode 100644 app/Model/SystemInquiryTime.php diff --git a/app/Model/DoctorInquiryConfig.php b/app/Model/DoctorInquiryConfig.php index 7b2a8fb..0c0538d 100644 --- a/app/Model/DoctorInquiryConfig.php +++ b/app/Model/DoctorInquiryConfig.php @@ -10,16 +10,14 @@ use Hyperf\Database\Model\Relations\HasOne; use Hyperf\Snowflake\Concern\Snowflake; /** - * @property int $inquiry_config_id 主键id - * @property int $doctor_id 医生id - * @property int $system_inquiry_config_id 系统问诊配置表id + * @property string $inquiry_config_id 主键id + * @property string $doctor_id 医生id * @property int $inquiry_type 接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) * @property int $inquiry_mode 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员) * @property int $work_num_day 每日接诊数量 * @property string $inquiry_price 接诊价格(专家问诊-公益问诊) * @property \Carbon\Carbon $created_at 创建时间 * @property \Carbon\Carbon $updated_at 修改时间 - * @property-read SystemInquiryConfig $SystemInquiryConfig */ class DoctorInquiryConfig extends Model { @@ -33,23 +31,15 @@ class DoctorInquiryConfig extends Model /** * The attributes that are mass assignable. */ - protected array $fillable = ['inquiry_config_id', 'doctor_id', 'system_inquiry_config_id', 'inquiry_type', 'inquiry_mode', 'work_num_day', 'inquiry_price', 'created_at', 'updated_at']; + protected array $fillable = ['inquiry_config_id', 'doctor_id', 'inquiry_type', 'inquiry_mode', 'work_num_day', 'inquiry_price', 'created_at', 'updated_at']; /** * The attributes that should be cast to native types. */ - protected array $casts = ['inquiry_config_id' => 'integer', 'doctor_id' => 'integer', 'system_inquiry_config_id' => 'integer', 'inquiry_type' => 'integer', 'inquiry_mode' => 'integer', 'work_num_day' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime']; + protected array $casts = ['inquiry_config_id' => 'string', 'doctor_id' => 'string', 'inquiry_type' => 'integer', 'inquiry_mode' => 'integer', 'work_num_day' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime']; protected string $primaryKey = "inquiry_config_id"; - /** - * 关联系统问诊配置表 - */ - public function SystemInquiryConfig(): HasOne - { - return $this->hasOne(SystemInquiryConfig::class, 'system_inquiry_config_id', 'system_inquiry_config_id'); - } - /** * 获取医生接诊配置信息-单条 * @param array $params @@ -69,7 +59,7 @@ class DoctorInquiryConfig extends Model */ public static function getInquiryConfigOne(array $params, array $fields = ['*']): object|null { - return self::with(['SystemInquiryConfig'])->where($params)->first($fields); + return self::where($params)->first($fields); } /** @@ -81,8 +71,7 @@ class DoctorInquiryConfig extends Model */ public static function getInquiryConfigList(array $params, array $fields = ['*']): object|null { - return self::with(['SystemInquiryConfig']) - ->where($params)->whereIn("inquiry_type",[1,3])->get($fields); + return self::where($params)->whereIn("inquiry_type",[1,3])->get($fields); } /** diff --git a/app/Model/SystemInquiryConfig.php b/app/Model/SystemInquiryConfig.php index 25337f4..fa51b43 100644 --- a/app/Model/SystemInquiryConfig.php +++ b/app/Model/SystemInquiryConfig.php @@ -13,8 +13,8 @@ use Hyperf\Snowflake\Concern\Snowflake; * @property int $system_inquiry_config_id 主键id * @property int $inquiry_type 接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) * @property int $inquiry_mode 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员) - * @property int $max_work_num_day 每日最大接诊数量(为0表示不限制接诊数量) - * @property string $inquiry_price 接诊价格(存在多档次,逗号分隔) + * @property int $max_work_num_day 每日最大接诊数量 + * @property string $inquiry_price 接诊价格 * @property string $min_inquiry_price 最低接诊价格(专家问诊) * @property string $max_inquiry_price 最高接诊价格(专家问诊) * @property int $times_number 沟通次数(0为不限制次数) @@ -39,7 +39,7 @@ class SystemInquiryConfig extends Model /** * The attributes that should be cast to native types. */ - protected array $casts = ['system_inquiry_config_id' => 'integer', 'inquiry_type' => 'integer', 'inquiry_mode' => 'integer', 'max_work_num_day' => 'integer', 'times_number' => 'integer', 'duration' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime']; + protected array $casts = ['system_inquiry_config_id' => 'string', 'inquiry_type' => 'integer', 'inquiry_mode' => 'integer', 'max_work_num_day' => 'integer', 'times_number' => 'integer', 'duration' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime']; protected string $primaryKey = "system_inquiry_config_id"; diff --git a/app/Model/SystemInquiryTime.php b/app/Model/SystemInquiryTime.php new file mode 100644 index 0000000..d0694f9 --- /dev/null +++ b/app/Model/SystemInquiryTime.php @@ -0,0 +1,63 @@ + 'integer', 'system_inquiry_config_id' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime']; + + protected string $primaryKey = "inquiry_time_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); + } +} diff --git a/app/Services/DoctorAccountService.php b/app/Services/DoctorAccountService.php index a9acb32..f2b33ec 100644 --- a/app/Services/DoctorAccountService.php +++ b/app/Services/DoctorAccountService.php @@ -64,7 +64,7 @@ class DoctorAccountService extends BaseService if (!empty($doctor_account_days)) { foreach ($doctor_account_days as $doctor_account_day) { $data = array(); - $data['total_amount'] = $doctor_account_day['total_amount'] * 0.75; + $data['total_amount'] = ceil($doctor_account_day['total_amount'] * 0.75 * 100) / 100; $data['month'] = $doctor_account_day['month']; $data['day'] = $doctor_account_day['day']; $bill[] = $data; diff --git a/app/Services/DoctorInquiryService.php b/app/Services/DoctorInquiryService.php index aa46568..0571bae 100644 --- a/app/Services/DoctorInquiryService.php +++ b/app/Services/DoctorInquiryService.php @@ -404,19 +404,32 @@ class DoctorInquiryService extends BaseService throw new BusinessException(); } - $params = array(); - $params['doctor_id'] = $doctor_id; - $params['inquiry_type'] = $inquiry_type; - $params['inquiry_mode'] = $inquiry_mode; - $doctor_inquiry_config = DoctorInquiryConfig::getInquiryConfigOne($params); - if (empty($doctor_inquiry_config)){ - throw new BusinessException( "当前医生未开通对应服务,请重新选择",HttpEnumCode::HTTP_ERROR); - } + // 接诊类型(1:专家问诊 2:快速问诊 3:公益问诊) + if ($inquiry_type == 1 || $inquiry_type == 3){ + // 专家-公益 + $params = array(); + $params['doctor_id'] = $doctor_id; + $params['inquiry_type'] = $inquiry_type; + $params['inquiry_mode'] = $inquiry_mode; + $doctor_inquiry_config = DoctorInquiryConfig::getOne($params); + if (empty($doctor_inquiry_config)){ + throw new BusinessException( "当前医生未开通对应服务,请重新选择",HttpEnumCode::HTTP_ERROR); + } - $inquiry_price = $doctor_inquiry_config['inquiry_price'] ?: 0; + $inquiry_price = $doctor_inquiry_config['inquiry_price'] ?: 0; + }elseif($inquiry_type == 2 || $inquiry_type == 4){ + // 快速-购药 + $params = array(); + $params['inquiry_type'] = $inquiry_type; + $params['inquiry_mode'] = $inquiry_mode; + $system_inquiry_config = SystemInquiryConfig::getOne($params); + if (empty($system_inquiry_config)){ + throw new BusinessException(); + } - if ($inquiry_type == 2){ - $inquiry_price = $doctor_inquiry_config['SystemInquiryConfig']['inquiry_price']; + $inquiry_price = $system_inquiry_config['inquiry_price'] ?: 0; + }else{ + throw new BusinessException(); } return $inquiry_price; diff --git a/app/Services/PatientDoctorService.php b/app/Services/PatientDoctorService.php index 9210cd1..6b532f0 100644 --- a/app/Services/PatientDoctorService.php +++ b/app/Services/PatientDoctorService.php @@ -249,8 +249,6 @@ class PatientDoctorService extends BaseService $params[] = ['inquiry_status','=',3]; $params[] = ['inquiry_refund_status','=',0]; $value['order_inquiry_count'] = OrderInquiry::getCount($params); - - unset($value['SystemInquiryConfig']); } $result['doctor_inquiry_config'] = $doctor_inquiry_config; } diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 3d627f6..6803b53 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -383,16 +383,6 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证"); } - // 获取医生问诊价格 - $params = array(); - $params['doctor_id'] = $user_info['client_user_id']; - $params['inquiry_type'] = 1; - $params['inquiry_mode'] = 1; - $doctor_inquiry_config = DoctorInquiryConfig::getInquiryConfigOne($params); - if (empty($doctor_inquiry_config)) { - return fail(HttpEnumCode::HTTP_ERROR, "请先设置在线问诊价格"); - } - // 获取处方数据 $params = array(); $params['doctor_id'] = $user_info['client_user_id']; diff --git a/config/routes.php b/config/routes.php index d60090d..05806a0 100644 --- a/config/routes.php +++ b/config/routes.php @@ -12,7 +12,6 @@ declare(strict_types=1); use App\Controller\AreaController; use App\Controller\BasicDataController; -use App\Controller\DiseaseController; use App\Controller\DoctorAccountController; use App\Controller\DoctorAuthController; use App\Controller\IndexController;