request->getAttribute("userInfo") ?? []; $date = $this->request->input('date'); // 获取医生账户余额 $balance_account = $this->getDoctorBalanceAccount($user_info['client_user_id']); // 月预计收益 $amount_total_month = 0; // 月已提现金额 $withdrawal_amount_month = 0; // 获取医生账户某月数据 $params = array(); $params['doctor_id'] = $user_info['client_user_id']; $params['year'] = date('Y',strtotime($date)); $params['month'] = date('m',strtotime($date)); $doctor_account_month = DoctorAccountMonth::getOne($params); if (!empty($doctor_account_month)){ $amount_total_month = $doctor_account_month['total_amount'] ?: 0; $withdrawal_amount_month = $doctor_account_month['withdrawal_amount'] ?: 0; } // 获取医生每日数据 $fields = [ 'total_amount_day' ]; $params = array(); $params['doctor_id'] = $user_info['client_user_id']; $params['year'] = date('Y',strtotime($date)); $params['month'] = date('m',strtotime($date)); $doctor_account_days = DoctorAccountDay::getList($params,$fields); if (empty($doctor_account_days)){ $bill = []; }else{ foreach ($doctor_account_days as &$doctor_account_day){ $doctor_account_day['total_amount_day'] = $doctor_account_day['total_amount_day'] * 0.75; } $bill = $doctor_account_days; } $result = array(); $result['balance_account'] = $balance_account; // 获取医生账户余额-未提现金额 $result['amount_total_month'] = $amount_total_month * 0.75; // 月预计收益 $result['withdrawal_amount_month'] = $withdrawal_amount_month; // 月已提现金额 $result['bill'] = $bill; // 账单 return success($result); } /** * 获取医生账户余额 * @param string $doctor_id * @return int */ public function getDoctorBalanceAccount(string $doctor_id): int { $params = array(); $params['doctor_id'] = $doctor_id; $doctor_account = DoctorAccount::getOne($params); if (empty($doctor_account)){ $balance_account = 0; }else{ $balance_account = $doctor_account['balance_account'] * 0.75; } return $balance_account; } /** * 获取医生账户某日预计收益 * @param string $doctor_id 医生id * @param string $day 日期 Ymd形式 * @return float|int|mixed|string */ public function getDoctorDayAmountTotal(string $doctor_id, string $day): mixed { $params = array(); $params['doctor_id'] = $doctor_id; $params['year'] = date('Y',strtotime($day)); $params['month'] = date('m',strtotime($day)); $params['day'] = date('d',strtotime($day)); $total_amount_day = DoctorAccountDay::getDoctorSumTotalAmount($params); if (!empty($total_amount_day)){ $total_amount_day = $total_amount_day * 0.75; } return $total_amount_day ?: 0; } }