From 14f96ba18b58cda204d10608c1abfe9a1d78a495 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 10 六月 2026 20:21:31 +0800
Subject: [PATCH] bug fix

---
 ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
index 6edadac..54cba63 100644
--- a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
+++ b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns.modular.system.controller.system;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.config.properties.GunsProperties;
 import com.stylefeng.guns.core.base.controller.BaseController;
@@ -22,6 +23,8 @@
 import com.stylefeng.guns.modular.system.factory.UserFactory;
 import com.stylefeng.guns.modular.system.model.TCompany;
 import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.model.SysUserCompanyScope;
+import com.stylefeng.guns.modular.system.service.ISysUserCompanyScopeService;
 import com.stylefeng.guns.modular.system.service.ITCompanyService;
 import com.stylefeng.guns.modular.system.service.ITDriverService;
 import com.stylefeng.guns.modular.system.service.IUserService;
@@ -37,6 +40,7 @@
 import javax.validation.Valid;
 import java.io.File;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
@@ -64,6 +68,9 @@
     @Autowired
     private ITCompanyService companyService;
 
+    @Autowired
+    private ISysUserCompanyScopeService userCompanyScopeService;
+
     
     /**
      * 跳转到查看管理员列表的页面
@@ -77,7 +84,9 @@
      * 跳转到查看管理员列表的页面
      */
     @RequestMapping("/user_add")
-    public String addView() {
+    public String addView(Model model) {
+        model.addAttribute("roleType", ShiroKit.getUser().getRoleType());
+        model.addAttribute("companyList", getAvailableCompanies());
         return PREFIX + "user_add.html";
     }
 
@@ -107,6 +116,9 @@
         model.addAttribute(user);
         model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid()));
         model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid()));
+        model.addAttribute("roleType", ShiroKit.getUser().getRoleType());
+        model.addAttribute("companyList", getAvailableCompanies());
+        model.addAttribute("companyScopes", userCompanyScopeService.selectScopesByUserId(userId));
         LogObjectHolder.me().set(user);
         return PREFIX + "user_edit.html";
     }
@@ -195,8 +207,7 @@
             throw new GunsException(BizExceptionEnum.USER_ALREADY_REG);
         }
         ShiroUser user1 = ShiroKit.getUser();
-        User user2 = userService.selectById(user1.getId());
-        TCompany tCompany = companyService.selectById(user2.getObjectId());
+        TCompany tCompany = companyService.selectById(user1.getObjectId());
     
         // 完善账号信息
         user.setSalt(ShiroKit.getRandomSalt(5));
@@ -208,9 +219,15 @@
     
         User objectUser = UserFactory.createUser(user);
         objectUser.setObjectId(user1.getObjectId());
+        objectUser.setRoleType(2);
         objectUser.setEntercode(tCompany.getEnterCode());
         objectUser.setEnterId(Long.valueOf(tCompany.getEnterCode()));
         this.userService.insert(objectUser);
+        if (SinataUtil.isNotEmpty(user.getCompanyScopes())) {
+            userCompanyScopeService.saveScopes(objectUser.getId(), user.getCompanyScopes(), objectUser.getObjectId(), objectUser.getRoleid(), objectUser.getDeptid());
+        } else {
+            userCompanyScopeService.ensureDefaultScope(objectUser);
+        }
     
         return SUCCESS_TIP;
     }
@@ -229,14 +246,18 @@
         }
         User oldUser = userService.selectById(user.getId());
         ShiroUser user1 = ShiroKit.getUser();
-        User user2 = userService.selectById(user1.getId());
-        TCompany tCompany = companyService.selectById(user2.getObjectId());
+        TCompany tCompany = companyService.selectById(user1.getObjectId());
 
         oldUser.setEntercode(tCompany.getEnterCode());
         oldUser.setEnterId(Long.valueOf(tCompany.getEnterCode()));
         user.setEntercode(tCompany.getEnterCode());
         user.setEnterId(Long.valueOf(tCompany.getEnterCode()));
         this.userService.updateById(UserFactory.editUser(user, oldUser));
+        if (SinataUtil.isNotEmpty(user.getCompanyScopes())) {
+            userCompanyScopeService.saveScopes(oldUser.getId(), user.getCompanyScopes(), oldUser.getObjectId(), oldUser.getRoleid(), oldUser.getDeptid());
+        } else {
+            userCompanyScopeService.ensureDefaultScope(oldUser);
+        }
         return SUCCESS_TIP;
     }
 
@@ -384,9 +405,33 @@
             throw new GunsException(BizExceptionEnum.CANT_CHANGE_ADMIN);
         }
         this.userService.setRoles(userId, roleIds);
+        SysUserCompanyScope scope = userCompanyScopeService.selectActiveScope(userId, ShiroKit.getUser().getObjectId());
+        if (scope != null) {
+            scope.setRoleid(roleIds);
+            scope.setUpdateTime(new Date());
+            userCompanyScopeService.updateById(scope);
+        } else {
+            User user = userService.selectById(userId);
+            SysUserCompanyScope newScope = new SysUserCompanyScope();
+            newScope.setUserId(userId);
+            newScope.setCompanyId(ShiroKit.getUser().getObjectId());
+            newScope.setRoleid(roleIds);
+            newScope.setDeptid(user.getDeptid());
+            newScope.setIsDefault(2);
+            newScope.setStatus(1);
+            newScope.setCreateTime(new Date());
+            newScope.setUpdateTime(new Date());
+            userCompanyScopeService.insert(newScope);
+        }
 
 
         return SUCCESS_TIP;
+    }
+
+    @RequestMapping("/companyScopeOptions")
+    @ResponseBody
+    public Object companyScopeOptions() {
+        return getAvailableCompanies();
     }
 
     /**
@@ -405,6 +450,18 @@
         }
         return pictureName;
     }
+
+    private List<TCompany> getAvailableCompanies() {
+        ShiroUser user = ShiroKit.getUser();
+        EntityWrapper<TCompany> wrapper = new EntityWrapper<TCompany>();
+        wrapper.eq("type", 2);
+        wrapper.ne("flag", 3);
+        wrapper.orderBy("id", false);
+        if (user != null && user.getRoleType() != null && user.getRoleType() == 2) {
+            wrapper.eq("id", user.getObjectId());
+        }
+        return companyService.selectList(wrapper);
+    }
 	
 	
 }

--
Gitblit v1.7.1