Merge remote-tracking branch 'remotes/origin/dev' into test

# Conflicts:
#	modules/i3plus-core-apiservice/src/main/resources/application.properties
yun-zuoyi
汪云昊 5 years ago
commit 845b493c3c

@ -23,89 +23,12 @@ public interface ISysMenuService extends ICacheCrudService<SysMenu> {
@ApiOperation(value = "更新内存语言缓存",notes = "更新内存语言缓存") @ApiOperation(value = "更新内存语言缓存",notes = "更新内存语言缓存")
void refreshMemSysMenuLanguage(); void refreshMemSysMenuLanguage();
@ApiOperation(value = "刷新权限关系",notes = "刷新角色权限关系SoftType 字段")
void refreshRefSysMenuBySoftType();
@ApiOperation(value = "国际化功能权限",notes = "国际化功能权限") @ApiOperation(value = "国际化功能权限",notes = "国际化功能权限")
List<SysMenu> setLanguageSysMenuName(String languageCode, List<SysMenu> menuList); List<SysMenu> setLanguageSysMenuName(String languageCode, List<SysMenu> 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<SysMenu> refreshSysMenu(List<SysMenu> list);
//
//
// /**
// * 根据id 数据
// *
// * @param id
// * @return
// */
// @ApiOperation(value = "查询菜单信息",notes = "根据ID查询菜单信息")
// SysMenu getSysMenuById(Long id);
//
// @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息")
// List<SysMenu> findSysMenuAll();
//
// @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息")
// List<SysMenu> findSysMenuByMenuAndInId(SysMenu menu,List<Long> idList);
//
// @ApiOperation(value = "查询菜单信息",notes = "查询所有带国际化菜单信息")
// List<SysMenu> findLanguageMenuByMenuAndInId(SysMenu menu,List<Long> idList);
//
// @ApiOperation(value = "查询菜单信息",notes = "查询菜单信息(分页、组合)")
// ListPager<SysMenu> querySysMenu(SysMenu menu,List<Long> idList, Pager pager);
//
@ApiOperation(value = "根据菜单代码查询菜单信息") @ApiOperation(value = "根据菜单代码查询菜单信息")
SysMenu getSysMenuByCode(String code); SysMenu getSysMenuByCode(String code);

@ -19,140 +19,38 @@ import java.util.List;
* @Modify : * @Modify :
**/ **/
public interface ISysRoleService extends ICacheCrudService<SysRole> { public interface ISysRoleService extends ICacheCrudService<SysRole> {
//
// /**
// * 修改数据
// *
// * @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 批量更新角色状态信息") @ApiOperation(value = "更新角色信息",notes = "根据ID 批量更新角色状态信息")
void updateSysRoleStatusByIds(Long[] ids, int status, SessionUser user); 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 = "刷新 角色 菜单关系信息") @ApiOperation(value = "刷新角色菜单关系",notes = "刷新 角色 菜单关系信息")
void refreshSysRoleRef(Long roleId,Long[] ids,String userName); void refreshSysRoleRef(Long roleId,Long[] ids,String userName);
//
// /**
// * 刷新角色权限
// * @param roleIds
// * @param ids
// */
@ApiOperation(value = "刷新角色菜单关系",notes = "批量刷新 角色 菜单关系信息") @ApiOperation(value = "刷新角色菜单关系",notes = "批量刷新 角色 菜单关系信息")
void refreshBatchSysRoleRef(Long[] roleIds,Long[] ids,String userName); void refreshBatchSysRoleRef(Long[] roleIds,Long[] ids,String userName);
//
// /** void refreshSysRoleRef(Long roleId,Integer softType,List<Long> idList,String userName);
// *
// * @param roleId
// * @return
// */
@ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系") @ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系")
List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId); List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId);
//
// /** @ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系")
// * 查询所有数据 List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId,Integer softType);
// *
// * @return
// */
// @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息")
// List<SysRole> findSysRoleAll();
//
// /**
// * 根据ID集合查询角色信息
// * @param ids ID集合
// * @return 角色集合
// */
// @ApiOperation(value = "查信角色信息",notes = "查询指定角色信息")
// List<SysRole> findSysRoleByInId(Long[] ids);
//
// /**
// * 查询角色信息
// * @param ids 角色ID 集合
// * @param status 角色 状态
// * @return 角色集合
// */
@ApiOperation(value = "查信角色信息",notes = "根据ID + 角色状态查询角色信息") @ApiOperation(value = "查信角色信息",notes = "根据ID + 角色状态查询角色信息")
List<SysRole> findSysRoleByInIdAndStatus(Long[] ids,Integer status); List<SysRole> findSysRoleByInIdAndStatus(Long[] ids,Integer status);
//
// /**
// * 获取用户的角色信息
// * @param user 账号信息
// * @return 角色集合
// */
@ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") @ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息")
List<SysRole> findSysRoleByUser(SysUser user); List<SysRole> findSysRoleByUser(SysUser user);
//
// /**
// * 根据id 数据
// * @param id
// * @return
// */
// @ApiOperation(value = "查信角色信息",notes = "根据 ID 查询角色信息")
// SysRole getSysRoleById(Long id);
//
// /**
// * 复杂查询
// * @param role
// * @param pager
// * @return
// */
// @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)")
// ListPager<SysRole> querySysRole(SysRole role, Pager pager);
//
@ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)")
ListPager<SysRole> querySysRole(SysRole role, List<Long> idList, Pager pager); ListPager<SysRole> querySysRole(SysRole role, List<Long> idList, Pager pager);
//
// /*** /***
// * 检查角色唯一性 *
// * @param role 角色信息 * @param role
// */ */
// @ApiOperation(value = "角色唯一检查") @ApiOperation(value = "角色唯一检查")
// void checkSysRoleOnly(SysRole role); void checkSysRoleOnly(SysRole role);
} }

