瀏覽代碼

不在从老订单表中统计贡献值,并将spread_uid替换为level_id

sunxiaobiao 1 年之前
父節點
當前提交
ea4ffb34a0
共有 1 個文件被更改,包括 51 次插入46 次删除
  1. 51 46
      app/common/repositories/user/UserRepository.php

+ 51 - 46
app/common/repositories/user/UserRepository.php

@@ -3365,11 +3365,11 @@ class UserRepository extends BaseRepository
3365 3365
      * @throws DbException
3366 3366
      * @throws ModelNotFoundException
3367 3367
      */
3368
-    public function getUidContributeListBySpreadUidList(array $uidList)
3368
+    public function getUidContributeListByLevelIdList(array $uidList)
3369 3369
     {
3370 3370
         return Db::name("user")
3371
-            ->whereIn("spread_uid", $uidList)
3372
-            ->field("uid, contribute, spread_uid")
3371
+            ->whereIn("level_id", $uidList)
3372
+            ->field("uid, contribute, level_id")
3373 3373
             ->select()
3374 3374
             ->toArray();
3375 3375
     }
@@ -3420,7 +3420,7 @@ class UserRepository extends BaseRepository
3420 3420
             foreach(array_chunk($currentLevelIds, $chunkSize) as $chunk) {
3421 3421
                 $subordinatesChunk = Db::name('user')
3422 3422
                     ->field('uid') // 只需要下级的uid
3423
-                    ->whereIn('spread_uid', $chunk) // spread_uid 在当前层级用户块中
3423
+                    ->whereIn('level_id', $chunk) //level_id 在当前层级用户块中
3424 3424
                     ->where('status', 1)
3425 3425
                     ->select()
3426 3426
                     ->toArray();
@@ -3562,40 +3562,40 @@ class UserRepository extends BaseRepository
3562 3562
                 ];
3563 3563
             }
3564 3564
         }
