Merge branch 'dev_20220723_sysmenu' into test

yun-zuoyi
zhang.xw 3 years ago
commit 34b15e1b09

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.api.iservice.busi; package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.core.api.iservice.dto.SysMenuDTO;
import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel; import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -160,7 +161,8 @@ public interface ICoreMemTreeService {
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
List<SysMenu> packTreeSysMenuByUserId(Long userId); List<SysMenu> packTreeSysMenuByUserId(Long userId);
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
public List<SysMenu> packTreeDingSysMenuByUserId(Long userId);
/** /**
* ID ID * ID ID
* @param userId * @param userId
@ -170,12 +172,19 @@ public interface ICoreMemTreeService {
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树") @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树")
List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId); List<SysMenu> packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId);
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树")
List<SysMenu> packTreeDingSysMenuByUserIdAndParentId(Long userId,Long parentId);
@ApiOperation(value = "查询功能子节点",notes = "根据父节点ID 和 菜单类型 查询功能树") @ApiOperation(value = "查询功能子节点",notes = "根据父节点ID 和 菜单类型 查询功能树")
List<SysMenu> packTreeSysMenuByParentIdAndMenuType(List<SysMenu> list,Long parentId,Integer menuType); List<SysMenu> packTreeSysMenuByParentIdAndMenuType(List<SysMenu> list,Long parentId,Integer menuType);
@ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树")
List<SysMenu> packTreeSysMenu(); List<SysMenu> packTreeSysMenu();
@ApiOperation(value = "查询功能子节点",notes = "根据父节点ID 和 菜单类型 查询功能树")
List<SysMenuDTO> packTreeToDto(List<SysMenu> list);
/********************************************* End SysMenu Tree *********************************************/ /********************************************* End SysMenu Tree *********************************************/
} }

