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

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

@ -5,7 +5,7 @@
<parent>
<artifactId>i3plus-core</artifactId>
<groupId>i3plus.core</groupId>
<version>1.0-TEST-SNAPSHOT</version>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -32,5 +32,36 @@
<artifactId>shiro-core</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>DEV</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>TEST</profileActive>
</properties>
</profile>
<profile>
<id>docker</id>
<properties>
<profileActive>DOCKER</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>PROD</profileActive>
</properties>
</profile>
</profiles>
<build>
<finalName>${project.artifactId}-${profileActive}-${project.version}</finalName>
</build>
</project>

@ -47,6 +47,7 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "根据资源key查询资源")
List<SysLocaleResource> findSysLocaleResourceByResKey(String resKey);
@ApiOperation(value = "根据条件查询资源")
List<SysLocaleResource> findSysLocaleResource(SysLocaleResource sysLocaleResource);
@ApiOperation(value = "根据id查询资源")
@ -55,9 +56,6 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "功能权限国际化")
List<SysMenu> tranSysMenu(List<SysMenu> menuList);
@ApiOperation(value = "添加初始化资源")
void insertInitSysLocaleResourceList(List<SysLocaleResource> sysLocaleResources);
@ApiOperation(value = "删除所有资源")
void deleteSysLocaleResourceAll();
}

@ -5,7 +5,7 @@
<parent>
<artifactId>i3plus-core</artifactId>
<groupId>i3plus.core</groupId>
<version>1.0-TEST-SNAPSHOT</version>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -106,7 +106,7 @@
<!-- sqlserver -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<artifactId>mssql-jdbc</artifactId>
</dependency>
<!-- postgresql -->
@ -243,7 +243,36 @@
</includes>
</resource>
</resources>
<finalName>${project.artifactId}-${profileActive}-${project.version}</finalName>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>DEV</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>TEST</profileActive>
</properties>
</profile>
<profile>
<id>docker</id>
<properties>
<profileActive>DOCKER</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>PROD</profileActive>
</properties>
</profile>
</profiles>
</project>

@ -1,176 +1,176 @@
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.UaSubscription;
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;
/**
* @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, (uaMonitoredItem, integer) -> {
uaMonitoredItem.setValueConsumer((node, value) -> {
LOGGER.info("OPC订阅回调 {} - {} , callback {}", node.getReadValueId().getNodeId(), 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 = "查询Opc订阅", notes = "查询Opc订阅")
@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);
}
}
}
//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.UaSubscription;
//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;
//
///**
// * @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, (uaMonitoredItem, integer) -> {
// uaMonitoredItem.setValueConsumer((node, value) -> {
// LOGGER.info("OPC订阅回调 {} - {} , callback {}", node.getReadValueId().getNodeId(), 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 = "查询Opc订阅", notes = "查询Opc订阅")
// @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);
// }
// }
//
//}

@ -309,5 +309,22 @@ public class SysEnumController extends CoreBaseController {
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.DICTIONARY_GROUP.values()));
}
@GetMapping("/log-storage-type")
@ApiOperation(value = "日志存储类型")
public ResultBean getLogStorageType() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.LOG_STORAGE.values()));
}
/**
* @return
*/
@GetMapping("/log-print-type")
@ApiOperation(value = "系统参数值类型", notes = "用户状态")
public ResultBean getLogPrintType() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.LOG_DETAIL_SHOW_TYPE.values()));
}
}

