Bladeren bron

feat(admin): 添加共富会员奖励更新功能

- 在路由文件中新增共享繁荣用户奖励更新接口
- 在控制器中实现 updateReward 方法处理奖励更新逻辑
- 在 DAO 层添加 updateRewardByUserId 和 updateBrokeragePriceByUid 方法
- 在仓库层实现 updateReward 方法支持不同类型奖励更新
- 修复代码中的语法错误和格式问题
- 完善用户信息显示格式和数据查询逻辑
shichen 5 maanden geleden
bovenliggende
commit
e34e751581

+ 11 - 0
app/common/dao/shared/SharedProsperityUserDao.php

@@ -233,6 +233,17 @@ class SharedProsperityUserDao extends BaseDao
233 233
         }
234 234
     }
235 235
 
236
+    public function updateRewardByUserId($userId, $field, $value)
237
+    {
238
+        try {
239
+            /** @var SharedProsperityUser $model */
240
+            $model = $this->getModel();
241
+            return $model::getDB()->where('user_id', $userId)->inc($field,$value)->update();
242
+        } catch (\Exception $e) {
243
+            return 0;
244
+        }
245
+    }
246
+
236 247
     /**
237 248
      * 按合伙人等级分组获取用户
238 249
      * @return array [partner_level => [user_id1, user_id2, ...]]

+ 13 - 0
app/common/dao/user/UserDao.php

@@ -483,4 +483,17 @@ class UserDao extends BaseDao
483 483
             return [];
484 484
         }
485 485
     }
486
+
487
+    /**
488
+     * @param $uid
489
+     * @param $number
490
+     * @return mixed
491
+     * @author 史晨
492
+     * @date 2026/2/27 15:15
493
+     * 更新用户佣金
494
+     */
495
+    public function updateBrokeragePriceByUid($uid,$number)
496
+    {
497
+        return $this->getModel()::getDB()->where('uid', '=', $uid)->inc('brokerage_price',$number)->update();
498
+    }
486 499
 }

+ 37 - 11
app/common/repositories/shared/SharedProsperityUserRepository.php

@@ -532,19 +532,19 @@ class SharedProsperityUserRepository extends BaseRepository
532 532
     {
533 533
         /** @var SharedProsperityUserDao $userDao */
534 534
         $userDao = app()->make(SharedProsperityUserDao::class);
535
-        
535
+
536 536
         // 获取所有下级用户ID(包括自己)
537 537
         $subordinateIds = $userDao->getAllSubordinateUserIds($userId, true);
538 538
         if (empty($subordinateIds)) {
539 539
             return [];
540 540
         }
541
-        
541
+
542 542
         // 获取这些共富用户的基本信息(包含parent_id)
543 543
         $sharedUsers = $userDao->getSharedProsperityUserEntityListByUserIdList($subordinateIds);
544 544
         if (empty($sharedUsers)) {
545 545
             return [];
546 546
         }
547
-        
547
+
548 548
         // 获取用户昵称映射
549 549
         $userIds = array_map(function ($entity) {
550 550
             return $entity->getUserId();
@@ -554,9 +554,9 @@ class SharedProsperityUserRepository extends BaseRepository
554 554
         $userInfos = $userDao->getUserEntityListByUidList($userIds);
555 555
         $idToName = [];
556 556
         foreach ($userInfos as $userInfo) {
557
-            $idToName[$userInfo->getUid()] = $userInfo->getNickname()  . '(' . $userInfo->account .')' ?? ('用户' . $userInfo->getUid());
557
+            $idToName[$userInfo->getUid()] = $userInfo->getNickname() . '(' . $userInfo->account . ')' ?? ('用户' . $userInfo->getUid());
558 558
         }
559
-        
559
+
560 560
         // 构建节点数组
561 561
         $nodes = [];
562 562
         foreach ($sharedUsers as $sharedUser) {
@@ -566,7 +566,7 @@ class SharedProsperityUserRepository extends BaseRepository
566 566
                 'name' => $idToName[$sharedUser->getUserId()] ?? ('用户' . $sharedUser->getUserId()),
567 567
             ];
568 568
         }
569
-        
569
+
570 570
         // 构建树,以传入的用户为根节点
571 571
         $rootNode = $this->findNode($nodes, $userId);
572 572
         if (!$rootNode) {
@@ -579,7 +579,7 @@ class SharedProsperityUserRepository extends BaseRepository
579 579
         ];
580 580
         return [$tree];
581 581
     }
582
-    
582
+
583 583
     /**
584 584
      * 递归构建共富用户树
585 585
      * @param array $nodes 节点数组,每个节点包含 user_id, parent_id, name
@@ -601,7 +601,7 @@ class SharedProsperityUserRepository extends BaseRepository
601 601
         }
602 602
         return $branch;
603 603
     }
604
-    
604
+
605 605
     /**
606 606
      * 根据user_id查找节点名称
607 607
      * @param array $nodes
@@ -617,7 +617,7 @@ class SharedProsperityUserRepository extends BaseRepository
617 617
         }
618 618
         return null;
619 619
     }
620
-    
620
+
621 621
     /**
622 622
      * 根据user_id查找节点
623 623
      * @param array $nodes
@@ -672,12 +672,12 @@ class SharedProsperityUserRepository extends BaseRepository
672 672
             /** @var SharedProsperityGroupUserDao $groupUserDao */
673 673
             $groupUserDao = app()->make(SharedProsperityGroupUserDao::class);
674 674
             $groupUserData = $groupUserDao->getUserByLevel($params['user_group']);
675
-            $uids = array_column($groupUserData['data'],'user_id');
675
+            $uids = array_column($groupUserData['data'], 'user_id');
676 676
             $where[] = ['user_id', 'in', $uids];
677 677
             $page = 1;
678 678
         }
