浏览代码

feat(admin): 添加共富团队等级修改功能

- 在路由文件中新增 updateGroup 接口路由
- 在控制器中实现 updateGroup 方法处理团队等级修改
- 新增 SharedProsperityUserGroupLog 模型用于记录团队变更日志
- 新增 SharedProsperityUserGroupLogDao 数据访问对象
- 在仓库类中添加 updateGroup 方法实现团队等级更新逻辑
- 添加团队变更记录日志功能并完善事务处理机制
shichen 4 月之前
父节点
当前提交
eac556e83e

+ 15 - 0
app/common/dao/shared/SharedProsperityUserGroupLogDao.php

@@ -0,0 +1,15 @@
1
+<?php
2
+
3
+namespace app\common\dao\shared;
4
+
5
+use app\common\dao\BaseDao;
6
+use app\common\model\shared\SharedProsperityUserGroupLog;
7
+use app\common\model\shared\SharedProsperityUserLevelLog;
8
+
9
+class SharedProsperityUserGroupLogDao extends BaseDao
10
+{
11
+    protected function getModel(): string
12
+    {
13
+        return SharedProsperityUserGroupLog::class;
14
+    }
15
+}

+ 18 - 0
app/common/model/shared/SharedProsperityUserGroupLog.php

@@ -0,0 +1,18 @@
1
+<?php
2
+
3
+namespace app\common\model\shared;
4
+
5
+use app\common\model\BaseModel;
6
+
7
+class SharedProsperityUserGroupLog extends BaseModel
8
+{
9
+    public static function tablePk(): ?string
10
+    {
11
+        return 'id';
12
+    }
13
+
14
+    public static function tableName(): string
15
+    {
16
+        return 'shared_prosperity_user_group_log';
17
+    }
18
+}

+ 51 - 0
app/common/repositories/shared/SharedProsperityUserRepository.php

@@ -5,6 +5,7 @@ namespace app\common\repositories\shared;
5 5
 use app\common\dao\shared\SharedProsperityGroupUserDao;
6 6
 use app\common\dao\shared\SharedProsperityRewardRecordDao;
7 7
 use app\common\dao\shared\SharedProsperityUserDao;
8
+use app\common\dao\shared\SharedProsperityUserGroupLogDao;
8 9
 use app\common\dao\shared\SharedProsperityUserLevelLogDao;
9 10
 use app\common\dao\shared\SharedProsperityUserParentLogDao;
10 11
 use app\common\dao\user\UserDao;
@@ -12,6 +13,8 @@ use app\common\dao\user\UserWithdrawalLimitRecordDao;
12 13
 use app\common\enum\CommonEnum;
13 14
 use app\common\enum\shared\SharedProsperityRewardRecordEnum;
14 15
 use app\common\enum\shared\SharedProsperityUserEnum;
16
+use app\common\model\shared\SharedProsperityGroupUser;
17
+use app\common\model\shared\SharedProsperityUserParentLog;
15 18
 use app\common\repositories\BaseRepository;
16 19
 use app\common\repositories\store\order\StoreCartRepository;
17 20
 use app\common\repositories\store\order\StoreOrderRepository;
@@ -849,6 +852,54 @@ class SharedProsperityUserRepository extends BaseRepository
849 852
         }
850 853
     }
851 854
 
855
+    /**
856
+     * @param $userId
857
+     * @param $groupId
858
+     * @param $remark
859
+     * @param $operator
860
+     * @return string|void
861
+     * @author 史晨
862
+     * @date 2026/3/17 17:19
863
+     * 更新用户分组
864
+     */
865
+    public function updateGroup($userId, $groupId, $remark, $operator)
866
+    {
867
+        $userGroup = SharedProsperityGroupUser::where(['user_id' => $userId, 'status' => 1])->find();
868
+        $userGroupId = $userGroup->group_id??0;
869
+        Db::startTrans();
870
+        try {
871
+            // 变更等级
872
+            if ($userGroup) {
873
+                $update = [
874
+                    'group_id' => $groupId,
875
+                    'status' => 1
876
+                ];
877
+                SharedProsperityGroupUser::update($update, ['user_id' => $userId]);
878
+            }else{
879
+                $insert = [
880
+                    'user_id' => $userId,
881
+                    'group_id' => $groupId,
882
+                    'status' => 1
883
+                ];
884
+                SharedProsperityGroupUser::create($insert);
885
+            }
886
+            // 记录日志
887
+            /** @var SharedProsperityUserGroupLogDao $logDao */
888
+            $logDao = app()->make(SharedProsperityUserGroupLogDao::class);
889
+            $logDao->create([
890
+                'user_id' => $userId,
891
+                'old_group' => $userGroupId,
892
+                'new_group' => $groupId,
893
+                'operator' => $operator,
894
+                'remark' => $remark
895
+            ]);
896
+            Db::commit();
897
+        } catch (\Exception $e) {
898
+            Db::rollback();
899
+            return $e->getMessage();
900
+        }
901
+    }
902
+
852 903
 
853 904
     /**
854 905
      * @param $userId

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

@@ -82,4 +82,28 @@ class SharedProsperityUser
82 82
         }
83 83
         return app('json')->success('更新成功');
84 84
     }
85
+
86
+    /**
87
+     * @return mixed
88
+     * @throws \think\db\exception\DataNotFoundException
89
+     * @throws \think\db\exception\DbException
90
+     * @throws \think\db\exception\ModelNotFoundException
91
+     * @author 史晨
92
+     * @date 2026/3/17 17:18
93
+     * 更新用户分组
94
+     */
95
+    public function updateGroup()
96
+    {
97
+        /** @var SharedProsperityUserRepository $repository */
98
+        $repository = app()->make(SharedProsperityUserRepository::class);
99
+        $params = app('request')->params(['user_id', 'group_id', 'remark']);
100
+        if (empty($params['user_id']) || empty($params['group_id'] || empty($params['remark']))) {
101
+            return app('json')->fail('参数错误');
102
+        }
103
+        $res = $repository->updateGroup($params['user_id'], $params['group_id'], $params['remark'], request()->adminId());
104
+        if (is_string($res)) {
105
+            return app('json')->fail($res);
106
+        }
107
+        return app('json')->success('更新成功');
108
+    }
85 109
 }

+ 2 - 0
route/admin.php

@@ -126,6 +126,8 @@ Route::group(config('admin.api_admin_prefix') . '/', function () {
126 126
         Route::get('sharedProsperity/user/updateReward', 'admin.system.sharedProsperity.SharedProsperityUser/updateReward');
127 127
         // 修改共富会员上级
128 128
         Route::get('sharedProsperity/user/updateParent', 'admin.system.sharedProsperity.SharedProsperityUser/updateParent');
129
+        // 修改共富团队等级
130
+        Route::get('sharedProsperity/user/updateGroup', 'admin.system.sharedProsperity.SharedProsperityUser/updateGroup');
129 131
 
130 132
         //组合数据
131 133
         Route::group('group', function () {