123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- namespace Modules\Jiesuan\Http\Controllers;
- use Catch\Base\CatchController;
- use Illuminate\Foundation\Validation\ValidatesRequests;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Modules\Common\Errors\Errors;
- use Modules\Common\Exceptions\CommonBusinessException;
- use Modules\Jiesuan\Services\CompanyUserMoneyService;
- use Modules\Jiesuan\Services\ConstService;
- use Modules\User\Http\Controllers\UserTrait;
- class JiesuanController extends CatchController
- {
- use UserTrait;
- use ValidatesRequests;
- /**
- * 结算记录
- * @param Request $request
- */
- public function list(Request $request) {
- $jiesuanDateStartAt = $request->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);
- })
- ->orderBy('jiesuan_date', 'desc')
- ->select('id', 'jiesuan_date', 'charge_money', 'tuikuan_money', 'share_rate', 'jiesuan_money');
- 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();
- $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);
- }
- $now = date('Y-m-d H:i:s');
- 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,
- ]);
- }
- /**
- * 提现记录
- * @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');
- }
- }
- }
|