|
@@ -40,14 +40,14 @@ class UserExtract extends BaseModel
|
|
|
//已提现
|
|
|
const SUCCESS_STATUS = 1;
|
|
|
|
|
|
- protected static $extractType = ['alipay','bank','weixin'];
|
|
|
+ protected static $extractType = ['alipay', 'bank', 'weixin'];
|
|
|
|
|
|
- protected static $extractTypeMsg = ['alipay'=>'支付宝','bank'=>'银行卡','weixin'=>'微信'];
|
|
|
+ protected static $extractTypeMsg = ['alipay' => '支付宝', 'bank' => '银行卡', 'weixin' => '微信'];
|
|
|
|
|
|
protected static $status = array(
|
|
|
- -1=>'未通过',
|
|
|
- 0 =>'审核中',
|
|
|
- 1 =>'已提现'
|
|
|
+ -1 => '未通过',
|
|
|
+ 0 => '审核中',
|
|
|
+ 1 => '已提现'
|
|
|
);
|
|
|
|
|
|
/**
|
|
@@ -56,63 +56,69 @@ class UserExtract extends BaseModel
|
|
|
* @param array $data 提现详细信息
|
|
|
* @return bool
|
|
|
*/
|
|
|
- public static function userExtract($userInfo,$data){
|
|
|
- if(!in_array($data['extract_type'],self::$extractType))
|
|
|
- return self::setErrorInfo('提现方式不存在');
|
|
|
+ public static function userExtract($userInfo, $data)
|
|
|
+ {
|
|
|
+// if(!in_array($data['extract_type'],self::$extractType))
|
|
|
+// return self::setErrorInfo('提现方式不存在');
|
|
|
$userInfo = User::get($userInfo['uid']);
|
|
|
- $extractPrice = $userInfo['brokerage_price'];
|
|
|
- if($extractPrice < 0) return self::setErrorInfo('提现佣金不足'.$data['money']);
|
|
|
- if($data['money'] > $extractPrice) return self::setErrorInfo('提现佣金不足'.$data['money']);
|
|
|
- if($data['money'] <= 0) return self::setErrorInfo('提现佣金大于0');
|
|
|
- $balance = bcsub($userInfo['brokerage_price'],$data['money'],2);
|
|
|
- if($balance < 0) $balance=0;
|
|
|
+// $extractPrice = $userInfo['brokerage_price'];
|
|
|
+// if($extractPrice < 0) return self::setErrorInfo('提现佣金不足'.$data['money']);
|
|
|
+ $userMoney = UserMoney::initialUserMoney($userInfo['uid'], $data['money_type']);
|
|
|
+ if ($data['money'] > $userMoney['money']) return self::setErrorInfo('提现佣金不足' . $data['money']);
|
|
|
+ if ($data['money'] <= 0) return self::setErrorInfo('提现佣金大于0');
|
|
|
+ $balance = bcsub($userMoney['money'], $data['money'], 8);
|
|
|
+ if ($balance < 0) $balance = 0;
|
|
|
$insertData = [
|
|
|
'uid' => $userInfo['uid'],
|
|
|
- 'extract_type' => $data['extract_type'],
|
|
|
+ 'extract_type' => $data['extract_type'] ?? '',
|
|
|
'extract_price' => $data['money'],
|
|
|
'add_time' => time(),
|
|
|
'balance' => $balance,
|
|
|
- 'status' => self::AUDIT_STATUS
|
|
|
+ 'money_type' => $data['money_type'],
|
|
|
+ 'address' => $data['address'],
|
|
|
];
|
|
|
- if(isset($data['name']) && strlen(trim($data['name']))) $insertData['real_name'] = $data['name'];
|
|
|
- else $insertData['real_name'] = $userInfo['nickname'];
|
|
|
- if(isset($data['cardnum'])) $insertData['bank_code'] = $data['cardnum'];
|
|
|
- else $insertData['bank_code'] = '';
|
|
|
- if(isset($data['bankname'])) $insertData['bank_address']=$data['bankname'];
|
|
|
- else $insertData['bank_address']='';
|
|
|
- if(isset($data['weixin'])) $insertData['wechat'] = $data['weixin'];
|
|
|
- else $insertData['wechat'] = $userInfo['nickname'];
|
|
|
- if($data['extract_type'] == 'alipay'){
|
|
|
- if(!$data['alipay_code']) return self::setErrorInfo('请输入支付宝账号');
|
|
|
- $insertData['alipay_code'] = $data['alipay_code'];
|
|
|
- $mark = '使用支付宝提现'.$insertData['extract_price'].'元';
|
|
|
- }else if($data['extract_type'] == 'bank'){
|
|
|
- if(!$data['cardnum']) return self::setErrorInfo('请输入银行卡账号');
|
|
|
- if(!$data['bankname']) return self::setErrorInfo('请输入开户行信息');
|
|
|
- $mark = '使用银联卡'.$insertData['bank_code'].'提现'.$insertData['extract_price'].'元';
|
|
|
- }else if($data['extract_type'] == 'weixin'){
|
|
|
- if(!$data['weixin']) return self::setErrorInfo('请输入微信账号');
|
|
|
- $mark = '使用微信提现'.$insertData['extract_price'].'元';
|
|
|
- }
|
|
|
+// var_dump($insertData);
|
|
|
+// exit;
|
|
|
+// if (isset($data['name']) && strlen(trim($data['name']))) $insertData['real_name'] = $data['name'];
|
|
|
+// else $insertData['real_name'] = $userInfo['nickname'];
|
|
|
+// if (isset($data['cardnum'])) $insertData['bank_code'] = $data['cardnum'];
|
|
|
+// else $insertData['bank_code'] = '';
|
|
|
+// if (isset($data['bankname'])) $insertData['bank_address'] = $data['bankname'];
|
|
|
+// else $insertData['bank_address'] = '';
|
|
|
+// if (isset($data['weixin'])) $insertData['wechat'] = $data['weixin'];
|
|
|
+// else $insertData['wechat'] = $userInfo['nickname'];
|
|
|
+// if ($data['extract_type'] == 'alipay') {
|
|
|
+// if (!$data['alipay_code']) return self::setErrorInfo('请输入支付宝账号');
|
|
|
+// $insertData['alipay_code'] = $data['alipay_code'];
|
|
|
+// $mark = '使用支付宝提现' . $insertData['extract_price'] . '元';
|
|
|
+// } else if ($data['extract_type'] == 'bank') {
|
|
|
+// if (!$data['cardnum']) return self::setErrorInfo('请输入银行卡账号');
|
|
|
+// if (!$data['bankname']) return self::setErrorInfo('请输入开户行信息');
|
|
|
+// $mark = '使用银联卡' . $insertData['bank_code'] . '提现' . $insertData['extract_price'] . '元';
|
|
|
+// } else if ($data['extract_type'] == 'weixin') {
|
|
|
+// if (!$data['weixin']) return self::setErrorInfo('请输入微信账号');
|
|
|
+ $mark = '提币' . $insertData['extract_price'] . init_money_type()[$data['money_type']];
|
|
|
+// }
|
|
|
self::beginTrans();
|
|
|
- try{
|
|
|
+ try {
|
|
|
$res1 = self::create($insertData);
|
|
|
- if(!$res1) return self::setErrorInfo('提现失败');
|
|
|
- $res2 = User::edit(['brokerage_price'=>$balance],$userInfo['uid'],'uid');
|
|
|
- $res3 = UserBill::expend('余额提现',$userInfo['uid'],'now_money','extract',$data['money'],$res1['id'],$balance,$mark);
|
|
|
- $res = $res2 && $res3;
|
|
|
- if($res){
|
|
|
+ if (!$res1) return self::setErrorInfo('提现失败');
|
|
|
+// $res2 = User::edit(['brokerage_price' => $balance], $userInfo['uid'], 'uid');
|
|
|
+// $res3 = UserBill::expend('余额提现', $userInfo['uid'], 'now_money', 'extract', $data['money'], $res1['id'], $balance, $mark);
|
|
|
+ $res = $res1 && UserMoney::expendMoney($userInfo['uid'], $data['money_type'], $data['money'], 'extract', '申请提币', $mark);
|
|
|
+ if ($res) {
|
|
|
self::commitTrans();
|
|
|
- try{
|
|
|
- ChannelService::instance()->send('WITHDRAW', ['id'=>$res1->id]);
|
|
|
- }catch (\Exception $e){}
|
|
|
- event('AdminNewPush');
|
|
|
+// try {
|
|
|
+// ChannelService::instance()->send('WITHDRAW', ['id' => $res1->id]);
|
|
|
+// } catch (\Exception $e) {
|
|
|
+// }
|
|
|
+// event('AdminNewPush');
|
|
|
//发送模板消息
|
|
|
return true;
|
|
|
- }else return self::setErrorInfo('提现失败!');
|
|
|
- }catch (\Exception $e){
|
|
|
+ } else return self::setErrorInfo('提币失败!');
|
|
|
+ } catch (\Exception $e) {
|
|
|
self::rollbackTrans();
|
|
|
- return self::setErrorInfo('提现失败!');
|
|
|
+ return self::setErrorInfo('提币失败!');
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -131,9 +137,9 @@ class UserExtract extends BaseModel
|
|
|
* @param $uid
|
|
|
* @return mixed
|
|
|
*/
|
|
|
- public static function userExtractTotalPrice($uid,$status=self::SUCCESS_STATUS)
|
|
|
+ public static function userExtractTotalPrice($uid, $status = self::SUCCESS_STATUS)
|
|
|
{
|
|
|
- return self::where('uid',$uid)->where('status',$status)->value('SUM(extract_price)')?:0;
|
|
|
+ return self::where('uid', $uid)->where('status', $status)->value('SUM(extract_price)') ?: 0;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -146,11 +152,11 @@ class UserExtract extends BaseModel
|
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
|
* @throws \think\exception\DbException
|
|
|
*/
|
|
|
- public static function extractList($uid,$first = 0,$limit = 8)
|
|
|
+ public static function extractList($uid, $first = 0, $limit = 8)
|
|
|
{
|
|
|
- $list=UserExtract::where('uid',$uid)->order('add_time desc')->limit($first,$limit)->select();
|
|
|
- foreach($list as &$v){
|
|
|
- $v['add_time']=date('Y/m/d',$v['add_time']);
|
|
|
+ $list = UserExtract::where('uid', $uid)->order('add_time desc')->limit($first, $limit)->select();
|
|
|
+ foreach ($list as &$v) {
|
|
|
+ $v['add_time'] = date('Y/m/d', $v['add_time']);
|
|
|
}
|
|
|
return $list;
|
|
|
}
|
|
@@ -162,7 +168,7 @@ class UserExtract extends BaseModel
|
|
|
*/
|
|
|
public static function extractSum($uid)
|
|
|
{
|
|
|
- return self::where('uid',$uid)->where('status',1)->sum('extract_price');
|
|
|
+ return self::where('uid', $uid)->where('status', 1)->sum('extract_price');
|
|
|
}
|
|
|
|
|
|
}
|