Huanyi vor 2 Tagen
Ursprung
Commit
1c38a4c9f8

+ 1 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -127,6 +127,7 @@ tenant:
         - sys_dict_data
         - sys_dict_type
         - applet_setting
+        - sys_user_projects
         - sys_user_project
 
 # MyBatisPlus配置

+ 2 - 3
ruoyi-modules/ruoyi-system/src/main/java/com/yingpaipay/system/domain/SysUserProject.java → ruoyi-modules/ruoyi-system/src/main/java/com/yingpaipay/system/domain/SysUserProjects.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
-import org.dromara.common.tenant.core.TenantEntity;
 
 
 /**
@@ -15,8 +14,8 @@ import org.dromara.common.tenant.core.TenantEntity;
  */
 
 @Data
-@TableName("sys_user_project")
-public class SysUserProject {
+@TableName("sys_user_projects")
+public class SysUserProjects {
 
     @TableId(type = IdType.INPUT)
     private Long userId;

+ 14 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/yingpaipay/system/mapper/SysUserProjectsMapper.java

@@ -0,0 +1,14 @@
+package com.yingpaipay.system.mapper;
+
+import com.yingpaipay.system.domain.SysUserProjects;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * @Author: Huanyi
+ * @CreateTime: 2025-12-08
+ * @Description:
+ * @Version: 1.0
+ */
+
+public interface SysUserProjectsMapper extends BaseMapperPlus<SysUserProjects, SysUserProjects> {
+}

+ 6 - 7
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -11,8 +11,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yingpaipay.system.domain.SysUserProject;
-import com.yingpaipay.system.mapper.SysUserProjectMapper;
+import com.yingpaipay.system.domain.SysUserProjects;
+import com.yingpaipay.system.mapper.SysUserProjectsMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.constant.CacheNames;
@@ -24,7 +24,6 @@ import org.dromara.common.core.utils.*;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.SysUserPost;
 import org.dromara.system.domain.SysUserRole;
@@ -58,7 +57,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
     private final SysPostMapper postMapper;
     private final SysUserRoleMapper userRoleMapper;
     private final SysUserPostMapper userPostMapper;
-    private final SysUserProjectMapper userProjectMapper;
+    private final SysUserProjectsMapper userProjectMapper;
 
     @Override
     public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
@@ -186,7 +185,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
             return user;
         }
         user.setRoles(roleMapper.selectRolesByUserId(user.getUserId()));
-        SysUserProject project = userProjectMapper.selectOne(Wrappers.lambdaQuery(SysUserProject.class).eq(SysUserProject::getUserId, userId));
+        SysUserProjects project = userProjectMapper.selectOne(Wrappers.lambdaQuery(SysUserProjects.class).eq(SysUserProjects::getUserId, userId));
         if (project != null) {
             user.setProjects(project.getProjects());
         }
@@ -333,9 +332,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 
     private void insertUserProjects(SysUserBo user, Boolean flag) {
         if (flag) {
-            userProjectMapper.delete(Wrappers.lambdaQuery(SysUserProject.class).eq(SysUserProject::getUserId, user.getUserId()));
+            userProjectMapper.delete(Wrappers.lambdaQuery(SysUserProjects.class).eq(SysUserProjects::getUserId, user.getUserId()));
         }
-        SysUserProject entity = new SysUserProject();
+        SysUserProjects entity = new SysUserProjects();
         entity.setUserId(user.getUserId());
         entity.setProjects(user.getProjects());
         userProjectMapper.insert(entity);

+ 24 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/SysUserProject.java

@@ -0,0 +1,24 @@
+package com.yingpaipay.business.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @Author: Huanyi
+ * @CreateTime: 2025-12-09
+ * @Description:
+ * @Version: 1.0
+ */
+
+@Data
+@TableName("sys_user_project")
+public class SysUserProject {
+
+    @TableId(type = IdType.INPUT)
+    private Long userId;
+
+    private Long projectId;
+
+}

+ 3 - 3
ruoyi-modules/ruoyi-system/src/main/java/com/yingpaipay/system/mapper/SysUserProjectMapper.java → ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/mapper/SysUserProjectMapper.java

@@ -1,11 +1,11 @@
-package com.yingpaipay.system.mapper;
+package com.yingpaipay.business.mapper;
 
-import com.yingpaipay.system.domain.SysUserProject;
+import com.yingpaipay.business.domain.SysUserProject;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * @Author: Huanyi
- * @CreateTime: 2025-12-08
+ * @CreateTime: 2025-12-09
  * @Description:
  * @Version: 1.0
  */

+ 5 - 37
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/ProjectServiceImpl.java

@@ -1,11 +1,10 @@
 package com.yingpaipay.business.service.impl;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yingpaipay.business.domain.bo.ProjectUpdateStatusBo;
 import com.yingpaipay.business.domain.vo.ProjectListByNameVo;
 import com.yingpaipay.business.domain.vo.ProjectMemberListVo;
-import com.yingpaipay.system.domain.SysUserProject;
-import com.yingpaipay.system.mapper.SysUserProjectMapper;
+import com.yingpaipay.system.domain.SysUserProjects;
+import com.yingpaipay.system.mapper.SysUserProjectsMapper;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -15,9 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.dromara.common.mybatis.helper.DataBaseHelper;
 import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.system.domain.SysUser;
 import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.system.service.ISysDeptService;
 import org.dromara.system.service.ISysOssService;
@@ -43,7 +40,7 @@ import java.util.*;
 public class ProjectServiceImpl implements IProjectService {
 
     private final ProjectMapper baseMapper;
-    private final SysUserProjectMapper userProjectMapper;
+    private final SysUserProjectsMapper userProjectMapper;
     private final SysUserMapper userMapper;
 
     private final ISysOssService ossService;
@@ -121,7 +118,7 @@ public class ProjectServiceImpl implements IProjectService {
         lqw.between(params.get("beginUpdateTime") != null && params.get("endUpdateTime") != null,
             Project::getUpdateTime, params.get("beginUpdateTime"), params.get("endUpdateTime"));
 
-        SysUserProject project = userProjectMapper.selectOne(Wrappers.lambdaQuery(SysUserProject.class).eq(SysUserProject::getUserId, LoginHelper.getUserId()));
+        SysUserProjects project = userProjectMapper.selectOne(Wrappers.lambdaQuery(SysUserProjects.class).eq(SysUserProjects::getUserId, LoginHelper.getUserId()));
         if (project.getProjects().isEmpty()) {
             lqw.in(Project::getId, List.of(-1L));
         } else if (!project.getProjects().equals("*")) {
@@ -222,35 +219,6 @@ public class ProjectServiceImpl implements IProjectService {
 
     @Override
     public TableDataInfo<ProjectMemberListVo> selectMemberListById(Long id, PageQuery pageQuery) {
-        List<Long> ids = new ArrayList<>();
-        userProjectMapper.selectList(
-            Wrappers.lambdaQuery(SysUserProject.class)
-                .and(wrapper -> wrapper.eq(SysUserProject::getProjects, "*")
-                    .or()
-                    .apply(DataBaseHelper.findInSet(id, "projects")))
-        ).forEach(e -> ids.add(e.getUserId()));
-        if (ids.isEmpty()) {
-            return TableDataInfo.build();
-        }
-        IPage<SysUser> page = userMapper.selectPage(
-            pageQuery.build(),
-            Wrappers.lambdaQuery(SysUser.class).in(SysUser::getUserId, ids)
-        );
-        List<Long> deptIds = new ArrayList<>();
-        Map<Long, String> deptMap = new HashMap<>();
-        page.getRecords().forEach(e -> {
-            deptIds.add(e.getDeptId());
-        });
-        deptService.selectDeptByIds(deptIds).forEach(e -> deptMap.put(e.getDeptId(), e.getDeptName()));
-        return TableDataInfo.build(page.convert(e -> {
-            ProjectMemberListVo vo = new ProjectMemberListVo();
-            vo.setId(e.getUserId());
-            vo.setName(e.getNickName());
-            vo.setPhoneNumber(e.getPhonenumber());
-            vo.setDept(deptMap.get(e.getDeptId()));
-            vo.setRole(roleService.selectRolesByUserId(e.getUserId()).get(0).getRoleName());
-            vo.setTime(new Date());
-            return vo;
-        }));
+        return TableDataInfo.build();
     }
 }

+ 19 - 2
script/sql/business/create.sql

@@ -25,12 +25,29 @@ CREATE TABLE `project`
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4 COMMENT ='项目';
 
-CREATE TABLE `sys_user_project`
+CREATE TABLE `sys_user_projects`
 (
     `user_id`   bigint NOT NULL PRIMARY KEY COMMENT '用户ID',
     `projects` varchar(255) NOT NULL COMMENT '项目ID'
 ) ENGINE = InnoDB
-  DEFAULT CHARSET = utf8mb4 COMMENT ='用户项目关系表';
+  DEFAULT CHARSET = utf8mb4 COMMENT ='用户项目数据权限表';
+
+CREATE TABLE `sys_user_project`
+(
+    `user_id`   bigint NOT NULL COMMENT '用户ID',
+    `project_id` bigint NOT NULL COMMENT '项目ID',
+    `join_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间',
+    PRIMARY KEY (`user_id`, `project_id`)
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='用户项目关联表';
+
+CREATE TABLE `sys_user_center`
+(
+    `user_id`   bigint NOT NULL PRIMARY KEY COMMENT '用户ID',
+    `center_id`  bigint NOT NULL PRIMARY KEY COMMENT '中心ID',
+    `join_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间'
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='用户中心关联表';
 
 CREATE TABLE `folder`
 (