Kirin 2 years ago
parent
commit
dfd128bcea

+ 2 - 2
app/admin/model/user/UserExtract.php

@@ -94,8 +94,8 @@ class UserExtract extends BaseModel
         $uid = $data['uid'];
         $status = -1;
         $User = User::where('uid', $uid)->find()->toArray();
-        UserBill::income('提现失败', $uid, 'now_money', 'extract', $extract_number, $id, bcadd($User['now_money'], $extract_number, 2), $mark);
-        User::bcInc($uid, 'brokerage_price', $extract_number, 'uid');
+        UserBill::income('提现失败', $uid, 'now_money', 'extract', $extract_number, $id, bcadd($User[$data['from']], $extract_number, 2), $mark);
+        User::bcInc($uid, $data['from'], $extract_number, 'uid');
         $extract_type = '未知方式';
         switch ($data['extract_type']) {
             case 'alipay':

+ 8 - 0
app/admin/view/finance/user_extract/index.php

@@ -118,6 +118,7 @@
                             <th class="text-center">编号</th>
                             <th class="text-center">用户信息</th>
                             <th class="text-center">提现金额</th>
+                            <th class="text-center">提现来源</th>
                             <th class="text-center">提现方式</th>
                             <th class="text-center">添加时间</th>
                             <th class="text-center">备注</th>
@@ -142,6 +143,13 @@
                                 手 续 费:{$vo.commission}<br>
                                 实际到账:{$vo.extract_price-$vo.commission_gf-$vo.commission_consumer-$vo.commission_yue-$vo.commission}<br>
                             </td>
+                            <td class="text-center" style="color: #00aa00;">
+                                {if condition="$vo['from'] eq 'brokerage_price'"}
+                                佣金
+                                {else/}
+                                余额
+                                {/if}
+                            </td>
                             <td class="text-left">
                                 {if condition="$vo['extract_type'] eq 'bank'"}
                                 姓名:{$vo.real_name}<br>

+ 30 - 19
app/api/controller/user/UserExtractController.php

@@ -71,6 +71,7 @@ class UserExtractController
             ['bankname', ''],
             ['cardnum', ''],
             ['weixin', ''],
+            ['from', 'brokerage_price']
         ], $request);
         if (time() - CacheService::get('UserExtract_' . $request->uid(), 0) < 10) return app('json')->fail('请勿连续多次提交');
         else CacheService::set('UserExtract_' . $request->uid(), time());
@@ -78,25 +79,35 @@ class UserExtractController
         //提现设置最低金额
         if ($extractInfo['money'] < sys_config('user_extract_min_price')) return app('json')->fail('金额小于最低提现金额');
         $user = $request->user();
-        $broken_time = intval(sys_config('extract_time', 0, true));
-        $search_time = time() - 86400 * $broken_time;
-        //可提现佣金
-        //返佣 +
-        $brokerage_commission = UserBill::where(['uid' => $user['uid'], 'category' => 'now_money', 'type' => 'brokerage'])
-            ->where('add_time', '>', date("Y-m-d H:i:s", $search_time))
-            ->where('pm', 1)
-            ->sum('number');
-        //退款退的佣金 -
-        $refund_commission = UserBill::where(['uid' => $user['uid'], 'category' => 'now_money', 'type' => 'brokerage'])
-            ->where('add_time', '>', date("Y-m-d H:i:s", $search_time))
-            ->where('pm', 0)
-            ->sum('number');
-        $data['broken_commission'] = bcsub($brokerage_commission, $refund_commission, 2);
-        if ($data['broken_commission'] < 0)
-            $data['broken_commission'] = 0;
-        $data['brokerage_price'] = $user['brokerage_price'];
-        //可提现佣金
-        $commissionCount = $data['brokerage_price'] - $data['broken_commission'];
+        switch ($extractInfo['from']) {
+            case 'brokerage_price':
+                $broken_time = intval(sys_config('extract_time', 0, true));
+                $search_time = time() - 86400 * $broken_time;
+                //可提现佣金
+                //返佣 +
+                $brokerage_commission = UserBill::where(['uid' => $user['uid'], 'category' => 'now_money', 'type' => 'brokerage'])
+                    ->where('add_time', '>', date("Y-m-d H:i:s", $search_time))
+                    ->where('pm', 1)
+                    ->sum('number');
+                //退款退的佣金 -
+                $refund_commission = UserBill::where(['uid' => $user['uid'], 'category' => 'now_money', 'type' => 'brokerage'])
+                    ->where('add_time', '>', date("Y-m-d H:i:s", $search_time))
+                    ->where('pm', 0)
+                    ->sum('number');
+                $data['broken_commission'] = bcsub($brokerage_commission, $refund_commission, 2);
+                if ($data['broken_commission'] < 0)
+                    $data['broken_commission'] = 0;
+                $data['brokerage_price'] = $user['brokerage_price'];
+                //可提现佣金
+                $commissionCount = $data['brokerage_price'] - $data['broken_commission'];
+                break;
+            case 'now_money':
+                $commissionCount = $user['now_money'];
+                break;
+            default:
+                return app('json')->fail('不支持的提现方式');
+                break;
+        }
         if ($extractInfo['money'] > $commissionCount) return app('json')->fail('可提现佣金不足');
         if (!$extractInfo['cardnum'] == '')
             if (!preg_match('/^([1-9]{1})(\d{14}|\d{18})$/', $extractInfo['cardnum']))

