Просмотр исходного кода

修改合伙人-股权-联创规则1.1

chengzhiyixia 1 год назад
Родитель
Сommit
cf9ed97b4a

+ 167 - 118
app/controller/api/store/merchant/Taskorder.php

@@ -544,6 +544,56 @@ var_dump(  $yj_amount_90);
544 544
 //利润分配 end
545 545
 
546 546
    }
547
+
548
+   public function getTeamPvByTime($timePeriod = 'last_week') {
549
+   // 定义时间区间
550
+   $startTime = '';
551
+   $endTime = '';
552
+
553
+   if ($timePeriod == 'last_week') {
554
+       // 上周的时间区间
555
+       $startTime = '2025-02-10 00:00:00'; // 上周星期一的开始时间
556
+       $endTime = '2025-02-16 23:59:59'; // 上周星期日的结束时间
557
+   } elseif ($timePeriod == 'this_week') {
558
+       // 这周的时间区间
559
+       $startTime = '2025-02-17 00:00:00'; // 这周星期一的开始时间
560
+       $endTime = '2025-02-23 23:59:59'; // 这周星期日的结束时间
561
+   } else {
562
+       return "Invalid time period specified.";
563
+   }
564
+
565
+   // 查询指定时间区间内的所有订单,并排除 pay_time 为 NULL 的订单
566
+   $orders = Db::name("store_order")
567
+               ->whereIn('status', [0, 1, 2, 3])
568
+               ->whereIn("total_price", [1180, 11800, 10620, 2360, 9440])
569
+               ->whereBetween("pay_time", [$startTime, $endTime])
570
+               ->whereNotNull("pay_time") // 排除 pay_time 为 NULL 的订单
571
+               ->select();
572
+
573
+   // 计算总业绩
574
+   $totalPv = 0;
575
+   foreach ($orders as $order) {
576
+       switch ($order['total_price']) {
577
+           case 1180:
578
+               $totalPv += 700;
579
+               break;
580
+           case 11800:
581
+               $totalPv += 7000;
582
+               break;
583
+           case 10620:
584
+               $totalPv += 6300;
585
+               break;
586
+           case 2360:
587
+               $totalPv += 1400;
588
+               break;
589
+           case 9440:
590
+               $totalPv += 5600;
591
+               break;
592
+       }
593
+   }
594
+
595
+   return $totalPv;
596
+}
547 597
    
548 598
   
549 599
     public function lst1()
@@ -557,21 +607,27 @@ var_dump(  $yj_amount_90);
557 607
         //         Db::name("user")->where("uid",$v['uid'])->update(["user_group"=>3]);
558 608
         //     }
559 609
         // }
560
-       
561
-       
562
-       $ss = $this->getbig_samll_datas(17);
563
-       var_dump($ss);
610
+
611
+         // 查询当前用户及其子级的所有订单
612
+        //$totalPv = $this->getTeamPvByTime('this_week');
613
+
614
+    
615
+    //    var_dump($totalPv);return;    
616
+    
617
+    //    $ss = $this->getbig_samll_datas(17);
618
+    //    var_dump($ss);
564 619
 
565 620
         // return;
566 621
      
567 622
         // $store_product_datas = Db::name('old_user_of_goods_old')->select();
568 623
        
569
-        $week_record = 45500 + 1400 + 60000; //20250218
624
+        //$week_record = 45500 + 1400 + 60000; //20250218
625
+        $week_record =23800; //20250222
570 626
 
627
+   
571 628
 return;
572 629
 
573
-
574
-        $stock_comm = round($week_record * 0.05 ,2);
630
+       // $stock_comm = round($week_record * 0.05 ,2);
575 631
      //var_dump($week_record);return;
576 632
 
577 633
         // $team_small_big_amount = $this->getbig_samll_datas(17);//下标0是大部门,下标1是小部门
@@ -655,7 +711,7 @@ return;
655 711
       foreach ($list as $key => $value) {
656 712
           # code...
657 713
           $sales_incentive = $this->getStarLevel($value['uid']);//获取个人共建联盟和个人联盟所有金额,来对比星级联盟列表中处于那个阶段的 用户星级
658
-          //var_dump( $sales_incentive);return;
714
+         // var_dump( $sales_incentive);return;
659 715
           //这里的意思是将user_starlevel表中新增一个键名为divider_people,然后把符合当前合伙人级别的id都装进去
660 716
           //分红比例
661 717
           $rate_sales = isset($sales_incentive['profit_rate']) ? $sales_incentive['profit_rate'] :0; //profit_rate是分红的比例
@@ -810,19 +866,7 @@ $sales_arr[2]['divider_people'] = array_values($intermediate);
810 866
                 'create_time'=>date('Y-m-d H:i:s')
811 867
                ];
