From 56226cabe11a36e5684b53022caccd2682812f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Wed, 1 Jul 2020 19:33:48 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysRoleService.java | 14 +- .../controller/base/PressureTestController.java | 180 +++++++++++++++++++++ .../controller/busi/SysEnumController.java | 10 +- .../controller/busi/SysRoleController.java | 94 ++++++----- .../controller/cloud/WhiteCloudController.java | 1 - .../apiservice/mq/MdmDataSyncQueueReceiver.java | 3 +- .../core/apiservice/schedulejob/DemoJob.java | 2 +- .../serviceimpl/base/SysLogMongoService.java | 13 +- .../serviceimpl/busi/SysRoleService.java | 34 ++-- .../src/main/resources/application.properties | 2 +- .../src/main/resources/log4j2-spring.xml | 4 +- .../serviceimpl/busi/SysToolServiceTest.java | 44 +++++ 12 files changed, 320 insertions(+), 81 deletions(-) create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java create mode 100644 modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolServiceTest.java diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index 0c502ac..fc8672d 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -147,12 +147,12 @@ public interface ISysRoleService extends ICacheCrudService { // @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") ListPager querySysRole(SysRole role, List idList, Pager pager); -// -// /*** -// * 检查角色唯一性 -// * @param role 角色信息 -// */ -// @ApiOperation(value = "角色唯一检查") -// void checkSysRoleOnly(SysRole role); + + /*** + * 检查角色唯一性 + * @param role 角色信息 + */ + @ApiOperation(value = "角色唯一检查") + void checkSysRoleOnly(SysRole role); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java new file mode 100644 index 0000000..f5428be --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java @@ -0,0 +1,180 @@ +package cn.estsh.i3plus.core.apiservice.controller.base; + +import cn.estsh.i3plus.platform.common.tool.HttpClientTool; +import cn.estsh.i3plus.platform.plugin.opc.pojo.OpcUAParam; +import cn.estsh.i3plus.platform.plugin.opc.service.OpcUAService; +import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +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.util.ResultBean; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.eclipse.milo.opcua.sdk.client.api.subscriptions.UaMonitoredItem; +import org.eclipse.milo.opcua.sdk.client.api.subscriptions.UaSubscription; +import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue; +import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; +import java.util.function.BiConsumer; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2020-01-08 11:53 + * @Modify: + **/ +@RestController +@Api(tags = "压测接口") +@RequestMapping("/impp/pressure-test") +public class PressureTestController extends CoreBaseController { + public static final Logger LOGGER = LoggerFactory.getLogger(PressureTestController.class); + + private static Map uaServiceMap = new Hashtable<>(); + + public static Map upcSub = new Hashtable<>(); + + private OpcUAService getOpcUaService(OpcUAParam opcUAParam){ + if(!uaServiceMap.containsKey(opcUAParam.getServerUrl())){ + OpcUAService opcService = new OpcUAService(); + opcService.connUaService(opcUAParam); + uaServiceMap.put(opcUAParam.getServerUrl(),opcService); + } + return uaServiceMap.get(opcUAParam.getServerUrl()); + } + + @GetMapping("/opc-write") + @ApiOperation(value = "写Opc", notes = "写Opc") + @AnnoIgnoreLog + public ResultBean writeOpc(OpcUAParam opcUA){ + try { + OpcUAService opcService = new OpcUAService(); + boolean editResult = opcService.editOpcParamValue(opcUA); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(editResult); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/opc-read") + @ApiOperation(value = "读Opc", notes = "读Opc") + @AnnoIgnoreLog + public ResultBean readOpc(OpcUAParam opcUA){ + try { + Object readResult = getOpcUaService(opcUA).getOpcParamValue(opcUA); + if(readResult == null){ + return ResultBean.fail(); + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(readResult); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/opc-sub") + @ApiOperation(value = "订阅Opc", notes = "订阅Opc") + @AnnoIgnoreLog + public ResultBean subOpc(OpcUAParam opcUA,String callbackMethod,String callbackUrl){ + try { + UaSubscription subscription = getOpcUaService(opcUA).createSubscription(opcUA); + getOpcUaService(opcUA).createMonitor(opcUA, subscription, new BiConsumer() { + @Override + public void accept(UaMonitoredItem node, DataValue value) { + + LOGGER.info("OPC订阅回调: {} - {} , callback {}", node.getReadValueId().getNodeId().toString(),value.getValue(), callbackMethod+callbackUrl); + HashMap param = new HashMap<>(); + param.put("key",node.getReadValueId().getNodeId().toString()); + param.put("value",value.getValue().toString()); + + HttpClientTool.doHttpUrl(CommonEnumUtil.HTTP_METHOD_TYPE.valueOf(callbackMethod), callbackUrl, param); + } + }); + upcSub.put(subscription.getSubscriptionId(),opcUA); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(subscription.getSubscriptionId().toString()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/remove-opc-sub") + @ApiOperation(value = "移除Opc订阅", notes = "移除Opc订阅") + @AnnoIgnoreLog + public ResultBean removeSubOpc(OpcUAParam opcUA,String subscriptionId){ + try { + getOpcUaService(opcUA).deleteSubscription(opcUA,UInteger.valueOf(subscriptionId)); + upcSub.remove(UInteger.valueOf(subscriptionId)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/remove-all-opc-sub") + @ApiOperation(value = "移除Opc订阅", notes = "移除Opc订阅") + @AnnoIgnoreLog + public ResultBean removeAllSubOpc(OpcUAParam opcUA){ + try { + OpcUAService opcService = getOpcUaService(opcUA); + for (UInteger uInteger : upcSub.keySet()) { + opcService.deleteSubscription(opcUA,uInteger); + } + upcSub.clear(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/show-opc-sub-list") + @ApiOperation(value = "查询Opc订阅", notes = "查询Opc订阅") + @AnnoIgnoreLog + public ResultBean showSubOpcList(){ + try { + HashMap resultMap = new HashMap<>(); + for (UInteger uInteger : upcSub.keySet()) { + resultMap.put(uInteger.toString(), JSON.toJSONString(upcSub.get(uInteger))); + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(resultMap); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping("/test-callback") + @ApiOperation(value = "回调测试", notes = "回调测试") + @AnnoIgnoreLog + public ResultBean showSubOpcList(String key,String value){ + try { + LOGGER.info("回调:{} : {}", key,value); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(key+":"+value); + }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/SysEnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java index ddf7fea..56b8638 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java @@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -134,8 +133,13 @@ public class SysEnumController extends CoreBaseController { @GetMapping("/soft-type") @ApiOperation(value = "软件类型", notes = "软件类型") public ResultBean getSoftType() { - return new ResultBean(true, "操作成功", - LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.SOFT_TYPE.values())); + long startTime = System.currentTimeMillis(); + CommonEnumUtil.SOFT_TYPE[] softTypes = CommonEnumUtil.SOFT_TYPE.values(); + long enumTime = System.currentTimeMillis(); + System.out.println("耗时:" + (enumTime - startTime)); + List locale = LocaleUtils.getEnumLocaleResValuesToList(softTypes); + System.out.println("耗时:" + (System.currentTimeMillis() - enumTime)); + return new ResultBean(true, "操作成功", locale); } /** diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index 48dc1c6..9c18737 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -3,23 +3,21 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysPosition; import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu; import cn.estsh.i3plus.pojo.platform.bean.SysRefUserRole; import cn.estsh.i3plus.pojo.platform.bean.SysRole; -import cn.estsh.impp.framework.base.controller.CoreBaseController; 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.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; @@ -57,11 +55,27 @@ public class SysRoleController extends CrudBaseController { return sysRoleService; } + @Override + public SysRole validatorInsertBean(SysRole role) throws Exception { + //条件验证 + ValidatorBean.beginValid(role) + .notNull("name", role.getName()); + + sysRoleService.checkSysRoleOnly(role); + + //新增初始化 + ConvertBean.modelInitialize(role, AuthUtil.getSessionUser()); + role.setRoleStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); + role.setMenuNumber(0); + role.setModuleNumber(0); + return role; + } + @GetMapping(value = "/list-user") @ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息") public ResultBean findSysRoleByUser() { try { - if(!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ + if (!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { List result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setResultList(result); @@ -71,13 +85,14 @@ public class SysRoleController extends CrudBaseController { .setResultList(sysRoleService.findAll()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - } catch (Exception e) { + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 查询所有角色 + * * @param ids 角色id数组 * @return 处理结果 */ @@ -89,13 +104,14 @@ public class SysRoleController extends CrudBaseController { return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - } catch (Exception e) { + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 查询角色的所有角色权限关系 + * * @param roleId 角色id * @return 处理结果 */ @@ -117,16 +133,16 @@ public class SysRoleController extends CrudBaseController { } @Override - @GetMapping(value="/query") - @ApiOperation(value="查询角色",notes="组合查询角色,外带分页功能") + @GetMapping(value = "/query") + @ApiOperation(value = "查询角色", notes = "组合查询角色,外带分页功能") public ResultBean queryPager(SysRole bean, Pager pager) { - try{ + try { ListPager result = null; - if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ - result = sysRoleService.findPager(bean,pager); - }else { + if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { + result = sysRoleService.findPager(bean, pager); + } else { List refList = personnelService.findSysRefUserRole(getSessionUser().getUser().getId()); - if(refList != null && refList.size() > 0){ + if (refList != null && refList.size() > 0) { List idList = new ArrayList<>(refList.size()); refList.forEach(ref -> idList.add(ref.getRoleId())); @@ -134,16 +150,17 @@ public class SysRoleController extends CrudBaseController { } } return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 修改角色状态 - * @param id 角色id + * + * @param id 角色id * @param status 状态 * @return 处理结果 */ @@ -156,9 +173,9 @@ public class SysRoleController extends CrudBaseController { ValidatorBean.checkNotZero(status, "角色状态不能为空"); SysRole role = sysRoleService.get(id); - ValidatorBean.checkNotNull(role,"不存在的角色信息"); + ValidatorBean.checkNotNull(role, "不存在的角色信息"); role.setRoleStatus(status); - ConvertBean.modelUpdate(role,getSessionUser()); + ConvertBean.modelUpdate(role, getSessionUser()); sysRoleService.update(role); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -171,74 +188,77 @@ public class SysRoleController extends CrudBaseController { /** * 批量修改系统角色状态 - * @param ids 系统角色ids数组 + * + * @param ids 系统角色ids数组 * @param status 状态 * @return 处理结果 */ @PutMapping(value = "/batch-status") @ApiOperation(value = "批量修改系统角色状态", notes = "根据ID修改系统角色状态") - public ResultBean updateBatchStatus(Long[] ids,int status) { + public ResultBean updateBatchStatus(Long[] ids, int status) { try { // 数据校验 ValidatorBean.checkNotNull(ids, "角色id 不能为空"); ValidatorBean.checkNotZero(status, "角色状态不能为空"); - sysRoleService.updateSysRoleStatusByIds(ids,status,AuthUtil.getSessionUser()); + sysRoleService.updateSysRoleStatusByIds(ids, status, AuthUtil.getSessionUser()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 新增角色权限关系 + * * @param roleId 角色id * @param refIds 关系di * @return 处理结果 */ @PutMapping(value = "/ref-menu/insert") @ApiOperation(value = "新增角色权限关系", notes = "新增角色权限关系") - public ResultBean insertRefMenu(Long roleId,String[] refIds) { + public ResultBean insertRefMenu(Long roleId, String[] refIds) { try { startMultiService(); // 数据校验 ValidatorBean.checkNotNull(roleId, "角色roleId 不能为空"); - ConvertBean.modelSafeArrayNumber(refIds,true); + ConvertBean.modelSafeArrayNumber(refIds, true); - sysRoleService.refreshSysRoleRef(roleId,StringTool.getArrayLong(refIds),AuthUtil.getSessionUser().getUserName()); + sysRoleService.refreshSysRoleRef(roleId, StringTool.getArrayLong(refIds), AuthUtil.getSessionUser().getUserName()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 批量新增角色权限关系 + * * @param roleIds 角色id 集合 * @param menuIds 功能id * @return 处理结果 */ @PutMapping(value = "/ref-menu/batch-insert") @ApiOperation(value = "批量新增角色权限关系", notes = "批量新增角色权限关系") - public ResultBean insertBatchRefMenu(String[] roleIds,String[] menuIds) { + public ResultBean insertBatchRefMenu(String[] roleIds, String[] menuIds) { try { startMultiService(); - roleIds = ConvertBean.modelSafeArrayNumber(roleIds,true); - menuIds = ConvertBean.modelSafeArrayNumber(menuIds,true); + roleIds = ConvertBean.modelSafeArrayNumber(roleIds, true); + menuIds = ConvertBean.modelSafeArrayNumber(menuIds, true); // 数据校验 ValidatorBean.checkNotNull(roleIds, "角色roleIds 不能为空"); - if(roleIds.length == 0){ + if (roleIds.length == 0) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) @@ -247,21 +267,21 @@ public class SysRoleController extends CrudBaseController { } List roleList = sysRoleService.findSysRoleByInIdAndStatus(StringTool.getArrayLong(roleIds), CommonEnumUtil.DATA_STATUS.DISABLE.getValue()); - if(roleList != null && roleList.size() > 0){ + if (roleList != null && roleList.size() > 0) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("["+roleList.get(0).getName()+"]角色已禁用,不允许操作") + .setErrorDetail("[" + roleList.get(0).getName() + "]角色已禁用,不允许操作") .setErrorSolution("请重新操作") .build(); } - sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds),StringTool.getArrayLong(menuIds), + sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds), StringTool.getArrayLong(menuIds), AuthUtil.getSessionUser().getUserName()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/WhiteCloudController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/WhiteCloudController.java index e6691da..09dfc2c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/WhiteCloudController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/WhiteCloudController.java @@ -28,7 +28,6 @@ import org.springframework.web.bind.annotation.RestController; public class WhiteCloudController extends CoreBaseController { private static final Logger LOGGER = LoggerFactory.getLogger(WhiteCloudController.class); - @PostMapping(value = "/softwitch/result") @ApiOperation(value = "数据源列表", notes = "获取服务的数据源列表") public BaseResultBean softwitchResult(@RequestBody SuitImppCloudModel model) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MdmDataSyncQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MdmDataSyncQueueReceiver.java index 8fd202b..5871f66 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MdmDataSyncQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MdmDataSyncQueueReceiver.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.mq; import cn.estsh.i3plus.core.apiservice.serviceimpl.mdm.SysToolSyncDataService; import cn.estsh.i3plus.pojo.mdm.bean.busi.core.MdmGearCoreBusiExtd; +import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear; import cn.estsh.impp.framework.boot.mdm.mq.BaseMdmDataSyncQueueReceiver; import com.rabbitmq.client.Channel; import org.springframework.amqp.core.Message; @@ -26,7 +27,7 @@ public class MdmDataSyncQueueReceiver extends BaseMdmDataSyncQueueReceiver { * 初始化类关系 */ public MdmDataSyncQueueReceiver() { - putMdmDataRef(SysToolSyncDataService.class, MdmGearCoreBusiExtd.mdmMasterClass, MdmGearCoreBusiExtd.class); + putMdmDataRef(SysToolSyncDataService.class, MdmGear.class, MdmGearCoreBusiExtd.class); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java index f4bf088..7c0b9e0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java @@ -46,7 +46,7 @@ public class DemoJob extends BaseImppScheduleJob { } catch (InterruptedException e) { e.printStackTrace(); } - + LOGGER = getJobLogger(); LOGGER.debug("debug /////BaseImppScheduleJob/// ///////projectName:{},port:{}", applicationProperties.getApplicationName(), applicationProperties.getServerPort()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java index ace4c78..23adf3d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java @@ -6,7 +6,6 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.MathOperation; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; -import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -294,7 +293,7 @@ public class SysLogMongoService implements ISysLogService { @Override public ListPager queryLogConsolePager(SysLogConsole log, Pager pager) { throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.FORM.getCode()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorSolution("请重新操作") @@ -304,7 +303,7 @@ public class SysLogMongoService implements ISysLogService { @Override public List findLogConsoleList(SysLogConsole log, Pager pager) { throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.FORM.getCode()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode()) .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorSolution("请重新操作") @@ -314,7 +313,7 @@ public class SysLogMongoService implements ISysLogService { @Override public List findLogConsoleList(SysLogConsole log) { throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.FORM.getCode()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode()) .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorSolution("请重新操作") @@ -324,7 +323,7 @@ public class SysLogMongoService implements ISysLogService { @Override public SysLogConsole insertLogConsoleTime(SysLogConsole log) { throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.FORM.getCode()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode()) .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorSolution("请重新操作") @@ -334,7 +333,7 @@ public class SysLogMongoService implements ISysLogService { @Override public SysLogConsole getLogConsoleTime(SysLogConsole log) { throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.FORM.getCode()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode()) .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorSolution("请重新操作") @@ -344,7 +343,7 @@ public class SysLogMongoService implements ISysLogService { @Override public void deleteLogConsoleTime(SysLogConsole log) { throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.FORM.getCode()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode()) .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorSolution("请重新操作") diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index f8834d6..ae00b4d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -2,10 +2,10 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -14,7 +14,6 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.*; -import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository; @@ -22,7 +21,6 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CacheCrudService; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections4.ListUtils; @@ -257,24 +255,18 @@ public class SysRoleService extends CacheCrudService implements ISysRol pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(packBean)); return new ListPager(roleRDao.findByHqlWherePage(packBean , pager), pager); } -// -// @Override -// public void checkSysRoleOnly(SysRole role) { -// if(role != null){ -// SysRole bean = new SysRole(); -// bean.setId(role.getId()); -// bean.setName(role.getName()); -// -// if(roleRDao.findByHqlWhereCount(CoreHqlPack.packDdlBeanSysRole(role)) <= 0){ -// throw ImppExceptionBuilder.newInstance() -// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) -// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) -// .setErrorDetail("角色名称已存在") -// .setErrorSolution("请重新输入角色名称") -// .build(); -// } -// } -// } + + @Override + public void checkSysRoleOnly(SysRole role) { + if (role != null && roleRDao.isExitByHql(CoreHqlPack.packDdlSysRoleCheckOnly(role))) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("角色名称已存在") + .setErrorSolution("请重新输入角色名称") + .build(); + } + } @Override diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index 229a7b5..db038ab 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=dev +spring.profiles.active=21 #\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 diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml index a89e636..1389e4b 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml +++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolServiceTest.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolServiceTest.java new file mode 100644 index 0000000..07568c2 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolServiceTest.java @@ -0,0 +1,44 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysToolService; +import cn.estsh.impp.framework.boot.util.ImppSwitchUtil; +import cn.estsh.impp.framework.run.ImppGo; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2020-06-09 11:51 + * @Modify: + **/ +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(classes = ImppGo.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class SysToolServiceTest { + + @Autowired + private ISysToolService sysToolService; + + @Value("${impp.init.lazy.global:false}") + private String lazyInit; +// @Autowired +// private ISystemInitService systemInitService; + + @Test + public void insertSysTool() { +// systemInitService.putAndLoadAll(); + System.out.println("unit"+ImppSwitchUtil.isUnitTestEnv()); + System.out.println("lazyInit"+lazyInit); + } + + @Test + public void listSysTool() { + sysToolService.listSysTool(); + } + +} \ No newline at end of file From 06dcb22bad57684614d12062f183e30c1aaede73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Mon, 6 Jul 2020 10:16:57 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=BD=AD=E4=BC=9F=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=20=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=BF=87=E6=BB=A4=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysMenuService.java | 83 +------------- .../core/api/iservice/busi/ISysRoleService.java | 126 ++------------------- .../core/apiservice/auth/realm/AdminAuthRealm.java | 16 ++- .../controller/base/BackstageController.java | 4 +- .../controller/busi/SysConfigController.java | 46 ++++++-- .../busi/SysLocaleResourceController.java | 2 +- .../controller/busi/SysRoleController.java | 118 ++++++++++++------- .../cloud/ReportPojoCloudController.java | 5 +- .../apiservice/serviceimpl/base/ReportService.java | 2 +- .../serviceimpl/busi/SysMenuService.java | 45 +++++--- .../serviceimpl/busi/SysRoleService.java | 118 +++++++++---------- .../estsh/i3plus/core/apiservice/thread/Demo.java | 41 +++++++ .../core/apiservice/util/SysUserPasswordUtil.java | 23 ++-- 13 files changed, 297 insertions(+), 332 deletions(-) create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/Demo.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 aa25167..dfec732 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 @@ -23,89 +23,12 @@ public interface ISysMenuService extends ICacheCrudService { @ApiOperation(value = "更新内存语言缓存",notes = "更新内存语言缓存") void refreshMemSysMenuLanguage(); + @ApiOperation(value = "刷新权限关系",notes = "刷新角色权限关系SoftType 字段") + void refreshRefSysMenuBySoftType(); + @ApiOperation(value = "国际化功能权限",notes = "国际化功能权限") List setLanguageSysMenuName(String languageCode, List menuList); -// /** -// * 修改数据 -// * -// * @param sysMenu -// */ -// @ApiOperation(value = "更新菜单信息") -// void updateSysMenu(SysMenu sysMenu); -// -// /** -// * 修改权限状态 -// * @param id 修改权限状态 -// * @param status 状态 -// * @param user 当前会话用户 -// * @return -// */ -// @ApiOperation(value = "更新菜单信息",notes = "根据ID 更新菜单状态信息") -// void updateSysMenuStatus(Long id, int status, SessionUser user); -// -// /** -// * 批量修改状态 -// * @param ids -// * @param status -// * @param user -// */ -// @ApiOperation(value = "更新菜单信息",notes = "根据ID 批量更新菜单状态信息") -// void updateSysMenuStatusByIds(Long[] ids, int status, SessionUser user); -// -// @ApiOperation(value = "更新菜单信息",notes = "更新子节点冗余信息") -// void updateSysMenuChildRdd(SysMenu sysMenu); -// -// /** -// * 根据Key 删除数据 -// * @param id -// * @return -// */ -// @ApiOperation(value = "删除菜单信息",notes = "根据ID 删除菜单信息") -// void deleteSysMenuById(Long id); -// -// /** -// * 根据id批量删除 -// * @param ids id数组 -// * @return -// */ -// @ApiOperation(value = "删除菜单信息",notes = "根据ID 批量删除菜单信息") -// void deleteSysMenuByIds(Long[] ids); -// -// /** -// * 新增数据 -// * -// * @param sysMenu -// * @return -// */ -// @ApiOperation(value = "新增菜单信息") -// SysMenu insertSysMenu(SysMenu sysMenu); -// -// @ApiOperation(value = "新增菜单信息") -// List refreshSysMenu(List list); -// -// -// /** -// * 根据id 数据 -// * -// * @param id -// * @return -// */ -// @ApiOperation(value = "查询菜单信息",notes = "根据ID查询菜单信息") -// SysMenu getSysMenuById(Long id); -// -// @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息") -// List findSysMenuAll(); -// -// @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息") -// List findSysMenuByMenuAndInId(SysMenu menu,List idList); -// -// @ApiOperation(value = "查询菜单信息",notes = "查询所有带国际化菜单信息") -// List findLanguageMenuByMenuAndInId(SysMenu menu,List idList); -// -// @ApiOperation(value = "查询菜单信息",notes = "查询菜单信息(分页、组合)") -// ListPager querySysMenu(SysMenu menu,List idList, Pager pager); -// @ApiOperation(value = "根据菜单代码查询菜单信息") SysMenu getSysMenuByCode(String code); diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index fc8672d..bde31d2 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -19,132 +19,30 @@ import java.util.List; * @Modify : **/ public interface ISysRoleService extends ICacheCrudService { -// -// /** -// * 修改数据 -// * -// * @param sysRole -// */ -// @ApiOperation(value = "更新角色信息",notes = "更新角色信息") -// void updateSysRole(SysRole sysRole); -// -// /** -// * 修改权限状态 -// * @param id 修改权限状态 -// * @param status 状态 -// * @param user 当前用户会话 -// * @return -// */ -// @ApiOperation(value = "更新角色信息",notes = "更新角色状态信息") -// void updateSysRoleStatus(Long id, int status, SessionUser user); -// -// /** -// * 批量修改状态 -// * @param ids -// * @param status -// * @param user -// */ + @ApiOperation(value = "更新角色信息",notes = "根据ID 批量更新角色状态信息") void updateSysRoleStatusByIds(Long[] ids, int status, SessionUser user); -// -// /** -// * 根据Key 删除数据 -// * @param id -// */ -// @ApiOperation(value = "删除角色信息",notes = "根据ID 删除角色信息") -// void deleteSysRoleById(Long id); -// -// /** -// * 根据id批量删除 -// * @param ids id数组 -// * @return -// */ -// @ApiOperation(value = "删除角色信息",notes = "根据ID 批量删除角色信息") -// void deleteSysRoleByIds(Long[] ids); -// -// /** -// * 新增数据 -// * -// * @param sysRole -// * @return -// */ -// @ApiOperation(value = "新增角色信息") -// SysRole insertSysRole(SysRole sysRole); -// -// /** -// * 刷新角色权限 -// * @param roleId -// * @param ids -// */ + @ApiOperation(value = "刷新角色菜单关系",notes = "刷新 角色 菜单关系信息") void refreshSysRoleRef(Long roleId,Long[] ids,String userName); -// -// /** -// * 刷新角色权限 -// * @param roleIds -// * @param ids -// */ + @ApiOperation(value = "刷新角色菜单关系",notes = "批量刷新 角色 菜单关系信息") void refreshBatchSysRoleRef(Long[] roleIds,Long[] ids,String userName); -// -// /** -// * -// * @param roleId -// * @return -// */ + + void refreshSysRoleRef(Long roleId,Integer softType,List idList,String userName); + @ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系") List findSysRefRoleMenuByRoleId(Long roleId); -// -// /** -// * 查询所有数据 -// * -// * @return -// */ -// @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") -// List findSysRoleAll(); -// -// /** -// * 根据ID集合查询角色信息 -// * @param ids ID集合 -// * @return 角色集合 -// */ -// @ApiOperation(value = "查信角色信息",notes = "查询指定角色信息") -// List findSysRoleByInId(Long[] ids); -// -// /** -// * 查询角色信息 -// * @param ids 角色ID 集合 -// * @param status 角色 状态 -// * @return 角色集合 -// */ + + @ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系") + List findSysRefRoleMenuByRoleId(Long roleId,Integer softType); + @ApiOperation(value = "查信角色信息",notes = "根据ID + 角色状态查询角色信息") List findSysRoleByInIdAndStatus(Long[] ids,Integer status); -// -// /** -// * 获取用户的角色信息 -// * @param user 账号信息 -// * @return 角色集合 -// */ + @ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") List findSysRoleByUser(SysUser user); -// -// /** -// * 根据id 数据 -// * @param id -// * @return -// */ -// @ApiOperation(value = "查信角色信息",notes = "根据 ID 查询角色信息") -// SysRole getSysRoleById(Long id); -// -// /** -// * 复杂查询 -// * @param role -// * @param pager -// * @return -// */ -// @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") -// ListPager querySysRole(SysRole role, Pager pager); -// + @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") ListPager querySysRole(SysRole role, List idList, Pager pager); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java index 57a78ee..873464e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java @@ -42,9 +42,17 @@ public class AdminAuthRealm extends AuthorizingRealm { //令牌确认 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { - //管理员令牌 - SessionUser sessionUser = systemLoginService.queryCheckAdminLogin(( AdminToken ) authenticationToken); - LOGGER.info("管理员令牌验证:{}", sessionUser); - return new SimpleAuthenticationInfo(sessionUser, (( AdminToken ) authenticationToken).getLoginPwd(), this.getName()); + try { + //管理员令牌 + SessionUser sessionUser = systemLoginService.queryCheckAdminLogin(( AdminToken ) authenticationToken); + LOGGER.info("管理员令牌验证:{}", sessionUser); + return new SimpleAuthenticationInfo(sessionUser, (( AdminToken ) authenticationToken).getLoginPwd(), this.getName()); +// }catch (ImppBusiException e){ +// e.printStackTrace(); +// throw new AuthenticationException(); + }catch (Exception e){ + e.printStackTrace(); + throw new AuthenticationException(); + } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java index eb03e14..91c9349 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java @@ -149,6 +149,7 @@ public class BackstageController extends CoreBaseController { menuService.saveBatch(new ArrayList<>(menuMap.values())); } + menuService.refreshRefSysMenuBySoftType(); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -157,7 +158,4 @@ public class BackstageController extends CoreBaseController { } } - - - } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java index 2b74ddf..d10694b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysConfigController.java @@ -7,7 +7,6 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; -import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; @@ -26,13 +25,8 @@ 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.RestController; +import org.springframework.web.bind.annotation.*; + import java.util.List; /** @@ -153,6 +147,39 @@ public class SysConfigController extends CoreBaseController { } } + + /** + * 系统参数 + * @param bean 系统参数 + * @return 处理结果 + */ + @PutMapping(value = "/update-value") + @ApiOperation(value = "修改系统参数内容",notes = "修改系统参数内容") + public ResultBean updateSysConfigValue(SysConfig bean){ + try { + // 条件验证 + ValidatorBean.beginValid(bean) + .notNull("configCode",bean.getConfigCode()) + .notNull("configValue",bean.getConfigValue()); + + SysConfig config = sysConfigService.getSysConfigByCode(bean.getConfigCode()); + ValidatorBean.checkNotNull(config,"不存在的配置信息"); + + config.setConfigValue(bean.getConfigValue()); + ConvertBean.modelUpdate(config,getSessionUser()); + + sysConfigService.updateSysConfig(config); + systemInitService.putAndLoadSysConfig(); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + + /** * 查询全部系统参数 * @return 处理结果 @@ -263,10 +290,13 @@ public class SysConfigController extends CoreBaseController { /** * 根据系统代码修改系统配置值 + * wei.peng : + * 该方法已过期 推荐使用 SysConfigController.updateSysConfigValue() * @param code 系统代码 * @param value 系统配置值 * @return 处理结果 */ + @Deprecated @PostMapping("/update-code/{code}/{value}") @ApiOperation(value = "根据code修改系统配置") public ResultBean updateSysConfigByCode(@PathVariable("code") String code,@PathVariable("value") String value){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java index a61645e..bd27b3c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java @@ -354,7 +354,7 @@ public class SysLocaleResourceController extends CoreBaseController { List list = sysLocaleResourceService.listSysLocaleResource(); File file = new File(fileName); - if (file.createNewFile()) { + if (!file.createNewFile()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index 9c18737..56f34d9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -75,7 +75,7 @@ public class SysRoleController extends CrudBaseController { @ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息") public ResultBean findSysRoleByUser() { try { - if (!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { + if(!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ List result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setResultList(result); @@ -85,14 +85,13 @@ public class SysRoleController extends CrudBaseController { .setResultList(sysRoleService.findAll()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - } catch (Exception e) { + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 查询所有角色 - * * @param ids 角色id数组 * @return 处理结果 */ @@ -104,14 +103,13 @@ public class SysRoleController extends CrudBaseController { return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - } catch (Exception e) { + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 查询角色的所有角色权限关系 - * * @param roleId 角色id * @return 处理结果 */ @@ -133,16 +131,16 @@ public class SysRoleController extends CrudBaseController { } @Override - @GetMapping(value = "/query") - @ApiOperation(value = "查询角色", notes = "组合查询角色,外带分页功能") + @GetMapping(value="/query") + @ApiOperation(value="查询角色",notes="组合查询角色,外带分页功能") public ResultBean queryPager(SysRole bean, Pager pager) { - try { + try{ ListPager result = null; - if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { - result = sysRoleService.findPager(bean, pager); - } else { + if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ + result = sysRoleService.findPager(bean,pager); + }else { List refList = personnelService.findSysRefUserRole(getSessionUser().getUser().getId()); - if (refList != null && refList.size() > 0) { + if(refList != null && refList.size() > 0){ List idList = new ArrayList<>(refList.size()); refList.forEach(ref -> idList.add(ref.getRoleId())); @@ -150,17 +148,16 @@ public class SysRoleController extends CrudBaseController { } } return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { + }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); - } catch (Exception e) { + }catch(Exception e){ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 修改角色状态 - * - * @param id 角色id + * @param id 角色id * @param status 状态 * @return 处理结果 */ @@ -173,9 +170,9 @@ public class SysRoleController extends CrudBaseController { ValidatorBean.checkNotZero(status, "角色状态不能为空"); SysRole role = sysRoleService.get(id); - ValidatorBean.checkNotNull(role, "不存在的角色信息"); + ValidatorBean.checkNotNull(role,"不存在的角色信息"); role.setRoleStatus(status); - ConvertBean.modelUpdate(role, getSessionUser()); + ConvertBean.modelUpdate(role,getSessionUser()); sysRoleService.update(role); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -188,25 +185,24 @@ public class SysRoleController extends CrudBaseController { /** * 批量修改系统角色状态 - * - * @param ids 系统角色ids数组 + * @param ids 系统角色ids数组 * @param status 状态 * @return 处理结果 */ @PutMapping(value = "/batch-status") @ApiOperation(value = "批量修改系统角色状态", notes = "根据ID修改系统角色状态") - public ResultBean updateBatchStatus(Long[] ids, int status) { + public ResultBean updateBatchStatus(Long[] ids,int status) { try { // 数据校验 ValidatorBean.checkNotNull(ids, "角色id 不能为空"); ValidatorBean.checkNotZero(status, "角色状态不能为空"); - sysRoleService.updateSysRoleStatusByIds(ids, status, AuthUtil.getSessionUser()); + sysRoleService.updateSysRoleStatusByIds(ids,status,AuthUtil.getSessionUser()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { + } catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); - } catch (Exception e) { + }catch(Exception e){ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } @@ -220,45 +216,89 @@ public class SysRoleController extends CrudBaseController { */ @PutMapping(value = "/ref-menu/insert") @ApiOperation(value = "新增角色权限关系", notes = "新增角色权限关系") - public ResultBean insertRefMenu(Long roleId, String[] refIds) { + public ResultBean insertRefMenu(Long roleId,String[] refIds) { try { startMultiService(); // 数据校验 ValidatorBean.checkNotNull(roleId, "角色roleId 不能为空"); - ConvertBean.modelSafeArrayNumber(refIds, true); + ConvertBean.modelSafeArrayNumber(refIds,true); - sysRoleService.refreshSysRoleRef(roleId, StringTool.getArrayLong(refIds), AuthUtil.getSessionUser().getUserName()); + sysRoleService.refreshSysRoleRef(roleId,StringTool.getArrayLong(refIds),AuthUtil.getSessionUser().getUserName()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { + } catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); - } catch (Exception e) { + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + + @PostMapping(value = "/ref-menu/save") + @ApiOperation(value = "保存角色权限关系", notes = "? 权限列表没有数据时清理角色的产品") + public ResultBean saveRefMenuBySoftType(@RequestBody SysRefRoleMenu refRoleMenu) { + try { + // 数据校验 + ValidatorBean.beginValid(refRoleMenu) + .notNull("roleId",refRoleMenu.getRoleId()) + .notNull("softType",refRoleMenu.getSoftType()); + + sysRoleService.refreshSysRoleRef(refRoleMenu.getRoleId(),refRoleMenu.getSoftType(),refRoleMenu.getMenuIdList() + ,AuthUtil.getSessionUser().getUserName()); + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + + /** + * 新增角色权限关系 + * @param roleId 角色id + * @param softType 产品类型ID + * @return 处理结果 + */ + @GetMapping(value = "/ref-menu/{roleId}/{softType}/list") + @ApiOperation(value = "查询角色权限关系", notes = "根据软件类型查询角色权限关系") + public ResultBean findRefMenuBySoftType(@PathVariable("roleId") Long roleId, @PathVariable("softType") Integer softType) { + try { + // 数据校验 + ValidatorBean.checkNotNull(roleId, "角色roleId 不能为空"); + ValidatorBean.checkNotNull(softType, "产品类型 不能为空"); + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(sysRoleService.findSysRefRoleMenuByRoleId(roleId,softType)); + } catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 批量新增角色权限关系 - * * @param roleIds 角色id 集合 * @param menuIds 功能id * @return 处理结果 */ @PutMapping(value = "/ref-menu/batch-insert") @ApiOperation(value = "批量新增角色权限关系", notes = "批量新增角色权限关系") - public ResultBean insertBatchRefMenu(String[] roleIds, String[] menuIds) { + public ResultBean insertBatchRefMenu(String[] roleIds,String[] menuIds) { try { startMultiService(); - roleIds = ConvertBean.modelSafeArrayNumber(roleIds, true); - menuIds = ConvertBean.modelSafeArrayNumber(menuIds, true); + roleIds = ConvertBean.modelSafeArrayNumber(roleIds,true); + menuIds = ConvertBean.modelSafeArrayNumber(menuIds,true); // 数据校验 ValidatorBean.checkNotNull(roleIds, "角色roleIds 不能为空"); - if (roleIds.length == 0) { + if(roleIds.length == 0){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) @@ -267,21 +307,21 @@ public class SysRoleController extends CrudBaseController { } List roleList = sysRoleService.findSysRoleByInIdAndStatus(StringTool.getArrayLong(roleIds), CommonEnumUtil.DATA_STATUS.DISABLE.getValue()); - if (roleList != null && roleList.size() > 0) { + if(roleList != null && roleList.size() > 0){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("[" + roleList.get(0).getName() + "]角色已禁用,不允许操作") + .setErrorDetail("["+roleList.get(0).getName()+"]角色已禁用,不允许操作") .setErrorSolution("请重新操作") .build(); } - sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds), StringTool.getArrayLong(menuIds), + sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds),StringTool.getArrayLong(menuIds), AuthUtil.getSessionUser().getUserName()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { + } catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); - } catch (Exception e) { + }catch(Exception e){ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/ReportPojoCloudController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/ReportPojoCloudController.java index 15f8118..b21b7d7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/ReportPojoCloudController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/cloud/ReportPojoCloudController.java @@ -9,6 +9,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.common.ClassModel; import cn.estsh.i3plus.pojo.model.report.BrDataSourceModel; import cn.estsh.i3plus.pojo.model.report.TemplateModel; +import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -35,7 +36,7 @@ import java.util.List; @RestController @Api(tags = "Cloud 报表服务") @RequestMapping(CommonConstWords.BASE_URL_CORE + "/cloud/report-pojo") -public class ReportPojoCloudController { +public class ReportPojoCloudController extends CoreBaseController { private static final Logger LOGGER = LoggerFactory.getLogger(ReportPojoCloudController.class); @@ -78,7 +79,7 @@ public class ReportPojoCloudController { @PostMapping(value = "/query") @ApiOperation(value = "查询管理后台所有类", notes = "根据核心包路径列出所有类") public BaseResultBean runHql(@RequestBody TemplateModel model) { - LOGGER.info("【执行 HQL】TemplateModel:{}", model); +// LOGGER.info("【执行 HQL】TemplateModel:{}", model); try { List result = reportService.selectTemplateModel(model); return ResultBean.success("操作成功") diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java index 9910ad1..18408aa 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/ReportService.java @@ -36,7 +36,7 @@ public class ReportService implements IReportService { @Override public List selectTemplateModel(TemplateModel model) throws Exception{ - LOGGER.info("报表执行 model :{}",model); +// LOGGER.info("报表执行 model :{}",model); return reportDao.findByHqlObjects(model.getQuerySql(), model.getFindParam()); } } 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 a661d3c..b0d3043 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 @@ -2,37 +2,29 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.SerializeTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; 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.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.base.tool.HqlPack; -import cn.estsh.i3plus.pojo.platform.bean.*; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CacheCrudService; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.impp.framework.boot.util.ValidatorBean; -import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; 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 static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU; @@ -113,6 +105,33 @@ public class SysMenuService extends CacheCrudService implements ISysMen } @Override + public void refreshRefSysMenuBySoftType() { + List list = findAll(); + if(CollectionUtils.isNotEmpty(list)){ + Map> refMap = new HashMap<>(); + for (SysMenu menu : list) { + if(Objects.nonNull(menu.getSoftType())){ + List ids = refMap.get(menu.getSoftType()); + if(CollectionUtils.isEmpty(ids)){ + ids = new ArrayList<>(); + } + ids.add(menu.getId()); + refMap.put(menu.getSoftType(),ids); + } + } + + if(MapUtils.isNotEmpty(refMap)){ + DdlPackBean packBean = null; + for (Integer softType : refMap.keySet()) { + packBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(refMap.get(softType),"menuId",packBean); + refRoleMenuRDao.updateByProperties("softType",softType,packBean); + } + } + } + } + + @Override public List setLanguageSysMenuName(String languageCode, List menuList) { if (menuList != null) { languageCode = StringUtils.isNotBlank(languageCode) ? languageCode : CommonConstWords.DEFAULT_LANGUAGE; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index ae00b4d..acfb2c9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -2,10 +2,10 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -14,6 +14,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.*; +import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository; @@ -21,9 +22,12 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CacheCrudService; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,31 +83,6 @@ public class SysRoleService extends CacheCrudService implements ISysRol return CoreHqlPack.packDdlBeanSysRole(bean); } - // @Override -// @ApiOperation(value = "更新角色信息",notes = "更新角色信息") -// public void updateSysRole(SysRole sysRole) { -// LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); -// -// // 更新角色信息 -// roleRDao.update(sysRole); -// // 更新账号角色关系冗余信息 -// refUserRoleRDao.updateByProperties(new String[]{"roleId"}, new Object[]{sysRole.getId()}, -// new String[]{"roleNameRdd"}, new Object[]{sysRole.getName()}); -// // 更新角色 -// refRoleMenuRDao.updateByProperties(new String[]{"roleId"}, new Object[]{sysRole.getId()}, -// new String[]{"roleNameRdd"}, new Object[]{sysRole.getName()}); -// } -// -// @Override -// @ApiOperation(value = "更新角色信息",notes = "更新角色状态信息") -// public void updateSysRoleStatus(Long id, int status, SessionUser user) { -// LOGGER.info("系统角色 SYS_MENU id:{} status:{} user:{}", id,status,user); -// SysRole role = roleRDao.getById(id); -// role.setRoleStatus(status); -// role.setModifyUser(user.getUserName()); -// roleRDao.update(role); -// } -// @Override @ApiOperation(value = "更新角色信息",notes = "根据ID 批量更新角色状态信息") public void updateSysRoleStatusByIds(Long[] ids, int status, SessionUser user) { @@ -113,30 +92,7 @@ public class SysRoleService extends CacheCrudService implements ISysRol HqlPack.getInPack(StringUtils.join( ids,","), "id", where); roleRDao.updateByHqlWhere(where.toString(), "roleStatus", status); } -// -// @Override -// @ApiOperation(value = "删除角色信息",notes = "根据ID 删除角色信息") -// public void deleteSysRoleById(Long id) { -// LOGGER.info("系统角色 SYS_ROLE Key:{}", id); -// refRoleMenuRDao.deleteByProperty("roleId",id); -// roleRDao.deleteById(id); -// } -// -// @Override -// @ApiOperation(value = "删除角色信息",notes = "根据ID 批量删除角色信息") -// public void deleteSysRoleByIds(Long[] ids) { -// LOGGER.info("系统角色 SYS_ROLE ids :{}", ids); -// refRoleMenuRDao.deleteByPropertyIn("roleId",ids); -// roleRDao.deleteByIds(ids); -// } -// -// @Override -// @ApiOperation(value = "新增角色信息") -// public SysRole insertSysRole(SysRole sysRole) { -// LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); -// return roleRDao.insert(sysRole); -// } -// + @Override @ApiOperation(value = "刷新角色菜单关系",notes = "刷新 角色 菜单关系信息") public void refreshSysRoleRef(Long roleId,Long[] ids,String userName) { @@ -181,6 +137,7 @@ public class SysRoleService extends CacheCrudService implements ISysRol ref.setRoleNameRdd(role.getName()); ref.setMenuNameRdd(menu.getName()); ref.setMenuId(menu.getId()); + ref.setSoftType(menu.getSoftType()); ref.setMenuTypeRdd(menu.getMenuType()); ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser()); @@ -216,6 +173,47 @@ public class SysRoleService extends CacheCrudService implements ISysRol } @Override + public void refreshSysRoleRef(Long roleId, Integer softType, List idList, String userName) { + SysRole role = roleRDao.getById(roleId); + ValidatorBean.checkNotNull(role,"不存在的角色信息"); + ValidatorBean.checkNotNull(softType,"不存在的产品信息"); + + SysMenu menu = new SysMenu(); + menu.setSoftType(softType); + List menuList = menuService.findAllByBean(menu); + + refRoleMenuRDao.deleteByProperties(new String[]{"roleId","softType"},new Object[]{roleId,softType}); + if(CollectionUtils.isNotEmpty(idList)){ + List refs = new ArrayList<>(); + SysRefRoleMenu ref = null; + + for (Long id : idList) { + if(CollectionUtils.isNotEmpty(menuList)){ + for (SysMenu sysMenu : menuList) { + if(sysMenu.getId().equals(id)){ + ref = new SysRefRoleMenu(); + ref.setRoleId(role.getId()); + ref.setRoleNameRdd(role.getName()); + ref.setSoftType(sysMenu.getSoftType()); + ref.setMenuNameRdd(sysMenu.getName()); + ref.setMenuId(sysMenu.getId()); + ref.setMenuTypeRdd(sysMenu.getMenuType()); + ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser()); + + refs.add(ref); + break; + } + } + } + } + + if(CollectionUtils.isNotEmpty(refs)){ + refRoleMenuRDao.saveAll(refs); + } + } + } + + @Override @ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系") public List findSysRefRoleMenuByRoleId(Long roleId) { LOGGER.info("系统角色权限关系 RefRoleMenu find By RoleId"); @@ -224,15 +222,17 @@ public class SysRoleService extends CacheCrudService implements ISysRol new Object[]{roleId,CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()} ); } -// -// @Override -// @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") -// public List findSysRoleAll() { -// LOGGER.info("系统角色 SYS_ROLE find All"); -// return roleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); -// } -// -// + + @Override + public List findSysRefRoleMenuByRoleId(Long roleId, Integer softType) { + LOGGER.info("系统角色权限关系 RefRoleMenu find By RoleId"); + return refRoleMenuRDao.findByProperty( + new String[]{"roleId","softType","isValid"}, + new Object[]{roleId,softType, + CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()} + ); + } + @Override public List findSysRoleByInIdAndStatus(Long[] ids, Integer status) { LOGGER.info("系统角色 SYS_ROLE findSysRoleByInIdAndStatus ids:{} , status:{}",ids,status); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/Demo.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/Demo.java new file mode 100644 index 0000000..b642a40 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/thread/Demo.java @@ -0,0 +1,41 @@ +package cn.estsh.i3plus.core.apiservice.thread; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2020-07-03 10:56 + * @Modify: + **/ +public class Demo { + /*定义一个全局变量 来存放线程需要的变量*/ + public static ThreadLocal ti = new ThreadLocal(); + public static void main(String[] args) { + System.out.println("主线程:" + Thread.currentThread().getName()); + /*创建两个线程*/ + for(int i=0; i<2;i++){ + new Thread(new Runnable() { + @Override + public void run() { + Double d = Math.random()*10; + /*存入当前线程独有的值*/ +// ti.set(d.intValue()); + new A().get(); + new B().get(); + } + }).start(); + } + } + static class A{ + public void get(){ + /*取得当前线程所需要的值*/ + System.out.println(this.getClass()+ "---"+ Thread.currentThread().getName()+"-------"+ti.get()); + } + } + static class B{ + public void get(){ + /*取得当前线程所需要的值*/ + System.out.println(this.getClass()+ "---"+ Thread.currentThread().getName()+"-------"+ti.get()); + } + } +} 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 0b7f1d8..ad6d2f6 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 @@ -347,21 +347,28 @@ public class SysUserPasswordUtil { String activeDirectoryUrl = RedisCacheTool.getSysConfigStrVal(CommonConstWords.CONFIG_PWD_ACTIVE_DIRECTORY_URL); if (StringUtils.isNotBlank(activeDirectoryUrl)) { - LdapContext context = ImppLdapUtils.getLdapContext(activeDirectoryUrl, user.getUserLoginName(), user.getUserLoginPassword()); - if(Objects.isNull(context)){ + try { + LdapContext context = ImppLdapUtils.getLdapContext(activeDirectoryUrl, user.getUserLoginName(), user.getUserLoginPassword()); + // 释放链接资源 + context.close(); + } catch (ImppBusiException e) { + throw e; + } catch (NamingException e) { + e.printStackTrace(); throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode()) .setErrorDetail("ActiveDirectory 登录失败请重新登录") .setErrorSolution("请重新操作") .build(); - } - - try { - // 释放链接资源 - context.close(); - } catch (NamingException e) { + } catch (Exception e) { e.printStackTrace(); + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode()) + .setErrorDetail("ActiveDirectory 登录失败请重新登录") + .setErrorSolution("请重新操作") + .build(); } }else{ throw ImppExceptionBuilder.newInstance() From d2bc1f287edf512b0c0a7451ffb099f88d1cbca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Mon, 6 Jul 2020 11:49:06 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Log42=20=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/log4j2-spring-dev.xml | 28 ++------ .../src/main/resources/log4j2-spring.xml | 77 +++++++++++++++++----- 2 files changed, 67 insertions(+), 38 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml index c65279c..527e43c 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml +++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml @@ -5,32 +5,19 @@ - - - [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l 信息:%m%n [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n - [SYS-%p] %d{yyyy-MM-dd HH:mm:ss-SSS} 系统:%m ( %F -> %M:%L)%n - + + - - - - - - - - - - - + + ${info_pattern} @@ -39,11 +26,10 @@ - + - - - + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml index 1389e4b..64df19b 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml +++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml @@ -9,43 +9,86 @@ - [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l 信息:%m%n [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n - [SYS-%p] %d{yyyy-MM-dd HH:mm:ss-SSS} 系统:%m ( %F -> %M:%L)%n + [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %-5level %class{36} %L %M - %msg%xEx%n - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + ${info_pattern} - + - + - - + + + \ No newline at end of file