diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISysLogService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISysLogService.java index 0cca652..0866d9c 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISysLogService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISysLogService.java @@ -2,7 +2,13 @@ package cn.estsh.i3plus.core.api.iservice.base; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; -import cn.estsh.i3plus.pojo.platform.platbean.*; +import cn.estsh.i3plus.pojo.model.platform.LogFieldModel; +import cn.estsh.i3plus.pojo.model.platform.SysLogModel; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogConsole; +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 io.swagger.annotations.ApiOperation; import java.util.List; @@ -60,4 +66,6 @@ public interface ISysLogService { @ApiOperation(value = "查询时间段内各等级日志数量",notes = "查询时间段内各等级日志数量") Map querySysLogSystemByLevel(String startTime, String endTime); + + List querySysLog(SysLogModel logModel,Pager pager); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginStrategyService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginStrategyService.java index ae44d9b..3af9165 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginStrategyService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginStrategyService.java @@ -1,6 +1,6 @@ package cn.estsh.i3plus.core.api.iservice.base; -import cn.estsh.i3plus.pojo.model.platform.SystemLoginModel; +import cn.estsh.i3plus.pojo.model.platform.SysLoginModel; import cn.estsh.impp.framework.boot.util.ResultBean; import javax.servlet.http.HttpServletRequest; @@ -17,5 +17,5 @@ public interface ISystemLoginStrategyService { * @param loginModel * @return */ - BiFunction login(); + BiFunction login(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java index afb25be..3554460 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java @@ -47,6 +47,7 @@ public class DemoController extends CoreBaseController { @ApiOperation(value = "添加操作日志", notes = "添加操作日志,可用于国际化") public ResultBean putRedisList(boolean isUpdate) { try { + int x= 1/0; // pojoVersionPlanService.refreshCache(isUpdate); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java new file mode 100644 index 0000000..fb1d1d9 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SysLogController.java @@ -0,0 +1,91 @@ +package cn.estsh.i3plus.core.apiservice.controller.base; + +import cn.estsh.i3plus.core.api.iservice.base.ISysLogService; +import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.model.platform.LogFieldModel; +import cn.estsh.i3plus.pojo.model.platform.SysLogModel; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.elasticsearch.search.aggregations.AggregationBuilders; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Wynne.Lu + * @date 2021/2/20 上午10:49 + * @desc + */ +@Slf4j +@Api(tags = "系统日志查询服务") +@RestController +@RequestMapping("/log") +public class SysLogController { + + @Autowired + private ISysLogService sysLogService; + + @Value(value = "${elasticsearch.host:}") + private String elasticsearchHost; + + @GetMapping("/log-query") + @ApiOperation(value = "按条件分页查询日志", notes = "按条件分页查询日志") + public ResultBean queryLogs(SysLogModel sysLogModel, Pager pager) { + try { + ValidatorBean.beginValid(sysLogModel) + .notNull("queryDate", sysLogModel.getQueryDate()) + .notNull("queryBeginTime", sysLogModel.getQueryBeginTime()) + .notNull("queryEndTime", sysLogModel.getQueryEndTime()) + .notNull("level", sysLogModel.getLevel()) + .notNull("indexName", sysLogModel.getIndexName()); + + List list = sysLogService.querySysLog(sysLogModel, pager); + sysLogModel.setLogs(list); + + return ResultBean.success(JSON.toJSONString(sysLogModel)); + } catch (NoSuchFieldException e) { + log.error("字段缺省 发生异常:", e); + return ResultBean.fail(e.getMessage()); + } catch (Exception e) { + log.error("搜索日志 发生异常:", e); + return ResultBean.fail(e.getMessage()); + } + } + + @GetMapping("/log-count-query") + @ApiOperation(value = "按条件分页查询日志", notes = "按条件分页查询日志") + public ResultBean queryLogsCount(SysLogModel sysLogModel, Pager pager) { + DateHistogramAggregationBuilder dateHistogramAgg = AggregationBuilders.dateHistogram("groupDate").field("@timestamp") + .calendarInterval(DateHistogramInterval.DAY).minDocCount(1); + + return null; + } + + @GetMapping("/indices-query") + @ApiOperation(value = "所有索引查询", notes = "所有索引查询") + public ResultBean queryIndices(String date) { + if (StringUtils.isEmpty(elasticsearchHost)) { + return ResultBean.fail("未在配置文件中配置Elasticsearch的地址"); + } + + ElasticSearchTool.init(elasticsearchHost); + + List indices = ElasticSearchTool.findMappingMetaData().keySet() + .stream().filter(d -> d.contains(date)).collect(Collectors.toList()); + + return ResultBean.success(JSON.toJSONString(indices)); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 15df22b..605160e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -25,18 +25,10 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.common.CloudPagerModel; import cn.estsh.i3plus.pojo.model.license.ImppLicense; -import cn.estsh.i3plus.pojo.model.platform.SystemLoginModel; +import cn.estsh.i3plus.pojo.model.platform.SysLoginModel; import cn.estsh.i3plus.pojo.model.platform.UserDetailModel; import cn.estsh.i3plus.pojo.model.platform.UserDetailPagerModel; -import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; -import cn.estsh.i3plus.pojo.platform.bean.SysFile; -import cn.estsh.i3plus.pojo.platform.bean.SysLabelTemplate; -import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; -import cn.estsh.i3plus.pojo.platform.bean.SysLogUserLogin; -import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; -import cn.estsh.i3plus.pojo.platform.bean.SysOrganize; -import cn.estsh.i3plus.pojo.platform.bean.SysUser; -import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; +import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -181,6 +173,19 @@ public class WhiteController extends CoreBaseController { } } + @GetMapping(value = "/session-user") + @ApiOperation(value = "获取用户信息", notes = "获取当前登录用户账号详细信息") + public ResultBean getSession() { + LOGGER.info("获取用户信息...lang:{}", AuthUtil.getSessionAttribute("languageCode")); + try { + SessionUser sUser = AuthUtil.getSessionUser(); + LOGGER.info("用户:{}", sUser); + return new ResultBean(true, "", sUser); + } catch (ImppBusiException e) { + return new ResultBean(false, e.getErrorDetail() + "-[解决]" + e.getErrorSolution()); + } + } + /** * @return */ @@ -204,7 +209,7 @@ public class WhiteController extends CoreBaseController { return ResultBean.fail("请在平台数据库中配置表添加字段映射配置"); } - SystemLoginModel loginModel = assembleLoginModelByRequest(request, fieldMapping); + SysLoginModel loginModel = assembleLoginModelByRequest(request, fieldMapping); loginModel.setLoginStrategy(loginStrategy); ValidatorBean.beginValid(loginModel) @@ -218,10 +223,10 @@ public class WhiteController extends CoreBaseController { return loginByStrategy(request, loginModel, loginStrategyService.login()); } - private SystemLoginModel assembleLoginModelByRequest(HttpServletRequest request, String fieldMapping) { + private SysLoginModel assembleLoginModelByRequest(HttpServletRequest request, String fieldMapping) { JSONObject mappingObject = (JSONObject) JSONObject.parse(fieldMapping); - SystemLoginModel loginModel = new SystemLoginModel(); + SysLoginModel loginModel = new SysLoginModel(); getJsonObjectParameterFromRequest("loginName", request, mappingObject).ifPresent(d -> loginModel.setLoginName(d.toString())); getJsonObjectParameterFromRequest("loginPwd", request, mappingObject).ifPresent(d -> loginModel.setLoginPwd(d.toString())); getJsonObjectParameterFromRequest("appId", request, mappingObject).ifPresent(d -> loginModel.setAppId(d.toString())); @@ -241,7 +246,7 @@ public class WhiteController extends CoreBaseController { public ResultBean login(HttpServletRequest request, String loginName, String loginPwd, @RequestParam(required = false) String languageCode, @RequestParam(required = false) String deviceId) { - SystemLoginModel loginModel = SystemLoginModel.builder() + SysLoginModel loginModel = SysLoginModel.builder() .loginName(loginName) .loginPwd(loginPwd) .languageCode(languageCode) @@ -254,7 +259,7 @@ public class WhiteController extends CoreBaseController { } - private ResultBean loginByStrategy(HttpServletRequest request, SystemLoginModel loginModel, BiFunction loginStrategy) { + private ResultBean loginByStrategy(HttpServletRequest request, SysLoginModel loginModel, BiFunction loginStrategy) { long startTime = System.currentTimeMillis(); licenseClickService.checkLicenseNumberLogin(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java index 1fa2d76..648ce09 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java @@ -63,7 +63,7 @@ public class SysEnumController extends CoreBaseController { List enumList = new ArrayList(); enumList.add(CommonEnumUtil.DATA_STATUS.ENABLE); enumList.add(CommonEnumUtil.DATA_STATUS.DISABLE); - return new ResultBean(true, "操作成功", LocaleUtils.getEnumLocaleResValueList(enumList)); + return new ResultBean(true, "操作成功", LocaleUtils.getEnumLocaleResValueList(enumList)); } /** @@ -127,6 +127,18 @@ public class SysEnumController extends CoreBaseController { } /** + * 日志类型 + * + * @return 处理结果 + */ + @GetMapping("/log-type") + @ApiOperation(value = "日志等级", notes = "日志等级") + public ResultBean getLogType() { + return new ResultBean(true, "操作成功", + LocaleUtils.getEnumLocaleResValuesToList(ImppEnumUtil.LOG_TYPE.values())); + } + + /** * 软件类型 * * @return 处理结果 @@ -268,7 +280,6 @@ public class SysEnumController extends CoreBaseController { } - /** * @return 处理结果 */ @@ -288,11 +299,12 @@ public class SysEnumController extends CoreBaseController { List list = new ArrayList<>(); list.add(ImppEnumUtil.MESSAGE_TYPE.MAIL); list.add(ImppEnumUtil.MESSAGE_TYPE.LETTER); - return new ResultBean(true, "操作成功", LocaleUtils.getEnumLocaleResValueList(list)); + return new ResultBean(true, "操作成功", LocaleUtils.getEnumLocaleResValueList(list)); } /** * 外部通知方式 + * * @return 处理结果 */ @GetMapping("/external-notice-method") @@ -300,11 +312,12 @@ public class SysEnumController extends CoreBaseController { public ResultBean getExternalNoticeMethod() { List list = new ArrayList<>(); list.add(ImppEnumUtil.MESSAGE_TYPE.MAIL); - return new ResultBean(true, "操作成功", LocaleUtils.getEnumLocaleResValueList(list)); + return new ResultBean(true, "操作成功", LocaleUtils.getEnumLocaleResValueList(list)); } /** * 字典分组 + * * @return 处理结果 */ @GetMapping("/dictionary-group") diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java index 1063555..ec7ac04 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogElasticSearchService.java @@ -9,7 +9,13 @@ import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.platbean.*; +import cn.estsh.i3plus.pojo.model.platform.LogFieldModel; +import cn.estsh.i3plus.pojo.model.platform.SysLogModel; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogConsole; +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.log.ImppLog; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.bucket.terms.ParsedTerms; @@ -18,7 +24,9 @@ import org.elasticsearch.search.aggregations.metrics.ParsedAvg; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.util.LinkedHashMap; import java.util.List; @@ -40,19 +48,22 @@ public class SysLogElasticSearchService implements ISysLogService { @Autowired private ImppLog imppLog; + @Value(value = "${elasticsearch.host:}") + private String elasticsearchHost; + @Override public ListPager queryLogExceptionPager(SysLogException log, Pager pager) { - return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogException(log),pager,SysLogException.class); + return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogException(log), pager, SysLogException.class); } @Override public List findLogExceptionList(SysLogException log, Pager pager) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogException(log),pager,SysLogException.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogException(log), pager, SysLogException.class); } @Override public List findLogExceptionList(SysLogException log) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogException(log),SysLogException.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogException(log), SysLogException.class); } @Override @@ -63,7 +74,7 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public SysLogException getLogException(SysLogException log) { - return ElasticSearchTool.getPrimaryKey(log.getId(),SysLogException.class); + return ElasticSearchTool.getPrimaryKey(log.getId(), SysLogException.class); } @Override @@ -73,17 +84,17 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public ListPager queryLogOperatePager(SysLogOperate log, Pager pager) { - return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogOperate(log),pager,SysLogOperate.class); + return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogOperate(log), pager, SysLogOperate.class); } @Override public List findLogOperateList(SysLogOperate log, Pager pager) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogOperate(log),pager,SysLogOperate.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogOperate(log), pager, SysLogOperate.class); } @Override public List findLogOperateList(SysLogOperate log) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogOperate(log),SysLogOperate.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogOperate(log), SysLogOperate.class); } @Override @@ -94,7 +105,7 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public SysLogOperate getLogOperate(SysLogOperate log) { - return ElasticSearchTool.getPrimaryKey(log.getId(),SysLogOperate.class); + return ElasticSearchTool.getPrimaryKey(log.getId(), SysLogOperate.class); } @Override @@ -104,12 +115,12 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public ListPager queryLogSystemPager(SysLogSystem log, Pager pager) { - return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogSystem(log),pager,SysLogSystem.class); + return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogSystem(log), pager, SysLogSystem.class); } @Override public List findLogSystemList(SysLogSystem log, Pager pager) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogSystem(log),pager,SysLogSystem.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogSystem(log), pager, SysLogSystem.class); } @Override @@ -125,7 +136,7 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public SysLogSystem getLogSystem(SysLogSystem log) { - return ElasticSearchTool.getPrimaryKey(log.getId(),SysLogSystem.class); + return ElasticSearchTool.getPrimaryKey(log.getId(), SysLogSystem.class); } @Override @@ -135,17 +146,17 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public ListPager queryLogTaskTimePager(SysLogTaskTime log, Pager pager) { - return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogTaskTime(log),pager,SysLogTaskTime.class); + return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogTaskTime(log), pager, SysLogTaskTime.class); } @Override public List findLogTaskTimeList(SysLogTaskTime log, Pager pager) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogTaskTime(log),pager,SysLogTaskTime.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogTaskTime(log), pager, SysLogTaskTime.class); } @Override public List findLogTaskTimeList(SysLogTaskTime log) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogTaskTime(log),SysLogTaskTime.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogTaskTime(log), SysLogTaskTime.class); } @Override @@ -156,12 +167,12 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public SysLogTaskTime getLogTaskTime(SysLogTaskTime log) { - return ElasticSearchTool.getPrimaryKey(log.getId(),SysLogTaskTime.class); + return ElasticSearchTool.getPrimaryKey(log.getId(), SysLogTaskTime.class); } @Override public void deleteLogTaskTime(SysLogTaskTime log) { - ElasticSearchTool.deleteQuery(NoSqlPack.packEsSysLogTaskTime(log)); + ElasticSearchTool.deleteQuery(NoSqlPack.packEsSysLogTaskTime(log)); } /******************************************************* 定时任务日志 End *********************************************************/ @@ -170,29 +181,29 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public ListPager queryLogConsolePager(SysLogConsole log, Pager pager) { - return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogConsole(log),pager,SysLogConsole.class); + return ElasticSearchTool.searchPager(NoSqlPack.packEsSysLogConsole(log), pager, SysLogConsole.class); } @Override public List findLogConsoleList(SysLogConsole log, Pager pager) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogConsole(log),pager,SysLogConsole.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogConsole(log), pager, SysLogConsole.class); } @Override public List findLogConsoleList(SysLogConsole log) { - return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogConsole(log),SysLogConsole.class); + return ElasticSearchTool.searchList(NoSqlPack.packEsSysLogConsole(log), SysLogConsole.class); } @Override public SysLogConsole insertLogConsoleTime(SysLogConsole log) { ElasticSearchPack pack = ElasticSearchPack.imppBuild(TimeTool.parseDate(log.getCreateDatetime()), SysLogConsole.class); - ElasticSearchTool.insert(pack.getIndexName(),log); + ElasticSearchTool.insert(pack.getIndexName(), log); return log; } @Override public SysLogConsole getLogConsoleTime(SysLogConsole log) { - return ElasticSearchTool.getPrimaryKey(log.getId(),SysLogConsole.class); + return ElasticSearchTool.getPrimaryKey(log.getId(), SysLogConsole.class); } @Override @@ -206,24 +217,24 @@ public class SysLogElasticSearchService implements ISysLogService { @Override public void actionCleanLog(String startTime, String endTime) { try { - ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogSystem.class),startTime,endTime); - }catch (Exception e){ - LOGGER.error("清除系统日志异常",e); + ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogSystem.class), startTime, endTime); + } catch (Exception e) { + LOGGER.error("清除系统日志异常", e); } try { - ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogOperate.class),startTime,endTime); - }catch (Exception e){ - LOGGER.error("清除系统操作日志异常",e); + ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogOperate.class), startTime, endTime); + } catch (Exception e) { + LOGGER.error("清除系统操作日志异常", e); } try { - ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogException.class),startTime,endTime); - }catch (Exception e){ - LOGGER.error("清除系统异常日志异常",e); + ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogException.class), startTime, endTime); + } catch (Exception e) { + LOGGER.error("清除系统异常日志异常", e); } try { - ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogTaskTime.class),startTime,endTime); - }catch (Exception e){ - LOGGER.error("清除定时任务日志异常",e); + ElasticSearchTool.deleteIndex(ElasticSearchPack.getIndexName(SysLogTaskTime.class), startTime, endTime); + } catch (Exception e) { + LOGGER.error("清除定时任务日志异常", e); } } @@ -232,18 +243,18 @@ public class SysLogElasticSearchService implements ISysLogService { Map resultData = new LinkedHashMap(); ElasticSearchPack pack = ElasticSearchPack.imppBuild(SysLogSystem.class); pack.pager(CommonConstWords.getDefaultPager()); - pack.andStringDateTimeBetween("createDatetime",startTime,endTime); + pack.andStringDateTimeBetween("createDatetime", startTime, endTime); pack.group("createDatetime").avg("executeTime").buildAggregation(); Map aggregationMap = ElasticSearchTool.searchAggregationMap(pack); - ParsedTerms parsedTerms = (ParsedTerms)aggregationMap.get("group_createDatetime"); - if(Objects.nonNull(parsedTerms)){ + ParsedTerms parsedTerms = (ParsedTerms) aggregationMap.get("group_createDatetime"); + if (Objects.nonNull(parsedTerms)) { for (Terms.Bucket bucket : parsedTerms.getBuckets()) { try { String key = bucket.getKeyAsString(); Double value = ((ParsedAvg) bucket.getAggregations().get("avg_executeTime")).getValue(); - resultData.put(key,value.intValue()); - }catch (Exception e){ + resultData.put(key, value.intValue()); + } catch (Exception e) { } } } @@ -256,18 +267,18 @@ public class SysLogElasticSearchService implements ISysLogService { Map resultData = new LinkedHashMap(); ElasticSearchPack pack = ElasticSearchPack.imppBuild(SysLogSystem.class); pack.pager(CommonConstWords.getDefaultPager()); - pack.andStringDateTimeBetween("createDatetime",startTime,endTime); + pack.andStringDateTimeBetween("createDatetime", startTime, endTime); pack.group("logLevel").count("id").buildAggregation(); Map aggregationMap = ElasticSearchTool.searchAggregationMap(pack); - ParsedTerms parsedTerms = (ParsedTerms)aggregationMap.get("group_logLevel"); - if(Objects.nonNull(parsedTerms)){ + ParsedTerms parsedTerms = (ParsedTerms) aggregationMap.get("group_logLevel"); + if (Objects.nonNull(parsedTerms)) { for (Terms.Bucket bucket : parsedTerms.getBuckets()) { try { String key = bucket.getKeyAsString(); - resultData.put(ImppEnumUtil.LOG_LEVEL.valueOfName(Integer.parseInt(key)),bucket.getDocCount()); - }catch (Exception e){ + resultData.put(ImppEnumUtil.LOG_LEVEL.valueOfName(Integer.parseInt(key)), bucket.getDocCount()); + } catch (Exception e) { } } } @@ -275,6 +286,32 @@ public class SysLogElasticSearchService implements ISysLogService { return resultData; } + @Override + public List querySysLog(SysLogModel sysLogModel, Pager pager) { + final String time = "time"; + ElasticSearchTool.init(elasticsearchHost); + ElasticSearchPack pack = new ElasticSearchPack(sysLogModel.getIndexName()); + + pack.andKeywordEquals("level", sysLogModel.getLevel()); + if (!StringUtils.isEmpty(sysLogModel.getHostId())) { + pack.andKeywordEquals("hostId", sysLogModel.getHostId()); + } + if (!StringUtils.isEmpty(sysLogModel.getIndexType())) { + pack.andKeywordEquals("indexType", sysLogModel.getIndexType()); + } + if (!StringUtils.isEmpty(sysLogModel.getThread())) { + pack.andKeywordEquals("thread", sysLogModel.getThread()); + } + pack.andKeywordDateTimeBetween(time, + sysLogModel.getQueryDate().trim() + " " + sysLogModel.getQueryBeginTime(), + sysLogModel.getQueryDate().trim() + " " + sysLogModel.getQueryEndTime()); + + pack.orderKeywordDesc(time); + ListPager listPager = ElasticSearchTool.searchPager(pack, pager, LogFieldModel.class); + + return listPager.getObjectList(); + } + /******************************************************* 系统异常日志 End *********************************************************/ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java index 8600b42..c4f8763 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogFactory.java @@ -6,7 +6,13 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.platbean.*; +import cn.estsh.i3plus.pojo.model.platform.LogFieldModel; +import cn.estsh.i3plus.pojo.model.platform.SysLogModel; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogConsole; +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.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.log.ImppLog; import cn.estsh.impp.framework.boot.util.ImppSwitchUtil; @@ -41,7 +47,7 @@ public class SysLogFactory implements ISysLogService { @Autowired private ImppLog imppLog; - private ISysLogService getSysLogService(){ + private ISysLogService getSysLogService() { ImppEnumUtil.LOG_STORAGE storage = imppLog.getLogStorageCase(); // if(ImppEnumUtil.LOG_STORAGE.MONGO.equals(storage)){ @@ -56,10 +62,10 @@ public class SysLogFactory implements ISysLogService { // .build(); // } // }else - if(ImppEnumUtil.LOG_STORAGE.ELASTICSEARCH.equals(storage)){ - if(ImppSwitchUtil.isElasticSearchSwitch() && elasticSearchService != null){ + if (ImppEnumUtil.LOG_STORAGE.ELASTICSEARCH.equals(storage)) { + if (ImppSwitchUtil.isElasticSearchSwitch() && elasticSearchService != null) { return elasticSearchService; - }else{ + } else { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) .setErrorCode(ImppExceptionEnum.LOG_SAVE_STORAGE_ERROR.getCode()) @@ -79,12 +85,12 @@ public class SysLogFactory implements ISysLogService { @Override public ListPager queryLogExceptionPager(SysLogException log, Pager pager) { - return getSysLogService().queryLogExceptionPager(log,pager); + return getSysLogService().queryLogExceptionPager(log, pager); } @Override public List findLogExceptionList(SysLogException log, Pager pager) { - return getSysLogService().findLogExceptionList(log,pager); + return getSysLogService().findLogExceptionList(log, pager); } @Override @@ -109,12 +115,12 @@ public class SysLogFactory implements ISysLogService { @Override public ListPager queryLogOperatePager(SysLogOperate log, Pager pager) { - return getSysLogService().queryLogOperatePager(log,pager); + return getSysLogService().queryLogOperatePager(log, pager); } @Override public List findLogOperateList(SysLogOperate log, Pager pager) { - return getSysLogService().findLogOperateList(log,pager); + return getSysLogService().findLogOperateList(log, pager); } @Override @@ -134,17 +140,17 @@ public class SysLogFactory implements ISysLogService { @Override public void deleteLogOperate(SysLogOperate log) { - getSysLogService().deleteLogOperate(log); + getSysLogService().deleteLogOperate(log); } @Override public ListPager queryLogSystemPager(SysLogSystem log, Pager pager) { - return getSysLogService().queryLogSystemPager(log,pager); + return getSysLogService().queryLogSystemPager(log, pager); } @Override public List findLogSystemList(SysLogSystem log, Pager pager) { - return getSysLogService().findLogSystemList(log,pager); + return getSysLogService().findLogSystemList(log, pager); } @Override @@ -169,12 +175,12 @@ public class SysLogFactory implements ISysLogService { @Override public ListPager queryLogTaskTimePager(SysLogTaskTime log, Pager pager) { - return getSysLogService().queryLogTaskTimePager(log,pager); + return getSysLogService().queryLogTaskTimePager(log, pager); } @Override public List findLogTaskTimeList(SysLogTaskTime log, Pager pager) { - return getSysLogService().findLogTaskTimeList(log,pager); + return getSysLogService().findLogTaskTimeList(log, pager); } @Override @@ -194,18 +200,18 @@ public class SysLogFactory implements ISysLogService { @Override public void deleteLogTaskTime(SysLogTaskTime log) { - getSysLogService().deleteLogTaskTime(log); + getSysLogService().deleteLogTaskTime(log); } @Override public ListPager queryLogConsolePager(SysLogConsole log, Pager pager) { - return getSysLogService().queryLogConsolePager(log,pager); + return getSysLogService().queryLogConsolePager(log, pager); } @Override public List findLogConsoleList(SysLogConsole log, Pager pager) { - return getSysLogService().findLogConsoleList(log,pager); + return getSysLogService().findLogConsoleList(log, pager); } @Override @@ -233,7 +239,7 @@ public class SysLogFactory implements ISysLogService { @Override public void actionCleanLog(String startTime, String endTime) { - getSysLogService().actionCleanLog(startTime,endTime); + getSysLogService().actionCleanLog(startTime, endTime); } @Override @@ -246,6 +252,11 @@ public class SysLogFactory implements ISysLogService { return getSysLogService().querySysLogSystemByLevel(startTime, endTime); } + @Override + public List querySysLog(SysLogModel logModel, Pager pager) { + return getSysLogService().querySysLog(logModel, pager); + } + /******************************************************* 系统异常日志 End *********************************************************/ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java index 23adf3d..9cf1e94 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SysLogMongoService.java @@ -11,7 +11,13 @@ 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.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.platbean.*; +import cn.estsh.i3plus.pojo.model.platform.LogFieldModel; +import cn.estsh.i3plus.pojo.model.platform.SysLogModel; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogConsole; +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.i3plus.pojo.platform.platrepositorymongo.SysLogExceptionRepository; import cn.estsh.i3plus.pojo.platform.platrepositorymongo.SysLogOperateRepository; import cn.estsh.i3plus.pojo.platform.platrepositorymongo.SysLogSystemRepository; @@ -56,7 +62,7 @@ public class SysLogMongoService implements ISysLogService { if (logTaskTimeRDao == null && ImppSwitchUtil.isSwitchMongo()) { try { logTaskTimeRDao = SpringContextsUtil.getBean(SysLogTaskTimeRepository.class); - }catch (Exception e){ + } catch (Exception e) { } } @@ -76,7 +82,7 @@ public class SysLogMongoService implements ISysLogService { if (logSystemRDao == null && ImppSwitchUtil.isSwitchMongo()) { try { logSystemRDao = SpringContextsUtil.getBean(SysLogSystemRepository.class); - }catch (Exception e){ + } catch (Exception e) { } } @@ -96,7 +102,7 @@ public class SysLogMongoService implements ISysLogService { if (logOperateRDao == null && ImppSwitchUtil.isSwitchMongo()) { try { logOperateRDao = SpringContextsUtil.getBean(SysLogOperateRepository.class); - }catch (Exception e){ + } catch (Exception e) { } } @@ -116,7 +122,7 @@ public class SysLogMongoService implements ISysLogService { if (logExceptionRDao == null && ImppSwitchUtil.isSwitchMongo()) { try { logExceptionRDao = SpringContextsUtil.getBean(SysLogExceptionRepository.class); - }catch (Exception e){ + } catch (Exception e) { } } @@ -136,7 +142,7 @@ public class SysLogMongoService implements ISysLogService { if (mongoDbFactory == null && ImppSwitchUtil.isSwitchMongo()) { try { mongoDbFactory = SpringContextsUtil.getBean(MongoDbFactory.class); - }catch (Exception e){ + } catch (Exception e) { } } @@ -153,7 +159,6 @@ public class SysLogMongoService implements ISysLogService { } - @Override public ListPager queryLogExceptionPager(SysLogException log, Pager pager) { Bson bson = NoSqlPack.packMongoBySysLogException(log); @@ -355,13 +360,13 @@ public class SysLogMongoService implements ISysLogService { @Override public void actionCleanLog(String startTime, String endTime) { - try{ + try { SysLogOperate operate = new SysLogOperate(); operate.setCreateDatetime(startTime); operate.setCreateDateTimeStart(startTime); operate.setCreateDateTimeEnd(endTime); deleteLogOperate(operate); - }catch (Exception e){ + } catch (Exception e) { } try { @@ -370,7 +375,7 @@ public class SysLogMongoService implements ISysLogService { system.setCreateDateTimeStart(startTime); system.setCreateDateTimeEnd(endTime); deleteLogSystem(system); - }catch (Exception e){ + } catch (Exception e) { } try { @@ -379,7 +384,7 @@ public class SysLogMongoService implements ISysLogService { exception.setCreateDateTimeStart(startTime); exception.setCreateDateTimeEnd(endTime); deleteLogException(exception); - }catch (Exception e){ + } catch (Exception e) { } try { @@ -388,7 +393,7 @@ public class SysLogMongoService implements ISysLogService { taskTime.setCreateDateTimeStart(startTime); taskTime.setCreateDateTimeEnd(endTime); deleteLogTaskTime(taskTime); - }catch (Exception e){ + } catch (Exception e) { } try { @@ -397,7 +402,7 @@ public class SysLogMongoService implements ISysLogService { console.setCreateDateTimeStart(startTime); console.setCreateDateTimeEnd(endTime); deleteLogConsoleTime(console); - }catch (Exception e){ + } catch (Exception e) { } } @@ -467,6 +472,16 @@ public class SysLogMongoService implements ISysLogService { return resultData; } + @Override + public List querySysLog(SysLogModel logModel, Pager pager) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.DATABASE_EXCEPTION.getCode()) + .setErrorDetail("querySysLog 为elasticsearch使用方法") + .setErrorSolution("请联系管理人员") + .build(); + } + /******************************************************* 系统异常日志 End *********************************************************/ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java index 7e64130..8ebc2d9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java @@ -7,7 +7,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseThreadLocal; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.model.platform.SystemLoginModel; +import cn.estsh.i3plus.pojo.model.platform.SysLoginModel; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.ImppRedis; @@ -46,7 +46,7 @@ public class DefaultLoginStrategy implements ISystemLoginStrategyService { private ISystemLoginService loginService; @Override - public BiFunction login() { + public BiFunction login() { return (request, loginModel) -> { ResultBean result; ValidatorBean.checkNotNull(loginModel.getLanguageCode(), "语言不能为空"); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java index b7c9091..bce9bd5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java @@ -10,7 +10,7 @@ import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseThreadLocal; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.model.platform.SystemLoginModel; +import cn.estsh.i3plus.pojo.model.platform.SysLoginModel; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.ImppRedis; @@ -52,7 +52,7 @@ public class E9LoginStrategy implements ISystemLoginStrategyService { private ISystemLoginService loginService; @Override - public BiFunction login() { + public BiFunction login() { return (request, loginModel) -> { boolean isRequestFromSpecificIp = validateHost(request); if (!isRequestFromSpecificIp) { diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index fda1e21..c76b663 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -25,6 +25,8 @@ impp.config.fileserver=fastdfs 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 +# elasticsearch\u641C\u7D22\u670D\u52A1 +impp.config.elasticsearch=true #\u662F\u5426\u5F00\u542F\u5FAE\u670D eureka.client.enabled=true #\u6253\u5F00feign\u7684\u7194\u65AD diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml index 527e43c..81fb966 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml +++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring-dev.xml @@ -7,7 +7,7 @@ - [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n + %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %c(%M:%L) - %m%n diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml index 4c8d313..c529eee 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml +++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2-spring.xml @@ -9,8 +9,8 @@ - [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %c(%M:%L) 信息:%m%n - [%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %-5level %class{36} %L %M - %msg%xEx%n + %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %c(%M:%L) - %m%n + %d{yyyy-MM-dd HH:mm:s.SSS} %p %-5level %class{36} %L %M - %msg%xEx%n