From 1f5c0349a42791f8445aa25e7ba7ca24f999d5ea Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Wed, 29 Jun 2022 14:25:20 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=8A=A0=E5=88=B7=E6=96=B0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/apiservice/controller/DemoUploadController.java | 5 +++-- .../controller/busi/SysDictionaryController.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) 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/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); + } + } } From ec7bc57f9755725b09c7119270c402d27da87eb8 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Mon, 11 Jul 2022 16:20:05 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=85=A5?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/core/apiservice/controller/busi/SysUserInfoController.java | 1 + 1 file changed, 1 insertion(+) 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); From 79feab31fc9edbb22d249b5946baa2d87dc3f80b Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Tue, 12 Jul 2022 14:27:17 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E7=88=B6=E8=8A=82=E7=82=B9=E7=9A=84=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/SysMenuController.java | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) 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)); From 44c7ee028dcdff16a5c51152ead4f6104cd5f713 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Thu, 14 Jul 2022 10:39:13 +0800 Subject: [PATCH 04/16] =?UTF-8?q?21047-=E6=9D=BE=E4=B8=8BEP-=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A6=96=E9=A1=B5=E3=80=81=E6=A8=A1=E5=9D=97=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E3=80=81=E5=8A=9F=E8=83=BD=E7=95=8C=E9=9D=A2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=B8=8B=E7=9A=84=E5=B7=A5=E5=8E=82=E5=90=8D=E5=AD=97?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=9B=B4=E6=94=B9=E6=88=90=E5=8F=AF=E9=85=8D?= =?UTF-8?q?=E7=BD=AE-2022-07-10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/core/api/iservice/busi/ISysConfigService.java | 3 +++ .../core/apiservice/controller/base/WhiteController.java | 12 ++++++++++++ .../apiservice/serviceimpl/busi/SysConfigService.java | 15 +++++++++++++++ 3 files changed, 30 insertions(+) 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-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..dc17295 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 @@ -199,6 +199,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() { 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); From ce6d9bbc90d6634d7117c7bb06e5799336f2ac64 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Fri, 15 Jul 2022 17:27:31 +0800 Subject: [PATCH 05/16] =?UTF-8?q?22695-=E5=8A=9F=E8=83=BD=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E8=8F=9C=E5=8D=95=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysMenuService.java | 2 + .../busi/SysMenuPanasonicController.java | 98 ++++++++++++++++++++++ .../serviceimpl/busi/SysMenuService.java | 49 ++++++++++- 3 files changed, 145 insertions(+), 4 deletions(-) create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuPanasonicController.java 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-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/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); + } } From 0c4a1e9e825ac9fe38b24b322d37b318289996d6 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Sat, 23 Jul 2022 17:53:58 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/busi/ICoreMemTreeService.java | 11 ++- .../i3plus/core/api/iservice/dto/SysMenuDTO.java | 51 ++++++++++ .../controller/base/WhiteController.java | 103 ++++++++++++++++++++- .../serviceimpl/busi/CoreMemTreeService.java | 51 ++++++++++ 4 files changed, 210 insertions(+), 6 deletions(-) create mode 100644 modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java 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/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..d74810f --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/SysMenuDTO.java @@ -0,0 +1,51 @@ +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; + /** + * 子菜单 + */ + private List childList; + +} 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 dc17295..d0ed38c 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,15 +4,13 @@ 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; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; -import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; -import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.tool.*; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog; @@ -24,6 +22,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.base.util.BeanMapUtils; import cn.estsh.i3plus.pojo.model.common.CloudPagerModel; import cn.estsh.i3plus.pojo.model.common.ImppEmail; import cn.estsh.i3plus.pojo.model.common.ImppSmsContent; @@ -62,12 +61,14 @@ import com.google.common.cache.CacheBuilder; import com.taobao.api.ApiException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import jodd.bean.BeanUtil; import jodd.util.StringUtil; 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.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; @@ -169,6 +170,9 @@ public class WhiteController extends CoreBaseController { @Autowired private SysFileController sysFileController; + @Autowired + private ICoreMemTreeService memTreeService; + private Cache unsavedLocaleResSwitch = CacheBuilder.newBuilder() .maximumSize(1) .expireAfterWrite(1, TimeUnit.MINUTES) @@ -191,6 +195,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); @@ -1328,6 +1333,7 @@ public class WhiteController extends CoreBaseController { } } + /** * 获取accessToken * @@ -1373,7 +1379,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); @@ -1407,4 +1412,92 @@ 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, CommonConstWords.SYSTEM_MENU_ROOT_ID, 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)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(resList); + } else { + return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("菜单信息不存在"); + } + } 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 dingTalkUrl = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_URL); + String dingTalkAppKey = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_KEY); + String dingTalkAppSecret = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_SECRET); + String dingTalkWhiteList = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.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, 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; + } } 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..5556859 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,6 +9,7 @@ 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.stereotype.Service; @@ -627,6 +629,11 @@ public class CoreMemTreeService implements ICoreMemTreeService { return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); } + @Override + public List packTreeDingSysMenuByUserId(Long userId) { + return packTreeDingSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); + } + /** * 根据用户ID 和 节点ID 查询功能树 * @param userId @@ -648,7 +655,35 @@ 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); + long refRoleMenuTime = System.currentTimeMillis(); + LOGGER.info("查询角色关联菜单:{}",refRoleMenuTime - roleTime); + List menuIdList = refRoleMenuList.stream().map(SysRefRoleMenu::getMenuId).collect(Collectors.toList()); + if (refRoleMenuList != null && refRoleMenuList.size() > 0) { + //todo 暂时先加入一个根节点,避免全查询 + List copyMenuIdList = new ArrayList<>(menuIdList); + // copyMenuIdList.add(100000000l); + // List menuList = menuService.findByIdList(copyMenuIdList); + List menuList = menuService.findAll(); // 构建菜单树 List menuRootTree = packTreeSysMenu(menuList, parentId); // @@ -682,6 +717,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 *********************************************/ } From f8e12e8b4444c34f7191cd43312212cdd6a57877 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Sat, 23 Jul 2022 22:57:28 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/core/api/iservice/dto/SysMenuDTO.java | 4 ++++ .../controller/base/WhiteController.java | 16 ++++++++----- .../serviceimpl/busi/CoreMemTreeService.java | 26 +++++++++++++++++----- .../src/main/resources/application-dev.properties | 6 ++--- .../src/main/resources/application.properties | 3 +++ 5 files changed, 40 insertions(+), 15 deletions(-) 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 index d74810f..1b7068f 100644 --- 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 @@ -44,6 +44,10 @@ public class SysMenuDTO implements Serializable { */ private Integer menuSort; /** + * url路径 + */ + private String menuUrl; + /** * 子菜单 */ private List childList; 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 d0ed38c..333fd03 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 @@ -10,7 +10,10 @@ import cn.estsh.i3plus.core.apiservice.util.MailUtil; import cn.estsh.i3plus.core.apiservice.util.SysUserPasswordUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.platform.common.tool.*; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; +import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; +import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog; @@ -22,7 +25,6 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.base.util.BeanMapUtils; import cn.estsh.i3plus.pojo.model.common.CloudPagerModel; import cn.estsh.i3plus.pojo.model.common.ImppEmail; import cn.estsh.i3plus.pojo.model.common.ImppSmsContent; @@ -61,15 +63,13 @@ import com.google.common.cache.CacheBuilder; import com.taobao.api.ApiException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import jodd.bean.BeanUtil; -import jodd.util.StringUtil; 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.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; @@ -173,6 +173,10 @@ public class WhiteController extends CoreBaseController { @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) @@ -1440,7 +1444,7 @@ public class WhiteController extends CoreBaseController { List menuList = memTreeService.packTreeDingSysMenuByUserId(sysUser.getId()); Long menuSelectTime = System.currentTimeMillis(); LOGGER.info("第一段耗时:{}", menuSelectTime - startTime); - List syslist = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + List syslist = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, filterDingPmcParentMenuId , CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); LOGGER.info("第二段耗时:{}", System.currentTimeMillis() - menuSelectTime); List resList = memTreeService.packTreeToDto(syslist); 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 5556859..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 @@ -11,9 +11,11 @@ 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; @@ -42,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) { @@ -631,7 +643,7 @@ public class CoreMemTreeService implements ICoreMemTreeService { @Override public List packTreeDingSysMenuByUserId(Long userId) { - return packTreeDingSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); + return packTreeDingSysMenuByUserIdAndParentId(userId, Long.parseLong(filterDingPmcParentMenuId)); } /** @@ -675,15 +687,17 @@ public class CoreMemTreeService implements ICoreMemTreeService { 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) { - //todo 暂时先加入一个根节点,避免全查询 - List copyMenuIdList = new ArrayList<>(menuIdList); - // copyMenuIdList.add(100000000l); - // List menuList = menuService.findByIdList(copyMenuIdList); - List menuList = menuService.findAll(); + List menuList = menuService.findByIdList(includeMenuId); // 构建菜单树 List menuRootTree = packTreeSysMenu(menuList, parentId); // 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..81cd07f 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -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 0828a0c..3dbef88 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -76,3 +76,6 @@ redis.resource.db=0 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 + +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 From 86fb3ab1267cc57a90d0f7b0e9422b7fc5228603 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Mon, 25 Jul 2022 10:23:13 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus-core-apiservice/src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index efcc0e9..7ed4297 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -1,5 +1,5 @@ #\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 From b03416cd4953818e14a7d5cf7dd6785b718b5a84 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Tue, 26 Jul 2022 11:02:39 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E5=8C=BA=E5=88=86=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/core/apiservice/util/SysUserPasswordUtil.java | 4 ++++ 1 file changed, 4 insertions(+) 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); } From a8b32771c2d98b9db48343b660bb6496184e30f6 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Wed, 27 Jul 2022 14:56:33 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E3=80=90=E9=80=9A=E7=9F=A5=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E6=8A=A5=E8=A1=A8=E3=80=91=E5=B1=95=E7=A4=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=8D=E5=8C=BA=E5=88=86=E5=B7=A5=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/BaseMessageController.java | 17 +++++++++++++++++ .../controller/cloud/SwebMessageController.java | 11 +++++++++++ 2 files changed, 28 insertions(+) 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/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 处理结果 From 292f60a33bdc88a7a898269de2ee16d04847daa4 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Wed, 27 Jul 2022 15:01:49 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E5=88=86=E5=8C=BA=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/estsh/i3plus/core/apiservice/util/SysUserPasswordUtil.java | 3 +++ 1 file changed, 3 insertions(+) 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..b6b3bfd 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 @@ -498,6 +498,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); } From fe58b080624ce06e547a0eddedf07210c0614ad9 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Fri, 29 Jul 2022 19:50:22 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/WhiteController.java | 36 +++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) 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 333fd03..a6d33b7 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 @@ -63,6 +63,8 @@ import com.google.common.cache.CacheBuilder; import com.taobao.api.ApiException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +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; @@ -80,6 +82,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 : @@ -1454,10 +1457,22 @@ public class WhiteController extends CoreBaseController { resList.forEach(menu -> menu.setName(LocaleUtils.getLocaleRes("MENU_" + menu.getName()))); // 内存排序 Sort 降序 code 升序 resList.sort(Comparator.comparing(SysMenuDTO::getMenuSort).reversed().thenComparing(SysMenuDTO::getMenuCode)); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(resList); - } else { - return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("菜单信息不存在"); } + // 获取工厂信息 + 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) { @@ -1474,10 +1489,17 @@ public class WhiteController extends CoreBaseController { SysUser sysUser = null; - String dingTalkUrl = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_URL); - String dingTalkAppKey = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_KEY); - String dingTalkAppSecret = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_APP_SECRET); - String dingTalkWhiteList = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.DINGTALK_WHITE_LIST); + 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) || From c2571fa89a011378d4323980b3d664335a81dfc1 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Wed, 3 Aug 2022 23:22:26 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/WhiteController.java | 40 +++++++++++++++++++++- .../src/main/resources/application-dev.properties | 2 +- .../src/main/resources/application.properties | 2 ++ 3 files changed, 42 insertions(+), 2 deletions(-) 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 a6d33b7..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 @@ -55,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; @@ -72,6 +74,7 @@ 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.*; @@ -1169,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"; + /** * 钉钉单聊机器人批量发送消息 * @@ -1349,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(); @@ -1368,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; @@ -1510,7 +1517,7 @@ public class WhiteController extends CoreBaseController { } Optional userInfo = - dingTalkService.getUserInfo(dingTalkUrl, dingTalkAppKey, dingTalkAppSecret, dingTalkTmpAuthCode); + dingTalkService.getUserInfo(dingTalkUrl, getMenuAccessToken(dingTalkUrl, dingTalkAppKey, dingTalkAppSecret), dingTalkTmpAuthCode); if (userInfo.isPresent()) { String mobile = userInfo.get().getResult().getMobile(); if (StringUtils.isEmpty(mobile)) { @@ -1526,4 +1533,35 @@ public class WhiteController extends CoreBaseController { } 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/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index 81cd07f..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 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index 7ed4297..e5c1776 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=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 From a810f7bfee822bf53d0b91a6ef413ca0ce0d0f28 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Thu, 4 Aug 2022 18:30:44 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=92=89=E9=92=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus-core-apiservice/src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index e5c1776..c8757cc 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -80,5 +80,5 @@ redis.session.db=1 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 +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 From 6ced8be8a74c8b06bebd00f7509792a03ea13e87 Mon Sep 17 00:00:00 2001 From: "zhang.xw" Date: Mon, 15 Aug 2022 14:27:22 +0800 Subject: [PATCH 15/16] cdm --- modules/i3plus-core-apiservice/pom.xml | 6 +++++- .../controller/busi/SysTaskController.java | 22 +++++++++------------- .../controller/busi/SysTaskPlanController.java | 6 ++++++ pom.xml | 6 +++++- 4 files changed, 25 insertions(+), 15 deletions(-) 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/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/pom.xml b/pom.xml index 2a780f9..03147a3 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,11 @@ i3plus-core-icloud ${project.dependency.version} - + i3plus.icloud i3plus-icloud-wms From 20bba1f73d437761c5edd594ff0fd54308b0bc67 Mon Sep 17 00:00:00 2001 From: "feng.liu" <123456> Date: Fri, 19 Aug 2022 16:13:38 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E6=9F=A5=E6=89=BE=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=AF=86=E7=A0=81bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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();