Kirin 1 年間 前
コミット
7d75b51df2

+ 15 - 0
app/controller/api/v1/user/UserExchangeController.php

@@ -70,4 +70,19 @@ class UserExchangeController
         else
             return app('json')->fail('转换失败');
     }
+
+
+    public function brokerageToEnergy(Request $request)
+    {
+        [$price] = $request->postMore([
+            ['price', 0],
+        ], true);
+        if (!$price || $price <= 0) return app('json')->fail('充值金额不能为0元!');
+        $uid = (int)$request->uid();
+        $re = $this->services->importEnergy($uid, $price);
+        if ($re) {
+            return app('json')->successful('转入能量值成功');
+        }
+        return app('json')->fail('转入能量值失败');
+    }
 }

+ 8 - 0
app/services/user/UserBillServices.php

@@ -186,6 +186,14 @@ class UserBillServices extends BaseServices
             'status' => 1,
             'pm' => 1
         ],
+        'brokerage_to_energy' => [
+            'title' => '佣金转换到能量',
+            'category' => 'energy',
+            'type' => 'exchange_to_energy',
+            'mark' => '佣金转换到能量{%num%}',
+            'status' => 1,
+            'pm' => 1
+        ],
     ];
 
     /**

+ 7 - 0
app/services/user/UserBrokerageServices.php

@@ -82,6 +82,13 @@ class UserBrokerageServices extends BaseServices
             'status' => 1,
             'pm' => 0
         ],
+        'brokerage_to_energy' => [
+            'title' => '佣金转换到能量',
+            'type' => 'extract_energy',
+            'mark' => '转换到能量{%num%}',
+            'status' => 1,
+            'pm' => 0
+        ],
         'brokerage_refund' => [
             'title' => '退款退佣金',
             'type' => 'refund',

+ 41 - 0
app/services/user/UserExchangeServices.php

@@ -401,4 +401,45 @@ class UserExchangeServices extends BaseServices
                 return $this->dao->getGroupField($where, $SumField, $group);
         }
     }
+
+
+    /**
+     * 导入佣金到余额
+     * @param int $uid
+     * @param $price
+     * @return bool
+     */
+    public function importEnergy(int $uid, $price)
+    {
+        $switch = sys_config('brokerage_to_energy_switch', 1);
+        if (!$switch) throw new ValidateException('暂不支持');
+        /** @var UserServices $userServices */
+        $userServices = app()->make(UserServices::class);
+        $user = $userServices->getUserInfo($uid);
+        if (!$user) {
+            throw new ValidateException('数据不存在');
+        }
+        /** @var UserBrokerageServices $userBrokerageServices */
+        $userBrokerageServices = app()->make(UserBrokerageServices::class);
+        $broken_commission = $userBrokerageServices->getUserFrozenPrice($uid);
+        $commissionCount = bcsub((string)$user['brokerage_price'], (string)$broken_commission, 2);
+        if ($price > $commissionCount) {
+            throw new ValidateException('转入金额不能大于可提现佣金!');
+        }
+        return $this->transaction(function () use ($uid, $user, $price, $userServices) {
+            $edit_data = [];
+            $edit_data['energy'] = bcadd((string)$user['energy'], (string)$price, 2);
+            $edit_data['brokerage_price'] = $user['brokerage_price'] > $price ? bcsub((string)$user['brokerage_price'], (string)$price, 2) : 0;
+            //修改用户佣金、余额信息
+            $userServices->update($uid, $edit_data, 'uid');
+            /** @var UserBillServices $userMoneyServices */
+            $userMoneyServices = app()->make(UserBillServices::class);
+            //余额记录
+            $userMoneyServices->income('brokerage_to_energy', $uid, $price, $edit_data['energy'], 0);
+            //佣金提现记录
+            /** @var UserBrokerageServices $userBrokerageServices */
+            $userBrokerageServices = app()->make(UserBrokerageServices::class);
+            $userBrokerageServices->income('brokerage_to_energy', $uid, $price, $edit_data['brokerage_price'], 0);
+        });
+    }
 }

+ 9 - 7
app/services/user/UserRechargeServices.php

@@ -137,12 +137,12 @@ class UserRechargeServices extends BaseServices
                 case 'store':
                     $item['_recharge_type'] = '门店余额充值';
                     break;
-				case 'offline' :
-					$item['_recharge_type'] = "线下支付";
-					break;
-				case 'cash' :
-					$item['_recharge_type'] = "现金支付";
-					break;
+                case 'offline' :
+                    $item['_recharge_type'] = "线下支付";
+                    break;
+                case 'cash' :
+                    $item['_recharge_type'] = "现金支付";
+                    break;
                 default:
                     $item['_recharge_type'] = '其他充值';
                     break;
@@ -369,6 +369,8 @@ class UserRechargeServices extends BaseServices
      */
     public function importNowMoney(int $uid, $price)
     {
+        $switch = sys_config('brokerage_to_money_switch', 1);
+        if (!$switch) throw new ValidateException('暂不支持');
         /** @var UserServices $userServices */
         $userServices = app()->make(UserServices::class);
         $user = $userServices->getUserInfo($uid);
@@ -592,7 +594,7 @@ class UserRechargeServices extends BaseServices
                 } catch (\Exception $e) {
                     throw new ValidateException($e->getMessage());
                 }
-                return ['msg' => '','status' => 'SUCCESS', 'type' => $from, 'data' => ['order_id' => $recharge_data['order_id']]];
+                return ['msg' => '', 'status' => 'SUCCESS', 'type' => $from, 'data' => ['order_id' => $recharge_data['order_id']]];
                 break;
             default:
                 throw new ValidateException('缺少参数');

+ 3 - 2
route/api.php

@@ -378,8 +378,9 @@ Route::group('api', function () {
         Route::post('extract/cash', 'v1.user.UserExtractController/cash')->name('extractCash');//提现申请
 
 
-        Route::get('exchange/bank', 'v1.user.UserExchangeController/bank')->name('exchangeEnergyBank');//能量值提取
-        Route::post('exchange/energy', 'v1.user.UserExchangeController/exchange_energy')->name('exchangeEnergy');//能量值提取
+        Route::get('energy/bank', 'v1.user.UserExchangeController/bank')->name('exchangeEnergyBank');//能量值提取
+        Route::post('energy/exchange', 'v1.user.UserExchangeController/exchange_energy')->name('exchangeEnergy');//能量值提取
+        Route::post('energy/import', 'v1.user.UserExchangeController/brokerageToEnergy')->name('brokerageToEnergy');//能量值提取
 
 
         Route::post('extract/calculator', 'v1.user.UserExtractController/cash_calculator')->name('extractCalculator');//提现申请