679 679
 
680
-        $list = $this->dao->adminList($where,$page);
680
+        $list = $this->dao->adminList($where, $page);
681 681
         return $list;
682 682
     }
683 683
 
@@ -693,4 +693,30 @@ class SharedProsperityUserRepository extends BaseRepository
693 693
     {
694 694
         return $this->dao->updateByUserId($userId, ['partner_level' => $level]);
695 695
     }
696
+
697
+    /**
698
+     * @param $userId
699
+     * @param $type
700
+     * @param $number
701
+     * @return int|mixed
702
+     * @author 史晨
703
+     * @date 2026/2/27 15:16
704
+     * 更新用户奖励
705
+     */
706
+    public function updateReward($userId, $type, $number)
707
+    {
708
+        $map = [
709
+            1001 => 'consumer_stocks',
710
+            1002 => 'withdrawal_limit',
711
+            1003 => 'pv'
712
+        ];
713
+        if (isset($map[$type])) {
714
+            $res = $this->dao->updateRewardByUserId($userId, $map[$type], $number);
715
+        } else {
716
+            /** @var UserDao $userDao */
717
+            $userDao = app()->make(UserDao::class);
718
+            $res = $userDao->updateBrokeragePriceByUid($userId, $number);;
719
+        }
720
+        return $res;
721
+    }
696 722
 }

+ 18 - 0
app/controller/admin/system/sharedProsperity/SharedProsperityUser.php

@@ -37,4 +37,22 @@ class SharedProsperityUser
37 37
         }
38 38
         return app('json')->success('更新成功');
39 39
     }
40
+
41
+    /**
42
+     * @return mixed
43
+     * @author 史晨
44
+     * @date 2026/2/27 15:16
45
+     * 更新用户奖励
46
+     */
47
+    public function updateReward()
48
+    {
49
+        /** @var SharedProsperityUserRepository $repository */
50
+        $repository = app()->make(SharedProsperityUserRepository::class);
51
+        $params = app('request')->params(['user_id', 'type', 'number']);
52
+        $res = $repository->updateReward($params['user_id'], $params['type'], $params['number']);
53
+        if (!$res) {
54
+            return app('json')->fail('更新失败');
55
+        }
56
+        return app('json')->success('更新成功');
57
+    }
40 58
 }

+ 2 - 0
route/admin.php

@@ -122,6 +122,8 @@ Route::group(config('admin.api_admin_prefix') . '/', function () {
122 122
         Route::get('sharedProsperity/user/list', 'admin.system.sharedProsperity.SharedProsperityUser/list');
123 123
         // 修改共富会员等级
124 124
         Route::get('sharedProsperity/user/updateLevel', 'admin.system.sharedProsperity.SharedProsperityUser/updateLevel');
125
+        // 修改共富会员奖励
126
+        Route::get('sharedProsperity/user/updateReward', 'admin.system.sharedProsperity.SharedProsperityUser/updateReward');
125 127
 
126 128
         //组合数据
127 129
         Route::group('group', function () {