From 848d609a35569b029bbdd5ab91c1df2a0f568819 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 09 一月 2026 09:04:03 +0800
Subject: [PATCH] 浪潮对接单点登录:租户数据隔离功能3
---
src/main/java/com/ruoyi/project/system/mapper/SysPostMapper.java | 3 +++
src/main/resources/mapper/system/SysPostMapper.xml | 10 ++++++++--
src/main/java/com/ruoyi/project/system/controller/SysUserController.java | 3 ++-
src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java | 7 +++++++
src/main/java/com/ruoyi/project/system/service/ISysPostService.java | 2 ++
src/main/java/com/ruoyi/tide/controller/TideController.java | 5 +++++
src/main/resources/mapper/system/SysDeptMapper.xml | 1 +
7 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
index 14618a9..3fb2b5d 100644
--- a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
+++ b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
@@ -114,7 +114,8 @@
}
List<SysRole> roles = roleService.selectRoleAll();
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
- ajax.put("posts", postService.selectPostAll());
+// ajax.put("posts", postService.selectPostAll());
+ ajax.put("posts", postService.selectPostByTenantId(SecurityUtils.getLoginUser().getTenantId()));
SysUserDeptVo sysUserDeptVo = new SysUserDeptVo();
sysUserDeptVo.setUserId(userId);
List<SysUserDeptVo> sysUserDeptVos = userDeptService.userLoginFacotryList(sysUserDeptVo);
diff --git a/src/main/java/com/ruoyi/project/system/mapper/SysPostMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysPostMapper.java
index abc50a2..cffa929 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysPostMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysPostMapper.java
@@ -2,6 +2,7 @@
import java.util.List;
import com.ruoyi.project.system.domain.SysPost;
+import org.apache.ibatis.annotations.Param;
/**
* 宀椾綅淇℃伅 鏁版嵁灞�
@@ -96,4 +97,6 @@
* @return 缁撴灉
*/
public SysPost checkPostCodeUnique(String postCode);
+
+ List<SysPost> selectPostByTenantId(@Param("tenantId") Long tenantId);
}
diff --git a/src/main/java/com/ruoyi/project/system/service/ISysPostService.java b/src/main/java/com/ruoyi/project/system/service/ISysPostService.java
index 042f687..9f062f8 100644
--- a/src/main/java/com/ruoyi/project/system/service/ISysPostService.java
+++ b/src/main/java/com/ruoyi/project/system/service/ISysPostService.java
@@ -96,4 +96,6 @@
* @return 缁撴灉
*/
public int updatePost(SysPost post);
+
+ public List<SysPost> selectPostByTenantId(Long tenantId);
}
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java
index 2ba2fc5..4deddb1 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysPostServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.project.system.service.impl;
+import java.util.Collections;
import java.util.List;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
@@ -178,4 +179,10 @@
{
return postMapper.updatePost(post);
}
+
+ @Override
+ @DataScope(tenantIdFelid = "p")
+ public List<SysPost> selectPostByTenantId(Long tenantId) {
+ return postMapper.selectPostByTenantId(tenantId);
+ }
}
diff --git a/src/main/java/com/ruoyi/tide/controller/TideController.java b/src/main/java/com/ruoyi/tide/controller/TideController.java
index c4f76a6..ec7716d 100644
--- a/src/main/java/com/ruoyi/tide/controller/TideController.java
+++ b/src/main/java/com/ruoyi/tide/controller/TideController.java
@@ -19,6 +19,8 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -62,6 +64,7 @@
}
@PostMapping("/applicationOrdering")
+ @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
public JSONObject order (@RequestBody TidePojo tidePojo) {
SysUser user = userService.selectUserByUserName(tidePojo.getPltAccountLogin());
String defaultPwd = "I73Kj+Mn$+SI";//榛樿寮�閫氬瘑鐮佸浐瀹氬啓姝�
@@ -81,6 +84,8 @@
//鏌ヨ鍏徃
SysDept newSysDept = deptService.selectDeptByDeptName(dept.getDeptName());
dept.setDeptId(ObjectUtils.isEmpty(newSysDept)?100L:newSysDept.getDeptId());
+ dept.setTenantId(dept.getDeptId());
+ deptService.updateDept(dept);
user = new SysUser();
String password = SecurityUtils.encryptPassword(defaultPwd);
user.setPassword(password);
diff --git a/src/main/resources/mapper/system/SysDeptMapper.xml b/src/main/resources/mapper/system/SysDeptMapper.xml
index afc0a47..aedb633 100644
--- a/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -132,6 +132,7 @@
<if test="email != null">email = #{email},</if>
<if test="deptNick != null and deptNick != '' ">dept_nick = #{deptNick},</if>
<if test="status != null and status != ''">status = #{status},</if>
+ <if test="tenantId != null and tenantId != ''">tenant_id = #{tenantId},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate()
</set>
diff --git a/src/main/resources/mapper/system/SysPostMapper.xml b/src/main/resources/mapper/system/SysPostMapper.xml
index ce16e9f..59fff7a 100644
--- a/src/main/resources/mapper/system/SysPostMapper.xml
+++ b/src/main/resources/mapper/system/SysPostMapper.xml
@@ -73,8 +73,14 @@
<include refid="selectPostVo"/>
where post_code=#{postCode} limit 1
</select>
-
- <update id="updatePost" parameterType="com.ruoyi.project.system.domain.SysPost">
+ <select id="selectPostByTenantId" resultType="com.ruoyi.project.system.domain.SysPost">
+ <include refid="selectPostVo"/>
+ <where>
+ AND p.tenant_id = #{tenantId}
+ </where>
+ </select>
+
+ <update id="updatePost" parameterType="com.ruoyi.project.system.domain.SysPost">
update sys_post
<set>
<if test="postCode != null and postCode != ''">post_code = #{postCode},</if>
--
Gitblit v1.9.3