From 9b18312be963fa458770316b041a9ae894d2a58a Mon Sep 17 00:00:00 2001 From: wynne1005 Date: Thu, 11 Mar 2021 17:15:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=AE=A1=E7=90=86=20=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysMenuService.java | 39 +++++++++++++++ .../controller/base/SysLogController.java | 11 ++-- .../controller/busi/SysMenuController.java | 58 +++++++++++++--------- .../base/SysLogElasticSearchService.java | 10 ++-- .../apiservice/serviceimpl/base/SysLogFactory.java | 13 ++--- .../serviceimpl/busi/SysMenuService.java | 38 +++++++------- 6 files changed, 111 insertions(+), 58 deletions(-) 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 a8997cc..f0f1969 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 @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.api.iservice.busi; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.impp.framework.base.service.ICrudService; import io.swagger.annotations.ApiOperation; @@ -26,6 +27,44 @@ public interface ISysMenuService extends ICrudService { @ApiOperation(value = "国际化功能权限",notes = "国际化功能权限") List setLanguageSysMenuName(String languageCode, List menuList); + // @Override +// @ApiOperation(value = "更新菜单信息") +// public void updateSysMenu(SysMenu menu) { +// LOGGER.info("系统功能 SYS_MENU :{}", menu); +// +// // 唯一校验 CODE 相同 ID 不同 则视为相同 +// StringBuffer countWhere = new StringBuffer(); +// +// HqlPack.getStringEqualPack( menu.getMenuCode(),"menuCode",countWhere); +// HqlPack.getNumNOEqualPack(menu.getId().toString(),"id",countWhere); +// +// int count = sysMenuRDao.findByHqlWhereCount(countWhere.toString()); +// if(count > 0){ +// throw ImppExceptionBuilder.newInstance() +// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) +// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode()) +// .setErrorDetail("权限代码已存在") +// .setErrorSolution("请重新输入权限代码") +// .build(); +// } +// +// // 父节点检查 +// coreTreeService.doValidatorSysMenuParentId(menu); +// +// if (menu.getParentId() != null && menu.getParentId() > 0) { +// SysMenu parent = sysMenuRDao.getById(menu.getParentId()); +// ValidatorBean.checkNotNull(parent,"上级权限信息不存在"); +// menu.setParentNameRdd(parent.getName()); +// } +// +// sysMenuRDao.update(menu); +// // 更新冗余信息 +// updateSysMenuChildRdd(menu); +// } +// + @ApiOperation(value = "更新菜单信息",notes = "根据ID 更新菜单状态信息") + void updateSysMenuStatus(Long id, int status, SessionUser user); + @ApiOperation(value = "根据菜单代码查询菜单信息") SysMenu getSysMenuByCode(String code); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java index fb1d1d9..0b02b7c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java @@ -1,13 +1,14 @@ package cn.estsh.i3plus.core.apiservice.controller.base; import cn.estsh.i3plus.core.api.iservice.base.ISysLogService; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.model.platform.LogFieldModel; import cn.estsh.i3plus.pojo.model.platform.SysLogModel; +import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; -import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -32,8 +33,8 @@ import java.util.stream.Collectors; @Slf4j @Api(tags = "系统日志查询服务") @RestController -@RequestMapping("/log") -public class SysLogController { +@RequestMapping(PlatformConstWords.BASE_URL +"/log") +public class SysLogController extends CoreBaseController { @Autowired private ISysLogService sysLogService; @@ -55,7 +56,7 @@ public class SysLogController { List list = sysLogService.querySysLog(sysLogModel, pager); sysLogModel.setLogs(list); - return ResultBean.success(JSON.toJSONString(sysLogModel)); + return ResultBean.success().setResultObject(sysLogModel); } catch (NoSuchFieldException e) { log.error("字段缺省 发生异常:", e); return ResultBean.fail(e.getMessage()); @@ -86,6 +87,6 @@ public class SysLogController { List indices = ElasticSearchTool.findMappingMetaData().keySet() .stream().filter(d -> d.contains(date)).collect(Collectors.toList()); - return ResultBean.success(JSON.toJSONString(indices)); + return ResultBean.success().setResultList(indices); } } 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 f5b17c2..c03fc30 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 @@ -26,13 +26,23 @@ 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.bind.annotation.GetMapping; +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.multipart.MultipartFile; import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.DataInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.OutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -247,28 +257,28 @@ public class SysMenuController extends CrudBaseController { // // } // -// /** -// * 修改系统功能状态 -// * @param id 系统功能id -// * @param status 状态 -// * @return 处理结果 -// */ -// @PutMapping(value = "/status") -// @ApiOperation(value = "修改系统功能状态", notes = "根据ID修改系统功能状态") -// public ResultBean updateStatus(String id, int status) { -// try { -// // 数据校验 -// ValidatorBean.checkNotNull(id, "功能id 不能为空"); -// ValidatorBean.checkNotZero(status, "功能状态不能为空"); -// -// menuService.updateSysMenuStatus(Long.parseLong(id), status, getSessionUser()); -// return new ResultBean(true); -// } catch (ImppBusiException busExcep) { -// return ResultBean.fail(busExcep); -// } catch (Exception e) { -// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); -// } -// } + /** + * 修改系统功能状态 + * @param id 系统功能id + * @param status 状态 + * @return 处理结果 + */ + @PutMapping(value = "/status") + @ApiOperation(value = "修改系统功能状态", notes = "根据ID修改系统功能状态") + public ResultBean updateStatus(String id, int status) { + try { + // 数据校验 + ValidatorBean.checkNotNull(id, "功能id 不能为空"); + ValidatorBean.checkNotZero(status, "功能状态不能为空"); + + menuService.updateSysMenuStatus(Long.parseLong(id), status, getSessionUser()); + return new ResultBean(true); + } 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/base/SysLogElasticSearchService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java index ec7ac04..e850110 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java @@ -302,11 +302,11 @@ public class SysLogElasticSearchService implements ISysLogService { if (!StringUtils.isEmpty(sysLogModel.getThread())) { pack.andKeywordEquals("thread", sysLogModel.getThread()); } - pack.andKeywordDateTimeBetween(time, - sysLogModel.getQueryDate().trim() + " " + sysLogModel.getQueryBeginTime(), - sysLogModel.getQueryDate().trim() + " " + sysLogModel.getQueryEndTime()); - - pack.orderKeywordDesc(time); +// pack.andKeywordDateTimeBetween(time, +// sysLogModel.getQueryDate().trim() + " " + sysLogModel.getQueryBeginTime(), +// sysLogModel.getQueryDate().trim() + " " + sysLogModel.getQueryEndTime()); +// +// pack.orderKeywordDesc(time); ListPager listPager = ElasticSearchTool.searchPager(pack, pager, LogFieldModel.class); return listPager.getObjectList(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java index 1aae8bd..f82ce77 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java @@ -63,12 +63,13 @@ public class SysLogFactory implements ISysLogService { if (ImppSwitchUtil.isElasticSearchSwitch() && elasticSearchService != null) { return elasticSearchService; } else { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) - .setErrorCode(ImppExceptionEnum.LOG_SAVE_STORAGE_ERROR.getCode()) - .setErrorDetail("没有开启Elasticsearch储存技术,请联系管理员") - .setErrorSolution("请检查配置文件") - .build(); + return elasticSearchService; +// throw ImppExceptionBuilder.newInstance() +// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) +// .setErrorCode(ImppExceptionEnum.LOG_SAVE_STORAGE_ERROR.getCode()) +// .setErrorDetail("没有开启Elasticsearch储存技术,请联系管理员") +// .setErrorSolution("请检查配置文件") +// .build(); } } 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 63b9e81..1b2fa64 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 @@ -9,6 +9,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; @@ -16,6 +17,7 @@ import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CrudService; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -173,24 +175,24 @@ public class SysMenuService extends CrudService implements ISysMenuServ // updateSysMenuChildRdd(menu); // } // -// @Override -// @ApiOperation(value = "更新菜单信息",notes = "根据ID 更新菜单状态信息") -// public void updateSysMenuStatus(Long id, int status, SessionUser user) { -// LOGGER.info("系统功能 SYS_MENU id:{} status:{} user:{}", id,status,user); -// SysMenu menu = sysMenuRDao.getById(id); -// if(menu != null){ -// menu.setMenuStatus(status); -// menu.setModifyUser(user.getUserName()); -// sysMenuRDao.update(menu); -// }else { -// throw ImppExceptionBuilder.newInstance() -// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) -// .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) -// .setErrorDetail("数据不存在") -// .setErrorSolution("请重新操作") -// .build(); -// } -// } + @Override + @ApiOperation(value = "更新菜单信息",notes = "根据ID 更新菜单状态信息") + public void updateSysMenuStatus(Long id, int status, SessionUser user) { + LOGGER.info("系统功能 SYS_MENU id:{} status:{} user:{}", id,status,user); + SysMenu menu = sysMenuRDao.getById(id); + if(menu != null){ + menu.setMenuStatus(status); + menu.setModifyUser(user.getUserName()); + sysMenuRDao.update(menu); + }else { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail("数据不存在") + .setErrorSolution("请重新操作") + .build(); + } + } // // @Override // @ApiOperation(value = "更新菜单信息",notes = "根据ID 批量更新菜单状态信息") From f7c568bdaf8fbf306e703bf4aa8e570f289e8b21 Mon Sep 17 00:00:00 2001 From: wynne1005 Date: Mon, 15 Mar 2021 14:49:46 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=BF=98=E5=8E=9Fes=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/apiservice/serviceimpl/base/SysLogFactory.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java index f82ce77..1aae8bd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java @@ -63,13 +63,12 @@ public class SysLogFactory implements ISysLogService { if (ImppSwitchUtil.isElasticSearchSwitch() && elasticSearchService != null) { return elasticSearchService; } else { - return elasticSearchService; -// throw ImppExceptionBuilder.newInstance() -// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) -// .setErrorCode(ImppExceptionEnum.LOG_SAVE_STORAGE_ERROR.getCode()) -// .setErrorDetail("没有开启Elasticsearch储存技术,请联系管理员") -// .setErrorSolution("请检查配置文件") -// .build(); + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) + .setErrorCode(ImppExceptionEnum.LOG_SAVE_STORAGE_ERROR.getCode()) + .setErrorDetail("没有开启Elasticsearch储存技术,请联系管理员") + .setErrorSolution("请检查配置文件") + .build(); } } From e5b5a120d298d15e02d238b9019cba207779c2c6 Mon Sep 17 00:00:00 2001 From: wynne1005 Date: Thu, 18 Mar 2021 12:05:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96e9=E5=8D=95=E7=82=B9?= =?UTF-8?q?=E7=99=BB=E5=BD=95=20=E5=90=8Csession=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=20=E5=8F=AF=E4=BB=A5=E6=A0=B9=E6=8D=AE=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=90=8D=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/controller/base/WhiteController.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 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 cee612b..153f879 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 @@ -204,14 +204,6 @@ public class WhiteController extends CoreBaseController { @GetMapping(value = "/auth/{loginStrategy}/sso-login") @ApiOperation(value = "登录", notes = "登录") public ResultBean ssoLogin(HttpServletRequest request, @PathVariable(name = "loginStrategy") String loginStrategy) throws NoSuchFieldException { - try { - SessionUser sessionUser = AuthUtil.getSessionUser(); - if (sessionUser != null) { - return new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); - } - } catch (Exception e) { - LOGGER.info("SSO 单点登录 未找到session 跳过"); - } String fieldMapping = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.SSO_REQUEST_MAPPING); if (StringUtils.isEmpty(fieldMapping)) { return ResultBean.fail("请在平台数据库中配置表添加字段映射配置"); @@ -223,6 +215,17 @@ public class WhiteController extends CoreBaseController { ValidatorBean.beginValid(loginModel) .notNull("loginStrategy", loginModel.getLoginStrategy()) .notNull("loginName", loginModel.getLoginName()); + try { + SessionUser sessionUser = AuthUtil.getSessionUser(); + if (sessionUser != null) { + if (sessionUser.getUserCode().equals(loginModel.getLoginName()) || sessionUser.getUserName().equals(loginModel.getLoginName())) { + return new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); + } + } + } catch (Exception e) { + LOGGER.info("SSO 单点登录 未找到session 跳过"); + } + String beanName = ImppEnumUtil.AUTH_LOGIN_STRATEGY.codeOfStrategyName(loginModel.getLoginStrategy()); ISystemLoginStrategyService loginStrategyService = (ISystemLoginStrategyService) SpringContextsUtil.getBean(beanName);