|
|
@@ -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
|
|