diff --git a/app/Model/DoctorWithdrawal.php b/app/Model/DoctorWithdrawal.php index 29c6b30..c807dc8 100644 --- a/app/Model/DoctorWithdrawal.php +++ b/app/Model/DoctorWithdrawal.php @@ -61,6 +61,21 @@ class DoctorWithdrawal extends Model return self::where($params)->first($fields); } + /** + * 获取某个时间区间信息-单条 + * @param array $params + * @param array $fields + * @param array $created_at 时间区间 + * @return object|null + */ + public static function getOneLatestTime(array $params,array $created_at, array $fields = ['*']): object|null + { + return self::where($params) + ->whereBetween('created_at',$created_at) + ->latest() + ->first($fields); + } + /** * 获取信息-多条 * @param array $params diff --git a/app/Services/DoctorAccountService.php b/app/Services/DoctorAccountService.php index 156f923..b10068e 100644 --- a/app/Services/DoctorAccountService.php +++ b/app/Services/DoctorAccountService.php @@ -38,7 +38,11 @@ class DoctorAccountService extends BaseService // 获取医生月度已提现金额-审核通过时间为准 $params = array(); $params['doctor_id'] = $user_info['client_user_id']; - $doctor_withdrawal = DoctorWithdrawal::getOne($params); + + $start_time = date('Y-m-01',strtotime($date)); + $end_time = date('Y-m-t 24:00:00',strtotime($date)); + $created_at = [$start_time,$end_time]; + $doctor_withdrawal = DoctorWithdrawal::getOneLatestTime($params,$created_at,['*']); if (empty($doctor_withdrawal)) { $withdrawal_amount_month = 0; } else { @@ -331,13 +335,26 @@ class DoctorAccountService extends BaseService } $app_env = config('app_env'); - if ($app_env == "prod"){ + if ($app_env != "dev"){ // 正式环境高于300元才可以提现 if ($withdrawal_amount_total < 300){ return fail("提现金额小于300元"); } } + // 每月只能提现一次 + $params = array(); + $params['doctor_id'] = $user_info['client_user_id']; + + $start_time = date('Y-m-01',time()); + $end_time = date('Y-m-t 24:00:00',time()); + $created_at = [$start_time,$end_time]; + + $doctor_withdrawal = DoctorWithdrawal::getOneLatestTime($params,['*'],$created_at); + if (!empty($doctor_withdrawal)){ + return fail("每月只允许提现一次"); + } + $amount_total = 0; foreach ($order_inquiry_id as $value){ $params = array(); diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 4251bec..d1d10d8 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1893,7 +1893,7 @@ class UserDoctorService extends BaseService if ($is_system_time_pass){ // 获取坐班时间包含当前时间的深度合作医生 - $doctor_ids = $this->getNowTimePlatDeepCooperationDoctorId($inquiry_type,time(),$not_doctor_ids); + $doctor_ids = $this->getMinPlatDeepCooperationDoctorId($inquiry_type,time(),$not_doctor_ids); Log::getInstance()->info("获取坐班时间包含当前时间的深度合作医生:" ,$doctor_ids); // 检测医生是否可被分配 @@ -1914,7 +1914,7 @@ class UserDoctorService extends BaseService } // 检测当前时间5分钟后,坐班时间包含某时间的平台深度合作医生 - $doctor_ids = $this->getMinPlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids); + $doctor_ids = $this->getNowTimePlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids); if (!empty($doctor_ids)){ Log::getInstance()->info("检测当前时间5分钟后,坐班时间包含某时间的平台深度合作医生:" ,$doctor_ids); @@ -1928,7 +1928,7 @@ class UserDoctorService extends BaseService } // 检测当前时间5分钟后,坐班时间包含某时间的平台深度合作医生 - $doctor_ids = $this->getMinPlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids); + $doctor_ids = $this->getNowTimePlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids); if (!empty($doctor_ids)){ Log::getInstance()->info("检测当前时间5分钟后,坐班时间包含某时间的平台深度合作医生:" ,$doctor_ids); @@ -1957,9 +1957,6 @@ class UserDoctorService extends BaseService $not_doctor_ids = array_merge($not_doctor_ids,$result['not_doctor_ids']); } } - - - return ""; }