diff --git a/modules/i3plus-core-api/pom.xml b/modules/i3plus-core-api/pom.xml
index 42c86a0..d202ba1 100644
--- a/modules/i3plus-core-api/pom.xml
+++ b/modules/i3plus-core-api/pom.xml
@@ -5,7 +5,7 @@
i3plus-core
i3plus.core
- 1.0-TEST-SNAPSHOT
+ 1.0-DEV-SNAPSHOT
../../pom.xml
4.0.0
diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml
index f1d252e..ebb3a1f 100644
--- a/modules/i3plus-core-apiservice/pom.xml
+++ b/modules/i3plus-core-apiservice/pom.xml
@@ -5,7 +5,7 @@
i3plus-core
i3plus.core
- 1.0-TEST-SNAPSHOT
+ 1.0-DEV-SNAPSHOT
../../pom.xml
4.0.0
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java
index 9474af7..5c74f44 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java
@@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
+import java.util.stream.Collectors;
/**
@@ -248,34 +249,9 @@ public class AuthController extends CoreBaseController {
if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
SysMenu sysMenu = new SysMenu();
sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
- list = sysMenuService.findAllByBean(sysMenu);
- } else {
- List menuList = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId());
- list = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
- }
-
- if (list != null && list.size() > 0) {
- // 内存排序 Sort 降序 code 升序
- list.sort(Comparator.comparing(SysMenu::getMenuSort).reversed().thenComparing(SysMenu::getMenuCode));
- return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list);
- } else {
- return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("菜单信息不存在");
- }
- }
-
- /**
- * 获取登录用户功能权限信息
- *
- * @return 处理结果
- */
- @GetMapping(value = "/menu/module-menu-list")
- @ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息")
- public ResultBean findMenuListByModule() {
- List list = null;
- if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
- SysMenu sysMenu = new SysMenu();
- sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
- sysMenuService.findAllByBean(sysMenu);
+ list = sysMenuService.findAllByBean(sysMenu).stream()
+ .filter(menu -> menu.getId() != 100000000L)
+ .collect(Collectors.toList());
} else {
List menuList = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId());
list = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java
index cf8ec56..35f7a75 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java
@@ -21,6 +21,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.ListUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -200,6 +201,46 @@ public class BackstageController extends CoreBaseController {
}
}
+ @GetMapping(value = "/update-clean-menu-soft-type")
+ @ApiOperation(value = "更新并清理功能软件模块数据", notes = "更新并清理功能软件模块数据")
+ public ResultBean updateCleanMenuSoftType(){
+ try {
+ SysMenu sysMenu = new SysMenu();
+ sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
+ List list = menuService.findAllByBean(sysMenu).stream()
+ .filter(menu -> menu.getId() != 100000000L)
+ .collect(Collectors.toList());
+
+ List allList = menuService.findAll();
+ Map> ds = allList.stream().collect(Collectors.groupingBy(SysMenu::getParentId));
+ packSysMenuTree(list, ds, null);
+
+ for (List sysMenuList : ListUtils.partition(allList, 100)) {
+ new Thread(() -> menuService.saveBatch(sysMenuList)).start();
+ }
+ return ResultBean.success("操作成功").setResultList(list);
+ } catch (ImppBusiException busExcep) {
+ return ResultBean.fail(busExcep);
+ } catch (Exception e) {
+ return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
+ }
+
+ public void packSysMenuTree(List sysMenuList, Map> ds,Integer softType) {
+ if (CollectionUtils.isEmpty(sysMenuList)) {
+ return;
+ }
+ for (SysMenu sysMenu : sysMenuList) {
+ if (softType != null) {
+ sysMenu.setSoftType(softType);
+ }
+ if (ds.containsKey(sysMenu.getId())) {
+ sysMenu.setChildList(ds.get(sysMenu.getId()));
+ packSysMenuTree(sysMenu.getChildList(), ds, sysMenu.getSoftType());
+ }
+ }
+ }
+
@GetMapping(value = "/update-clean-ref-role-menu")
@ApiOperation(value = "更新并清理角色功能数据", notes = "更新并清理角色功能数据")
public ResultBean updateRefRoleMenu(){
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java
index ee38d59..7674183 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java
@@ -98,6 +98,10 @@ public class WhiteController extends CoreBaseController {
@Autowired
private ILicenseClickService licenseClickService;
+ @Resource(name= CommonConstWords.IMPP_REDIS_SESSION)
+ private ImppRedis redisSession;
+
+
@GetMapping(value = "/sys-locale-language/list")
@ApiOperation(value = "查询可用语言",notes = "查询可用语言")
public ResultBean listSysLocaleLanguage(){
@@ -157,7 +161,11 @@ public class WhiteController extends CoreBaseController {
ValidatorBean.checkNotNull(loginName,"用户名不能为空");
ValidatorBean.checkNotNull(loginPwd,"密码不能为空");
ValidatorBean.checkNotNull(languageCode,"语言不能为空");
- logout();
+
+ int sessionMode = RedisCacheTool.getSysConfigIntVal(CommonConstWords.CONFIG_SESSION_MODE, CommonConstWords.CONFIG_SESSION_MODE_DEFAULT);
+ if (sessionMode != CommonEnumUtil.SESSION_MODE.SEIZE.getValue()) {
+ logout();
+ }
SessionUser user = userService.queryUserLogin(loginName.trim(), loginPwd.trim(), languageCode, getLoginPlatform().getValue(),deviceId);
@@ -581,4 +589,20 @@ public class WhiteController extends CoreBaseController {
return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
+
+ @GetMapping(value = "/forced-offline/{loginName}")
+ @ApiOperation(value = "强制下线", notes = "强制下线")
+ public ResultBean forcedOffline(@PathVariable("loginName") String loginName){
+ try {
+ SysUser sysUser = userService.getSysUserByLoginName(loginName);
+ ValidatorBean.checkNotNull(sysUser,"用户不存在,请检查【登录名】");
+ redisSession.deleteBatchKey(CommonConstWords.SESSION_USER + ":*_" + sysUser.getId());
+ return ResultBean.success("操作成功");
+ } catch (ImppBusiException busExcep) {
+ return ResultBean.fail(busExcep);
+ } catch (Exception e) {
+ return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
+ }
+
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolTypeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolTypeController.java
index 793f6d5..1c2f012 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolTypeController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolTypeController.java
@@ -54,6 +54,7 @@ public class SysToolTypeController extends CoreBaseController{
// 条件校验
ValidatorBean.beginValid(toolType).notNull("name",toolType.getName());
+ toolType.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
// 添加初始化
ConvertBean.modelInitialize(toolType, AuthUtil.getSessionUser());
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java
index 980ae07..0fde42f 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java
@@ -151,6 +151,9 @@ public class SysUserService implements ISysUserService {
if(user == null){
throw new CredentialsException("用户不存在");
}
+ // 判断会话模式
+ checkSessionMode(loginPlatform,user.getId());
+
packSessionUser(sessionUser, user, user.getUserType(),loginPlatform, languageCode,deviceId);
packConfigSessionUser(sessionUser, user);
AuthUtil.setSessionUser(sessionUser);
@@ -160,6 +163,28 @@ public class SysUserService implements ISysUserService {
return sessionUser;
}
+ private void checkSessionMode(Integer loginPlatform,Long userId){
+ int sessionMode = RedisCacheTool.getSysConfigIntVal(CommonConstWords.CONFIG_SESSION_MODE,CommonConstWords.CONFIG_SESSION_MODE_DEFAULT);
+ String redisKey;
+ if (sessionMode == CommonEnumUtil.SESSION_MODE.DEFAULT.getValue()) {
+ redisKey = CommonConstWords.SESSION_USER + ":" + loginPlatform + "_" + userId;
+ } else if (sessionMode == CommonEnumUtil.SESSION_MODE.SEIZE.getValue()) {
+ redisKey = CommonConstWords.SESSION_USER + ":*_" + userId;
+ }else {
+ return;
+ }
+
+ List