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