|
|
@@ -78,8 +78,36 @@ class TaskPartnerProfits
|
|
78
|
78
|
|
|
79
|
79
|
public function partnerProfits($startTime = '', $endTime = '')
|
|
80
|
80
|
{
|
|
81
|
|
- $startTime = '2025-03-10';
|
|
82
|
|
- $endTime = '2025-03-30';
|
|
|
81
|
+
|
|
|
82
|
+ // 由于分红错误 需要对数据进行撤回
|
|
|
83
|
+ // $user_bill_list = Db::name("user_bill")
|
|
|
84
|
+ // ->where("title", '合伙人分佣')
|
|
|
85
|
+ // ->where("status", 1)
|
|
|
86
|
+ // ->whereBetween('create_time', ['2025-04-07 16:46:56', '2025-04-07 16:47:02'])
|
|
|
87
|
+ // ->select()
|
|
|
88
|
+ // ->toArray();
|
|
|
89
|
+ // $user_bill_uid_list = array_column($user_bill_list, null, 'uid');
|
|
|
90
|
+ //
|
|
|
91
|
+ // $user_sign_fugou_list = Db::name("user_sign_fugou")
|
|
|
92
|
+ // ->where("mark", '复购金')
|
|
|
93
|
+ // ->where("status", 1)
|
|
|
94
|
+ // ->whereBetween('settlement_time', ['2025-04-07 16:46:56', '2025-04-07 16:47:02'])
|
|
|
95
|
+ // ->select()
|
|
|
96
|
+ // ->toArray();
|
|
|
97
|
+ // $user_sign_fugou_uid_list = array_column($user_sign_fugou_list, null, 'uid');
|
|
|
98
|
+ //
|
|
|
99
|
+ // $old_user_weekaward_list = Db::name("old_user_weekaward")
|
|
|
100
|
+ //// ->where("mark", '复购金')
|
|
|
101
|
+ //// ->where("status", 1)
|
|
|
102
|
+ // ->whereBetween('create_time', [1744015616, 1744015622])
|
|
|
103
|
+ // ->select()
|
|
|
104
|
+ // ->toArray();
|
|
|
105
|
+ // $old_user_weekaward_list = array_column($old_user_weekaward_list, null, 'uid');
|
|
|
106
|
+
|
|
|
107
|
+ // return json($user_bill_list);
|
|
|
108
|
+
|
|
|
109
|
+ $startTime = '2025-03-31';
|
|
|
110
|
+ $endTime = '2025-04-06';
|
|
83
|
111
|
// 查询测试人员账号信息
|
|
84
|
112
|
//18973958920
|
|
85
|
113
|
//15186694339
|
|
|
@@ -250,14 +278,14 @@ class TaskPartnerProfits
|
|
250
|
278
|
//返回是数组,下标0是最小的值(业绩小的),下标1是最大的值(业绩大的)
|
|
251
|
279
|
$userPvSmallNum = $value['dividerPeoplePv'][$v]['sumOfOthers'] ?? 0;
|
|
252
|
280
|
// $myMixMoney = round($amount * ($userPvSmallNum / $sumOfOthersAll), 2);
|
|
253
|
|
- $myMixMoney = floor(($amount * (floor(($userPvSmallNum / $sumOfOthersAll) * 1000) / 1000)) * 100) / 100;
|
|
|
281
|
+ $myMixMoney = floor(($amount * (floor(($userPvSmallNum / $sumOfOthersAll) * 100000) / 100000)) * 100) / 100;
|
|
254
|
282
|
|
|
255
|
283
|
//个人双区总佣金 权重 计算
|
|
256
|
284
|
$myBill = $value['dividerPeoplePv'][$v]['maxValue'] ?? 0;
|
|
257
|
285
|
//中级合伙人。userid=17可以分到双区可分红的金额
|
|
258
|
286
|
//可分红的佣金 * (中级合伙人个人的双区总业绩 / 当前等级所有合伙人的双联盟业绩) = 当前用户可以获取到的分红佣金(双区联盟总业绩加权佣金),287742 * (61.95/431032)=41.36
|
|
259
|
287
|
// $myWeightMoney = round($amount * ($myBill / $maxValueAll), 2);
|
|
260
|
|
- $myWeightMoney = floor(($amount * (floor((($myBill + $userPvSmallNum) / ($maxValueAll + $sumOfOthersAll)) * 1000) / 1000)) * 100) / 100;
|
|
|
288
|
+ $myWeightMoney = floor(($amount * (floor((($myBill + $userPvSmallNum) / ($maxValueAll + $sumOfOthersAll)) * 100000) / 100000)) * 100) / 100;
|
|
261
|
289
|
|
|
262
|
290
|
|
|
263
|
291
|
$salesArr[$key]['dividerPeoplePv'][$v]['myWeightMoney'] = $myWeightMoney;
|
|
|
@@ -269,8 +297,19 @@ class TaskPartnerProfits
|
|
269
|
297
|
$allAward = $myWeightMoney + $myMixMoney;
|
|
270
|
298
|
|
|
271
|
299
|
//90%给佣金,10给复购金
|
|
272
|
|
- $yj_90 = $allAward * 0.9;
|
|
273
|
|
- $fg_10 = $allAward * 0.1;
|
|
|
300
|
+ $yj_90 = floor($allAward * 0.9 * 100) / 100;
|
|
|
301
|
+ $fg_10 = floor($allAward * 0.1 * 100) / 100;
|
|
|
302
|
+
|
|
|
303
|
+ // $yj_90 = bcsub($yj_90, $user_bill_uid_list[$v]['number'] ?? 0.00, 2);
|
|
|
304
|
+ //
|
|
|
305
|
+ // $fg_10 = bcsub($fg_10, $user_sign_fugou_uid_list[$v]['number'] ?? 0.00, 2);
|
|
|
306
|
+ //
|
|
|
307
|
+ // if ($yj_90 < 0) {
|
|
|
308
|
+ // $testRecord['yj_fushu'][] = ['uid' => $v, 'num' => floor($allAward * 0.9 * 100) / 100, 'exist' => $user_bill_uid_list[$v]['number'] ?? 0.00, 'yj' => $yj_90];
|
|
|
309
|
+ // }
|
|
|
310
|
+ // if ($fg_10 < 0) {
|
|
|
311
|
+ // $testRecord['fg_fushu'][] = ['uid' => $v, 'num' => floor($allAward * 0.1 * 100) / 100, 'exist' => $user_sign_fugou_uid_list[$v]['number'] ?? 0.00, 'fg' => $fg_10];
|
|
|
312
|
+ // }
|
|
274
|
313
|
|
|
275
|
314
|
|
|
276
|
315
|
$userdatassss = db::name("old_user_jbp")->where("id", $v)->find();
|
|
|
@@ -309,7 +348,7 @@ class TaskPartnerProfits
|
|
309
|
348
|
$this->bill_user_log111111($v, "合伙人分佣", $yj_90, "合伙人分佣明细入账", 11);//联创分佣明细2.0系统
|
|
310
|
349
|
$this->fugou_user_log($v, $fg_10, 16, 1, 1);//复购金明细入账
|
|
311
|
350
|
}
|
|
312
|
|
-
|
|
|
351
|
+ $salesArr['cs'] = $testRecord;
|
|
313
|
352
|
}
|
|
314
|
353
|
return json($salesArr);
|
|
315
|
354
|
}
|
|
|
@@ -320,13 +359,13 @@ class TaskPartnerProfits
|
|
320
|
359
|
public function getSpreadUserUidListByUidList(array $uidList)
|
|
321
|
360
|
{
|
|
322
|
361
|
$son_ids = Db::name("user")
|
|
323
|
|
- ->whereIn("spread_uid", $uidList)
|
|
324
|
|
- ->field("uid,spread_uid")
|
|
|
362
|
+ ->whereIn("level_id", $uidList)
|
|
|
363
|
+ ->field("uid,level_id")
|
|
325
|
364
|
->select()
|
|
326
|
365
|
->toArray();
|
|
327
|
366
|
$new_array_ids = [];
|
|
328
|
367
|
foreach ($son_ids as $key => $value) {
|
|
329
|
|
- $new_array_ids[$value['spread_uid']][] = $value['uid'];
|
|
|
368
|
+ $new_array_ids[$value['level_id']][] = $value['uid'];
|
|
330
|
369
|
}
|
|
331
|
370
|
return $new_array_ids;
|
|
332
|
371
|
}
|
|
|
@@ -354,8 +393,8 @@ class TaskPartnerProfits
|
|
354
|
393
|
public function getSpreadUserUidAccountListByUidList($uid, $account = '')
|
|
355
|
394
|
{
|
|
356
|
395
|
$son_ids = Db::name("user")
|
|
357
|
|
- ->where("spread_uid", $uid)
|
|
358
|
|
- ->field("uid,spread_uid,account")
|
|
|
396
|
+ ->where("level_id", $uid)
|
|
|
397
|
+ ->field("uid,level_id,account")
|
|
359
|
398
|
->select()
|
|
360
|
399
|
->toArray();
|
|
361
|
400
|
$new_array_ids = [];
|
|
|
@@ -363,7 +402,7 @@ class TaskPartnerProfits
|
|
363
|
402
|
$childList = $this->getSpreadUserUidAccountListByUidList($value['uid'], $value['account']);
|
|
364
|
403
|
$new_array_ids[] = [
|
|
365
|
404
|
'当前用户ID' => $value['uid'],
|
|
366
|
|
- '当前用户的上级用户ID' => $value['spread_uid'],
|
|
|
405
|
+ '当前用户的上级用户ID' => $value['level_id'],
|
|
367
|
406
|
'用户账号(手机号)' => $value['account'],
|
|
368
|
407
|
'当前用户的下级用户列表' => $childList
|
|
369
|
408
|
];
|
|
|
@@ -381,7 +420,7 @@ class TaskPartnerProfits
|
|
381
|
420
|
private function getSubordinatesRecursively(int $uid, array &$subordinates = []): array
|
|
382
|
421
|
{
|
|
383
|
422
|
$subUidList = Db::name("user")
|
|
384
|
|
- ->where("spread_uid", $uid) // 直接使用 $uid, 不需要 whereIn
|
|
|
423
|
+ ->where("level_id", $uid) // 直接使用 $uid, 不需要 whereIn
|
|
385
|
424
|
->field("uid") //只需要查询uid
|
|
386
|
425
|
->select()
|
|
387
|
426
|
->toArray();
|
|
|
@@ -405,7 +444,7 @@ class TaskPartnerProfits
|
|
405
|
444
|
public function getAllSubordinates(int $uid, array &$allSubordinates = []): array
|
|
406
|
445
|
{
|
|
407
|
446
|
$subUidList = Db::name("user")
|
|
408
|
|
- ->where("spread_uid", $uid)
|
|
|
447
|
+ ->where("level_id", $uid)
|
|
409
|
448
|
->column("uid"); // 使用 column 方法直接获取 uid 数组
|
|
410
|
449
|
|
|
411
|
450
|
if (!empty($subUidList)) {
|
|
|
@@ -439,7 +478,7 @@ class TaskPartnerProfits
|
|
439
|
478
|
}
|
|
440
|
479
|
$processed[] = $currentUid;
|
|
441
|
480
|
$subUidList = Db::name("user")
|
|
442
|
|
- ->where("spread_uid", $currentUid)
|
|
|
481
|
+ ->where("level_id", $currentUid)
|
|
443
|
482
|
->column("uid");
|
|
444
|
483
|
|
|
445
|
484
|
if (!empty($subUidList)) {
|
|
|
@@ -470,8 +509,8 @@ class TaskPartnerProfits
|
|
470
|
509
|
if (empty($currentUids)) continue; //没有新的需要处理的
|
|
471
|
510
|
$processed = array_merge($processed, $currentUids);//记录
|
|
472
|
511
|
$subUidList = Db::name("user")
|
|
473
|
|
- ->whereIn("spread_uid", $currentUids)
|
|
474
|
|
- ->field("uid,spread_uid") // 需要查询 spread_uid 用于后续分组
|
|
|
512
|
+ ->whereIn("level_id", $currentUids)
|
|
|
513
|
+ ->field("uid,level_id") // 需要查询 level_id 用于后续分组
|
|
475
|
514
|
->select()
|
|
476
|
515
|
->toArray();
|
|
477
|
516
|
|
|
|
@@ -487,7 +526,7 @@ class TaskPartnerProfits
|
|
487
|
526
|
}
|
|
488
|
527
|
$allSubordinatesMap = [];
|
|
489
|
528
|
foreach ($allSubordinates as $item) {
|
|
490
|
|
- $allSubordinatesMap[$item['spread_uid']][] = $item['uid'];
|
|
|
529
|
+ $allSubordinatesMap[$item['level_id']][] = $item['uid'];
|
|
491
|
530
|
}
|
|
492
|
531
|
|
|
493
|
532
|
//3. 递归的将查到的下级进行分组
|