From abd73edd5d08e26fba60ab47f53722502a87505a Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 08 一月 2026 17:21:50 +0800
Subject: [PATCH] 浪潮对接单点登录:租户数据隔离功能

---
 src/main/java/com/ruoyi/tide/controller/TideController.java |   30 +++++++++++++++++++++++++++---
 1 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/tide/controller/TideController.java b/src/main/java/com/ruoyi/tide/controller/TideController.java
index 695b17d..c4f76a6 100644
--- a/src/main/java/com/ruoyi/tide/controller/TideController.java
+++ b/src/main/java/com/ruoyi/tide/controller/TideController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.tide.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.ruoyi.common.constant.Constants;
@@ -7,20 +8,26 @@
 import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
 import com.ruoyi.framework.security.service.SysLoginService;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysUserService;
 import com.ruoyi.tide.pojo.TidePojo;
 import com.ruoyi.tide.utils.TideUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.PreDestroy;
+import javax.annotation.security.PermitAll;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -36,6 +43,9 @@
 
     @Autowired
     private ISysUserService userService;
+
+    @Autowired
+    private ISysDeptService deptService;
 
     @ApiOperation(value = "鐧诲綍")
     @PostMapping("/tideLogin")
@@ -57,7 +67,20 @@
         String defaultPwd = "I73Kj+Mn$+SI";//榛樿寮�閫氬瘑鐮佸浐瀹氬啓姝�
 //        String randomString = TideUtils.getRandomString(12);
         //璐﹀彿涓嶅瓨鍦紝鎵ц鏂板鎿嶄綔
-        if(Objects.isNull(user)){
+        if(ObjectUtils.isEmpty(user)){
+            //1.鍏堟柊澧炵敤鎴峰搴旂殑鍏徃
+            SysDept dept = new SysDept();
+            dept.setParentId(100L);//鐖跺叕鍙竔d
+            dept.setDeptName(tidePojo.getEnterpriseName());
+            dept.setDeptNick(tidePojo.getEnterpriseName());
+            dept.setOrderNum(0);
+            boolean deptNameUnique = deptService.checkDeptNameUnique(dept);
+            if (deptNameUnique){
+                deptService.insertDept(dept);
+            }
+            //鏌ヨ鍏徃
+            SysDept newSysDept = deptService.selectDeptByDeptName(dept.getDeptName());
+            dept.setDeptId(ObjectUtils.isEmpty(newSysDept)?100L:newSysDept.getDeptId());
             user = new SysUser();
             String password = SecurityUtils.encryptPassword(defaultPwd);
             user.setPassword(password);
@@ -67,8 +90,9 @@
             user.setDelFlag("0");
             user.setPostIds(new Long[]{1L});
             user.setRoleId(1L);
-            user.setRoleIds(new Long[]{2L});
-            user.setDeptIds(new Long[]{100L});
+            user.setRoleIds(new Long[]{2L});//榛樿鏅�氳鑹�
+            user.setDeptIds(new Long[]{dept.getDeptId()});//缁戝畾鍏徃
+            user.setTenantId(dept.getDeptId());
             userService.insertUser(user);
         }
         Map<String, Object> map = new HashMap<>();

--
Gitblit v1.9.3