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/LoginController.java | 43 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
index ad02377..64b9ef1 100644
--- a/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
+++ b/ManagementYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
@@ -8,6 +8,7 @@
import com.stylefeng.guns.core.log.LogManager;
import com.stylefeng.guns.core.log.factory.LogTaskFactory;
import com.stylefeng.guns.core.node.MenuNode;
+import com.stylefeng.guns.core.shiro.ShiroDbRealm;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.shiro.factory.IShiro;
@@ -17,10 +18,12 @@
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
import com.stylefeng.guns.modular.system.dao.UserMapper;
+import com.stylefeng.guns.modular.system.model.SysUserCompanyScope;
import com.stylefeng.guns.modular.system.model.TCompany;
import com.stylefeng.guns.modular.system.model.User;
import com.stylefeng.guns.modular.system.service.IMenuService;
import com.stylefeng.guns.modular.system.service.IRelationService;
+import com.stylefeng.guns.modular.system.service.ISysUserCompanyScopeService;
import com.stylefeng.guns.modular.system.service.IUserService;
import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
import com.stylefeng.guns.modular.system.util.PushURL;
@@ -95,6 +98,12 @@
@Autowired
private IRelationService relationService;
+
+ @Autowired
+ private ISysUserCompanyScopeService userCompanyScopeService;
+
+ @Autowired
+ private ShiroDbRealm shiroDbRealm;
/**
@@ -132,14 +141,13 @@
model.addAttribute("tips", "请重新登录");
return "/login.html";
}
- //设置上级ID
- if (SinataUtil.isNotEmpty(user.getObjectId())){
- shiroUser.setObjectId(user.getObjectId());
- }
//设置角色
shiroUser.setRoleType(user.getRoleType());
model.addAttribute("titles", titles);
+ model.addAttribute("companyScopes", userCompanyScopeService.selectScopesByUserId(shiroUser.getId()));
+ model.addAttribute("currentCompanyId", shiroUser.getObjectId());
+ model.addAttribute("currentCompanyName", tCompany == null ? "" : tCompany.getName());
//获取用户头像
String avatar = user.getAvatar();
@@ -246,6 +254,33 @@
return REDIRECT + "/";
}
+
+ @ResponseBody
+ @RequestMapping(value = "/mgr/companyScopes", method = RequestMethod.GET)
+ public ResultUtil companyScopes() {
+ ShiroUser shiroUser = ShiroKit.getUser();
+ if (shiroUser == null) {
+ return ResultUtil.error("请重新登录");
+ }
+ return ResultUtil.success(userCompanyScopeService.selectScopesByUserId(shiroUser.getId()));
+ }
+
+ @ResponseBody
+ @RequestMapping(value = "/mgr/switchCompany", method = RequestMethod.POST)
+ public ResultUtil switchCompany(Integer companyId) {
+ ShiroUser shiroUser = ShiroKit.getUser();
+ if (shiroUser == null || companyId == null) {
+ return ResultUtil.error("参数异常");
+ }
+ SysUserCompanyScope scope = userCompanyScopeService.selectActiveScope(shiroUser.getId(), companyId);
+ if (scope == null) {
+ return ResultUtil.error("当前账号未绑定该分公司");
+ }
+ userCompanyScopeService.applyScopeToShiroUser(shiroUser, scope);
+ ShiroKit.setSessionAttr("shiroUser", shiroUser);
+ shiroDbRealm.clearAuthCache(ShiroKit.getSubject().getPrincipals());
+ return ResultUtil.success();
+ }
/**
--
Gitblit v1.7.1