@ -0,0 +1,55 @@
package cn.estsh.i3plus.core.api.iservice.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description : dto
* @Reference :
* @Author : zhangxw
* @CreateDate :2022/7/23 0023
**/
@Data
public class SysMenuDTO implements Serializable {
private static final long serialVersionUID = -4365785452541938586L;
/**
* id
*/
private long id;
/**
* id
*/
private long parentId;
/**
*
*/
private String organizeCode;
/**
* code
*/
private String menuCode;
/**
*
*/
private String name;
/**
*
*/
private String parentNameRdd;
/**
* id
*/
private Integer menuSort;
/**
* url
*/
private String menuUrl;
/**
*
*/
private List<SysMenuDTO> childList;
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginStrategyService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginStrategyService;
import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.api.iservice.dto.SysMenuDTO;
import cn.estsh.i3plus.core.apiservice.controller.busi.*; import cn.estsh.i3plus.core.apiservice.controller.busi.*;
import cn.estsh.i3plus.core.apiservice.util.MailUtil; import cn.estsh.i3plus.core.apiservice.util.MailUtil;
import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil; import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil;
@ -62,13 +63,15 @@ import com.google.common.cache.CacheBuilder;
import com.taobao.api.ApiException; import com.taobao.api.ApiException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil; import lombok.val;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.*; import org.apache.shiro.authc.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -79,6 +82,7 @@ import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @Description : * @Description :
@ -169,6 +173,13 @@ public class WhiteController extends CoreBaseController {
@Autowired @Autowired
private SysFileController sysFileController; private SysFileController sysFileController;
@Autowired
private ICoreMemTreeService memTreeService;
@Value(value = "${filter.ding.menu.parent.id}")
private Long filterDingPmcParentMenuId;
private Cache<String, Integer> unsavedLocaleResSwitch = CacheBuilder.newBuilder() private Cache<String, Integer> unsavedLocaleResSwitch = CacheBuilder.newBuilder()
.maximumSize(1) .maximumSize(1)
.expireAfterWrite(1, TimeUnit.MINUTES) .expireAfterWrite(1, TimeUnit.MINUTES)
@ -191,6 +202,7 @@ public class WhiteController extends CoreBaseController {
@ApiOperation(value = "查询可用语言", notes = "查询可用语言") @ApiOperation(value = "查询可用语言", notes = "查询可用语言")
public ResultBean getSystemInfo() { public ResultBean getSystemInfo() {
try { try {
LOGGER.info("调用了/system-info");
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(configService.findSystemInfoConfig()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(configService.findSystemInfoConfig());
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
@ -1328,6 +1340,7 @@ public class WhiteController extends CoreBaseController {
} }
} }
/** /**
* accessToken * accessToken
* *
@ -1373,7 +1386,6 @@ public class WhiteController extends CoreBaseController {
return ""; return "";
} }
private OapiV2UserGetResponse getDingTalkUserInfo(String dingTalkTmpAuthCode) { private OapiV2UserGetResponse getDingTalkUserInfo(String dingTalkTmpAuthCode) {
String dingTalkUrl = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_URL); String dingTalkUrl = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_URL);
String dingTalkAppKey = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_KEY); String dingTalkAppKey = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_KEY);
@ -1407,4 +1419,111 @@ public class WhiteController extends CoreBaseController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
/**
*
*
* @param dingTalkTmpAuthCode
* @return
*/
@GetMapping(value = "/find-menu-list")
@ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息")
public ResultBean findHomeList(HttpServletRequest request,@RequestParam String dingTalkTmpAuthCode, @RequestParam(required = false)String mobile) {
try {
if (Objects.isNull(dingTalkTmpAuthCode)) {
return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("授权码不能为空");
}
// 根据dingTalkTmpAuthCode 获取 平台的用户信息
SysUser sysUser = getUserInfo(dingTalkTmpAuthCode);
if (sysUser == null && !Objects.isNull(mobile)) {
LOGGER.info("code未查询到用默认");
sysUser = userService.getSysUserByPhone(mobile);
}
if(sysUser == null) {
return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("用户信息不存在");
}
Long startTime = System.currentTimeMillis();
List<SysMenu> menuList = memTreeService.packTreeDingSysMenuByUserId(sysUser.getId());
Long menuSelectTime = System.currentTimeMillis();
LOGGER.info("第一段耗时:{}", menuSelectTime - startTime);
List<SysMenu> syslist = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, filterDingPmcParentMenuId , CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue());
LOGGER.info("第二段耗时:{}", System.currentTimeMillis() - menuSelectTime);
List<SysMenuDTO> resList = memTreeService.packTreeToDto(syslist);
if (resList != null && resList.size() > 0) {
// 翻译第一级
resList.forEach(menu -> menu.setName(LocaleUtils.getLocaleRes("MENU_" + menu.getName())));
// 内存排序 Sort 降序 code 升序
resList.sort(Comparator.comparing(SysMenuDTO::getMenuSort).reversed().thenComparing(SysMenuDTO::getMenuCode));
}
// 获取工厂信息
List<SysOrganize> sysUserOrganizeList = personnelService.findSysUserOrganize(sysUser.getId());
// 遍历工厂信息,并且把主工厂放在首位
for (int i = 0; i < sysUserOrganizeList.size(); i++) {
if (Objects.equals(sysUserOrganizeList.get(i).getId(), sysUser.getOrganizeId())) {
Collections.swap(sysUserOrganizeList, i, 0);
break;
}
}
Map<String, Object> map = new HashedMap();
map.put("sysUserOrganizeList", sysUserOrganizeList);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(resList).setResultMap(map);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
* getUserInfo
* @param dingTalkTmpAuthCode
* @return
*/
private SysUser getUserInfo(String dingTalkTmpAuthCode) {
SysUser sysUser = null;
String dingtalk_url = "DINGTALK_MENU_URL";
String dingtalk_app_key = "DINGTALK_MENU_APP_KEY";
String dingtalk_app_secret = "DINGTALK_MENU_APP_SECRET";
String dingtalk_white_list = "DINGTALK_MENU_WHITE_LIST";
String dingTalkUrl = RedisCacheTool.getSysConfigStrVal(dingtalk_url);
String dingTalkAppKey = RedisCacheTool.getSysConfigStrVal(dingtalk_app_key);
String dingTalkAppSecret = RedisCacheTool.getSysConfigStrVal(dingtalk_app_secret);
String dingTalkWhiteList = RedisCacheTool.getSysConfigStrVal(dingtalk_white_list);
if (StringUtils.isEmpty(dingTalkUrl) ||
StringUtils.isEmpty(dingTalkAppKey) ||
StringUtils.isEmpty(dingTalkAppSecret) ||
StringUtils.isEmpty(dingTalkWhiteList)) {
//todo errorcode 需要修改
ImppExceptionBuilder.newInstance().setErrorCode("0000431").setErrorDetail("访问钉钉的系统参数缺失,请在平台的系统参数中进行配置");
}
Optional<OapiV2UserGetResponse> userInfo =
dingTalkService.getUserInfo(dingTalkUrl, dingTalkAppKey, dingTalkAppSecret, dingTalkTmpAuthCode);
if (userInfo.isPresent()) {
String mobile = userInfo.get().getResult().getMobile();
if (StringUtils.isEmpty(mobile)) {
ImppExceptionBuilder.newInstance().setErrorCode("0000431").setErrorDetail("用户并未在钉钉中设置手机号 或 钉钉接口权限不足无法获取到手机号");
}
if (!Arrays.asList(dingTalkWhiteList.split(",")).contains(mobile)) {
ImppExceptionBuilder.newInstance().setErrorCode("0000431").setErrorDetail("对指定手机号允许,权限不足,请联系管理员");
}
sysUser = userService.getSysUserByPhone(mobile);
if (sysUser == null) {
ImppExceptionBuilder.newInstance().setErrorCode("0000431").setErrorDetail("未根据用户手机在平台中找到相应记录 钉钉获取的手机号为\" + mobile");
}
}
return sysUser;
}
} }

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.api.iservice.dto.SysMenuDTO;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel; import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
@ -8,10 +9,13 @@ import cn.estsh.i3plus.pojo.platform.bean.*;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -40,6 +44,16 @@ public class CoreMemTreeService implements ICoreMemTreeService {
private ISysOrganizeService organizeService; private ISysOrganizeService organizeService;
@Autowired @Autowired
private ISysDepartmentService departmentService; private ISysDepartmentService departmentService;
/**
* PMC id
*/
@Value(value = "${filter.ding.menu.id}")
private String filterDingPmcMenuIds;
/**
* PMC id
*/
@Value(value = "${filter.ding.menu.parent.id}")
private String filterDingPmcParentMenuId;
@Override @Override
public List<SysPosition> packTreeSysPosition(List<SysPosition> list, Long parentId) { public List<SysPosition> packTreeSysPosition(List<SysPosition> list, Long parentId) {
@ -627,6 +641,11 @@ public class CoreMemTreeService implements ICoreMemTreeService {
return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue());
} }
@Override
public List<SysMenu> packTreeDingSysMenuByUserId(Long userId) {
return packTreeDingSysMenuByUserIdAndParentId(userId, Long.parseLong(filterDingPmcParentMenuId));
}
/** /**
* ID ID * ID ID
* @param userId * @param userId
@ -648,7 +667,37 @@ public class CoreMemTreeService implements ICoreMemTreeService {
LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime); LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime);
if (refRoleMenuList != null && refRoleMenuList.size() > 0) { if (refRoleMenuList != null && refRoleMenuList.size() > 0) {
List<SysMenu> menuList = menuService.findAll(); List<SysMenu> menuList = menuService.findAll();
// 构建菜单树
List<SysMenu> menuRootTree = packTreeSysMenu(menuList, parentId);
//
return packTreeSysMenuBySysRefRoleMenu(menuRootTree, refRoleMenuList);
}
}
return Collections.emptyList();
}
@Override
public List<SysMenu> packTreeDingSysMenuByUserIdAndParentId(Long userId, Long parentId) {
// 查询用户关联角色
long startTime = System.currentTimeMillis();
List<SysRefUserRole> roleList = personnelService.findSysRefUserRole(userId);
long roleTime = System.currentTimeMillis();
LOGGER.info("查询用户所关联的角色信息耗时:{}",roleTime - startTime);
if (roleList != null && roleList.size() > 0) {
// 查询角色关联菜单
List<SysRefRoleMenu> refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList);
// pdc 菜单
List<Long> includeMenuId = Arrays.asList(filterDingPmcMenuIds.split(",")).stream().map(Long :: parseLong).collect(Collectors.toList());
long refRoleMenuTime = System.currentTimeMillis();
LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime);
List<Long> menuIdList = refRoleMenuList.stream().map(SysRefRoleMenu::getMenuId).collect(Collectors.toList());
includeMenuId.retainAll(menuIdList);
if (refRoleMenuList != null && refRoleMenuList.size() > 0) {
List<SysMenu> menuList = menuService.findByIdList(includeMenuId);
// 构建菜单树 // 构建菜单树
List<SysMenu> menuRootTree = packTreeSysMenu(menuList, parentId); List<SysMenu> menuRootTree = packTreeSysMenu(menuList, parentId);
// //
@ -682,6 +731,22 @@ public class CoreMemTreeService implements ICoreMemTreeService {
return packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue()); return packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue());
} }
@Override
public List<SysMenuDTO> packTreeToDto(List<SysMenu> list) {
List<SysMenuDTO> sysMenuDTOList = new ArrayList<>();
list.stream().forEach(sysMenu -> {
SysMenuDTO sysMenuDTO = new SysMenuDTO();
BeanUtils.copyProperties(sysMenu, sysMenuDTO);
if (CollectionUtils.isNotEmpty(sysMenu.getChildList())) {
sysMenuDTO.setChildList(packTreeToDto(sysMenu.getChildList()));
}
sysMenuDTOList.add(sysMenuDTO);
});
return sysMenuDTOList;
}
/********************************************* End SysMenu Tree *********************************************/ /********************************************* End SysMenu Tree *********************************************/
} }

@ -15,6 +15,7 @@ import cn.estsh.impp.framework.boot.util.*;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

@ -60,14 +60,14 @@ spring.datasource.hikari.connection-timeout=30000
##\u4E3B\u6570\u636E\u6E90\uFF0C\u8BFB\u5199 ##\u4E3B\u6570\u636E\u6E90\uFF0C\u8BFB\u5199
#impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource #impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource
impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.write.datasource.username=impp_i3_core_user impp.write.datasource.username=impp_i3_core_user
impp.write.datasource.password=impp_i3_core_pwd impp.write.datasource.password=impp_i3_core_pwd
##\u8F85\u6570\u636E\u6E90\uFF0C\u53EA\u8BFB ##\u8F85\u6570\u636E\u6E90\uFF0C\u53EA\u8BFB
#impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource #impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource
impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.read.datasource.username=impp_i3_core_user impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd impp.read.datasource.password=impp_i3_core_pwd
@ -92,7 +92,7 @@ spring.jpa.properties.hibernate.hbm2ddl.auto=update
##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316############## ##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316##############
impp.schedule.open=true impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user impp.schedule.datasource.username=impp_i3_schedule_user
impp.schedule.datasource.password=impp_i3_schedule_pwd impp.schedule.datasource.password=impp_i3_schedule_pwd
impp.schedule.datasource.max-connections=20 impp.schedule.datasource.max-connections=20

@ -1,5 +1,5 @@
#\u4F7F\u7528\u914D\u7F6E #\u4F7F\u7528\u914D\u7F6E
spring.profiles.active=test spring.profiles.active=docker
#\u9879\u76EE\u63CF\u8FF0\u4FE1\u606F\uFF08swagger\u4E2D\u663E\u5F0F\uFF09\uFF0C\u4E2D\u6587\u4F7F\u7528uncode\u8F6C\u7801 #\u9879\u76EE\u63CF\u8FF0\u4FE1\u606F\uFF08swagger\u4E2D\u663E\u5F0F\uFF09\uFF0C\u4E2D\u6587\u4F7F\u7528uncode\u8F6C\u7801
desc.application.name=\u6838\u5FC3\u7BA1\u7406\u540E\u53F0 desc.application.name=\u6838\u5FC3\u7BA1\u7406\u540E\u53F0
@ -77,3 +77,6 @@ redis.session.db=1
#\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58 #\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58
redis.core.db=2 redis.core.db=2
wms.redis.open=true wms.redis.open=true
filter.ding.menu.id = 112000000,102081502,112000100,112000200,112000300,112000400,112000500,112000501,112000520,112000600,112000700,112000701,112000702,112000800,112000900,112001000,112001100
filter.ding.menu.parent.id = 100000000

Loading…
Cancel
Save