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

yun-zuoyi
wei.peng 6 years ago
commit 3b7e1f782a

@ -147,7 +147,7 @@ public interface ICoreMemTreeService {
List<SysMenu> packTreeSysMenu(List<SysMenu> list,Long parentId);
@ApiOperation(value = "分装功能树",notes = "根据用户功能关系分装功能树")
List<SysMenu> packTreeSysMenuBySysRefUserOrganize(List<SysMenu> list, List<SysRefRoleMenu> refList);
List<SysMenu> packTreeSysMenuBySysRefRoleMenu(List<SysMenu> list, List<SysRefRoleMenu> refList);
@ApiOperation(value = "分装功能树",notes = "根据制定IDS分装功能树")
List<SysMenu> packTreeSysMenuByIds(List<SysMenu> list, List<Long> ids);
@ -164,6 +164,9 @@ public interface ICoreMemTreeService {
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树")
List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId);
@ApiOperation(value = "查询功能子节点",notes = "根据父节点ID 和 菜单类型 查询功能树")
List<SysMenu> packTreeSysMenuByParentIdAndMenuType(List<SysMenu> list,Long parentId,Integer menuType);
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
List<SysMenu> packTreeSysMenu();

@ -249,6 +249,9 @@ public interface ISysUserService {
@ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)")
SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType,Integer loginPlatform, String languageCode, String deviceId);
@ApiOperation(value = "封装用户信息",notes = "封装用户列表分页信息")
SessionUser packPageSessionUser(SessionUser sessionUser, SysUser user);
/**
* id
* @param ids id

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysLocaleLanguageService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
@ -119,21 +120,8 @@ public class AuthController extends CoreBaseController {
@GetMapping(value = "/menu/find-home-list")
@ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息")
public ResultBean findHomeList() {
List<SysMenu> list = new ArrayList<>();
SysUser user = getSessionUser().getUser();
if (user != null) {
List<SysMenu> menus = user.getMenuList();
if (menus != null) {
for (SysMenu menu : menus) {
if (menu != null) {
if (menu.getMenuType().equals(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()) && menu.getParentId().longValue() != -1) {
list.add(menu);
}
}
}
}
}
List<SysMenu> menuList = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId());
List<SysMenu> list = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
if (list != null && list.size() > 0) {
// 内存排序 Sort 降序 code 升序
@ -142,7 +130,6 @@ public class AuthController extends CoreBaseController {
} else {
return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("菜单信息不存在");
}
}
/**

@ -103,6 +103,7 @@ public class SysDepartmentController extends CoreBaseController {
sysDepartment.setDepartmentCode(department.getDepartmentCode());
sysDepartment.setDepartmentSort(department.getDepartmentSort());
sysDepartment.setParentId(department.getParentId());
sysDepartment.setOrganizeId(department.getOrganizeId());
ConvertBean.modelUpdate(department, AuthUtil.getSessionUser());
if(sysDepartment.getParentId() == null || department.getParentId() <= 0){

@ -548,7 +548,7 @@ public class CoreMemTreeService implements ICoreMemTreeService {
}
@Override
public List<SysMenu> packTreeSysMenuBySysRefUserOrganize(List<SysMenu> list, List<SysRefRoleMenu> refList) {
public List<SysMenu> packTreeSysMenuBySysRefRoleMenu(List<SysMenu> list, List<SysRefRoleMenu> refList) {
List<Long> ids = new ArrayList<>(refList.size());
if(refList != null && refList.size() > 0){
@ -623,13 +623,31 @@ public class CoreMemTreeService implements ICoreMemTreeService {
List<SysMenu> menuList = personnelService.findSysMenuList();
List<SysMenu> menuRootTree = packTreeSysMenu(menuList, parentId);
return packTreeSysMenuBySysRefUserOrganize(menuRootTree, refRoleMenuList);
return packTreeSysMenuBySysRefRoleMenu(menuRootTree, refRoleMenuList);
}
}
return null;
}
@Override
public List<SysMenu> packTreeSysMenuByParentIdAndMenuType(List<SysMenu> list,Long parentId, Integer menuType) {
List<SysMenu> result = new ArrayList<>();
if(list != null && list.size() > 0){
for (SysMenu menu : list) {
if(menu.getChildList() != null && menu.getChildList().size() > 0){
result.addAll(packTreeSysMenuByParentIdAndMenuType(menu.getChildList(), parentId, menuType));
}
if(menu.getParentId().equals(parentId) && menu.getMenuType().equals(menuType)){
result.add(menu);
}
}
}
return result;
}
@Override
public List<SysMenu> packTreeSysMenu() {
List<SysMenu> menuList = personnelService.findSysMenuList();
return packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue());

@ -28,6 +28,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.RedisUtilTool;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
@ -105,6 +106,9 @@ public class SysUserService implements ISysUserService {
@Autowired
private IPersonnelService personnelService;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
/**
*
*/
@ -125,6 +129,7 @@ public class SysUserService implements ISysUserService {
throw new CredentialsException("用户不存在");
}
packSessionUser(sessionUser, user, user.getUserType(),loginPlatform, languageCode,deviceId);
packPageSessionUser(sessionUser, user);
AuthUtil.setSessionUser(sessionUser);
refreshUserLoginInformation(user.getId());
AuthUtil.online(sessionUser);
@ -606,6 +611,37 @@ public class SysUserService implements ISysUserService {
}
@Override
public SessionUser packPageSessionUser(SessionUser sessionUser, SysUser user) {
SysConfig configPageList = RedisUtilTool.getSysConfigByConfigCode(redisRes, CommonConstWords.CONFIG_PAGE_SIZE_LIST);
try {
if(configPageList != null && StringUtils.isNotBlank(configPageList.getConfigValue())){
String[] split = configPageList.getConfigValue().split(",");
int[] ints = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();
sessionUser.setPageSizeArray(Arrays.stream(ints).boxed().toArray(Integer[]::new));
}
}catch (Exception e){
}
if(sessionUser.getPageSizeArray() == null){
sessionUser.setPageSizeArray(CommonConstWords.CONFIG_PAGE_SIZE_LIST_DEFAULT);
}
SysConfig configPageSize = RedisUtilTool.getSysConfigByConfigCode(redisRes, CommonConstWords.CONFIG_PAGE_DEFAULT_SIZE);
try {
if(configPageSize != null && StringUtils.isNotBlank(configPageSize.getConfigValue())){
sessionUser.setPageDefaultSize(Integer.parseInt(configPageSize.getConfigValue()));
}
}catch (Exception e){
}
if(sessionUser.getPageDefaultSize() == null || sessionUser.getPageDefaultSize() <= 0){
sessionUser.setPageDefaultSize(CommonConstWords.CONFIG_PAGE_DEFAULT);
}
return sessionUser;
}
@Override
public List<SysUser> findSysUserByIds(Long[] ids) {
DdlPackBean ddlPackBean = new DdlPackBean();
DdlPreparedPack.getInPackArray(ids, "id", ddlPackBean);

@ -148,6 +148,14 @@ eureka.instance.prefer-ip-address=true
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
eureka.instance.lease-renewal-interval-in-seconds=20
#client连接Eureka服务端后的空闲等待时间默认为30 秒
eureka.client.eureka-connection-idle-timeout-seconds=1
#最初复制实例信息到eureka服务器所需的时间s默认为40秒
eureka.client.initial-instance-info-replication-interval-seconds=1
#间隔多长时间再次复制实例信息到eureka服务器默认为30秒
eureka.client.instance-info-replication-interval-seconds=1
#从eureka服务器注册表中获取注册信息的时间间隔s默认为30秒
eureka.client.registry-fetch-interval-seconds=1
################ 熔断配置 ################
#重试
@ -169,9 +177,9 @@ spring.sleuth.sampler.probability=1.0
################ FastDfs 配置 ################
#tracker服务器ip
fastdfs.tracker_servers=192.168.1.56:7031
fastdfs.tracker_servers=192.168.1.56:22122
# tracker的http端口
fastdfs.http_tracker_http_port=7031
fastdfs.http_tracker_http_port=22122
# 使用自定义工具获取文件展示地址
fastdfs.http.ui.host=http://dfs.estsh.com
#密码

@ -147,6 +147,14 @@ eureka.instance.prefer-ip-address=true
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
eureka.instance.lease-renewal-interval-in-seconds=20
#client连接Eureka服务端后的空闲等待时间默认为30 秒
eureka.client.eureka-connection-idle-timeout-seconds=1
#最初复制实例信息到eureka服务器所需的时间s默认为40秒
eureka.client.initial-instance-info-replication-interval-seconds=1
#间隔多长时间再次复制实例信息到eureka服务器默认为30秒
eureka.client.instance-info-replication-interval-seconds=1
#从eureka服务器注册表中获取注册信息的时间间隔s默认为30秒
eureka.client.registry-fetch-interval-seconds=1
################ 熔断配置 ################
#重试

@ -146,6 +146,14 @@ eureka.instance.prefer-ip-address=true
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
eureka.instance.lease-renewal-interval-in-seconds=20
#client连接Eureka服务端后的空闲等待时间默认为30 秒
eureka.client.eureka-connection-idle-timeout-seconds=1
#最初复制实例信息到eureka服务器所需的时间s默认为40秒
eureka.client.initial-instance-info-replication-interval-seconds=1
#间隔多长时间再次复制实例信息到eureka服务器默认为30秒
eureka.client.instance-info-replication-interval-seconds=1
#从eureka服务器注册表中获取注册信息的时间间隔s默认为30秒
eureka.client.registry-fetch-interval-seconds=1
################ 熔断配置 ################
#重试

@ -149,6 +149,15 @@ eureka.instance.prefer-ip-address=true
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
eureka.instance.lease-renewal-interval-in-seconds=20
#client连接Eureka服务端后的空闲等待时间默认为30 秒
eureka.client.eureka-connection-idle-timeout-seconds=1
#最初复制实例信息到eureka服务器所需的时间s默认为40秒
eureka.client.initial-instance-info-replication-interval-seconds=1
#间隔多长时间再次复制实例信息到eureka服务器默认为30秒
eureka.client.instance-info-replication-interval-seconds=1
#从eureka服务器注册表中获取注册信息的时间间隔s默认为30秒
eureka.client.registry-fetch-interval-seconds=1
################ 熔断配置 ################
#重试

@ -148,6 +148,15 @@ eureka.instance.prefer-ip-address=true
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
eureka.instance.lease-renewal-interval-in-seconds=20
#client连接Eureka服务端后的空闲等待时间默认为30 秒
eureka.client.eureka-connection-idle-timeout-seconds=1
#最初复制实例信息到eureka服务器所需的时间s默认为40秒
eureka.client.initial-instance-info-replication-interval-seconds=1
#间隔多长时间再次复制实例信息到eureka服务器默认为30秒
eureka.client.instance-info-replication-interval-seconds=1
#从eureka服务器注册表中获取注册信息的时间间隔s默认为30秒
eureka.client.registry-fetch-interval-seconds=1
################ 熔断配置 ################
#重试

@ -9,7 +9,7 @@ spring.application.name=${project.name}
#当前项目版本
version=${project.version}
#解决程序读配置文件乱码问题
spring.message.encoding=UTF-8
spring.message.encoding=UTF-8 sh
######## 通用设置 #######
#启动时加载预加载controller
spring.mvc.servlet.load-on-startup=1

Loading…
Cancel
Save