@ -347,8 +347,6 @@ public class SysFileController extends CoreBaseController {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleLanguageService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -13,7 +14,6 @@ import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
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.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -37,7 +37,7 @@ import java.util.List;
@Api(tags = "系统语言服务")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-locale-language")
public class SysLocaleLanguageController extends CoreBaseController {
public static final Logger LOGGER = LoggerFactory.getLogger(SysFileController.class);
public static final Logger LOGGER = LoggerFactory.getLogger(SysLocaleLanguageController.class);
@Autowired
private ISysLocaleLanguageService sysLocaleLanguageService;

@ -5,6 +5,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.BaseImppException;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
@ -20,7 +21,6 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile;
import cn.estsh.impp.framework.boot.util.ImppRedis;
@ -39,6 +39,7 @@ import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
/**
@ -61,7 +62,7 @@ public class SysLocaleResourceController extends CoreBaseController {
private ISysLocaleResourceService sysLocaleResourceService;
@Autowired
private ISystemInitService systemInitService;;
private ISystemInitService systemInitService;
@Autowired
private ISysFileService sysFileService;
@ -91,6 +92,12 @@ public class SysLocaleResourceController extends CoreBaseController {
//新增初始化
sysLocaleResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
// 系统功能key添加指定前缀避免与其他资源重复
if (sysLocaleResource.getResourceType().equals(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue())
&& sysLocaleResource.getResourceKey().indexOf(CommonConstWords.RESOURCE_PREFIX_MENU) != 0) {
sysLocaleResource.setResourceKey(CommonConstWords.RESOURCE_PREFIX_MENU+sysLocaleResource.getResourceKey());
}
sysLocaleResourceService.insertSysLocaleResource(sysLocaleResource);
// 更新缓存信息
@ -220,8 +227,6 @@ public class SysLocaleResourceController extends CoreBaseController {
sysLocaleResourceService.deleteSysLocaleResourceByIds(StringTool.getArrayLong(idsStr));
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -239,22 +244,26 @@ public class SysLocaleResourceController extends CoreBaseController {
@ApiOperation(value = "批量添加系统资源")
public ResultBean insertSysLocaleResourceList(@RequestBody List<SysLocaleResource> sysLocaleResourcesList){
try {
if(sysLocaleResourcesList.size() == 0){
if(sysLocaleResourcesList.isEmpty()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("请选择需要删除的资源。")
.setErrorDetail("请选择输入需要添加资源。")
.build();
}
for (SysLocaleResource sysLocaleResource : sysLocaleResourcesList) {
// 系统功能key添加指定前缀避免与其他资源重复
if (sysLocaleResource.getResourceType().equals(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue())
&& sysLocaleResource.getResourceKey().indexOf(CommonConstWords.RESOURCE_PREFIX_MENU) != 0) {
sysLocaleResource.setResourceKey(CommonConstWords.RESOURCE_PREFIX_MENU+sysLocaleResource.getResourceKey());
}
ConvertBean.modelInitialize(sysLocaleResource,AuthUtil.getSessionUser());
}
sysLocaleResourceService.insertSysLocaleResourceList(sysLocaleResourcesList);
// 重新加载资源
systemInitService.putAndLoadSysLocaleLanguage();
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -270,25 +279,9 @@ public class SysLocaleResourceController extends CoreBaseController {
*/
private void updateResourceCache(SysLocaleResource sysLocaleResource, boolean isDelete) {
// 判断是否为删除资源
if(isDelete){
Map<Object, Object> langMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + sysLocaleResource.getLanguageCode());
if (langMap != null && langMap.size() != 0) {
langMap.remove(sysLocaleResource.getResourceKey());
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + sysLocaleResource.getLanguageCode(), langMap);
}
// 更新web资源
redisRes.deleteKey(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + sysLocaleResource.getResourceKey());
}else {
Map<Object, Object> langMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + sysLocaleResource.getLanguageCode());
if (langMap != null && langMap.size() != 0) {
langMap.put(sysLocaleResource.getResourceKey(), sysLocaleResource.getResourceValue());
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + sysLocaleResource.getLanguageCode(), langMap);
}
HashMap<String, String> resource = new HashMap<String, String>();
resource.put(sysLocaleResource.getLanguageCode(), sysLocaleResource.getResourceValue());
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + sysLocaleResource.getResourceKey(), resource, 0);
}
// 更新后台资源
}
@PostMapping(value = "/import")
@ -304,6 +297,11 @@ public class SysLocaleResourceController extends CoreBaseController {
String resourceKey;
String userName = AuthUtil.getSessionUser().getUserName();
for (SysLocaleResource localeResource : sysLocaleResourceList) {
// 系统功能key添加指定前缀避免与其他资源重复
if (localeResource.getResourceType().equals(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue())
&& localeResource.getResourceKey().indexOf(CommonConstWords.RESOURCE_PREFIX_MENU) != 0) {
localeResource.setResourceKey(CommonConstWords.RESOURCE_PREFIX_MENU+localeResource.getResourceKey());
}
localeResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelInitialize(localeResource, userName);
@ -326,10 +324,8 @@ public class SysLocaleResourceController extends CoreBaseController {
}
// 重新加载资源
// systemInitService.putAndLoadSysLocaleLanguage();
systemInitService.putAndLoadSysLocaleLanguage();
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch (BaseImppException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
@ -340,7 +336,6 @@ public class SysLocaleResourceController extends CoreBaseController {
@PostMapping(value = "/export")
@ApiOperation(value = "导出系统资源")
public ResultBean exportSysLocaleResource(HttpServletResponse response) {
try {
startMultiService();
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
@ -348,7 +343,13 @@ public class SysLocaleResourceController extends CoreBaseController {
List<SysLocaleResource> list = sysLocaleResourceService.listSysLocaleResource();
File file = new File(fileName);
file.createNewFile();
if (file.createNewFile()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode())
.setErrorDetail("临时文件创建失败!")
.build();
}
File excle = excelTool.exportData(file, list, SysLocaleResource.class, new String[]{
"resourceType", "languageCode", "languageNameRdd", "resourceKey", "resourceValue", "softType"
});
@ -359,16 +360,17 @@ public class SysLocaleResourceController extends CoreBaseController {
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else {
// 非IE浏览器的处理
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
fileName = new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
}
InputStream targetStream = new DataInputStream(new FileInputStream(excle));
response.setContentType("application/force-download"); // 设置强制下载不打开
response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); // 设置文件名
response.addHeader("Content-type", FileContentTypeTool.getContentType(".xls")); // 设置文件名
BufferedInputStream bis = null;
InputStream targetStream = null;
try {
targetStream = new DataInputStream(new FileInputStream(excle));
bis = new BufferedInputStream(targetStream);
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
@ -377,19 +379,18 @@ public class SysLocaleResourceController extends CoreBaseController {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
}
if (targetStream != null) {
targetStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 删除临时文件
if (!file.delete()) {
LOGGER.warn("临时文件清理失败");
}
file.delete(); // 删除临时文件
return ResultBean.success("下载").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -422,6 +423,11 @@ public class SysLocaleResourceController extends CoreBaseController {
String resourceKey;
String userName = AuthUtil.getSessionUser().getUserName();
for (SysLocaleResource localeResource : sysLocaleResourceList) {
// 系统功能key添加指定前缀避免与其他资源重复
if (localeResource.getResourceType().equals(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue())
&& localeResource.getResourceKey().indexOf(CommonConstWords.RESOURCE_PREFIX_MENU) != 0) {
localeResource.setResourceKey(CommonConstWords.RESOURCE_PREFIX_MENU+localeResource.getResourceKey());
}
// 初始化
localeResource.setId(getResourceKey(localeResource.getResourceKey(),localeResource.getLanguageCode()));
localeResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
@ -439,7 +445,6 @@ public class SysLocaleResourceController extends CoreBaseController {
// 分批导入
int size = 1000;
int i = 0;
for (List<SysLocaleResource> resourceList : ListUtils.partition(importDataList, size)) {
new Thread(){
@Override
@ -452,10 +457,7 @@ public class SysLocaleResourceController extends CoreBaseController {
}.start();
}
// LOGGER.info("数据缓存更新完毕,总耗时:{}",System.currentTimeMillis()-startTime);
return ResultBean.success("数据导入中...").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (BaseImppException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {

@ -30,3 +30,4 @@ public class DemoCloudJob extends BaseImppScheduleJob {
System.out.println("==============测试微服定时任务demo===========");
}
}

@ -39,7 +39,7 @@ public class DemoJob extends BaseImppScheduleJob {
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("定时任务异常测试!")
// .setErrorSolution("请检查异常通知邮件")
// .build();
// .buildSearch();
// }
try {
if(getJobParam() != null && StringUtils.isNotBlank(getJobParam())) {

@ -0,0 +1,178 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISysLogService;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchPack;
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.platform.platbean.SysLogException;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import cn.estsh.impp.framework.boot.util.ImppLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @CreateDate : 20-2-19 9:17
* @Modify:
**/
@Service
public class SysLogElasticSearchService implements ISysLogService {
@Autowired
private ImppLog imppLog;
@Override
public ListPager<SysLogException> querySysLogExceptionByPager(SysLogException sysLogException, Pager pager) {
return null;
}
@Override
public long deleteSysLogExceptionByDateTimeAfter(String dateTime) {
return 0;
}
@Override
public SysLogOperate insertSysLogOperate(SysLogOperate logOperate) {
imppLog.insertSysLogOperate(logOperate);
return logOperate;
}
@Override
public void deleteSysLogOperateById(Long id) {
// ElasticSearchTool.deletePrimaryKey();
}
@Override
public List listSysLogOperate() {
return null;
}
@Override
public void deleteSysLogOperateByIds(Long[] ids) {
}
@Override
public SysLogOperate getSysLogOperateById(Long id) {
// return ElasticSearchTool.getPrimaryKey();
return null;
}
@Override
public List<SysLogOperate> listSysLogOperateByOperateUserName(String operateUserName) {
return null;
}
@Override
public long countAllSysLogOperate() {
return 0;
}
@Override
public ListPager<SysLogOperate> querySysLogOperateByPager(SysLogOperate logOperate, Pager pager) {
return null;
}
@Override
public List<SysLogOperate> findNewSysLogOperate(Integer num) {
return null;
}
@Override
public long deleteSysLogOperateByDateTimeAfter(String dateTime) {
return 0;
}
@Override
public long countSysLogOperate() {
return 0;
}
@Override
public void insertSysLogSystem(SysLogSystem logSystem) {
}
@Override
public void insertSysLogBatch(int num, int waitTime) {
}
@Override
public long deleteSysLogSystemById(Long id) {
return 0;
}
@Override
public List<SysLogSystem> listSysLogSystem() {
return null;
}
@Override
public SysLogSystem getSysLogSystemById(long id) {
return null;
}
@Override
public ListPager querySysLogSystemByPager(SysLogSystem logSystem, Pager pager) {
return null;
}
@Override
public long deleteSysLogSystemByIds(Long[] ids) {
return 0;
}
@Override
public List<SysLogSystem> findSysLogSystemByIdInterval(long min, long max) {
return null;
}
@Override
public long deleteSysLogSystemByDateTimeAfter(String dateTime) {
return 0;
}
@Override
public void insertSysLogTaskTime(SysLogTaskTime sysLogTaskTime) {
}
@Override
public void deleteSysLogTaskTimeById(Long id) {
}
@Override
public SysLogTaskTime getSysLogTaskTimeById(Long id) {
return null;
}
@Override
public ListPager querySysLogTaskTimeByPager(SysLogTaskTime sysLogTaskTime, Pager pager) {
return null;
}
@Override
public long deleteSysLogTaskTimeByDateTimeAfter(String dateTime) {
return 0;
}
@Override
public Map<String, Object> querySysLogSystemAvgExecuteTime(String startTime, String endTime) {
return null;
}
@Override
public Map<String, Object> querySysLogSystemByLevel(String startTime, String endTime) {
return null;
}
}

@ -29,6 +29,7 @@ import org.bson.Document;
import org.bson.conversions.Bson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.stereotype.Service;
@ -45,9 +46,10 @@ import java.util.Map;
* @Modify:
**/
@Service
public class SysLogService implements ISysLogService {
@Primary
public class SysLogMongoService implements ISysLogService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysLogService.class);
public static final Logger LOGGER = LoggerFactory.getLogger(SysLogMongoService.class);
private SysLogTaskTimeRepository logTaskTimeRDao;
private SysLogSystemRepository logSystemRDao;

@ -117,6 +117,15 @@ public class SystemInitService implements ISystemInitService {
@Override
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
public void putAndLoadSysLocaleLanguage() {
// 加载资源
putAndLoadResource();
// 加载WEB资源
putAndLoadWebResource();
//加载语言数据
putAndLoadSysMenu();
}
public void putAndLoadWebResource() {
// Redis 缓存
if (type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()) {
/**
@ -131,92 +140,116 @@ public class SystemInitService implements ISystemInitService {
* langCode + softType < code : value>
*
*/
HashMap<String, HashMap<String, String>> resMap = new HashMap();
HashMap<String, String> lanMap = null;
HashMap<String, HashMap<String, String>> webLangMap = new HashMap<>();
HashMap<String, String> webResMap;
HashMap<String, HashMap<String, String>> webSoftLangMap = new HashMap<>();
HashMap<String, String> webSoftResMap;
String softResKey = null;
Integer resCount = systemResourceService.getSysLocaleResourceCount(null);
// 查询通用与前端资源数据
SysLocaleResource localeResource = new SysLocaleResource();
localeResource.setResourceTypes(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.COMMON.getValue() + "," + CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.WEB.getValue());
Integer resCount = systemResourceService.getSysLocaleResourceCount(localeResource);
//语言数量
List<SysLocaleLanguage> langList = systemResourceService.listSysLocaleLanguage(null);
LOGGER.info("【加载平台资源】共有{}个资源,{}种语言。", resCount, langList.size());
LOGGER.info("【加载WEB资源】共有{}个资源,{}种语言。", resCount, langList.size());
Pager pager = new Pager(resCount, 5000);
pager.setCurrentPage(0);
//查询所有资源
ListPager<SysLocaleResource> resourceList;
ListPager<SysLocaleResource> resListPage;
// 前端+语言+模块
Map<String, Map<String, String>> webLangSoftMap = new HashMap<>();
// 前端+语言
Map<String, Map<String, String>> webLangMap = new HashMap<>();
// resKey
String resKey;
// key + value
Map<String, String> resMap = new HashMap<>();
do {
pager.next();
resourceList = systemResourceService.listSysLocaleResourceByPager(null, pager);
resMap = new HashMap();
webLangMap = new HashMap<>();
webSoftLangMap = new HashMap<>();
resListPage = systemResourceService.listSysLocaleResourceByPager(localeResource, pager);
for (SysLocaleResource res : resourceList.getObjectList()) {
lanMap = resMap.get(res.getResourceKey());
//判断是否已存在资源信息
if (lanMap == null) {
lanMap = new HashMap();
//将key/代码放入
resMap.put(res.getResourceKey(), lanMap);
}
//根据语言放入
lanMap.put(res.getLanguageCode(), res.getResourceValue());
for (SysLocaleResource res : resListPage.getObjectList()) {
resKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + res.getLanguageCode();
resMap = webLangMap.computeIfAbsent(resKey, k -> new HashMap<>());
resMap.put(res.getResourceKey(), res.getResourceValue());
// web 资源
if (!webLangMap.containsKey(res.getLanguageCode())) {
webLangMap.put(res.getLanguageCode(), new HashMap<>());
resKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + res.getLanguageCode() + ":" + res.getSoftType();
resMap = webLangSoftMap.computeIfAbsent(resKey, k -> new HashMap<>());
resMap.put(res.getResourceKey(), res.getResourceValue());
}
// 放入资源信息
webResMap = webLangMap.get(res.getLanguageCode());
webResMap.put(res.getResourceKey(), res.getResourceValue());
// web 模块资源
softResKey = res.getLanguageCode() + ":" + res.getSoftTypeVal();
if (!webSoftLangMap.containsKey(softResKey)) {
webSoftLangMap.put(softResKey, new HashMap<>());
}
// 放入模块资源信息
webSoftResMap = webSoftLangMap.get(softResKey);
webSoftResMap.put(res.getResourceKey(), res.getResourceValue());
}
for (String key : resMap.keySet()) {
//放入缓存
if (resMap.get(key) != null) {
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + key, resMap.get(key), 0);
LOGGER.info("【加载WEB资源】数据分类中 {} / {} ", pager.getEndRow(), pager.getTotalRows());
} while (pager.hasNext());
for (Map.Entry<String, Map<String, String>> entry : webLangMap.entrySet()) {
redisRes.putHashMap(entry.getKey(), entry.getValue());
}
LOGGER.info("【加载WEB资源】WEB-语言 已分类缓存完毕");
for (Map.Entry<String, Map<String, String>> entry : webLangSoftMap.entrySet()) {
redisRes.putHashMap(entry.getKey(), entry.getValue());
}
LOGGER.info("【加载WEB资源】WEB-语言-模块 已分类缓存完毕");
for (String key : webLangMap.keySet()) {
//放入缓存
if (webLangMap.get(key) != null) {
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + key, webLangMap.get(key), 0);
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + key, webLangMap.get(key), 0);
LOGGER.info("【加载WEB资源】加载完成。");
}
}
for (String key : webSoftLangMap.keySet()) {
//放入缓存
if (webSoftLangMap.get(key) != null) {
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_WEB + ":" + key, webSoftLangMap.get(key), 0);
}
public void putAndLoadResource() {
// Redis 缓存
if (type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()) {
/**
*
* code <langCode : value>
* code
*
* hashMap
* langCode < code : value>
*
* + hashMap
* langCode + softType < code : value>
*
*/
Integer resCount = systemResourceService.getSysLocaleResourceCount(null);
//语言数量
List<SysLocaleLanguage> langList = systemResourceService.listSysLocaleLanguage(null);
LOGGER.info("【加载资源】共有{}个资源,{}种语言。", resCount, langList.size());
Pager pager = new Pager(resCount, 5000);
pager.setCurrentPage(0);
//查询所有资源
ListPager<SysLocaleResource> resListPage;
// 语言+模块
Map<String, Map<String, String>> langSoftMap = new HashMap<>();
// resKey
String resKey;
// key + value
Map<String, String> resMap = new HashMap<>();
do {
pager.next();
resListPage = systemResourceService.listSysLocaleResourceByPager(null, pager);
for (SysLocaleResource res : resListPage.getObjectList()) {
resKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + res.getLanguageCode() + ":" + res.getSoftType();
resMap = langSoftMap.computeIfAbsent(resKey, k -> new HashMap<>());
resMap.put(res.getResourceKey(), res.getResourceValue());
}
LOGGER.info("【加载平台资源】加载中 {} / {} ", pager.getEndRow(), pager.getTotalRows());
LOGGER.info("【加载资源】数据分类中 {} / {} ", pager.getEndRow(), pager.getTotalRows());
} while (pager.hasNext());
for (Map.Entry<String, Map<String, String>> entry : langSoftMap.entrySet()) {
redisRes.putHashMap(entry.getKey(), entry.getValue());
}
LOGGER.info("【加载资源】模块资源 已分类缓存完毕");
LOGGER.info("【加载平台资源】加载完成。");
LOGGER.info("【加载资源】加载完成。");
}
//加载语言数据
putAndLoadSysMenu();
}
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
public void putAndLoadSysMenu() {
SysLocaleResource resource = new SysLocaleResource();

@ -735,7 +735,7 @@ public class PersonnelServiceService implements IPersonnelService {
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// .buildSearch();
// }
List<SysUserInfo> userInfoList = userInfoRDao.findByProperty("positionId", positionId);
if (userInfoList != null && userInfoList.size() >= 1) {
@ -808,7 +808,7 @@ public class PersonnelServiceService implements IPersonnelService {
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// .buildSearch();
// }
List<SysDepartment> departmentList = departmentRDao.findByProperty("organizeId", organizeId);

@ -1,18 +1,16 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleLanguageService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
@ -131,7 +129,7 @@ public class SysLocaleLanguageService implements ISysLocaleLanguageService {
public void deleteSysLocaleLanguageByIds(Long[] ids) {
// 判断批量数据中是否存在默认语言
List list = sysLocaleLanguageRDao.findByHqlWhere(CoreHqlPack.packHqlSysLocaleLanguageExistDefaultByIds(ids));
if (list.size() > 0) {
if (list!=null && !list.isEmpty() ) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
@ -187,7 +185,7 @@ public class SysLocaleLanguageService implements ISysLocaleLanguageService {
public void updateSysLocaleLanguageStatusByIds(Long[] ids, Integer status) {
// 判断批量数据禁用时是否存在默认语言
List list = sysLocaleLanguageRDao.findByHqlWhere(CoreHqlPack.packHqlSysLocaleLanguageExistDefaultByIds(ids));
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == status.intValue() && list.size() > 0) {
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == status.intValue() && !list.isEmpty()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.BeanCopyTool;
import cn.estsh.i3plus.platform.common.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
@ -17,7 +18,6 @@ import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation;
@ -42,7 +42,7 @@ import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PRE
**/
@Service
public class SysLocaleResourceService implements ISysLocaleResourceService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysLocaleLanguageService.class);
private static final Logger LOGGER = LoggerFactory.getLogger(SysLocaleLanguageService.class);
@Autowired
private SysLocaleResourceRepository sysLocaleResourceRDao;
@ -196,7 +196,7 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
@Override
public List<SysMenu> tranSysMenu(List<SysMenu> menuList) {
if (menuList != null && menuList.size() > 0) {
if (menuList != null && !menuList.isEmpty()) {
String languageCode = (String) AuthUtil.getSessionLanguage();
menuList = (List<SysMenu>) SerializeTool.copyObject(menuList);
@ -224,12 +224,6 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
}
@Override
public void insertInitSysLocaleResourceList(List<SysLocaleResource> sysLocaleResourceList) {
sysLocaleResourceRDao.deleteAll();
sysLocaleResourceRDao.saveAll(sysLocaleResourceList);
}
@Override
public void deleteSysLocaleResourceAll() {
sysLocaleResourceRDao.deleteAllInBatch();
}

@ -19,17 +19,20 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.ListUtils;
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.ArrayList;
import java.util.Arrays;
import java.util.List;
import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.SQL_SERVER_PARAM_MAX_MUM;
/**
* @Description :
* @Reference :
@ -145,7 +148,12 @@ public class SysRoleService implements ISysRoleService {
refRoleMenuRDao.deleteByPropertyIn("roleId",roleIds);
if(ids != null && ids.length > 0){
List<SysMenu> list = sysMenuRDao.findAllById(Arrays.asList(ids));
List<SysMenu> list = new ArrayList<>();
// sqlserver限制最大传参数量
for (List<Long> idList : ListUtils.partition(Arrays.asList(ids), SQL_SERVER_PARAM_MAX_MUM)) {
System.out.println("切割大小:"+idList.size());
list.addAll(sysMenuRDao.findAllById(idList));
}
SysRefRoleMenu ref = null;
// 插入角色权限关系

@ -1,49 +1,49 @@
#本机ip
#\u672C\u673Aip
impp.server.ip=192.168.1.56
#项目端口
#\u9879\u76EE\u7AEF\u53E3
server.port=8100
#链路追踪zipkin控制台ip地址
#\u94FE\u8DEF\u8FFD\u8E2Azipkin\u63A7\u5236\u53F0ip\u5730\u5740
impp.console.ip=http://192.168.1.56:8010
#服务注册中心(多注册中心逗号分隔)
#\u670D\u52A1\u6CE8\u518C\u4E2D\u5FC3(\u591A\u6CE8\u518C\u4E2D\u5FC3\u9017\u53F7\u5206\u9694)
impp.cluster.regist.center=http://192.168.1.56:8000/eureka/
#日志默认使用log4j2
#\u65E5\u5FD7\u9ED8\u8BA4\u4F7F\u7528log4j2
logging.config=classpath:log4j2-spring-dev.xml
########平台相关参数##########
#是否开启redis缓存
########\u5E73\u53F0\u76F8\u5173\u53C2\u6570##########
#\u662F\u5426\u5F00\u542Fredis\u7F13\u5B58
impp.config.redis=true
#是否开启rabbitMQ
#\u662F\u5426\u5F00\u542FrabbitMQ
impp.config.rabbitmq=true
#是否开启swagger
#\u662F\u5426\u5F00\u542Fswagger
impp.config.swagger=true
#是否开启websocket
#\u662F\u5426\u5F00\u542Fwebsocket
impp.config.websocket=true
#是否开启文件服务
#\u662F\u5426\u5F00\u542F\u6587\u4EF6\u670D\u52A1
impp.config.fastdfs=true
#是否对发布服务进行详细日志分析
#\u662F\u5426\u5BF9\u53D1\u5E03\u670D\u52A1\u8FDB\u884C\u8BE6\u7EC6\u65E5\u5FD7\u5206\u6790
impp.log.detail.controller=true
#是否对调用服务进行详细日志分析
#\u662F\u5426\u5BF9\u8C03\u7528\u670D\u52A1\u8FDB\u884C\u8BE6\u7EC6\u65E5\u5FD7\u5206\u6790
impp.log.detail.service=true
#是否开启微服
#\u662F\u5426\u5F00\u542F\u5FAE\u670D
eureka.client.enabled=true
#打开feign的熔断
#\u6253\u5F00feign\u7684\u7194\u65AD
feign.hystrix.enabled=true
################ 队列处理 ################
#站内信
################ \u961F\u5217\u5904\u7406 ################
#\u7AD9\u5185\u4FE1
impp.mq.queue.letter=true
#邮件
#\u90AE\u4EF6
impp.mq.queue.mail=true
#定时任务
#\u5B9A\u65F6\u4EFB\u52A1
impp.mq.queue.schedule=true
#SWEB通知处理队列
#SWEB\u901A\u77E5\u5904\u7406\u961F\u5217
impp.mq.queue.sweb.notice=true
################################ 数据库相关设置 ################################
################################ \u6570\u636E\u5E93\u76F8\u5173\u8BBE\u7F6E ################################
# mysql
spring.datasource.validationQuery=SELECT 1
################ 数据池设置 ################
################ \u6570\u636E\u6C60\u8BBE\u7F6E ################
spring.datasource.maximum-pool-size=10
spring.datasource.max-active=5
spring.datasource.max-idle=5
@ -55,144 +55,144 @@ spring.datasource.test-on-borrow=false
spring.datasource.test-while-idle=true
spring.datasource.time-between-eviction-runs-millis=300000
##主数据源,读写
##\u4E3B\u6570\u636E\u6E90\uFF0C\u8BFB\u5199
#impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource
impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.write.datasource.username=impp_i3_core_user
impp.write.datasource.password=impp_i3_core_pwd
##辅数据源,只读
##\u8F85\u6570\u636E\u6E90\uFF0C\u53EA\u8BFB
#impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource
impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
################ 日志数据源 ################
################ \u65E5\u5FD7\u6570\u636E\u6E90 ################
spring.data.mongodb.database=mongoDBSource
spring.data.mongodb.uri=192.168.1.55:27017
spring.data.mongodb.username=sa
spring.data.mongodb.password=i3plus
spring.data.mongodb.port=27017
################ JPA设置设置 ################
################ JPA\u8BBE\u7F6E\u8BBE\u7F6E ################
# mysql
spring.jpa.database=MYSQL
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#是否显示sql
#\u662F\u5426\u663E\u793Asql
spring.jpa.show-sql=true
#表关系create,create-drop,update,validate
#\u8868\u5173\u7CFBcreate,create-drop,update,validate
spring.jpa.properties.hibernate.hbm2ddl.auto=update
##############定时任务持久化##############
##############\u5B9A\u65F6\u4EFB\u52A1\u6301\u4E45\u5316##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
impp.schedule.datasource.password=impp_i3_schedule_pwd
impp.schedule.datasource.max-connections=20
#定时任务在服务启动后多少秒执行
#\u5B9A\u65F6\u4EFB\u52A1\u5728\u670D\u52A1\u542F\u52A8\u540E\u591A\u5C11\u79D2\u6267\u884C
impp.schedule.start.after-second=20
#是否集群部署
#\u662F\u5426\u96C6\u7FA4\u90E8\u7F72
impp.schedule.datasource.is-clustered=true
#执行检测(毫秒),若宕机由其他定时器执行
#\u6267\u884C\u68C0\u6D4B\uFF08\u6BEB\u79D2\uFF09\uFF0C\u82E5\u5B95\u673A\u7531\u5176\u4ED6\u5B9A\u65F6\u5668\u6267\u884C
impp.schedule.datasource.cluster-checkin-interval=30000
#线程数
#\u7EBF\u7A0B\u6570
impp.schedule.thread-count=10
#线程优先级1-10默认为5
#\u7EBF\u7A0B\u4F18\u5148\u7EA7\uFF081-10\uFF09\u9ED8\u8BA4\u4E3A5
impp.schedule.thread-priority=5
################################ 其他功能设置 ################################
################################ \u5176\u4ED6\u529F\u80FD\u8BBE\u7F6E ################################
#redisIP
redis.hostName=192.168.1.55
#端口号
#\u7AEF\u53E3\u53F7
redis.port=16376
#如果有密码
#\u5982\u679C\u6709\u5BC6\u7801
redis.password=
##其他redis配置需要调整的加在此处
################## rabbitMQ配置 ####################
##\u5176\u4ED6redis\u914D\u7F6E\u9700\u8981\u8C03\u6574\u7684\u52A0\u5728\u6B64\u5904
################## rabbitMQ\u914D\u7F6E ####################
spring.rabbitmq.vhost=/
spring.rabbitmq.host=192.168.1.55
spring.rabbitmq.port=5672
spring.rabbitmq.username=estsh
spring.rabbitmq.password=estsh123
##其他rabbitMq配置需要调整的加在此处
##\u5176\u4ED6rabbitMq\u914D\u7F6E\u9700\u8981\u8C03\u6574\u7684\u52A0\u5728\u6B64\u5904
################ 微服配置 ################
#是否进行健康检查
################ \u5FAE\u670D\u914D\u7F6E ################
#\u662F\u5426\u8FDB\u884C\u5065\u5EB7\u68C0\u67E5
eureka.client.healthcheck.enabled=true
#若无法连接注册中心,是否需要一直检测加入
#\u82E5\u65E0\u6CD5\u8FDE\u63A5\u6CE8\u518C\u4E2D\u5FC3\uFF0C\u662F\u5426\u9700\u8981\u4E00\u76F4\u68C0\u6D4B\u52A0\u5165
impp.cluster.fetch=true
#集群名
#\u96C6\u7FA4\u540D
eureka.instance.metadata-map.cluster=impp_cluster
#(参数配置)注册中心地址 -》 i3plus-ics多个用逗号分隔
#\uFF08\u53C2\u6570\u914D\u7F6E\uFF09\u6CE8\u518C\u4E2D\u5FC3\u5730\u5740 -\u300B i3plus-ics\uFF0C\u591A\u4E2A\u7528\u9017\u53F7\u5206\u9694
eureka.client.service-url.defaultZone=${impp.cluster.regist.center}
#本服务主机ip若多个网卡则需要设置本服务ip
#\u672C\u670D\u52A1\u4E3B\u673Aip\uFF08\u82E5\u591A\u4E2A\u7F51\u5361\uFF0C\u5219\u9700\u8981\u8BBE\u7F6E\u672C\u670D\u52A1ip\uFF09
eureka.instance.ip-address=${impp.server.ip}
#本服务实例ID
#\u672C\u670D\u52A1\u5B9E\u4F8BID
eureka.instance.instance-id=${impp.server.ip}:${server.port}
#本服务主机名
#\u672C\u670D\u52A1\u4E3B\u673A\u540D
eureka.instance.hostname=${impp.server.ip}
#本服务状态页面
#\u672C\u670D\u52A1\u72B6\u6001\u9875\u9762
eureka.instance.status-page-url=http://${impp.server.ip}:${server.port}/swagger-ui.html
#将自己的IP注册到Eureka Server。若不配置或设置为false表示注册微服务所在操作系统的hostname到Eureka Server
#\u5C06\u81EA\u5DF1\u7684IP\u6CE8\u518C\u5230Eureka Server\u3002\u82E5\u4E0D\u914D\u7F6E\u6216\u8BBE\u7F6E\u4E3Afalse\uFF0C\u8868\u793A\u6CE8\u518C\u5FAE\u670D\u52A1\u6240\u5728\u64CD\u4F5C\u7CFB\u7EDF\u7684hostname\u5230Eureka Server
eureka.instance.prefer-ip-address=true
################ 检测机制 ################
#心跳间隔周期宕机限制30秒没反应视为宕机
################ \u68C0\u6D4B\u673A\u5236 ################
#\u5FC3\u8DF3\u95F4\u9694\u5468\u671F\uFF0C\u5B95\u673A\u9650\u5236\uFF08\u79D2\uFF09\uFF0C30\u79D2\u6CA1\u53CD\u5E94\u89C6\u4E3A\u5B95\u673A
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
#\u5FC3\u8DF3\u5468\u671F
eureka.instance.lease-renewal-interval-in-seconds=20
#client连接Eureka服务端后的空闲等待时间默认为30 秒
#client\u8FDE\u63A5Eureka\u670D\u52A1\u7AEF\u540E\u7684\u7A7A\u95F2\u7B49\u5F85\u65F6\u95F4\uFF0C\u9ED8\u8BA4\u4E3A30 \u79D2
eureka.client.eureka-connection-idle-timeout-seconds=1
#最初复制实例信息到eureka服务器所需的时间s默认为40秒
#\u6700\u521D\u590D\u5236\u5B9E\u4F8B\u4FE1\u606F\u5230eureka\u670D\u52A1\u5668\u6240\u9700\u7684\u65F6\u95F4\uFF08s\uFF09\uFF0C\u9ED8\u8BA4\u4E3A40\u79D2
eureka.client.initial-instance-info-replication-interval-seconds=1
#间隔多长时间再次复制实例信息到eureka服务器默认为30秒
#\u95F4\u9694\u591A\u957F\u65F6\u95F4\u518D\u6B21\u590D\u5236\u5B9E\u4F8B\u4FE1\u606F\u5230eureka\u670D\u52A1\u5668\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2
eureka.client.instance-info-replication-interval-seconds=1
#从eureka服务器注册表中获取注册信息的时间间隔s默认为30秒
#\u4ECEeureka\u670D\u52A1\u5668\u6CE8\u518C\u8868\u4E2D\u83B7\u53D6\u6CE8\u518C\u4FE1\u606F\u7684\u65F6\u95F4\u95F4\u9694\uFF08s\uFF09\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2
eureka.client.registry-fetch-interval-seconds=1
################ 熔断配置 ################
#重试
################ \u7194\u65AD\u914D\u7F6E ################
#\u91CD\u8BD5
ribbon.maxAutoRetries=2
#读取数据时长
#\u8BFB\u53D6\u6570\u636E\u65F6\u957F
ribbon.ReadTimeout=30000
#连接时长
#\u8FDE\u63A5\u65F6\u957F
ribbon.ConnectTimeout=50000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
#\u54CD\u5E94\u8D85\u8FC7\u65F6\u957F\uFF0C\u8FDB\u884C\u7194\u65AD\uFF08\u7194\u65AD\u8D85\u65F6\u9700\u8981\u5927\u4E8E\u8BFB\u53D6\u65F6\u957F\u53CA\u8FDE\u63A5\u65F6\u957F\uFF09
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=60000
################ 链路追踪 ################
#使用web方式传输信息
################ \u94FE\u8DEF\u8FFD\u8E2A ################
#\u4F7F\u7528web\u65B9\u5F0F\u4F20\u8F93\u4FE1\u606F
spring.zipkin.sender.type=web
#链路追踪服务的地址
#\u94FE\u8DEF\u8FFD\u8E2A\u670D\u52A1\u7684\u5730\u5740
spring.zipkin.base-url=${impp.console.ip}
#追踪深度百分比1是全部
#\u8FFD\u8E2A\u6DF1\u5EA6\uFF0C\u767E\u5206\u6BD4\uFF0C1\u662F\u5168\u90E8
spring.sleuth.sampler.probability=1.0
################ FastDfs 配置 ################
#tracker服务器ip
################ FastDfs \u914D\u7F6E ################
#tracker\u670D\u52A1\u5668ip
fastdfs.tracker_servers=192.168.1.56:22122
# tracker的http端口
# tracker\u7684http\u7AEF\u53E3
fastdfs.http_tracker_http_port=22122
# 使用自定义工具获取文件展示地址
# \u4F7F\u7528\u81EA\u5B9A\u4E49\u5DE5\u5177\u83B7\u53D6\u6587\u4EF6\u5C55\u793A\u5730\u5740
fastdfs.http.ui.host=http://dfs.estsh.com
#密码
#\u5BC6\u7801
#fastdfs.http.secret_key=
#连接超时
fastdfs.connect_timeout_in_seconds=5
#传输超时
fastdfs.network_timeout_in_seconds=60
#\u8FDE\u63A5\u8D85\u65F6
fastdfs.connect_timeout_in_seconds=5000
#\u4F20\u8F93\u8D85\u65F6
fastdfs.network_timeout_in_seconds=60000
fastdfs.charset=UTF-8
# token 防盗链功能
# token \u9632\u76D7\u94FE\u529F\u80FD
fastdfs.http_anti_steal_token=no
################ 授权配置 ################
################ \u6388\u6743\u914D\u7F6E ################
slm.api.password=4C9479EBEFA6FA6E232EF25EFA49C4D2
slm.app.id=10000

@ -3,70 +3,70 @@ spring.profiles.active=docker
#项目描述信息swagger中显式中文使用uncode转码
desc.application.name=\u6838\u5fc3\u7ba1\u7406\u540e\u53f0
######### 自定义参数 #########
#项目名称
######### \u81EA\u5B9A\u4E49\u53C2\u6570 #########
#\u9879\u76EE\u540D\u79F0
spring.application.name=${project.name}
#当前项目版本
#\u5F53\u524D\u9879\u76EE\u7248\u672C
version=${project.version}
#解决程序读配置文件乱码问题
spring.message.encoding=UTF-8 sh
######## 通用设置 #######
#启动时加载,预加载controller
#\u89E3\u51B3\u7A0B\u5E8F\u8BFB\u914D\u7F6E\u6587\u4EF6\u4E71\u7801\u95EE\u9898
spring.message.encoding=UTF-8
######## \u901A\u7528\u8BBE\u7F6E #######
#\u542F\u52A8\u65F6\u52A0\u8F7D\uFF0C\u9884\u52A0\u8F7Dcontroller
spring.mvc.servlet.load-on-startup=1
#是否允许前端跨域提交impp.web.cross.hosts
#\u662F\u5426\u5141\u8BB8\u524D\u7AEF\u8DE8\u57DF\u63D0\u4EA4impp.web.cross.hosts
impp.web.cross = true
#上传单个文件大小
#\u4E0A\u4F20\u5355\u4E2A\u6587\u4EF6\u5927\u5C0F
spring.servlet.multipart.max-file-size=10240MB
#request请求全部数据最大限制
#request\u8BF7\u6C42\u5168\u90E8\u6570\u636E\u6700\u5927\u9650\u5236
spring.servlet.multipart.max-request-size=10240MB
#是否推迟文件解析true则接受完后再解析
#\u662F\u5426\u63A8\u8FDF\u6587\u4EF6\u89E3\u6790\uFF0Ctrue\u5219\u63A5\u53D7\u5B8C\u540E\u518D\u89E3\u6790
spring.servlet.multipart.resolve-lazily=true
########## 页面配置 ########
#访问相关配置
########## \u9875\u9762\u914D\u7F6E ########
#\u8BBF\u95EE\u76F8\u5173\u914D\u7F6E
server.tomcat.uri-encoding=UTF-8
#Spring boot视图配置
#Spring boot\u89C6\u56FE\u914D\u7F6E
spring.mvc.view.prefix=/upload_demo
spring.mvc.view.suffix=.jsp
#静态文件访问配置
#\u9759\u6001\u6587\u4EF6\u8BBF\u95EE\u914D\u7F6E
spring.resources.static-locations=/static/**,/**
########扫包路径########
#app基础包路径
########\u626B\u5305\u8DEF\u5F84########
#app\u57FA\u7840\u5305\u8DEF\u5F84
impp.app.base-packages=cn.estsh.i3plus.core
#app对象路径
#app\u5BF9\u8C61\u8DEF\u5F84
impp.app.pojo-packages=cn.estsh.i3plus.pojo.platform
#dao接口包
#dao\u63A5\u53E3\u5305
impp.app.pojo-dao=${impp.app.base-packages}.apiservice.dao
#mongo-dao接口包
#mongo-dao\u63A5\u53E3\u5305
impp.app.pojo-mongo-dao=${impp.app.base-packages}.**.apiservice.daomongo
#对象持久化包路径,可以多个包,逗号分隔
#\u5BF9\u8C61\u6301\u4E45\u5316\u5305\u8DEF\u5F84\uFF0C\u53EF\u4EE5\u591A\u4E2A\u5305\uFF0C\u9017\u53F7\u5206\u9694
impp.app.pojo-repository=${impp.app.pojo-packages}.**.repository
#mongodb资源仓go
#mongodb\u8D44\u6E90\u4ED3go
impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.**.repositorymon
################ 授权过滤配置 ################
#用户登陆路径
################ \u6388\u6743\u8FC7\u6EE4\u914D\u7F6E ################
#\u7528\u6237\u767B\u9646\u8DEF\u5F84
filter.shiro.user.loginuri = /login
#系统管理员登陆路径
#\u7CFB\u7EDF\u7BA1\u7406\u5458\u767B\u9646\u8DEF\u5F84
filter.shiro.admin.loginuri = /salogin
#运维人员登陆路径
#\u8FD0\u7EF4\u4EBA\u5458\u767B\u9646\u8DEF\u5F84
filter.shiro.saadmin.loginuri = /salogin
#用户授权过滤路径
#\u7528\u6237\u6388\u6743\u8FC7\u6EE4\u8DEF\u5F84
filter.shiro.user.filteruri = /impp/operate/**
#用户授权过滤路径
#\u7528\u6237\u6388\u6743\u8FC7\u6EE4\u8DEF\u5F84
filter.shiro.admin.filteruri = /impp/adoperate/*
#用户授权过滤路径
#\u7528\u6237\u6388\u6743\u8FC7\u6EE4\u8DEF\u5F84
filter.shiro.saadmin.filteruri = /impp/saoperate/*
################ redis辅助设置 ################
#是否开启redis
################ redis\u8F85\u52A9\u8BBE\u7F6E ################
#\u662F\u5426\u5F00\u542Fredis
core.redis.open=true
#资源信息以及异常、授权功能、按钮、模块等
#\u8D44\u6E90\u4FE1\u606F\u4EE5\u53CA\u5F02\u5E38\u3001\u6388\u6743\u529F\u80FD\u3001\u6309\u94AE\u3001\u6A21\u5757\u7B49
redis.resource.db=0
#用户会话缓存库
#\u7528\u6237\u4F1A\u8BDD\u7F13\u5B58\u5E93
redis.session.db=1
#系统全局缓存库,存放平台核心数据缓存
#\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58
redis.core.db=2

@ -1,66 +1,64 @@
package test.cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogExceptionService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogSystemService;
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogException;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem;
import com.alibaba.fastjson.JSON;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import javax.transaction.Transactional;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2019-04-09 14:38
* @Modify:
**/
public class TestMongoDb extends TestBase {
@Autowired
private ISysLogExceptionService sysLogExceptionService;
@Autowired
private ISysLogSystemService syslogSystemService;
/**
*
*/
@Test
@Transactional
public void testListSysConfig() {
Pager pager = new Pager();
pager.setStartRow(0);
pager.setPageSize(10);
SysLogException sysLogException = new SysLogException();
ListPager logExceptionList = sysLogExceptionService.querySysLogExceptionByPager(sysLogException, pager);
System.out.println(logExceptionList);
}
@Test
@Transactional
public void testListSysLogSystem() {
Pager pager = new Pager();
pager.setStartRow(0);
pager.setPageSize(10);
SysLogSystem logSystem = new SysLogSystem();
logSystem.setLogLevel(1);
logSystem.setLogModuleId(1);
System.out.println("2===============");
ListPager logSystemList = syslogSystemService.querySysLogSystemByPager(logSystem,pager);
System.out.println(logSystemList.getObjectList().size());
System.out.println("===============pager:" + pager);
}
}
//package test.cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
//
//import cn.estsh.i3plus.core.api.iservice.busi.ISysLogExceptionService;
//import cn.estsh.i3plus.core.api.iservice.busi.ISysLogSystemService;
//import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase;
//import cn.estsh.i3plus.pojo.base.bean.ListPager;
//import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.platform.platbean.SysLogException;
//import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem;
//import org.junit.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import javax.transaction.Transactional;
//
///**
// * @Description :
// * @Reference :
// * @Author : alwaysfrin
// * @CreateDate : 2019-04-09 14:38
// * @Modify:
// **/
//public class TestMongoDb extends TestBase {
//
//
// @Autowired
// private ISysLogExceptionService sysLogExceptionService;
//
// @Autowired
// private ISysLogSystemService syslogSystemService;
//
// /**
// * 测试 查询所有系统参数
// */
// @Test
// @Transactional
// public void testListSysConfig() {
// Pager pager = new Pager();
// pager.setStartRow(0);
// pager.setPageSize(10);
//
// SysLogException sysLogException = new SysLogException();
//
// ListPager logExceptionList = sysLogExceptionService.querySysLogExceptionByPager(sysLogException, pager);
// System.out.println(logExceptionList);
// }
//
//
// @Test
// @Transactional
// public void testListSysLogSystem() {
// Pager pager = new Pager();
// pager.setStartRow(0);
// pager.setPageSize(10);
//
// SysLogSystem logSystem = new SysLogSystem();
// logSystem.setLogLevel(1);
// logSystem.setLogModuleId(1);
//
// System.out.println("2===============");
// ListPager logSystemList = syslogSystemService.querySysLogSystemByPager(logSystem,pager);
// System.out.println(logSystemList.getObjectList().size());
// System.out.println("===============pager:" + pager);
// }
//}

@ -7,7 +7,7 @@
<groupId>i3plus.core</groupId>
<artifactId>i3plus-core</artifactId>
<packaging>pom</packaging>
<version>1.0-TEST-SNAPSHOT</version>
<version>1.0-SNAPSHOT</version>
<modules>
<module>modules/i3plus-core-api</module>
<module>modules/i3plus-core-apiservice</module>
@ -21,7 +21,7 @@
</parent>
<properties>
<!--项目名称,参照CommonEnumUtil.SOFT_TYPE-->
<!--项目坝称,坂照CommonEnumUtil.SOFT_TYPE-->
<project.name>i3core</project.name>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -50,7 +50,7 @@
<version>${project.version}</version>
</dependency>
<!--调用 -->
<!--调用 -->
<dependency>
<groupId>i3plus.core</groupId>
<artifactId>i3plus-core-icloud</artifactId>
@ -146,7 +146,7 @@
<version>${project.version}</version>
</dependency>
<!--调用 -->
<!--调用 -->
<dependency>
<groupId>i3plus.icloud</groupId>
<artifactId>i3plus-icloud-core</artifactId>
@ -170,8 +170,8 @@
<!-- sqlserver -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
<artifactId>mssql-jdbc</artifactId>
<version>8.2.0.jre8</version>
</dependency>
<!-- postgresql -->
@ -276,7 +276,7 @@
</dependencies>
</dependencyManagement>
<!-- 私有仓库引用配-->
<!-- 秝有仓库引用酝-->
<repositories>
<repository>
<id>nexus</id>
@ -284,7 +284,7 @@
</repository>
</repositories>
<!-- 私有仓库Jar 包更新配-->
<!-- 秝有仓库Jar 包更新酝-->
<distributionManagement>
<repository>
<id>maven-releases</id>
@ -300,7 +300,7 @@
<build>
<plugins>
<!-- maven编译的一些-->
<!-- maven编译的一些-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
@ -344,6 +344,36 @@
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}-${profileActive}-${project.version}</finalName>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>DEV</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>TEST</profileActive>
</properties>
</profile>
<profile>
<id>docker</id>
<properties>
<profileActive>DOCKER</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>PROD</profileActive>
</properties>
</profile>
</profiles>
</project>

@ -0,0 +1,17 @@
# must be unique in a given SonarQube instance
sonar.projectKey=i3plus.core:i3plus-core
# --- optional properties ---
# defaults to project key
sonar.projectName=i3plus-core
# defaults to 'not provided'
sonar.projectVersion=1.0-DEV-SNAPSHOT
# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=./
#sonar.java.binaries=target
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
Loading…
Cancel
Save