diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java index 49fbbf1..2b0b10c 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java @@ -1,5 +1,6 @@ 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.platform.bean.*; import io.swagger.annotations.ApiOperation; @@ -160,7 +161,8 @@ public interface ICoreMemTreeService { @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") List packTreeSysMenuByUserId(Long userId); - + @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") + public List packTreeDingSysMenuByUserId(Long userId); /** * 根据用户ID 和 节点ID 查询功能树 * @param userId @@ -170,12 +172,19 @@ public interface ICoreMemTreeService { @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树") List packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId); + @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树") + List packTreeDingSysMenuByUserIdAndParentId(Long userId,Long parentId); + @ApiOperation(value = "查询功能子节点",notes = "根据父节点ID 和 菜单类型 查询功能树") List packTreeSysMenuByParentIdAndMenuType(List list,Long parentId,Integer menuType); @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") List packTreeSysMenu(); + @ApiOperation(value = "查询功能子节点",notes = "根据父节点ID 和 菜单类型 查询功能树") + List packTreeToDto(List list); + + /********************************************* End SysMenu Tree *********************************************/ } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java index e2cbea0..eeb0f40 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java @@ -77,6 +77,9 @@ public interface ISysConfigService { @ApiOperation(value = "查询系统配置信息项") List findSystemInfoConfig(); + @ApiOperation(value = "查询松下系统配置信息项") + List findSystemInfoConfigPanasonic(String organizeCode); + /** * 根据系统配置代码修改配置项 * @param code diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java index f0f1969..ff3cb84 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java @@ -68,4 +68,6 @@ public interface ISysMenuService extends ICrudService { @ApiOperation(value = "根据菜单代码查询菜单信息") SysMenu getSysMenuByCode(String code); + @ApiOperation(value = "根据菜单ID删除菜单信息") + void deleteSysMenuById(Long id); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java new file mode 100644 index 0000000..1b7068f --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java @@ -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 childList; + +} diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml index 60835b9..ee717bf 100644 --- a/modules/i3plus-core-apiservice/pom.xml +++ b/modules/i3plus-core-apiservice/pom.xml @@ -240,7 +240,11 @@ elasticsearch 7.5.1 - + + i3plus.ext.cdm + i3plus-ext-cdm-icloud + 1.0.0.1 + org.springframework.boot spring-boot-starter-data-elasticsearch diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoUploadController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoUploadController.java index 802271e..75bbfdc 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoUploadController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoUploadController.java @@ -1,12 +1,13 @@ package cn.estsh.i3plus.core.apiservice.controller; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.fileservice.ImppFileService; -import cn.estsh.i3plus.pojo.base.bean.ImppFile; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -63,7 +64,7 @@ public class DemoUploadController extends CoreBaseController{ @ApiOperation(value = "文件上传",notes = "文件上传") public ResultBean singleFileUpload(@RequestParam("file") MultipartFile file) { try { - ImppFile dfsFile = fileService.upload(file); + SysFile dfsFile = fileService.upload(file, CommonEnumUtil.SOFT_TYPE.CORE.getValue()); return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(dfsFile); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BaseMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BaseMessageController.java index 758c5a3..ecd60ca 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BaseMessageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BaseMessageController.java @@ -185,6 +185,23 @@ public class BaseMessageController extends CoreBaseController { } /** + * 松下用 - 系统消息 - 分页带条件查询 + * @param messagePagerModel 分页及查询条件信息 + * @return 处理结果 + */ + public ResultBean baseQuerySysMessageByPagerSx(@RequestBody MessagePagerModel messagePagerModel) { + try { + ListPager sysMessageListPager = sysMessageService.querySysMessageByPager(messagePagerModel.getSysMessage(), + messagePagerModel.getPager()); + return ResultBean.success("操作成功").setListPager(sysMessageListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** * 通用 - 系统消息 - 批量删除消息 * * @param ids id数组 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 d521801..27e6f38 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 @@ -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.ISystemLoginStrategyService; 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.util.MailUtil; import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil; @@ -54,7 +55,9 @@ import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.models.RuntimeOptions; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiGettokenRequest; import com.dingtalk.api.request.OapiV2UserGetbymobileRequest; +import com.dingtalk.api.response.OapiGettokenResponse; import com.dingtalk.api.response.OapiV2UserGetResponse; import com.dingtalk.api.response.OapiV2UserGetbymobileResponse; import com.google.common.cache.Cache; @@ -62,13 +65,16 @@ import com.google.common.cache.CacheBuilder; import com.taobao.api.ApiException; import io.swagger.annotations.Api; 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.shiro.authc.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpMethod; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; @@ -79,6 +85,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.BiFunction; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Description : @@ -169,6 +176,13 @@ public class WhiteController extends CoreBaseController { @Autowired private SysFileController sysFileController; + @Autowired + private ICoreMemTreeService memTreeService; + + + @Value(value = "${filter.ding.menu.parent.id}") + private Long filterDingPmcParentMenuId; + private Cache unsavedLocaleResSwitch = CacheBuilder.newBuilder() .maximumSize(1) .expireAfterWrite(1, TimeUnit.MINUTES) @@ -191,6 +205,7 @@ public class WhiteController extends CoreBaseController { @ApiOperation(value = "查询可用语言", notes = "查询可用语言") public ResultBean getSystemInfo() { try { + LOGGER.info("调用了/system-info"); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(configService.findSystemInfoConfig()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); @@ -199,6 +214,18 @@ public class WhiteController extends CoreBaseController { } } + @GetMapping(value = "/system-info-panasonic") + @ApiOperation(value = "查询可用语言", notes = "查询可用语言") + public ResultBean getSystemInfoPanasonic(String organizeCode) { + try { + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(configService.findSystemInfoConfigPanasonic(organizeCode)); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @GetMapping(value = "/session-user") @ApiOperation(value = "获取用户信息", notes = "获取当前登录用户账号详细信息") public ResultBean getSession() { @@ -1145,6 +1172,8 @@ public class WhiteController extends CoreBaseController { private static final Long ACCESS_TOKEN_EXPIRE_TIME = 7080L; private static final String ACCESS_TOKEN_KEY = "ding_talk:access_token"; + private static final String ACCESS_MENU_TOKEN_KEY = "ding_talk:menu_access_token"; + /** * 钉钉单聊机器人批量发送消息 * @@ -1316,6 +1345,7 @@ public class WhiteController extends CoreBaseController { } } + /** * 获取accessToken * @@ -1324,6 +1354,7 @@ public class WhiteController extends CoreBaseController { private String getAccessToken() { Object accessTokenCached = redisCore.getObject(ACCESS_TOKEN_KEY); if (accessTokenCached != null) { + LOGGER.info("通过缓存获取到的钉钉token, key={},value={}", ACCESS_TOKEN_KEY, accessTokenCached); return String.valueOf(accessTokenCached); } Config config = new Config(); @@ -1343,6 +1374,7 @@ public class WhiteController extends CoreBaseController { try { GetAccessTokenResponse response = client.getAccessToken(getAccessTokenRequest); if (!StringUtils.isEmpty(response.body.accessToken)) { + LOGGER.info("插入钉钉token缓存, key={},value={}", ACCESS_TOKEN_KEY, response.body.accessToken); redisCore.putObject(ACCESS_TOKEN_KEY, response.body.accessToken, ACCESS_TOKEN_EXPIRE_TIME); } return response.body.accessToken; @@ -1361,7 +1393,6 @@ public class WhiteController extends CoreBaseController { return ""; } - private OapiV2UserGetResponse getDingTalkUserInfo(String dingTalkTmpAuthCode) { String dingTalkUrl = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_URL); String dingTalkAppKey = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_KEY); @@ -1395,4 +1426,142 @@ public class WhiteController extends CoreBaseController { 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 menuList = memTreeService.packTreeDingSysMenuByUserId(sysUser.getId()); + Long menuSelectTime = System.currentTimeMillis(); + LOGGER.info("第一段耗时:{}", menuSelectTime - startTime); + List syslist = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, filterDingPmcParentMenuId , CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + LOGGER.info("第二段耗时:{}", System.currentTimeMillis() - menuSelectTime); + + List 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 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 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 userInfo = + dingTalkService.getUserInfo(dingTalkUrl, getMenuAccessToken(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; + } + + /** + * 获取accessToken + * + * @return + */ + private String getMenuAccessToken(String dingUrl, String appKey, String appSecret) { + Object accessTokenCached = redisCore.getObject(ACCESS_MENU_TOKEN_KEY); + if (accessTokenCached != null) { + LOGGER.info("通过缓存获取到的钉钉menu_token, key={},value={}", ACCESS_MENU_TOKEN_KEY, accessTokenCached); + return String.valueOf(accessTokenCached); + } + String result = null; + DefaultDingTalkClient client = new DefaultDingTalkClient(dingUrl + "/gettoken"); + OapiGettokenRequest request = new OapiGettokenRequest(); + request.setAppkey(appKey); + request.setAppsecret(appSecret); + request.setHttpMethod(HttpMethod.GET.name()); + try { + OapiGettokenResponse response = client.execute(request); + result = response.isSuccess() ? response.getAccessToken() : null; + if (!StringUtils.isEmpty(result)) { + LOGGER.info("插入钉钉menu_token缓存, key={},value={}", ACCESS_MENU_TOKEN_KEY, response.getAccessToken()); + redisCore.putObject(ACCESS_MENU_TOKEN_KEY, response.getAccessToken(), ACCESS_TOKEN_EXPIRE_TIME); + } + } catch (ApiException e) { + LOGGER.error("获取钉钉AccessToken错误", e); + throw new ImppBusiException("获取钉钉AccessToken错误 " + e.getMessage()); + } + return result; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java index d9c8e98..00f2f0c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java @@ -533,4 +533,18 @@ public class SysDictionaryController extends CoreBaseController{ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + @PostMapping(value = "/flushDictionaryToRedis") + @ApiOperation(value = "刷新数据字典到redis") + public ResultBean flushDictionaryToRedis() { + try { + // 更新缓存信息 + systemInitService.putAndLoadSysDictionary(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index 7bc7fec..543fa1a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -44,6 +44,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.OutputStream; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -375,16 +376,23 @@ public class SysMenuController extends CrudBaseController { }); - list.forEach(menu -> { - menu.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue()); - menu.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); - if(menu.getParentId().longValue() != -1){ - SysMenu mu = map.get(menu.getParentId().toString()); - ValidatorBean.checkNotNull(mu, "【"+menu.getParentId()+"】不存在的父节点信息"); - menu.setNameZhShortening(StringTool.getAllFirstLetter(mu.getName())); - menu.setParentNameRdd(mu.getName()); + Iterator it = list.iterator(); + while(it.hasNext()){ + SysMenu sysMenu = it.next(); + sysMenu.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue()); + sysMenu.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); + if(sysMenu.getParentId().longValue() != -1){ + SysMenu mu = map.get(sysMenu.getParentId().toString()); + //ValidatorBean.checkNotNull(mu, "【"+menu.getParentId()+"】不存在的父节点信息"); + if(mu == null){ + LOGGER.error("{}, 不存在的父节点信息", sysMenu.getParentId()); + it.remove(); + }else{ + sysMenu.setNameZhShortening(StringTool.getAllFirstLetter(mu.getName())); + sysMenu.setParentNameRdd(mu.getName()); + } } - }); + } return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setResultList(menuService.saveBatch(list)); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuPanasonicController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuPanasonicController.java new file mode 100644 index 0000000..c06106b --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuPanasonicController.java @@ -0,0 +1,98 @@ +package cn.estsh.i3plus.core.apiservice.controller.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService; +import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; +import cn.estsh.i3plus.platform.common.exception.BaseImppException; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.common.util.FileContentTypeTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; +import cn.estsh.impp.framework.base.controller.CrudBaseController; +import cn.estsh.impp.framework.base.service.ICrudService; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.io.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * @Description : 系统功能对外接口 + * @Reference : + * @Author : wei.peng + * @Date : 2018-10-22 15:18:14.982 + * @Modify : + **/ +@RestController +@Api(tags = "系统功能服务") +@RequestMapping(PlatformConstWords.BASE_URL + "/sys-menu-panasonic") +public class SysMenuPanasonicController extends CrudBaseController { + + public static final Logger LOGGER = LoggerFactory.getLogger(SysMenuPanasonicController.class); + + @Autowired + private ISysMenuService menuService; + + @Autowired + private EntityManager entityManager; + + @Resource(name= CommonConstWords.IMPP_REDIS_RES) + private ImppRedis redisRes; + + @Autowired + private ICoreMemTreeService memTreeService; + + @Autowired + private IPersonnelService personnelService; + + @Override + public ICrudService getCrudService() { + return menuService; + } + + /** + * CORE - 批量删除 + * @param id id + * @return 处理结果 + */ + @DeleteMapping("/delete-panasonic/{id}") + @ApiOperation(value = "删除消息",notes = "删除消息") + public ResultBean deleteSysMenuById(@PathVariable("id") Long id){ + try { + // 数据校验 + ValidatorBean.checkNotNull(id, "菜单id 不能为空"); + + menuService.deleteSysMenuById(id); + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java index d6cbd3c..cc85e8d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskService; +import cn.estsh.i3plus.ext.cdm.icloud.sdk.ICdmCommonCloud; import cn.estsh.i3plus.ext.qms.icloud.sdk.IQmsCommonCloud; import cn.estsh.i3plus.icloud.andon.sdk.IAndonCommonCloud; import cn.estsh.i3plus.icloud.eam.sdk.IEamCommonCloud; @@ -39,23 +40,12 @@ import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; import java.net.URLEncoder; import java.util.List; import java.util.Map; @@ -108,6 +98,9 @@ public class SysTaskController extends CoreBaseController { private IEamCommonCloud iEamCommonCloud; @Autowired + private ICdmCommonCloud iCdmCommonCloud; + + @Autowired private EntityManager entityManager; @Autowired @@ -157,6 +150,9 @@ public class SysTaskController extends CoreBaseController { }else if (softType == CommonEnumUtil.SOFT_TYPE.EAM.getValue()) { //eam commonService = iEamCommonCloud; + } else if (softType == CommonEnumUtil.SOFT_TYPE.CDM.getValue()) { + //cdm + commonService = iCdmCommonCloud; } return commonService; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java index c1be42a..274040f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskCycleService; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskService; +import cn.estsh.i3plus.ext.cdm.icloud.sdk.ICdmScheduleJobCloud; import cn.estsh.i3plus.ext.qms.icloud.sdk.IQmsCommonCloud; import cn.estsh.i3plus.ext.qms.icloud.sdk.IQmsScheduleJobCloud; import cn.estsh.i3plus.icloud.andon.sdk.IAndonScheduleJobCloud; @@ -132,6 +133,8 @@ public class SysTaskPlanController extends CoreBaseController { @Autowired private IEamScheduleJobCloud eamScheduleJobCloud; + @Autowired + private ICdmScheduleJobCloud iCdmScheduleJobCloud; /** @@ -170,7 +173,10 @@ public class SysTaskPlanController extends CoreBaseController { quartzJobService = qmsScheduleJobCloud; }else if (source == CommonEnumUtil.SOFT_TYPE.EAM.getValue()) { quartzJobService = eamScheduleJobCloud; + } else if (source == CommonEnumUtil.SOFT_TYPE.CDM.getValue()) { + quartzJobService = iCdmScheduleJobCloud; } + return quartzJobService; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index 773973c..f15534f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -778,6 +778,7 @@ public class SysUserInfoController extends CoreBaseController { //设置密码为默认值 userDetailModel.setUserLoginPassword(CommonConstWords.CONFIG_PWD_DEFAULT_PASSWORD); + userDetailModel.setPassword(CommonConstWords.CONFIG_PWD_DEFAULT_PASSWORD); SysOrganize sysOrganize = new SysOrganize(); sysOrganize.setOrganizeCode(AuthUtil.getOrganizeCode()); // SysOrganize result = sysOrganizeService.get(sysOrganize); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/SwebMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/SwebMessageController.java index 9597ca0..44a3742 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/SwebMessageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/SwebMessageController.java @@ -93,6 +93,17 @@ public class SwebMessageController extends CoreBaseController { } /** + * SWEB - 分页带条件查询 + * @param messagePagerModel 分页以及条件信息 + * @return 处理结果 + */ + @PostMapping(value = "/sys-message/querySx") + @ApiOperation(value = "松下用-消息复杂查询,分页,排序",notes = "松下用-消息复杂查询,分页,排序") + public ResultBean querySysMessageByPagerSx(@RequestBody MessagePagerModel messagePagerModel){ + return baseSysMessage.baseQuerySysMessageByPagerSx(messagePagerModel); + } + + /** * SWEB - 批量删除 * @param ids ids数组 * @return 处理结果 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java index 096912b..2d999d8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.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.ModelEnumUtil; 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.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -40,6 +44,16 @@ public class CoreMemTreeService implements ICoreMemTreeService { private ISysOrganizeService organizeService; @Autowired 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 public List packTreeSysPosition(List list, Long parentId) { @@ -627,6 +641,11 @@ public class CoreMemTreeService implements ICoreMemTreeService { return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); } + @Override + public List packTreeDingSysMenuByUserId(Long userId) { + return packTreeDingSysMenuByUserIdAndParentId(userId, Long.parseLong(filterDingPmcParentMenuId)); + } + /** * 根据用户ID 和 节点ID 查询功能树 * @param userId @@ -648,7 +667,37 @@ public class CoreMemTreeService implements ICoreMemTreeService { LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime); if (refRoleMenuList != null && refRoleMenuList.size() > 0) { List menuList = menuService.findAll(); + // 构建菜单树 + List menuRootTree = packTreeSysMenu(menuList, parentId); + // + return packTreeSysMenuBySysRefRoleMenu(menuRootTree, refRoleMenuList); + } + } + return Collections.emptyList(); + } + @Override + public List packTreeDingSysMenuByUserIdAndParentId(Long userId, Long parentId) { + // 查询用户关联角色 + long startTime = System.currentTimeMillis(); + List roleList = personnelService.findSysRefUserRole(userId); + long roleTime = System.currentTimeMillis(); + LOGGER.info("查询用户所关联的角色信息耗时:{}",roleTime - startTime); + + if (roleList != null && roleList.size() > 0) { + // 查询角色关联菜单 + List refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList); + // pdc 菜单 + List includeMenuId = Arrays.asList(filterDingPmcMenuIds.split(",")).stream().map(Long :: parseLong).collect(Collectors.toList()); + + + long refRoleMenuTime = System.currentTimeMillis(); + LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime); + List menuIdList = refRoleMenuList.stream().map(SysRefRoleMenu::getMenuId).collect(Collectors.toList()); + + includeMenuId.retainAll(menuIdList); + if (refRoleMenuList != null && refRoleMenuList.size() > 0) { + List menuList = menuService.findByIdList(includeMenuId); // 构建菜单树 List menuRootTree = packTreeSysMenu(menuList, parentId); // @@ -682,6 +731,22 @@ public class CoreMemTreeService implements ICoreMemTreeService { return packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue()); } + @Override + public List packTreeToDto(List list) { + + List 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 *********************************************/ } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java index 8b2dcf8..d093e83 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; @@ -114,6 +115,20 @@ public class SysConfigService implements ISysConfigService { } @Override + public List findSystemInfoConfigPanasonic(String organizeCode) { + List mailConfig = new ArrayList(); + mailConfig.add(SysConfigRDao.getByProperty("configCode", PlatformConstWords.SYSTEM_HOME_LOGO)); + mailConfig.add(SysConfigRDao.getByProperty("configCode", PlatformConstWords.SYSTEM_LOGO)); + mailConfig.add(SysConfigRDao.getByProperty("configCode", PlatformConstWords.SYSTEM_COMPANY_NAME)); + mailConfig.add(SysConfigRDao.getByProperty("configCode", PlatformConstWords.SYSTEM_NAME)); + mailConfig.add(SysConfigRDao.getByProperty("configCode", PlatformConstWords.SYSTEM_TITLE_NAME)); + mailConfig.add(SysConfigRDao.getByProperty(new String[]{"configCode", "organizeCode"}, + new Object[]{PlatformConstWords.SYSTEM_COPYRIGHT,organizeCode})); + + return mailConfig; + } + + @Override @ApiOperation(value = "根据code修改系统配置") public void updateSysConfigByCode(String code, String value) { SysConfigRDao.updateByProperties("configCode",code,"configValue",value); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java index 1b2fa64..e73aa55 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java @@ -25,10 +25,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU; @@ -329,4 +327,47 @@ public class SysMenuService extends CrudService implements ISysMenuServ return sysMenuRDao.getByProperty(packBean); } + @Override + public void deleteSysMenuById(Long id) { + List idList = new ArrayList<>(); + SysMenu sysMenu = sysMenuRDao.getById(id); + if(sysMenu != null){ + idList.add(sysMenu.getId()); + List oneList = getIdList(id,idList); + if(oneList != null){ + sysMenuRDao.deleteByIds(idList.stream().toArray(Long[]::new)); + } + } + } + + private List getIdList(Long id,List idList){ + List sysMenuTwoList = sysMenuRDao.findByProperty("parentId",id); + if(CollectionUtils.isEmpty(sysMenuTwoList)){ + return null; + } + List twoList = sysMenuTwoList.stream().map(SysMenu::getId).collect(Collectors.toList()); + + List sysMenuThreeList = getSysMenuList(twoList); + if(CollectionUtils.isEmpty(sysMenuThreeList)){ + return null; + } + List threeList = sysMenuThreeList.stream().map(SysMenu::getId).collect(Collectors.toList()); + + List sysMenuFourList = getSysMenuList(twoList); + if(CollectionUtils.isEmpty(sysMenuFourList)){ + return null; + } + List fourList = sysMenuFourList.stream().map(SysMenu::getId).collect(Collectors.toList()); + + idList.addAll(twoList); + idList.addAll(threeList); + idList.addAll(fourList); + return idList; + } + + private List getSysMenuList(List idList){ + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(idList, "parentId", ddlPackBean); + return sysMenuRDao.findByHqlWhere(ddlPackBean); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java index 844c99d..e83cf00 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java @@ -175,7 +175,7 @@ public class SysUserSavePasswordService extends CrudService imp @Override public List findPasswordByPassword(String password,Long userId) { List passwordList = new ArrayList<>(); - if(StringUtils.isBlank(password)){ + if(StringUtils.isBlank(password) || userId == null){ return passwordList; } DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/SysUserPasswordUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/SysUserPasswordUtil.java index 522e526..dabcf6c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/SysUserPasswordUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/SysUserPasswordUtil.java @@ -15,6 +15,7 @@ import cn.estsh.impp.framework.boot.util.*; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authc.IncorrectCredentialsException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -498,6 +499,9 @@ public class SysUserPasswordUtil { */ public void checkLoginErrorNumber(String loginName, ResultBean resultBean, Exception e) { SysUser user = userService.getSysUserByLoginName(loginName); + if (!user.getUserLoginName().equals(loginName)){ + user = null; + } if (Objects.nonNull(user)) { checkLoginErrorNumber(user.getId(), resultBean, e); } diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index 0398aab..2cae99b 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -1,5 +1,5 @@ #\u672C\u673Aip -impp.server.ip=192.168.1.56 +impp.server.ip=192.168.6.140 #\u9879\u76EE\u7AEF\u53E3 server.port=8100 #\u94FE\u8DEF\u8FFD\u8E2Azipkin\u63A7\u5236\u53F0ip\u5730\u5740 @@ -60,14 +60,14 @@ spring.datasource.hikari.connection-timeout=30000 ##\u4E3B\u6570\u636E\u6E90\uFF0C\u8BFB\u5199 #impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource 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.password=impp_i3_core_pwd ##\u8F85\u6570\u636E\u6E90\uFF0C\u53EA\u8BFB #impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource 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.password=impp_i3_core_pwd @@ -92,7 +92,7 @@ spring.jpa.properties.hibernate.hbm2ddl.auto=update ##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316############## impp.schedule.open=true 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.password=impp_i3_schedule_pwd impp.schedule.datasource.max-connections=20 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index 0ffe4f2..c8757cc 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -1,5 +1,7 @@ #\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 desc.application.name=\u6838\u5FC3\u7BA1\u7406\u540E\u53F0 @@ -77,3 +79,6 @@ redis.session.db=1 #\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58 redis.core.db=2 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,210009800,210009802,210009801,210009803,210009804,210009805,210009806,210009807 +filter.ding.menu.parent.id = 100000000 diff --git a/pom.xml b/pom.xml index 2708ed8..dd93b6a 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,11 @@ i3plus-core-icloud ${project.dependency.version} - + i3plus.icloud i3plus-icloud-wms