3565
-        // 老订单 产生的贡献值 并未在 贡献记录表中
3566
-        $oldUserOfGoodsList = Db::name('old_user_of_goods')
3567
-            ->where('status', 1) // '是否完成 0, 未完成 1 已完成',
3568
-            ->whereIn('user_id', $uidList)
3569
-            ->field('user_id, money, status, create_time') // 只需要下级的uid和贡献值
3570
-            ->select()
3571
-            ->toArray();
3572
-        // 定义一个映射数组,用于存储不同 money 对应的 contribute 值
3573
-        $contributeMapping = [
3574
-            1180 => 700,
3575
-            10620 => 6300,
3576
-            11800 => 7000,
3577
-            9440 => 5600,
3578
-            2360 => 1400,
3579
-        ];
3580
-        // 遍历每个 $storeProductData
3581
-        foreach ($oldUserOfGoodsList as $storeProductData) {
3582
-            // 获取 money 的值
3583
-            $money = $storeProductData['money'];
3584
-            // 检查 money 是否在映射中
3585
-            if (isset($contributeMapping[$money])) {
3586
-                // 如果存在,则使用映射的值
3587
-                $contribute = $contributeMapping[$money];
3588
-            } else {
3589
-                // 否则按默认规则计算
3590
-                $contribute = bcmul($money, 0.7, 2);
3591
-            }
3592
-            // 将数据添加到 $userContributeTimeList
3593
-            $userContributeTimeMap[$storeProductData['user_id']][] = [
3594
-                'type' => 1,
3595
-                'contribute' => $contribute,
3596
-                'settlementTime' => $storeProductData['create_time']
3597
-            ];
3598
-        }
3565
+        // // 老订单 产生的贡献值 并未在 贡献记录表中
3566
+        // $oldUserOfGoodsList = Db::name('old_user_of_goods')
3567
+        //     ->where('status', 1) // '是否完成 0, 未完成 1 已完成',
3568
+        //     ->whereIn('user_id', $uidList)
3569
+        //     ->field('user_id, money, status, create_time') // 只需要下级的uid和贡献值
3570
+        //     ->select()
3571
+        //     ->toArray();
3572
+        // // 定义一个映射数组,用于存储不同 money 对应的 contribute 值
3573
+        // $contributeMapping = [
3574
+        //     1180 => 700,
3575
+        //     10620 => 6300,
3576
+        //     11800 => 7000,
3577
+        //     9440 => 5600,
3578
+        //     2360 => 1400,
3579
+        // ];
3580
+        // // 遍历每个 $storeProductData
3581
+        // foreach ($oldUserOfGoodsList as $storeProductData) {
3582
+        //     // 获取 money 的值
3583
+        //     $money = $storeProductData['money'];
3584
+        //     // 检查 money 是否在映射中
3585
+        //     if (isset($contributeMapping[$money])) {
3586
+        //         // 如果存在,则使用映射的值
3587
+        //         $contribute = $contributeMapping[$money];
3588
+        //     } else {
3589
+        //         // 否则按默认规则计算
3590
+        //         $contribute = bcmul($money, 0.7, 2);
3591
+        //     }
3592
+        //     // 将数据添加到 $userContributeTimeList
3593
+        //     $userContributeTimeMap[$storeProductData['user_id']][] = [
3594
+        //         'type' => 1,
3595
+        //         'contribute' => $contribute,
3596
+        //         'settlementTime' => date('Y-m-d H:i:s', $storeProductData['create_time'])
3597
+        //     ];
3598
+        // }
3599 3599
         foreach ($userContributeTimeMap as $key => &$subArray) {
3600 3600
             usort($subArray, function ($a, $b) {
3601 3601
                 return strtotime($a['settlementTime']) - strtotime($b['settlementTime']);
@@ -3630,9 +3630,9 @@ class UserRepository extends BaseRepository
3630 3630
             }
3631 3631
             // 2、获取用户贡献值 日志记录 对应时间
3632 3632
             $userContributeTimeMap = $this->getUserContributeTimeMapByUidList([$uid]);
3633
+            $myIdentityUpTime = '';
3633 3634
             if (!empty($userContributeTimeMap[$uid])) {
3634 3635
                 $myArriveNumOwn = 0;
3635
-                $myIdentityUpTime = '';
3636 3636
                 foreach ($userContributeTimeMap[$uid] as $value) {
3637 3637
                     if ($value['type'] == 1) {
3638 3638
                         $myArriveNumOwn += $value['contribute'];
@@ -3644,12 +3644,17 @@ class UserRepository extends BaseRepository
3644 3644
                         break;
3645 3645
                     }
3646 3646
                 }
3647
-                if (!empty($myIdentityUpTime)) {
3648
-                    $data['identity_up_time'] = $userData['identity_up_time'] = $myIdentityUpTime;
3649
-                    // 只升级 不降级
3650
-                    if ($userData['user_group'] == 1) {
3651
-                        $userData['user_group'] = $yeWuYuanId;
3652
-                    }
3647
+            }
3648
+            if (!empty($myIdentityUpTime)) {
3649
+                $data['identity_up_time'] = $userData['identity_up_time'] = $myIdentityUpTime;
3650
+                // 只升级 不降级
3651
+                if ($userData['user_group'] == 1) {
3652
+                    $userData['user_group'] = $yeWuYuanId;
3653
+                }
3654
+                $this->dao->update($uid, $data);
3655
+            } else {
3656
+                if ($userData['is_old'] == 1) {
3657
+                    $data['identity_up_time'] = $userData['identity_up_time'] = $userData['create_time'];
3653 3658
                     $this->dao->update($uid, $data);
3654 3659
                 }
3655 3660
             }
@@ -3720,7 +3725,7 @@ class UserRepository extends BaseRepository
3720 3725
         $userContributionSumMap = [];
3721 3726
         if ($depth >= 0 && !empty($startTime)) {
3722 3727
             // 获取用户的直属下级
3723
-            $uidContributeList = $this->getUidContributeListBySpreadUidList([$uid]);
3728
+            $uidContributeList = $this->getUidContributeListByLevelIdList([$uid]);
3724 3729
             $uidContributeUidList = array_column($uidContributeList, 'uid');
3725 3730
             $subordinatesOfCurrentLevelUidList = $this->getUserContributeByUidList($uidContributeUidList, $startTime, $endTime);
3726 3731