@ -42,9 +42,17 @@ public class AdminAuthRealm extends AuthorizingRealm {
//令牌确认 //令牌确认
@Override @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
//管理员令牌 try {
SessionUser sessionUser = systemLoginService.queryCheckAdminLogin(( AdminToken ) authenticationToken); //管理员令牌
LOGGER.info("管理员令牌验证:{}", sessionUser); SessionUser sessionUser = systemLoginService.queryCheckAdminLogin(( AdminToken ) authenticationToken);
return new SimpleAuthenticationInfo(sessionUser, (( AdminToken ) authenticationToken).getLoginPwd(), this.getName()); 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();
}
} }
} }

@ -149,6 +149,7 @@ public class BackstageController extends CoreBaseController {
menuService.saveBatch(new ArrayList<>(menuMap.values())); menuService.saveBatch(new ArrayList<>(menuMap.values()));
} }
menuService.refreshRefSysMenuBySoftType();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){ }catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
@ -157,7 +158,4 @@ public class BackstageController extends CoreBaseController {
} }
} }
} }

@ -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<String,OpcUAService> uaServiceMap = new Hashtable<>();
public static Map<UInteger,OpcUAParam> 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<UaMonitoredItem, DataValue>() {
@Override
public void accept(UaMonitoredItem node, DataValue value) {
LOGGER.info("OPC订阅回调 {} - {} , callback {}", node.getReadValueId().getNodeId().toString(),value.getValue(), callbackMethod+callbackUrl);
HashMap<String,String> 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);
}
}
}