812 868
                $con_data = Db::name('test_log')->insert($datas_log);   //数据存到2.0数据表中    
813
-// var_dump("当前级别合伙人双联盟总业绩:" . $owner_bill);
814
-// var_dump("当前级别合伙人小区总业绩:".$small_ow_bill);
815
-// var_dump("当前级别合伙人可分红佣金:" .$amont);
816
-// var_dump("当前级别合伙人可分红总佣金:" .$fs_money_nums);
817 869
 
818
-
819
-
820
- //$datauser = db::name("user")->where("uid",$v)->find();              
821
-//var_dump("uid:" . $v ." 用户:".$datauser['user_name']." 可获得双区分红佣金:" . $my_weight_money);//可获得的双区分红佣金
822
-//var_dump("uid:" . $v ." 用户:".$datauser['user_name']." 可获得的小区分红佣金:" . $my_mix_money);//可获得的小区(业绩小的部分)分红佣金
823
-
824
-             // $in_money += $my_weight_money;
825
-            // var_dump("//////");
826 870
         
827 871
 //die;
828 872
               # code...
@@ -833,8 +877,8 @@ $sales_arr[2]['divider_people'] = array_values($intermediate);
833 877
 
834 878
              Db::name("user")->where("uid",$v)->inc("amount_old",$all_award)->save();//不用冻结金额和提现额度来限制佣金发放
835 879
              Db::name("user")->where("uid",$v)->inc("brokerage_price",$all_award)->save();
836
-             //Db::name("user")->where("uid",$v)->inc("amount_old",$all_award)->save();
837
-              //$this->releaseTobeAmount1($v,$all_award,$output);//根据冻结金和提现额度来计算佣金的发放
880
+           
881
+           
838 882
               
839 883
              //if($res) {
840 884
                   $this->change_user_log($v,'amount_old',1,$all_award,"member_award","星级分红入账"."-".$value['title']);//释放佣金
@@ -988,6 +1032,7 @@ public function getWeekStartEnd()
988 1032
             $common_nums = $this->getCommonNums($user_id);
989 1033
 
990 1034
         }
1035
+       
991 1036
 
992 1037
         if(empty($person_money)) {
993 1038
             $person_nums = $this->getPersonageNums($user_id);//获取个人联盟(当前userid下面所属的所有的个人联盟的userid集合)
@@ -1010,9 +1055,14 @@ public function getWeekStartEnd()
1010 1055
             $person_nums = $this->getPersonageNums($user_id);
1011 1056
 
1012 1057
         }
1058
+
1059
+       
1060
+
1013 1061
           //计算个人在2.0新表中的业绩 start
1014 1062
        
1015 1063
           $team_small_big_amount = $this->getbig_samll_datas($user_id);//下标0是大部门,下标1是小部门
1064
+
1065
+
1016 1066
           $person_money +=  $team_small_big_amount[1];
1017 1067
           $team_money += $team_small_big_amount[0];
1018 1068
     
@@ -1335,7 +1385,7 @@ public function getteampv($common_nums) {
1335 1385
 }
1336 1386
 
1337 1387
     // 2.0 根据父级uid,找到当前用户下面的UID
