Kirin 3 年之前
父节点
当前提交
e3ae4ef333

+ 43 - 0
app/api/controller/user/UserBillController.php

@@ -6,6 +6,7 @@ use app\admin\model\system\SystemAttachment;
 use app\models\mining\MiningMachine;
 use app\models\mining\UserMiningMachine;
 use app\models\mining\UserMiningRatio;
+use app\models\mining\UserMiningService;
 use app\models\routine\RoutineCode;
 use app\models\routine\RoutineQrcode;
 use app\models\store\StoreOrder;
@@ -425,4 +426,46 @@ class UserBillController
             return app('json')->fail('修改失败或者您没有修改什么');
         }
     }
+
+
+    public function setService($uid, Request $request)
+    {
+        $user = User::getUserInfo($uid);
+        if (!$user || $user['spread_uid'] != $request->uid()) {
+            return app('json')->fail('用户不合法');
+        }
+        $ratio = $request->post('ratio', 0);
+        $mid = $request->post('mid', 0);
+        if (!$mid || !MiningMachine::get($mid)) return app('json')->fail('矿机不合法');
+        $self = UserMiningService::where('mid', $mid)->where('uid', $request->uid())->find();
+        if ($ratio < $self['ratio']) {
+            return app('json')->fail('服务费比例不能低于自己');
+        }
+        $uids = User::where('spread_uid', $user['uid'])->column('uid');
+        $user2 = UserMiningService::where('mid', $mid)->where('uid', 'in', $uids)->max('ratio');
+        if ($user2 > 0 && $ratio > $user2) {
+            return app('json')->fail('服务费比例不能高于目标下级');
+        }
+        if ($ratio > MiningMachine::where('id', $mid)->value('service_ratio')) {
+            return app('json')->fail('服务费比例不能高于系统设置');
+        }
+        if (UserMiningService::where('mid', $mid)->where('uid', $uid)->find()) {
+            $res = UserMiningService::where('mid', $mid)->where('uid', $uid)
+                ->update(['ratio' => $ratio, 'update_time' => time(), 'update_uid' => $request->uid()]);
+        } else {
+            $res = UserMiningService::create([
+                'uid' => $uid,
+                'mid' => $mid,
+                'ratio' => $ratio,
+                'add_time' => time(),
+                'update_time' => time(),
+                'update_uid' => $request->uid(),
+            ]);
+        }
+        if ($res) {
+            return app('json')->success('修改成功');
+        } else {
+            return app('json')->fail('修改失败或者您没有修改什么');
+        }
+    }
 }

+ 1 - 1
app/api/controller/user/UserController.php

@@ -888,7 +888,7 @@ class UserController
         $where = [];
         if ($type) $where['type'] = $type;
         $count = UserBill::where('uid', $uid)->where($where)->where('category', $money_type)->count();
-        $list = UserBill::where('uid', $uid)->where($where)->where('category', $money_type)->order('add_time', 'desc')->page((int)$page, (int)$limit)->select()->each(function ($item) {
+        $list = UserBill::where('uid', $uid)->where($where)->where('category', $money_type)->order('add_time desc,id desc')->page((int)$page, (int)$limit)->select()->each(function ($item) {
             $item['add_time'] = time_format($item['add_time']);
         });
         $type_list = UserBill::where('uid', $uid)->where('category', $money_type)->field(['title', 'type'])

+ 5 - 1
app/models/mining/UserMiningMachine.php

@@ -133,6 +133,7 @@ class UserMiningMachine extends BaseModel
                         $day_get = bcmul($machine['day_get'] > 0 ? $machine['day_get'] : $day_gets[$machine['get_money_type']], $v['num'], 8);
                         $day_get = bcmul($day_get, 0.84, 8);
                         $service_ratio = bcsub(1, bcdiv($machine['service_ratio'], 100, 4), 4);
+                        $service_ratio = UserMiningService::where('uid', $v['uid'])->where('mid', $machine['id'])->value('ratio') ?: $service_ratio;
                         $day_service_get = bcmul($service_ratio, $day_get, 8);
                         $second_step_get_ratio = bcdiv($machine['second_step_get_ratio'], 100, 4);
                         $day_real_get = bcmul($second_step_get_ratio, $day_service_get, 8);
@@ -156,6 +157,7 @@ class UserMiningMachine extends BaseModel
 //                        var_dump($day_get);
                         $day_get = bcmul($day_get, 0.84, 8);
                         $service_ratio = bcsub(1, bcdiv($machine['service_ratio'], 100, 4), 4);
+                        $service_ratio = UserMiningService::where('uid', $v['uid'])->where('mid', $machine['id'])->value('ratio') ?: $service_ratio;
                         $day_service_get = bcmul($service_ratio, $day_get, 8);
                         $first_step_get_ratio = bcdiv($machine['first_step_get_ratio'], 100, 4);
                         $day_real_get = bcmul($first_step_get_ratio, $day_service_get, 8);
@@ -196,6 +198,7 @@ class UserMiningMachine extends BaseModel
         $spread = User::getUserInfo($user['spread_uid']);
         $res = true;
         $send = 0;
+        $v = 0;
         while ($spread) {
 //            $ratio = UserLevel::getUserLevelInfo(UserLevel::getUserLevel($spread['uid']), 'group_creat_award_ratio');
             $ratio = UserMiningRatio::where('uid', $uid)->where('mid', $mid)->value('ratio');
@@ -205,7 +208,8 @@ class UserMiningMachine extends BaseModel
             } else {
                 $brokerage = bcmul($num, bcdiv($ratio, 100, 4), 8);
                 if (bcsub($brokerage, $send, 8) > 0) {
-                    $v = UserLevel::getUserLevelInfo(UserLevel::getUserLevel($spread['uid']), 'level_id');
+                    $v++;
+                    //$v = UserLevel::getUserLevelInfo(UserLevel::getUserLevel($spread['uid']), 'level_id');
                     $res = $res && UserMoney::incomeMoney($spread['uid'], $money_type, bcsub($brokerage, $send, 8), 'group_create_brokerage', '分享算力', '获得分享算力V' . $v . ':' . $user['nickname'] . '(' . $user['uid'] . ')' . '今日矿机收益分红(' . $ratio . '%×' . $num . ')减去已发放级差' . $send . ',合计' . bcsub($brokerage, $send, 8) . init_money_type()[$money_type]);
                 }
                 $send = $brokerage;

+ 24 - 0
app/models/mining/UserMiningService.php

@@ -0,0 +1,24 @@
+<?php
+
+
+namespace app\models\mining;
+
+
+use crmeb\basic\BaseModel;
+use crmeb\traits\ModelTrait;
+
+class UserMiningService extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'user_mining_service';
+    use ModelTrait;
+
+}

+ 1 - 0
route/api/route.php

@@ -194,6 +194,7 @@ Route::group(function () {
     Route::post('combination/poster', 'activity.StoreCombinationController/poster')->name('combinationPoster');//拼团海报
     //账单类
     Route::post('spread/ratio/:uid', 'user.UserBillController/setReturnUper')->name('setReturnUper');//设置佣金比例
+    Route::post('spread/service/:uid', 'user.UserBillController/setService')->name('setService');//设置服务费比例
     Route::get('commission', 'user.UserBillController/commission')->name('commission');//推广数据 昨天的佣金 累计提现金额 当前佣金
     Route::post('spread/people', 'user.UserBillController/spread_people')->name('spreadPeople');//推荐用户
     Route::post('spread/people/all', 'user.UserBillController/spread_people_all')->name('spreadPeople');//推荐用户