Merge remote-tracking branch 'remotes/origin/dev' into test

yun-zuoyi
汪云昊 5 years ago
commit 3ede7e3107

@ -5,7 +5,7 @@
<parent>
<artifactId>i3plus-core</artifactId>
<groupId>i3plus.core</groupId>
<version>1.0-TEST-SNAPSHOT</version>
<version>1.0-DEV-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

@ -5,7 +5,7 @@
<parent>
<artifactId>i3plus-core</artifactId>
<groupId>i3plus.core</groupId>
<version>1.0-TEST-SNAPSHOT</version>
<version>1.0-DEV-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

@ -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<SysMenu> 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<SysMenu> 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<SysMenu> menuList = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId());
list = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());

@ -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<SysMenu> list = menuService.findAllByBean(sysMenu).stream()
.filter(menu -> menu.getId() != 100000000L)
.collect(Collectors.toList());
List<SysMenu> allList = menuService.findAll();
Map<Long, List<SysMenu>> ds = allList.stream().collect(Collectors.groupingBy(SysMenu::getParentId));
packSysMenuTree(list, ds, null);
for (List<SysMenu> 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<SysMenu> sysMenuList, Map<Long, List<SysMenu>> 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(){

@ -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());
}
}
}

@ -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());

@ -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<Object> ds = redisSession.scan(redisKey);
if (CollectionUtils.isNotEmpty(ds)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION_LOGGED.getCode())
.setErrorDetail("用户已在其他设备登录,无法同时登录!")
.setErrorSolution("请联系管理员")
.build();
}
}
@Override
public BaseToken getToken(String loginName, String password, String languageCode, Integer loginPlatform) {
SysUser user = this.getSysUserByLoginName(loginName);
@ -670,7 +695,7 @@ public class SysUserService implements ISysUserService {
if(configPageSize != null && StringUtils.isNotBlank(configPageSize.getConfigValue())){
sessionUser.setPageDefaultSize(Integer.parseInt(configPageSize.getConfigValue()));
}
}catch (Exception e){
}catch (Exception ignored){
}
if(sessionUser.getPageDefaultSize() == null || sessionUser.getPageDefaultSize() <= 0){
@ -781,7 +806,11 @@ public class SysUserService implements ISysUserService {
});
List<SysRole> roleList = roleService.findByIdList(ids);
roleList.forEach(role -> menuIdList.addAll(role.getMenuIdList()));
roleList.forEach(role -> {
if (role.getMenuIdList() != null) {
menuIdList.addAll(role.getMenuIdList());
}
});
List<SysMenu> menuList = menuService.findByIdList(new ArrayList<>(menuIdList));
if(CollectionUtils.isNotEmpty(menuList)){
for (SysMenu menu : menuList) {

@ -7,7 +7,7 @@
<groupId>i3plus.core</groupId>
<artifactId>i3plus-core</artifactId>
<packaging>pom</packaging>
<version>1.0-TEST-SNAPSHOT</version>
<version>1.0-DEV-SNAPSHOT</version>
<modules>
<module>modules/i3plus-core-api</module>
<module>modules/i3plus-core-apiservice</module>

Loading…
Cancel
Save