119 lines
4.7 KiB
PHP
119 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller\user;
|
|
|
|
use app\admin\validate\withdraw\MerchantWithdrawValidate;
|
|
use app\api\controller\BaseApiController;
|
|
use app\api\lists\withdraw\MerchantWithdrawLists;
|
|
use app\common\model\bank\Bank;
|
|
use app\common\model\merchant\Merchant;
|
|
use app\common\model\merchant\MerchantBank;
|
|
use app\common\model\supplier\Supplier;
|
|
use app\common\model\withdraw\MerchantWithdraw;
|
|
|
|
class UserWithdrawController extends BaseApiController
|
|
{
|
|
//获取用户余额和绑定银行账户信息
|
|
public function amount_account(){
|
|
$uid = $this->request->userInfo['user_id'];
|
|
$merchant = Merchant::where('uid',$uid)->findOrEmpty();
|
|
$supplier = Supplier::where('uid',$uid)->findOrEmpty();
|
|
if($merchant->isEmpty() && $supplier->isEmpty()){
|
|
return $this->fail('当前用户非商户或供应商');
|
|
}
|
|
if(!$merchant->isEmpty()){
|
|
$bank_list = MerchantBank::where('mer_id',$merchant['mer_id'])->where('is_check',1)->select()->each(function($data){
|
|
$bank_info = Bank::where('id',$data['bank_id'])->findOrEmpty();
|
|
$data['bank_name'] = !$bank_info->isEmpty() ? $bank_info['name'] : '';
|
|
$data['bank_image'] = !$bank_info->isEmpty() ? $bank_info['image'] : '';
|
|
return $data;
|
|
})->toArray();
|
|
return $this->success('请求成功',[
|
|
'balance' => $merchant['mer_money'],
|
|
'bank_list' => $bank_list
|
|
]);
|
|
} elseif (!$supplier->isEmpty()){
|
|
$bank_list = MerchantBank::where('supplier_id',$supplier['id'])->where('is_check',1)->select()->each(function($data){
|
|
$bank_info = Bank::where('id',$data['bank_id'])->findOrEmpty();
|
|
$data['bank_name'] = !$bank_info->isEmpty() ? $bank_info['name'] : '';
|
|
$data['bank_image'] = !$bank_info->isEmpty() ? $bank_info['image'] : '';
|
|
return $data;
|
|
})->toArray();
|
|
return $this->success('请求成功',[
|
|
'balance' => $merchant['mer_money'],
|
|
'bank_list' => $bank_list
|
|
]);
|
|
}else{
|
|
return $this->fail('未找到商户或供应商信息');
|
|
}
|
|
}
|
|
|
|
//用户提现操作
|
|
public function withdraw(){
|
|
$params = (new MerchantWithdrawValidate())->post()->goCheck('withdraw');
|
|
$uid = $this->request->userInfo['user_id'];
|
|
$merchant = Merchant::where('uid',$uid)->findOrEmpty();
|
|
$supplier = Supplier::where('uid',$uid)->findOrEmpty();
|
|
if($merchant->isEmpty() && $supplier->isEmpty()){
|
|
return $this->fail('当前用户非商户或供应商');
|
|
}
|
|
if(!$merchant->isEmpty()){
|
|
if($params['amount'] > $merchant['mer_money']){
|
|
return $this->fail('提现余额不足');
|
|
}
|
|
$save_data = [
|
|
'mer_id' => $merchant['mer_id'],
|
|
'merchant_bank_id' => $params['merchant_bank_id'],
|
|
'amount' => $params['amount'],
|
|
'is_check' => 0,
|
|
'is_arrival' => 0,
|
|
'admin_id' => 0,
|
|
'create_time' => time(),
|
|
];
|
|
(new MerchantWithdraw) -> save($save_data);
|
|
return $this->success('提现成功,等待管理员审核');
|
|
} elseif (!$supplier->isEmpty()){
|
|
if($params['amount'] > $supplier['mer_money']){
|
|
return $this->fail('提现余额不足');
|
|
}
|
|
$save_data = [
|
|
'supplier_id' => $supplier['id'],
|
|
'merchant_bank_id' => $params['merchant_bank_id'],
|
|
'amount' => $params['amount'],
|
|
'is_check' => 0,
|
|
'is_arrival' => 0,
|
|
'admin_id' => 0,
|
|
'create_time' => time(),
|
|
];
|
|
(new MerchantWithdraw) -> save($save_data);
|
|
return $this->success('提现成功,等待管理员审核');
|
|
}else{
|
|
return $this->fail('未找到商户或供应商信息');
|
|
}
|
|
}
|
|
|
|
public function index(){
|
|
$uid = $this->request->userInfo['user_id'];
|
|
$merchant = Merchant::where('uid',$uid)->findOrEmpty();
|
|
$supplier = Supplier::where('uid',$uid)->findOrEmpty();
|
|
if($merchant->isEmpty() && $supplier->isEmpty()){
|
|
return $this->fail('当前用户非商户或供应商');
|
|
}
|
|
if(!$merchant->isEmpty()){
|
|
$total_amount = MerchantWithdraw::where('mer_id',$merchant['mer_id'])->where('is_check',1)->where('is_arrival',1)->sum('amount');
|
|
$count = MerchantWithdraw::where('mer_id',$merchant['mer_id'])->where('is_check',1)->where('is_arrival',1)->count();
|
|
return $this->success('请求成功',['total'=>$total_amount,'count'=>$count]);
|
|
} elseif (!$supplier->isEmpty()){
|
|
$total_amount = MerchantWithdraw::where('supplier_id',$supplier['id'])->where('is_check',1)->where('is_arrival',1)->sum('amount');
|
|
$count = MerchantWithdraw::where('supplier_id',$supplier['id'])->where('is_check',1)->where('is_arrival',1)->count();
|
|
return $this->success('请求成功',['total'=>$total_amount,'count'=>$count]);
|
|
}else{
|
|
return $this->fail('未找到商户或供应商信息');
|
|
}
|
|
}
|
|
|
|
//提现列表
|
|
public function lists(){
|
|
return $this->dataLists(new MerchantWithdrawLists());
|
|
}
|
|
} |