+ 15 - 10
app/models/user/UserExtract.php

@@ -61,15 +61,19 @@ class UserExtract extends BaseModel
         if (!in_array($data['extract_type'], self::$extractType))
             return self::setErrorInfo('提现方式不存在');
         $userInfo = User::get($userInfo['uid']);
-        $extractPrice = $userInfo['brokerage_price'];
+        $extractPrice = $userInfo[$data['from']];
         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);
-        $commission = bcmul($data['money'], bcdiv(sys_config('commission'), 100, 3), 2);
-        $commission_gf = bcmul($data['money'], bcdiv(sys_config('commission_gf'), 100, 3), 2);
-        $commission_consumer = bcmul($data['money'], bcdiv(sys_config('commission_consumer'), 100, 3), 2);
-        $commission_yue = bcmul($data['money'], bcdiv(sys_config('commission_yue'), 100, 3), 2);
+        $balance = bcsub($userInfo[$data['from']], $data['money'], 2);
+        if ($data['from'] = 'brokerage_price') {
+            $commission = bcmul($data['money'], bcdiv(sys_config('commission'), 100, 3), 2);
+            $commission_gf = bcmul($data['money'], bcdiv(sys_config('commission_gf'), 100, 3), 2);
+            $commission_consumer = bcmul($data['money'], bcdiv(sys_config('commission_consumer'), 100, 3), 2);
+            $commission_yue = bcmul($data['money'], bcdiv(sys_config('commission_yue'), 100, 3), 2);
+        } else {
+            $commission = bcmul($data['money'], bcdiv(sys_config('yue_extract_commission'), 100, 3), 2);
+        }
         if ($balance < 0) $balance = 0;
         $insertData = [
             'uid' => $userInfo['uid'],
@@ -79,9 +83,10 @@ class UserExtract extends BaseModel
             'balance' => $balance,
             'status' => self::AUDIT_STATUS,
             'commission' => $commission,
-            'commission_gf' => $commission_gf,
-            'commission_consumer' => $commission_consumer,
-            'commission_yue' => $commission_yue,
+            'commission_gf' => $commission_gf ?? 0,
+            'commission_consumer' => $commission_consumer ?? 0,
+            'commission_yue' => $commission_yue ?? 0,
+            'from' => $data['from'],
         ];
         if (isset($data['name']) && strlen(trim($data['name']))) $insertData['real_name'] = $data['name'];
         else $insertData['real_name'] = $userInfo['nickname'];
@@ -107,7 +112,7 @@ class UserExtract extends BaseModel
         try {
             $res1 = self::create($insertData);
             if (!$res1) return self::setErrorInfo('提现失败');
-            $res2 = User::edit(['brokerage_price' => $balance], $userInfo['uid'], 'uid');
+            $res2 = User::edit([$data['from'] => $balance], $userInfo['uid'], 'uid');
             $res3 = UserBill::expend('佣金提现', $userInfo['uid'], 'now_money', 'brokerage', $data['money'], $res1['id'], $balance, $mark);
             $res = $res2 && $res3;
             if ($res) {