162 lines
6.0 KiB
PHP
162 lines
6.0 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()
|
|
{
|
|
$supplier = $this->request->userInfo['supplier'];
|
|
if (!$supplier) {
|
|
return $this->fail('当前用户非供应商');
|
|
}
|
|
$is_check = $this->request->get('is_check', 1);
|
|
|
|
// $merchant = Merchant::where('uid',$uid)->findOrEmpty();
|
|
$supplier = Supplier::where('id', $supplier['id'])->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()){
|
|
$where = ['supplier_id' => $supplier['id']];
|
|
|
|
if ($is_check == 1) {
|
|
$where[] = ['is_check', '=', 1];
|
|
} elseif ($is_check == 0) {
|
|
$where[] = ['is_check', '=', 0];
|
|
}else{
|
|
$bank_list1 = MerchantBank::where($where)->where('is_own',0)->order('id','desc')->find();
|
|
if($bank_list1){
|
|
$bank_info = Bank::where('id', $bank_list1['bank_id'])->findOrEmpty();
|
|
$bank_list1['bank_name'] = !$bank_info->isEmpty() ? $bank_info['name'] : '';
|
|
$bank_list1['bank_image'] = !$bank_info->isEmpty() ? $bank_info['image'] : '';
|
|
}
|
|
$bank_list2 = MerchantBank::where($where)->where('is_own',1)->order('id','desc')->find();
|
|
if($bank_list2){
|
|
$bank_info = Bank::where('id', $bank_list2['bank_id'])->findOrEmpty();
|
|
$bank_list2['bank_name'] = !$bank_info->isEmpty() ? $bank_info['name'] : '';
|
|
$bank_list2['bank_image'] = !$bank_info->isEmpty() ? $bank_info['image'] : '';
|
|
}
|
|
return $this->success('请求成功', [
|
|
'balance' => $supplier['mer_money'],
|
|
'bank_list' => [$bank_list1,$bank_list2]
|
|
]);
|
|
}
|
|
$bank_list = MerchantBank::where($where)->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' => $supplier['mer_money'],
|
|
'bank_list' => $bank_list
|
|
]);
|
|
// }else{
|
|
// return $this->fail('未找到商户或供应商信息');
|
|
// }
|
|
}
|
|
|
|
//用户提现操作
|
|
public function withdraw()
|
|
{
|
|
$params = (new MerchantWithdrawValidate())->post()->goCheck('withdraw');
|
|
$uid = $this->request->userId;
|
|
// $merchant = Merchant::where('uid',$uid)->findOrEmpty();
|
|
$supplier = Supplier::where('uid', $uid)->findOrEmpty();
|
|
if (!$supplier) {
|
|
return $this->fail('当前用户非供应商');
|
|
}
|
|
if ($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(),
|
|
];
|
|
$supplier->mer_money = bcsub($supplier->mer_money, $params['amount'], 2);
|
|
$supplier->save();
|
|
(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();
|
|
$supplier = $this->request->userInfo['supplier'];
|
|
if (!$supplier) {
|
|
return $this->fail('当前用户非供应商');
|
|
}
|
|
if ($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());
|
|
}
|
|
}
|