Browse Source

fix(shared): 修复共富用户查询中的表关联和字段引用问题

- 在DAO层添加表别名和左连接以正确关联用户表和群组用户表
- 修改仓库层中的字段引用,将user_id改为a.user_id以匹配表别名
- 修改仓库层中的字段引用,将partner_level改为a.partner_level以匹配表别名
- 移除原有的群组用户查询逻辑,直接通过表关联进行群组筛选
- 更新群组筛选条件,将b.group_id作为查询条件替代原来的用户ID列表查询
shichen 5 months ago
parent
commit
2927599a1a

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

@@ -284,6 +284,8 @@ class SharedProsperityUserDao extends BaseDao
284 284
         $model = $this->getModel();
285 285
         try {
286 286
             $list = $model::getDB()
287
+                ->alias('a')
288
+                ->leftJoin('shared_prosperity_group_user b', 'a.user_id = b.user_id')
287 289
                 ->where($where)
288 290
                 ->with([
289 291
                     'user' => function ($query) {

+ 10 - 9
app/common/repositories/shared/SharedProsperityUserRepository.php

@@ -687,7 +687,7 @@ class SharedProsperityUserRepository extends BaseRepository
687 687
                 $uid = $userData->uid;
688 688
             }
689 689
 
690
-            $where[] = ['user_id', '=', $uid];
690
+            $where[] = ['a.user_id', '=', $uid];
691 691
         }
692 692
 
693 693
         // 昵称搜索
@@ -697,22 +697,23 @@ class SharedProsperityUserRepository extends BaseRepository
697 697
             if ($userData) {
698 698
                 $uid = $userData->uid;
699 699
             }
700
-            $where[] = ['user_id', '=', $uid];
700
+            $where[] = ['a.user_id', '=', $uid];
701 701
         }
702 702
 
703 703
         // 合伙人等级搜索
704 704
         if (isset($params['partner_level']) && $params['partner_level']) {
705
-            $where[] = ['partner_level', '=', $params['partner_level']];
705
+            $where[] = ['a.partner_level', '=', $params['partner_level']];
706 706
         }
707 707
 
708 708
         // 共富团等级搜索
709 709
         if (isset($params['user_group']) && $params['user_group']) {
710
-            /** @var SharedProsperityGroupUserDao $groupUserDao */
711
-            $groupUserDao = app()->make(SharedProsperityGroupUserDao::class);
712
-            $groupUserData = $groupUserDao->getUserByLevel($params['user_group']);
713
-            $uids = array_column($groupUserData['data'], 'user_id');
714
-            $where[] = ['user_id', 'in', $uids];
715
-            $page = 1;
710
+            // /** @var SharedProsperityGroupUserDao $groupUserDao */
711
+            // $groupUserDao = app()->make(SharedProsperityGroupUserDao::class);
712
+            // $groupUserData = $groupUserDao->getUserByLevel($params['user_group']);
713
+            // $uids = array_column($groupUserData['data'], 'user_id');
714
+            // $where[] = ['user_id', 'in', $uids];
715
+            // $page = 1;
716
+            $where[] = ['b.group_id', '=', $params['user_group']];
716 717
         }
717 718
 
718 719
         $list = $this->dao->adminList($where, $page);