Kirin 4 년 전
부모
커밋
44a38939ad
3개의 변경된 파일82개의 추가작업 그리고 28개의 파일을 삭제
  1. 8 0
      app/admin/model/system/SystemUserTask.php
  2. 29 28
      app/api/controller/PublicController.php
  3. 45 0
      app/models/system/SystemUserTask.php

+ 8 - 0
app/admin/model/system/SystemUserTask.php

@@ -115,6 +115,14 @@ class SystemUserTask extends BaseModel
             'min_number' => 0,
             'unit' => 'T'
         ],
+        [
+            'type' => 'SmallGroupHashRate',
+            'name' => '团队小区算力达到{$num}',
+            'real_name' => '团队小区算力',
+            'max_number' => 0,
+            'min_number' => 0,
+            'unit' => 'T'
+        ],
     ];
 
     public function profile()

+ 29 - 28
app/api/controller/PublicController.php

@@ -14,6 +14,7 @@ use app\models\system\Express;
 use app\models\system\SystemCity;
 use app\models\system\SystemStore;
 use app\models\system\SystemStoreStaff;
+use app\models\system\SystemUserTask;
 use app\models\trade\CashTradeOrder;
 use app\models\trade\ZtpayCallback;
 use app\models\user\UserBill;
@@ -50,35 +51,35 @@ class PublicController
 
     public function test(Request $request)
     {
-
+        SystemUserTask::SmallGroupHashRate(1, 1);
 //        UserMiningMachine::dayMining();
-        $money_types = MiningMachine::group('get_money_type')->field('COUNT(id),get_money_type')->select();
-        $day_gets = [];
-        foreach ($money_types as $v) {
-            $day_gets[$v['get_money_type']] = get_hpool_price($v['get_money_type']);
-        }
-////        var_dump($day_gets);
-//
-        $uid = $request->post('uid', '');
-        $umid = $request->post('umid', '');
-        $num = $request->post('num', 0);
-        $price = $day_gets['XCH'];
-        $time = time();
-        $day_get = bcmul($price, $num, 8);
-        $service_ratio = 0.8;
-        $day_service_get = bcmul($service_ratio, $day_get, 8);
-        $day_real_get = $day_service_get;
-        if ($day_real_get > 0) {
-            UserMining::create([
-                'umid' => $umid,
-                'get_money' => $day_real_get,
-                'get_money_type' => 'XCH',
-                'add_time' => $time,
-                'add_date' => date('Y-m-d', $time),
-            ]) && UserMoney::incomeMoney($uid, 'XCH', bcadd($day_real_get, 0, 8), 'mining', '挖矿', '第一阶段每日释放' . $day_get . 'XCH' . ',扣除技术服务费后实际到账' . $day_real_get . 'XCH')
-            && UserMiningMachine::sendGroupAward($uid, 'XCH', bcadd($day_real_get, 0, 8))
-            && UserMiningMachine::sendSystemAward($uid, 'XCH', bcadd($day_real_get, 0, 8));
-        }
+//        $money_types = MiningMachine::group('get_money_type')->field('COUNT(id),get_money_type')->select();
+//        $day_gets = [];
+//        foreach ($money_types as $v) {
+//            $day_gets[$v['get_money_type']] = get_hpool_price($v['get_money_type']);
+//        }
+//////        var_dump($day_gets);
+////
+//        $uid = $request->post('uid', '');
+//        $umid = $request->post('umid', '');
+//        $num = $request->post('num', 0);
+//        $price = $day_gets['XCH'];
+//        $time = time();
+//        $day_get = bcmul($price, $num, 8);
+//        $service_ratio = 0.8;
+//        $day_service_get = bcmul($service_ratio, $day_get, 8);
+//        $day_real_get = $day_service_get;
+//        if ($day_real_get > 0) {
+//            UserMining::create([
+//                'umid' => $umid,
+//                'get_money' => $day_real_get,
+//                'get_money_type' => 'XCH',
+//                'add_time' => $time,
+//                'add_date' => date('Y-m-d', $time),
+//            ]) && UserMoney::incomeMoney($uid, 'XCH', bcadd($day_real_get, 0, 8), 'mining', '挖矿', '第一阶段每日释放' . $day_get . 'XCH' . ',扣除技术服务费后实际到账' . $day_real_get . 'XCH')
+//            && UserMiningMachine::sendGroupAward($uid, 'XCH', bcadd($day_real_get, 0, 8))
+//            && UserMiningMachine::sendSystemAward($uid, 'XCH', bcadd($day_real_get, 0, 8));
+//        }
     }
 
     public function TRC20CashAdmin(Request $request)

+ 45 - 0
app/models/system/SystemUserTask.php

@@ -127,6 +127,14 @@ class SystemUserTask extends BaseModel
             'min_number' => 0,
             'unit' => 'T'
         ],
+        [
+            'type' => 'SmallGroupHashRate',
+            'name' => '团队小区算力达到{$num}',
+            'real_name' => '团队小区算力',
+            'max_number' => 0,
+            'min_number' => 0,
+            'unit' => 'T'
+        ],
     ];
 
     public function profile()
@@ -190,6 +198,43 @@ class SystemUserTask extends BaseModel
         return ['还需团队算力{$num}T', $countPay, $isComplete];
     }
 
+
+    /**
+     * 个人算力
+     * @param int $task_id 任务id
+     * @param int $uid 用户id
+     * @param int $start_time 开始时间
+     * @param int $number 限定时间
+     * @return boolean
+     * */
+    public static function SmallGroupHashRate($task_id, $uid = 0, $start_time = 0, $number = 0)
+    {
+        $isComplete = false;
+        //包括自己在内合计三层用户uid
+//        $uids = [$uid];
+        $children_uids = [$uid];
+        $countPay = [];
+        $max = -1000;
+        foreach ($children_uids as $v) {
+            $uids = [$v];
+            $children_uids_sub = [$v];
+            while (count($children_uids_sub)) {
+                $children_uids = User::where('spread_uid', 'in', $children_uids)->column('uid');
+                if (count($children_uids)) {
+                    $uids = array_merge($uids, $children_uids);
+                }
+            }
+            $all = UserMiningMachine::where('paid', 1)->where('status', 'in', [0, 1])->where('mining_end_time', '>', time())->where('uid', 'in', $uids)->sum('num');
+            if ($max < $all) $max = $all;
+            $countPay[] = $all;
+        }
+        $sum = array_sum($countPay) - $max;
+        var_dump($max);
+        var_dump($sum);
+        if ($sum >= $number) $isComplete = UserTaskFinish::setFinish($uid, $task_id) ? true : false;
+        return ['还需团队小区算力{$num}T', $sum, $isComplete];
+    }
+
     /**
      * 团队算力
      * @param int $task_id 任务id