@ -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.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager; 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.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
@ -26,13 +25,8 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.*;
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 java.util.List; 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 * @return
@ -263,10 +290,13 @@ public class SysConfigController extends CoreBaseController {
/** /**
* *
* wei.peng :
* 使 SysConfigController.updateSysConfigValue()
* @param code * @param code
* @param value * @param value
* @return * @return
*/ */
@Deprecated
@PostMapping("/update-code/{code}/{value}") @PostMapping("/update-code/{code}/{value}")
@ApiOperation(value = "根据code修改系统配置") @ApiOperation(value = "根据code修改系统配置")
public ResultBean updateSysConfigByCode(@PathVariable("code") String code,@PathVariable("value") String value){ public ResultBean updateSysConfigByCode(@PathVariable("code") String code,@PathVariable("value") String value){

@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
@ -134,8 +133,13 @@ public class SysEnumController extends CoreBaseController {
@GetMapping("/soft-type") @GetMapping("/soft-type")
@ApiOperation(value = "软件类型", notes = "软件类型") @ApiOperation(value = "软件类型", notes = "软件类型")
public ResultBean getSoftType() { public ResultBean getSoftType() {
return new ResultBean(true, "操作成功", long startTime = System.currentTimeMillis();
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.SOFT_TYPE.values())); 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);
} }
/** /**

@ -354,7 +354,7 @@ public class SysLocaleResourceController extends CoreBaseController {
List<SysLocaleResource> list = sysLocaleResourceService.listSysLocaleResource(); List<SysLocaleResource> list = sysLocaleResourceService.listSysLocaleResource();
File file = new File(fileName); File file = new File(fileName);
if (file.createNewFile()) { if (!file.createNewFile()) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode())

@ -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.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; 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.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; 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.SysRefRoleMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserRole; import cn.estsh.i3plus.pojo.platform.bean.SysRefUserRole;
import cn.estsh.i3plus.pojo.platform.bean.SysRole; 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.controller.CrudBaseController;
import cn.estsh.impp.framework.base.service.ICrudService; import cn.estsh.impp.framework.base.service.ICrudService;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; 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.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -57,6 +55,22 @@ public class SysRoleController extends CrudBaseController<SysRole> {
return sysRoleService; 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") @GetMapping(value = "/list-user")
@ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息") @ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息")
public ResultBean findSysRoleByUser() { public ResultBean findSysRoleByUser() {
@ -195,6 +209,7 @@ public class SysRoleController extends CrudBaseController<SysRole> {
/** /**
* *
*
* @param roleId id * @param roleId id
* @param refIds di * @param refIds di
* @return * @return
@ -220,6 +235,51 @@ public class SysRoleController extends CrudBaseController<SysRole> {
} }
} }
@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 roleIds id

@ -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.common.ClassModel;
import cn.estsh.i3plus.pojo.model.report.BrDataSourceModel; import cn.estsh.i3plus.pojo.model.report.BrDataSourceModel;
import cn.estsh.i3plus.pojo.model.report.TemplateModel; 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 cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -35,7 +36,7 @@ import java.util.List;
@RestController @RestController
@Api(tags = "Cloud 报表服务") @Api(tags = "Cloud 报表服务")
@RequestMapping(CommonConstWords.BASE_URL_CORE + "/cloud/report-pojo") @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); private static final Logger LOGGER = LoggerFactory.getLogger(ReportPojoCloudController.class);
@ -78,7 +79,7 @@ public class ReportPojoCloudController {
@PostMapping(value = "/query") @PostMapping(value = "/query")
@ApiOperation(value = "查询管理后台所有类", notes = "根据核心包路径列出所有类") @ApiOperation(value = "查询管理后台所有类", notes = "根据核心包路径列出所有类")
public BaseResultBean runHql(@RequestBody TemplateModel model) { public BaseResultBean runHql(@RequestBody TemplateModel model) {
LOGGER.info("【执行 HQL】TemplateModel{}", model); // LOGGER.info("【执行 HQL】TemplateModel{}", model);
try { try {
List result = reportService.selectTemplateModel(model); List result = reportService.selectTemplateModel(model);
return ResultBean.success("操作成功") return ResultBean.success("操作成功")

@ -28,7 +28,6 @@ import org.springframework.web.bind.annotation.RestController;
public class WhiteCloudController extends CoreBaseController { public class WhiteCloudController extends CoreBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(WhiteCloudController.class); private static final Logger LOGGER = LoggerFactory.getLogger(WhiteCloudController.class);
@PostMapping(value = "/softwitch/result") @PostMapping(value = "/softwitch/result")
@ApiOperation(value = "数据源列表", notes = "获取服务的数据源列表") @ApiOperation(value = "数据源列表", notes = "获取服务的数据源列表")
public BaseResultBean softwitchResult(@RequestBody SuitImppCloudModel model) { public BaseResultBean softwitchResult(@RequestBody SuitImppCloudModel model) {

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.apiservice.serviceimpl.mdm.SysToolSyncDataService; 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.busi.core.MdmGearCoreBusiExtd;
import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear;
import cn.estsh.impp.framework.boot.mdm.mq.BaseMdmDataSyncQueueReceiver; import cn.estsh.impp.framework.boot.mdm.mq.BaseMdmDataSyncQueueReceiver;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
@ -26,7 +27,7 @@ public class MdmDataSyncQueueReceiver extends BaseMdmDataSyncQueueReceiver {
* *
*/ */
public MdmDataSyncQueueReceiver() { public MdmDataSyncQueueReceiver() {
putMdmDataRef(SysToolSyncDataService.class, MdmGearCoreBusiExtd.mdmMasterClass, MdmGearCoreBusiExtd.class); putMdmDataRef(SysToolSyncDataService.class, MdmGear.class, MdmGearCoreBusiExtd.class);
} }
@Override @Override

@ -46,7 +46,7 @@ public class DemoJob extends BaseImppScheduleJob {
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
LOGGER = getJobLogger();
LOGGER.debug("debug /////BaseImppScheduleJob/// ///////projectName{},port:{}", LOGGER.debug("debug /////BaseImppScheduleJob/// ///////projectName{},port:{}",
applicationProperties.getApplicationName(), applicationProperties.getApplicationName(),
applicationProperties.getServerPort()); applicationProperties.getServerPort());

@ -36,7 +36,7 @@ public class ReportService implements IReportService {
@Override @Override
public List selectTemplateModel(TemplateModel model) throws Exception{ public List selectTemplateModel(TemplateModel model) throws Exception{
LOGGER.info("报表执行 model :{}",model); // LOGGER.info("报表执行 model :{}",model);
return reportDao.findByHqlObjects(model.getQuerySql(), model.getFindParam()); return reportDao.findByHqlObjects(model.getQuerySql(), model.getFindParam());
} }
} }

@ -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.MathOperation;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; 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.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -294,7 +293,7 @@ public class SysLogMongoService implements ISysLogService {
@Override @Override
public ListPager<SysLogConsole> queryLogConsolePager(SysLogConsole log, Pager pager) { public ListPager<SysLogConsole> queryLogConsolePager(SysLogConsole log, Pager pager) {
throw ImppExceptionBuilder.newInstance() 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()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
@ -304,7 +303,7 @@ public class SysLogMongoService implements ISysLogService {
@Override @Override
public List<SysLogConsole> findLogConsoleList(SysLogConsole log, Pager pager) { public List<SysLogConsole> findLogConsoleList(SysLogConsole log, Pager pager) {
throw ImppExceptionBuilder.newInstance() 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()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode())
.setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
@ -314,7 +313,7 @@ public class SysLogMongoService implements ISysLogService {
@Override @Override
public List<SysLogConsole> findLogConsoleList(SysLogConsole log) { public List<SysLogConsole> findLogConsoleList(SysLogConsole log) {
throw ImppExceptionBuilder.newInstance() 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()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode())
.setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
@ -324,7 +323,7 @@ public class SysLogMongoService implements ISysLogService {
@Override @Override
public SysLogConsole insertLogConsoleTime(SysLogConsole log) { public SysLogConsole insertLogConsoleTime(SysLogConsole log) {
throw ImppExceptionBuilder.newInstance() 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()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode())
.setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
@ -334,7 +333,7 @@ public class SysLogMongoService implements ISysLogService {
@Override @Override
public SysLogConsole getLogConsoleTime(SysLogConsole log) { public SysLogConsole getLogConsoleTime(SysLogConsole log) {
throw ImppExceptionBuilder.newInstance() 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()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode())
.setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
@ -344,7 +343,7 @@ public class SysLogMongoService implements ISysLogService {
@Override @Override
public void deleteLogConsoleTime(SysLogConsole log) { public void deleteLogConsoleTime(SysLogConsole log) {
throw ImppExceptionBuilder.newInstance() 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()) .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode())
.setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储") .setErrorDetail("日志数据量太大,推荐使用Elasticsearch技术存储")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")

@ -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.ISysLocaleResourceService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; 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.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; 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.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CacheCrudService; import cn.estsh.impp.framework.base.service.CacheCrudService;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; 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.collections.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU; import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU;
@ -113,6 +105,33 @@ public class SysMenuService extends CacheCrudService<SysMenu> implements ISysMen
} }
@Override @Override
public void refreshRefSysMenuBySoftType() {
List<SysMenu> list = findAll();
if(CollectionUtils.isNotEmpty(list)){
Map<Integer, List<Long>> refMap = new HashMap<>();
for (SysMenu menu : list) {
if(Objects.nonNull(menu.getSoftType())){
List<Long> 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<SysMenu> setLanguageSysMenuName(String languageCode, List<SysMenu> menuList) { public List<SysMenu> setLanguageSysMenuName(String languageCode, List<SysMenu> menuList) {
if (menuList != null) { if (menuList != null) {
languageCode = StringUtils.isNotBlank(languageCode) ? languageCode : CommonConstWords.DEFAULT_LANGUAGE; languageCode = StringUtils.isNotBlank(languageCode) ? languageCode : CommonConstWords.DEFAULT_LANGUAGE;

@ -23,9 +23,11 @@ import cn.estsh.impp.framework.base.service.CacheCrudService;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -81,31 +83,6 @@ public class SysRoleService extends CacheCrudService<SysRole> implements ISysRol
return CoreHqlPack.packDdlBeanSysRole(bean); 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 @Override
@ApiOperation(value = "更新角色信息",notes = "根据ID 批量更新角色状态信息") @ApiOperation(value = "更新角色信息",notes = "根据ID 批量更新角色状态信息")
public void updateSysRoleStatusByIds(Long[] ids, int status, SessionUser user) { public void updateSysRoleStatusByIds(Long[] ids, int status, SessionUser user) {
@ -115,30 +92,7 @@ public class SysRoleService extends CacheCrudService<SysRole> implements ISysRol
HqlPack.getInPack(StringUtils.join( ids,","), "id", where); HqlPack.getInPack(StringUtils.join( ids,","), "id", where);
roleRDao.updateByHqlWhere(where.toString(), "roleStatus", status); 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 @Override
@ApiOperation(value = "刷新角色菜单关系",notes = "刷新 角色 菜单关系信息") @ApiOperation(value = "刷新角色菜单关系",notes = "刷新 角色 菜单关系信息")
public void refreshSysRoleRef(Long roleId,Long[] ids,String userName) { public void refreshSysRoleRef(Long roleId,Long[] ids,String userName) {
@ -183,6 +137,7 @@ public class SysRoleService extends CacheCrudService<SysRole> implements ISysRol
ref.setRoleNameRdd(role.getName()); ref.setRoleNameRdd(role.getName());
ref.setMenuNameRdd(menu.getName()); ref.setMenuNameRdd(menu.getName());
ref.setMenuId(menu.getId()); ref.setMenuId(menu.getId());
ref.setSoftType(menu.getSoftType());
ref.setMenuTypeRdd(menu.getMenuType()); ref.setMenuTypeRdd(menu.getMenuType());
ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser()); ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser());
@ -218,6 +173,47 @@ public class SysRoleService extends CacheCrudService<SysRole> implements ISysRol
} }
@Override @Override
public void refreshSysRoleRef(Long roleId, Integer softType, List<Long> idList, String userName) {
SysRole role = roleRDao.getById(roleId);
ValidatorBean.checkNotNull(role,"不存在的角色信息");
ValidatorBean.checkNotNull(softType,"不存在的产品信息");
SysMenu menu = new SysMenu();
menu.setSoftType(softType);
List<SysMenu> menuList = menuService.findAllByBean(menu);
refRoleMenuRDao.deleteByProperties(new String[]{"roleId","softType"},new Object[]{roleId,softType});
if(CollectionUtils.isNotEmpty(idList)){
List<SysRefRoleMenu> 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 查询角色菜单关系") @ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系")
public List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId) { public List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId) {
LOGGER.info("系统角色权限关系 RefRoleMenu find By RoleId"); LOGGER.info("系统角色权限关系 RefRoleMenu find By RoleId");
@ -226,15 +222,17 @@ public class SysRoleService extends CacheCrudService<SysRole> implements ISysRol
new Object[]{roleId,CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()} new Object[]{roleId,CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}
); );
} }
//
// @Override @Override
// @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") public List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId, Integer softType) {
// public List<SysRole> findSysRoleAll() { LOGGER.info("系统角色权限关系 RefRoleMenu find By RoleId");
// LOGGER.info("系统角色 SYS_ROLE find All"); return refRoleMenuRDao.findByProperty(
// return roleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); new String[]{"roleId","softType","isValid"},
// } new Object[]{roleId,softType,
// CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}
// );
}
@Override @Override
public List<SysRole> findSysRoleByInIdAndStatus(Long[] ids, Integer status) { public List<SysRole> findSysRoleByInIdAndStatus(Long[] ids, Integer status) {
LOGGER.info("系统角色 SYS_ROLE findSysRoleByInIdAndStatus ids:{} , status:{}",ids,status); LOGGER.info("系统角色 SYS_ROLE findSysRoleByInIdAndStatus ids:{} , status:{}",ids,status);
@ -257,24 +255,18 @@ public class SysRoleService extends CacheCrudService<SysRole> implements ISysRol
pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(packBean)); pager = PagerHelper.getPager(pager, roleRDao.findByHqlWhereCount(packBean));
return new ListPager(roleRDao.findByHqlWherePage(packBean , pager), pager); return new ListPager(roleRDao.findByHqlWherePage(packBean , pager), pager);
} }
//
// @Override @Override
// public void checkSysRoleOnly(SysRole role) { public void checkSysRoleOnly(SysRole role) {
// if(role != null){ if (role != null && roleRDao.isExitByHql(CoreHqlPack.packDdlSysRoleCheckOnly(role))) {
// SysRole bean = new SysRole(); throw ImppExceptionBuilder.newInstance()
// bean.setId(role.getId()); .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// bean.setName(role.getName()); .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
// .setErrorDetail("角色名称已存在")
// if(roleRDao.findByHqlWhereCount(CoreHqlPack.packDdlBeanSysRole(role)) <= 0){ .setErrorSolution("请重新输入角色名称")
// throw ImppExceptionBuilder.newInstance() .build();
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) }
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) }
// .setErrorDetail("角色名称已存在")
// .setErrorSolution("请重新输入角色名称")
// .build();
// }
// }
// }
@Override @Override

@ -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<Integer> ti = new ThreadLocal<Integer>();
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());
}
}
}

@ -347,21 +347,28 @@ public class SysUserPasswordUtil {
String activeDirectoryUrl = RedisCacheTool.getSysConfigStrVal(CommonConstWords.CONFIG_PWD_ACTIVE_DIRECTORY_URL); String activeDirectoryUrl = RedisCacheTool.getSysConfigStrVal(CommonConstWords.CONFIG_PWD_ACTIVE_DIRECTORY_URL);
if (StringUtils.isNotBlank(activeDirectoryUrl)) { if (StringUtils.isNotBlank(activeDirectoryUrl)) {
LdapContext context = ImppLdapUtils.getLdapContext(activeDirectoryUrl, user.getUserLoginName(), user.getUserLoginPassword()); try {
if(Objects.isNull(context)){ LdapContext context = ImppLdapUtils.getLdapContext(activeDirectoryUrl, user.getUserLoginName(), user.getUserLoginPassword());
// 释放链接资源
context.close();
} catch (ImppBusiException e) {
throw e;
} catch (NamingException e) {
e.printStackTrace();
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("ActiveDirectory 登录失败请重新登录") .setErrorDetail("ActiveDirectory 登录失败请重新登录")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
.build(); .build();
} } catch (Exception e) {
try {
// 释放链接资源
context.close();
} catch (NamingException e) {
e.printStackTrace(); e.printStackTrace();
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("ActiveDirectory 登录失败请重新登录")
.setErrorSolution("请重新操作")
.build();
} }
}else{ }else{
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()

@ -1,5 +1,5 @@
#\u4F7F\u7528\u914D\u7F6E #\u4F7F\u7528\u914D\u7F6E
spring.profiles.active=40 spring.profiles.active=docker
#\u9879\u76EE\u63CF\u8FF0\u4FE1\u606F\uFF08swagger\u4E2D\u663E\u5F0F\uFF09\uFF0C\u4E2D\u6587\u4F7F\u7528uncode\u8F6C\u7801 #\u9879\u76EE\u63CF\u8FF0\u4FE1\u606F\uFF08swagger\u4E2D\u663E\u5F0F\uFF09\uFF0C\u4E2D\u6587\u4F7F\u7528uncode\u8F6C\u7801
desc.application.name=\u6838\u5FC3\u7BA1\u7406\u540E\u53F0 desc.application.name=\u6838\u5FC3\u7BA1\u7406\u540E\u53F0

@ -5,32 +5,19 @@
<configuration status="WARN" monitorInterval="30" packages="cn.estsh.impp.framework.boot.log"> <configuration status="WARN" monitorInterval="30" packages="cn.estsh.impp.framework.boot.log">
<Properties> <Properties>
<Property name="log4j2.level" value="INFO"/> <Property name="log4j2.level" value="INFO"/>
<!-- 日志存放位置 -->
<Property name="logFileRootPath" value="../logs"/>
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<Property name="pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l 信息:%m%n</Property>
<Property name="info_pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n</Property> <Property name="info_pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n</Property>
<Property name="system_log_pattern">[SYS-%p] %d{yyyy-MM-dd HH:mm:ss-SSS} 系统:%m ( %F -> %M:%L)%n</Property>
</Properties> </Properties>
<appenders> <appenders>
<ImppLog4j2Appender name="impp-log"> <!-- impp 日志拦截 -->
<ImppLog4j2Appender name="impp_log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %t [%c{1.}(%M:%L)] ==>> %msg%xEx"/> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %t [%c{1.}(%M:%L)] ==>> %msg%xEx"/>
</ImppLog4j2Appender> </ImppLog4j2Appender>
<!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定这个也挺有用的适合临时测试用--> <!--控制台日志-->
<RollingFile name="log" fileName="${logFileRootPath}/${project.name}.log" append="false" <console name="console" target="SYSTEM_OUT" follow="true">
filePattern="${logFileRootPath}/${project.name}-%d{yyyy-MM-dd}-warn-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss-SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="1024 MB"/>
</Policies>
<DefaultRolloverStrategy max="3"/>
</RollingFile>
<!--这个输出控制台的配置-->
<console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout> <PatternLayout>
<Pattern>${info_pattern}</Pattern> <Pattern>${info_pattern}</Pattern>
</PatternLayout> </PatternLayout>
@ -39,11 +26,10 @@
<loggers> <loggers>
<!-- 忽略 Swagger 格式化错误 --> <!-- 忽略 Swagger 格式化错误 -->
<logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR" /> <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
<root level="${log4j2.level}"> <root level="${log4j2.level}">
<appender-ref ref="impp-log"/> <appender-ref ref="impp_log"/>
<appender-ref ref="log"/> <appender-ref ref="console"/>
<appender-ref ref="Console"/>
</root> </root>
</loggers> </loggers>
</configuration> </configuration>

@ -9,43 +9,86 @@
<Property name="logFileRootPath" value="../logs"/> <Property name="logFileRootPath" value="../logs"/>
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<Property name="pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l 信息:%m%n</Property>
<Property name="info_pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n</Property> <Property name="info_pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n</Property>
<Property name="system_log_pattern">[SYS-%p] %d{yyyy-MM-dd HH:mm:ss-SSS} 系统:%m ( %F -> %M:%L)%n</Property> <Property name="file_pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %-5level %class{36} %L %M - %msg%xEx%n</Property>
</Properties> </Properties>
<appenders> <appenders>
<!-- Impp 自定义 Appender 日志持久化 --> <!-- impp 日志拦截 -->
<ImppLog4j2Appender name="impp-log"> <ImppLog4j2Appender name="impp_log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %t [%c{1.}(%M:%L)] ==>> %msg%xEx"/> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %t [%c{1.}(%M:%L)] ==>> %msg%xEx"/>
</ImppLog4j2Appender> </ImppLog4j2Appender>
<!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定这个也挺有用的适合临时测试用--> <!-- 应用日志文件-->
<RollingFile name="log" fileName="${logFileRootPath}/${project.name}.log" append="false" <RollingRandomAccessFile name="log_file"
filePattern="${logFileRootPath}/${project.name}-%d{yyyy-MM-dd}-warn-%i.log"> fileName="${logFileRootPath}/${project.name}.log"
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss-SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> append="false" immediateFlush="false" bufferedIO="true" bufferSize="8192"
filePattern="${logFileRootPath}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="${file_pattern}"/>
<Filters>
<ImppScheduleFilter onMatch="DENY" onMismatch="ACCEPT" />
</Filters>
<!-- 滚动策略 -->
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="1024 MB"/>
</Policies>
<!-- 定时删除 -->
<DefaultRolloverStrategy>
<Delete basePath="${logFileRootPath}" maxDepth="2">
<IfFileName glob="**/${project.name}**.log">
<IfLastModified age="7d"/>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
<!-- 应用调度日志文件-->
<RollingRandomAccessFile name="log_schedule_file"
fileName="${logFileRootPath}/${project.name}-schedule.log"
append="false" immediateFlush="false" bufferedIO="true" bufferSize="8192"
filePattern="${logFileRootPath}/$${date:yyyy-MM}/${project.name}-schedule-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="${file_pattern}"/>
<Filters>
<ImppScheduleFilter onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<!-- 滚动策略 -->
<Policies> <Policies>
<TimeBasedTriggeringPolicy/> <TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="1024 MB"/> <SizeBasedTriggeringPolicy size="1024 MB"/>
</Policies> </Policies>
<DefaultRolloverStrategy max="3"/>
</RollingFile> <!-- 定时删除 -->
<Console name="console" target="SYSTEM_OUT" follow="true"> <DefaultRolloverStrategy>
<!--控制台只输出level及以上级别的信息--> <Delete basePath="${logFileRootPath}" maxDepth="2">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <IfFileName glob="**/${project.name}-Schedule**.log">
<IfLastModified age="7d"/>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
<!--控制台日志-->
<console name="console" target="SYSTEM_OUT" follow="true">
<PatternLayout> <PatternLayout>
<Pattern>${info_pattern}</Pattern> <Pattern>${info_pattern}</Pattern>
</PatternLayout> </PatternLayout>
</Console> </console>
</appenders> </appenders>
<loggers> <loggers>
<!-- 忽略 Swagger 格式化错误 --> <!-- 忽略 Swagger 格式化错误 -->
<logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR" /> <logger name="io.swagger.models.parameters.AbstractSerializableParameter" level="ERROR"/>
<root level="${log4j2.level}"> <root level="${log4j2.level}">
<appender-ref ref="log"/> <appender-ref ref="impp_log"/>
<appender-ref ref="impp-log"/> <appender-ref ref="console"/>
<!-- <appender-ref ref="console"/>--> <appender-ref ref="log_schedule_file"/>
<appender-ref ref="log_file"/>
</root> </root>
</loggers> </loggers>
</configuration> </configuration>

@ -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();
}
}
Loading…
Cancel
Save