input('jiesuan_date_start_at'); $jiesuanDateEndAt = $request->input('jiesuan_date_end_at'); $isExport = $request->input('is_export', 0); $sql = DB::table('jiesuan_records') ->where([ 'company_uid' => $this->getCompanyUid($request), ])->when($jiesuanDateStartAt, function ($query, $jiesuanDateStartAt) { return $query->where('jiesuan_date', '>=', $jiesuanDateStartAt); }) ->when($jiesuanDateEndAt, function ($query, $jiesuanDateEndAt) { return $query->where('jiesuan_date', '<=', $jiesuanDateEndAt . ' 23:59:59'); }) ->orderBy('jiesuan_date', 'desc') ->select('id', 'jiesuan_date', 'charge_money', 'tuikuan_money', 'share_rate', 'jiesuan_money', 'company_uid'); if($isExport) { $results = $sql->get(); } else { $results = $sql->paginate($request->input('limit', 15)); } foreach ($results as $item) { $item->share_rate .= '%'; } return $results; } /** * 账户金额详情 * @param Request $request */ public function accountInfo(Request $request) { $company_uid = $this->getLoginUserId(); return CompanyUserMoneyService::userMoneyInfo($company_uid); } /** * 申请提现 * @param Request $request */ public function tixian(Request $request) { $this->validate($request, [ 'bank_card_id' => 'required', 'tixian_money' => 'required|numeric|min:500' ]); $company_uid = $this->getLoginUserId(); $now = date('Y-m-d H:i:s'); if(DB::table('tixian_records')->where(['company_uid' => $company_uid]) ->where('created_at', '>=', date('Y-m-d')) ->where('created_at', '<=', $now) ->exists()) { CommonBusinessException::throwError(Errors::TIXIAN_ONLY_ONCE_EVERY_DAY); } $tixianMoney = $request->input('tixian_money'); $userMoneyInfo = CompanyUserMoneyService::userMoneyInfo($company_uid); if($tixianMoney > $userMoneyInfo->yue_money) { CommonBusinessException::throwError(Errors::TIXIAN_YUE_BUZU); } $bank_card_id = $request->input('bank_card_id'); $bankCard = DB::table('bank_cards')->where(['id' => $bank_card_id, 'status' => 2])->first(); if(!$bankCard) { CommonBusinessException::throwError(Errors::BANK_CARD_STATUS_ERROR); } DB::table('tixian_records') ->insert([ 'tixian_money' => $tixianMoney, 'company_uid' => $company_uid, 'bank_card_id' => $bank_card_id, 'card_no' => $bankCard->card_no, 'name_of_payee' => $bankCard->name_of_payee, 'status' => 1, 'bank_name' => $bankCard->bank_name, 'sub_bank_name' => $bankCard->sub_bank_name, 'created_at' => $now, 'updated_at' => $now, ]); $afterUserMoneyInfo = CompanyUserMoneyService::userMoneyInfo($company_uid); CompanyUserMoneyService::log($company_uid, ConstService::MONEY_CHANGE_TYPE_USER_TIXIAN, $userMoneyInfo, $afterUserMoneyInfo); } /** * 提现记录 * @param Request $request */ public function listTixian(Request $request) { $company_uid = $this->getCompanyUid($request); $this->validate($request, [ 'status' => 'nullable|integer|in:1,2,3,4,5' ]); $status = $request->input('status'); $isExport = $request->input('is_export'); $tixianStartAt = $request->input('tixian_start_at'); $tixianEndAt = $request->input('tixian_end_at'); $sql = DB::table('tixian_records') ->where([ 'company_uid' => $company_uid, ])->when($status, function ($query, $status){ return $query->where('status', $status); })->when($tixianStartAt, function ($query, $tixianStartAt) { return $query->where('created_at', '>=', $tixianStartAt); })->when($tixianEndAt, function ($query, $tixianEndAt) { return $query->where('created_at', '<=', $tixianEndAt. ' 23:59:59'); }) ->orderBy('id', 'desc'); if($isExport) { $result = $sql->get(); } else { $result = $sql->paginate($request->input('limit', 15)); } foreach ($result as $item) { $item->status_str = ConstService::TIXIAN_CHECK_STATUS[$item->status] ?? ''; } return $result; } private function getCompanyUid(Request $request) { if($this->isCompanyManager()) { return $this->getLoginUserId(); } else { return $request->input('company_uid'); } } }