1338
-    function getChildren($parentUid) {
1388
+    public  function getChildren($parentUid) {
1339 1389
         $result = []; // 用于存储所有子级的 uid
1340 1390
     
1341 1391
       
@@ -1348,23 +1398,53 @@ public function getteampv($common_nums) {
1348 1398
     }
1349 1399
 
1350 1400
     //根据传递的父级数组,返回他的对应子级的个数
1351
-public function getTeamSize($parentUids) {
1352
-    // 初始化结果数组
1353
-    $result = [];
1401
+    public function getTeamSize($parentUids) {
1402
+        // 初始化结果数组
1403
+        $result = [];
1404
+
1405
+        // 遍历每个父级ID
1406
+        foreach ($parentUids as $parentUid) {
1407
+            // 递归获取所有子级 UID
1408
+            $getRecursiveChildren = function ($parentUid) use (&$getRecursiveChildren) {
1409
+                $children = Db::name("user")
1410
+                            ->where("spread_uid", $parentUid)
1411
+                            ->column("uid");
1412
+
1413
+                // 确保返回的是数组
1414
+                if (!is_array($children)) {
1415
+                    return [];
1416
+                }
1354 1417
 
1355
-    // 遍历每个父级ID
1356
-    foreach ($parentUids as $parentUid) {
1357
-        // 递归获取所有子级 UID
1358
-        $getRecursiveChildren = function ($parentUid) use (&$getRecursiveChildren) {
1359
-            $children = Db::name("user")
1360
-                          ->where("spread_uid", $parentUid)
1361
-                          ->column("uid");
1418
+                $allChildren = [];
1419
+                foreach ($children as $childUid) {
1420
+                    $allChildren[] = $childUid;
1421
+                    $allChildren = array_merge($allChildren, $getRecursiveChildren($childUid));
1422
+                }
1423
+                return $allChildren;
1424
+            };
1362 1425
 
1363
-            // 确保返回的是数组
1364
-            if (!is_array($children)) {
1365
-                return [];
1366
-            }
1426
+            // 获取当前父级及其所有子级的 UID
1427
+            $allUids = array_merge([$parentUid], $getRecursiveChildren($parentUid));
1428
+
1429
+            // 计算总个数(包括父级自身)
1430
+            $totalUids = count($allUids);
1431
+
1432
+            // 将结果存入数组
1433
+            $result[] = [
1434
+                'parent_uid' => $parentUid,
1435
+                'total_count' => $totalUids
1436
+            ];
1437
+        }
1367 1438
 
1439
+        return $result;
1440
+    }
1441
+    // 递归获取所有子级 UID 的业绩
1442
+    public function getTeamPv11($parentUid) {
1443
+  
1444
+        $getRecursiveChildren = function ($parentUid) use (&$getRecursiveChildren) {
1445
+            $children = Db::name("user")
1446
+                        ->where("spread_uid", $parentUid)
1447
+                        ->column("uid");
1368 1448
             $allChildren = [];
1369 1449
             foreach ($children as $childUid) {
1370 1450
                 $allChildren[] = $childUid;
@@ -1373,71 +1453,41 @@ public function getTeamSize($parentUids) {
1373 1453
             return $allChildren;
1374 1454
         };
1375 1455
 
1376
-        // 获取当前父级及其所有子级的 UID
1456
+        // 获取当前用户及其所有子级的 UID
1377 1457
         $allUids = array_merge([$parentUid], $getRecursiveChildren($parentUid));
1378 1458
 
1379
-        // 计算总个数(包括父级自身)
1380
-        $totalUids = count($allUids);
1381
-
1382
-        // 将结果存入数组
1383
-        $result[] = [
1384
-            'parent_uid' => $parentUid,
1385
-            'total_count' => $totalUids
1386
-        ];
1387
-    }
1459
+        // 查询当前用户及其子级的所有订单
1460
+        $orders = Db::name("store_order")
1461
+                    ->whereIn('status', [0, 1, 2, 3])
1462
+                    ->whereIn("uid", $allUids)
1463
+                    ->whereIn("total_price", [1180, 11800, 10620, 2360, 9440])
1464
+                    ->select();
1388 1465
 
1389
-    return $result;
1390
-}
1391
-  // 递归获取所有子级 UID 的业绩
1392
-  public function getTeamPv11($parentUid) {
1393
-  
1394
-    $getRecursiveChildren = function ($parentUid) use (&$getRecursiveChildren) {
1395
-        $children = Db::name("user")
1396
-                      ->where("spread_uid", $parentUid)
1397
-                      ->column("uid");
1398
-        $allChildren = [];
1399
-        foreach ($children as $childUid) {
1400
-            $allChildren[] = $childUid;
1401
-            $allChildren = array_merge($allChildren, $getRecursiveChildren($childUid));
1466
+        // 计算总业绩
1467
+        $totalPv = 0;
1468
+        foreach ($orders as $order) {
1469
+            switch ($order['total_price']) {
1470
+                case 1180:
1471
+                    $totalPv += 700;
1472
+                    break;
1473
+                case 11800:
1474
+                    $totalPv += 7000;
1475
+                    break;
1476
+                case 10620:
1477
+                    $totalPv += 6300;
1478
+                    break;
1479
+                case 2360:
1480
+                    $totalPv += 1400;
1481
+                    break;
1482
+                case 9440:
1483
+                    $totalPv += 5600;
1484
+                    break;
1485
+            }
1402 1486
         }
1403
-        return $allChildren;
1404
-    };
1405
-
1406
-    // 获取当前用户及其所有子级的 UID
1407
-    $allUids = array_merge([$parentUid], $getRecursiveChildren($parentUid));
1408
-
1409
-    // 查询当前用户及其子级的所有订单
1410
-    $orders = Db::name("store_order")
1411
-                ->whereIn('status', [0, 1, 2, 3])
1412
-                ->whereIn("uid", $allUids)
1413
-                ->whereIn("total_price", [1180, 11800, 10620, 2360, 9440])
1414
-                ->select();
1415 1487
 
1416
-    // 计算总业绩
1417
-    $totalPv = 0;
1418
-    foreach ($orders as $order) {
1419
-        switch ($order['total_price']) {
1420
-            case 1180:
1421
-                $totalPv += 700;
1422
-                break;
1423
-            case 11800:
1424
-                $totalPv += 7000;
1425
-                break;
1426
-            case 10620:
1427
-                $totalPv += 6300;
1428
-                break;
1429
-            case 2360:
1430
-                $totalPv += 1400;
1431
-                break;
1432
-            case 9440:
1433
-                $totalPv += 5600;
1434
-                break;
1435
-        }
1488
+        return $totalPv;
1436 1489
     }
1437 1490
 
1438
-    return $totalPv;
1439
-}
1440
-
1441 1491
 public function getTeamPv22($parentUid) {
1442 1492
     // 定义递归函数,用于获取所有子级 UID 的业绩
1443 1493
     $getRecursiveChildren = function ($parentUid) use (&$getRecursiveChildren) {
@@ -1582,11 +1632,9 @@ function getMaxAndSumRest($array) {
1582 1632
 //获取大小部门业绩(新表小标0是大部门,下标1是小部门)
1583 1633
 public function getbig_samll_datas($user_id) {
1584 1634
 
1585
-        $user_id = 17;
1635
+       
1586 1636
 
1587 1637
          $common_nums = $this->getCommonNums($user_id);
1588
-
1589
-        
1590 1638
          $child_nums = [];
1591 1639
          $result_big_team_arr = [];
1592 1640
          $get_teams_per_pv = [];//获取当前用户在2.0中小部门的总业绩
@@ -1652,27 +1700,28 @@ public function getbig_samll_datas($user_id) {
1652 1700
             //获取当前用户在2.0中小区的业绩 end
1653 1701
 
1654 1702
         }else{
1655
-                $get_teams_comm_datas = [];
1656
-                //当前用户在1.0没有下级,那直接在新系统2.0找下级获取数据,并区分大小部门
1657
-                $child_nums = $this->getChildren($user_id);
1658
-                //如果当前用户只有一个子级,那么就是默认一个大部门
1659
-                if(count($child_nums)==1){
1660
-                    //var_dump($child_nums);
1661
-                    //获取父级子级下面的个人
1662
-                    $get_teams_comm_pv = $this->getTeamPv11($child_nums[0]);//如果有多个父级ID,需要获取他们伞下的子级,所有的业绩进行
1663
-                   // var_dump($get_teams_comm_pv);
1664
-                   
1665
-                }else if(count($child_nums) > 1){
1666
-                 
1667
-                    foreach($child_nums as $v){
1668
-                    
1669
-                        $get_teams_comm_datas[] = $this->getTeamPv11($v);//如果有多个父级ID,需要获取他们伞下的子级,所有的业绩进行
1670
-                    }
1671
-                    $get_big_small_pv = $this->getMaxAndSumRest($get_teams_comm_datas);//区分大小部门业绩
1672
-                    //var_dump($get_big_small_pv);
1673
-                    $get_teams_comm_pv =  $get_big_small_pv['maxValue'];
1674
-                    $get_teams_per_pv  =  $get_big_small_pv['sumRest'];
1703
+
1704
+            $get_teams_comm_datas = [];
1705
+            //当前用户在1.0没有下级,那直接在新系统2.0找下级获取数据,并区分大小部门
1706
+            $child_nums = $this->getChildren($user_id);
1707
+            //如果当前用户只有一个子级,那么就是默认一个大部门
1708
+            if(count($child_nums)==1){
1709
+                //var_dump($child_nums);
1710
+                //获取父级子级下面的个人
1711
+                $get_teams_comm_pv = $this->getTeamPv11($child_nums[0]);//如果有多个父级ID,需要获取他们伞下的子级,所有的业绩进行
1712
+                // var_dump($get_teams_comm_pv);
1713
+                
1714
+            }else if(count($child_nums) > 1){
1715
+                
1716
+                foreach($child_nums as $v){
1717
+                
1718
+                    $get_teams_comm_datas[] = $this->getTeamPv11($v);//如果有多个父级ID,需要获取他们伞下的子级,所有的业绩进行
1675 1719
                 }
1720
+                $get_big_small_pv = $this->getMaxAndSumRest($get_teams_comm_datas);//区分大小部门业绩
1721
+                //var_dump($get_big_small_pv);
1722
+                $get_teams_comm_pv =  $get_big_small_pv['maxValue'];
1723
+                $get_teams_per_pv  =  $get_big_small_pv['sumRest'];
1724
+            }
1676 1725
        
1677 1726
         }
1678 1727
 

Разница между файлами не показана из-за своего большого размера
+ 32 - 1620
app/controller/api/store/merchant/Taskorderguquan.php


+ 12 - 11
app/controller/api/store/merchant/Taskorderlianc.php

@@ -297,7 +297,8 @@ class Taskorderlianc extends BaseController
297 297
         //return;
298 298
 
299 299
 
300
-        $week_record = 45500 + 1400 + 60000;
300
+       // $week_record = 45500 + 1400 + 60000;
301
+        $week_record = 23800;
301 302
 
302 303
         $originator_award = round(($week_record * 0.05),2);
303 304
 
@@ -351,17 +352,17 @@ class Taskorderlianc extends BaseController
351 352
                 # code...
352 353
                 $award = $value['people_award'];
353 354
 
354
-                Db::name("user")->where("uid",$v)->inc("brokerage_price",$award)->save();
355
-                $res = Db::name("user")->where("uid",$v)->inc("total_amount_old",$award)->save();
356
-                Db::name("user")->where("uid",$v)->inc("amount_old",$award)->save();//不用冻结金额和提现额度来限制佣金发放
357
-
358
-                //$this->releaseTobeAmount($v,$award,$output);根据冻结金和提现额度来计算佣金的发放
355
+                // Db::name("user")->where("uid",$v)->inc("brokerage_price",$award)->save();
356
+                // $res = Db::name("user")->where("uid",$v)->inc("total_amount_old",$award)->save();
357
+                // Db::name("user")->where("uid",$v)->inc("amount_old",$award)->save();//不用冻结金额和提现额度来限制佣金发放
358
+                
359
+                $res =true;
359 360
 
360 361
                 if($res) {
361
-                    //$this->bill_user_log($v,"联创分佣",$award,"联创分佣明细入账");//联创分佣明细2.0系统
362
+                  
362 363
 
363 364
                     $$count  = $count +1;
364
-                    $this->change_user_log($v,'amount_old',1,$award,"relation_profits","联创分红入账"."-".$value['title']);
365
+                    //$this->change_user_log($v,'amount_old',1,$award,"relation_profits","联创分红入账"."-".$value['title']);
365 366
                     //入账
366 367
                     $week_data = [];
367 368
                     $week_data['user_id'] =  $v;
@@ -371,15 +372,15 @@ class Taskorderlianc extends BaseController
371 372
                     $week_data['all_record'] =  $originator_award;
372 373
                     $week_data['all_amount'] =  $distribution_money;
373 374
                     $week_data['create_time'] = time();
374
-                    Db::name("old_user_originator")->insert($week_data);
375
+                   // Db::name("old_user_originator")->insert($week_data);
375 376
 
376 377
                     $userdatassss = db::name("old_user_jbp")->where("id",$v)->find();
377 378
                     $datas_log = [
378 379
                         'note'=>"名称:".  $userdatassss['nick_name']  . " 用户:".  $v . " 新增联创佣金:" . $award,
379 380
                         'create_time'=>date('Y-m-d H:i:s')
380 381
                     ];
381
-                    $con_data = Db::name('test_log')->insert($datas_log);   //数据存到2.0数据表中
382
-                    $this->bill_user_log111111($v,"联创分佣", $award,"联创明细入账");//股权分佣明细2.0系统
382
+                    Db::name('test_log')->insert($datas_log);   //数据存到2.0数据表中
383
+                   // $this->bill_user_log111111($v,"联创分佣", $award,"联创明细入账");//股权分佣明细2.0系统
383 384
 
384 385
                 }else {
385 386
                     // ..