From 2cb591917de7e4e2099f0b5fef2c02ec552371f5 Mon Sep 17 00:00:00 2001 From: pepsi Date: Wed, 21 Sep 2022 16:23:01 +0800 Subject: [PATCH 01/11] add docker file&deployment.yaml --- Dockerfile | 3 ++ deployment.yaml | 123 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 Dockerfile create mode 100644 deployment.yaml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5cf849c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM harbor.axzo.cn/images_base/jdk1.8-fc:v1 +COPY xlog-server/target/xlog-server.jar ./xlog-server.jar +ENTRYPOINT [{ENTRYPOINT}] diff --git a/deployment.yaml b/deployment.yaml new file mode 100644 index 0000000..06ab3af --- /dev/null +++ b/deployment.yaml @@ -0,0 +1,123 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {ProjectName} +spec: + minReadySeconds: 2 + replicas: 1 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + type: RollingUpdate + selector: + matchLabels: + app: {ProjectName} + template: + metadata: + labels: + app: {ProjectName} + prometheus: {PROMETHEUS} + logging: '{LOGGING}' + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: work + operator: In + values: + - {nodeSelector} + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: app + operator: In + values: + - {ProjectName} + topologyKey: kubernetes.io/hostname + weight: 100 + terminationGracePeriodSeconds: 60 ##k8s将会给应用发送SIGTERM信号,可以用来正确、优雅地关闭应用,默认为30秒 + containers: + - name: {ProjectName} + image: registry.cn-hangzhou.aliyuncs.com/axzo-k8s/{namespace}-{ProjectName}:{BUILD_ID} + imagePullPolicy: Always + livenessProbe: #该pod是存活的,不存活则需要重启 + httpGet: + path: /checkDeath + port: {port} + scheme: HTTP + initialDelaySeconds: 60 ## equals to the maximum startup time of the application + couple of seconds + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + readinessProbe: #kubernetes认为该pod是启动成功的 + httpGet: + path: /checkDeath + port: {port} + scheme: HTTP + initialDelaySeconds: 30 ## equals to minimum startup time of the application + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + volumeMounts: + - name: tz-config + mountPath: /etc/localtime + - name: jmx-exporter + mountPath: /data/jmx + env: + - name: NACOS_HOST + value: {NACOS_HOST} + - name: NACOS_PORT + value: "{NACOS_PORT}" + - name: NACOS_NAMESPACE_ID + value: {NACOS_NAMESPACE_ID} + - name: NACOS_PROFILES_ACTIVE + value: {NACOS_PROFILES_ACTIVE} + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: MY_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + ports: + - containerPort: {port} + resources: + limits: + memory: {limitMemory} + requests: + memory: {requestsMemory} + imagePullSecrets: + - name: aliyun + volumes: + - name: tz-config + hostPath: + path: /usr/share/zoneinfo/Asia/Shanghai + - name: jmx-exporter + persistentVolumeClaim: + claimName: jmx + +--- + +apiVersion: v1 +kind: Service +metadata: + name: {ProjectName} + labels: + app: {ProjectName} +spec: + type: ClusterIP + ports: + - port: {port} + targetPort: {port} + selector: + app: {ProjectName} From 5475fc42f271bddf3970c5e635c23f7ac672a475 Mon Sep 17 00:00:00 2001 From: pepsi Date: Wed, 21 Sep 2022 17:03:10 +0800 Subject: [PATCH 02/11] modify dckerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5cf849c..edcbcf2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,3 @@ FROM harbor.axzo.cn/images_base/jdk1.8-fc:v1 -COPY xlog-server/target/xlog-server.jar ./xlog-server.jar +COPY xlog-server/target/xlog-server.jar ./xlog.jar ENTRYPOINT [{ENTRYPOINT}] From 9a99ebf32b8985b6a07871121fedaf6efc7bd4c1 Mon Sep 17 00:00:00 2001 From: pepsi Date: Wed, 21 Sep 2022 17:38:40 +0800 Subject: [PATCH 03/11] add pinpon api --- .../controller/HealthCheckController.java | 22 +++++++++++++++++++ xlog-server/src/main/resources/bootstrap.yml | 6 ++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java b/xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java new file mode 100644 index 0000000..1887421 --- /dev/null +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java @@ -0,0 +1,22 @@ +package cn.axzo.xlog.server.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +/*** + * @author: pepsi + * @description: TODO + * @date: 2022/9/21 + */ +@RestController +public class HealthCheckController { + /** + * 探活 + * + * @return 字符串 + */ + @GetMapping("/checkDeath") + public String checkDeath() { + return "alive"; + } +} diff --git a/xlog-server/src/main/resources/bootstrap.yml b/xlog-server/src/main/resources/bootstrap.yml index 01fb2c0..55209ef 100644 --- a/xlog-server/src/main/resources/bootstrap.yml +++ b/xlog-server/src/main/resources/bootstrap.yml @@ -4,12 +4,12 @@ spring: cloud: nacos: config: - server-addr: ${NACOS_HOST:test1-nacos.axzo.cn}:${NACOS_PORT:80} + server-addr: ${NACOS_HOST:dev-nacos.axzo.cn}:${NACOS_PORT:80} file-extension: yaml - namespace: ${NACOS_NAMESPACE_ID:6b278234-1409-4054-beb7-4bbc0def8e54} + namespace: ${NACOS_NAMESPACE_ID:35eada10-9574-4db8-9fea-bc6a4960b6c7} prefix: ${spring.application.name} profiles: - active: ${NACOS_PROFILES_ACTIVE:test1} + active: ${NACOS_PROFILES_ACTIVE:dev} main: allow-bean-definition-overriding: true datasource: From b9f831027e4c1658fc89a966ce08b968b5f01f0c Mon Sep 17 00:00:00 2001 From: tianliyong Date: Mon, 26 Sep 2022 20:43:36 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=A5=E5=8F=82?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/xlog/server/dto/OperateLogReqDTO.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java b/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java index 74b19b7..bd69f35 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java @@ -41,30 +41,29 @@ public class OperateLogReqDTO { private String featureName; /** - * 日志等级 为空默认P4 请参照 {@link cn.axzo.xlog.client.enums.LogGradeEnum} + * 日志等级 为空默认P0:0, P1:1, P2:2, P3:3, P4:4 */ - @ApiModelProperty(value = "日志登记", position = 4) + @ApiModelProperty(value = "日志等级", position = 4) private Integer logGrade = 4; /** * 操作时间 */ - @ApiModelProperty(value = "操作时间", position = 5, required = true) + @ApiModelProperty(value = "操作时间", required = true, position = 5) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date operateTime; /** * 操作人安心筑Id */ - @ApiModelProperty(value = "操作人ID", position = 6) + @ApiModelProperty(value = "操作人ID", required = true, position = 6) @NotNull(message = "操作人Id不能为空") private Long identityId; /** - * 人员类型 1:工人 2:班组长 3:从业人员..实际情况拓展 - * 请参照 {@link cn.axzo.xlog.client.enums.IdentityType} + * 人员类型 1:工人 2:班组长 3:从业人员..实际情况拓展} */ - @ApiModelProperty(value = "身份类型", position = 7) + @ApiModelProperty(value = "身份类型", required = true, position = 7) @NotNull(message = "人员类型身份不能为空") private Integer identityType; /** @@ -135,7 +134,7 @@ public class OperateLogReqDTO { /** * 操作类型 1:add 2:add_batch 3:update 4:update_batch 5:delete 6:delete_batch */ - @ApiModelProperty(value = "操作类型", position = 19) + @ApiModelProperty(value = "操作类型", required = true, position = 19) @NotNull(message = "操作类型不能为空") private Integer operateType; From a3b0141f75dffbcb8e8c75ecdb080cd3c0d65b29 Mon Sep 17 00:00:00 2001 From: pepsi Date: Wed, 28 Sep 2022 19:52:55 +0800 Subject: [PATCH 05/11] operate log modify --- .../controller/api/OperateLogController.java | 28 +++++-- .../server/dto/OperateLogQueryReqDTO.java | 7 +- .../xlog/server/dto/OperateLogReqDTO.java | 1 + .../xlog/server/service/BaseEsService.java | 54 ++++++++++++- .../service/impl/OperateLogServiceImpl.java | 77 +++++++++++++++---- .../xlog/server/XlogApplicationTestBase.java | 2 +- .../config/ElasticClientConfigTest.java | 57 ++++++++++++++ 7 files changed, 201 insertions(+), 25 deletions(-) diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java b/xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java index 507add3..fb5a465 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java @@ -3,15 +3,16 @@ package cn.axzo.xlog.server.controller.api; import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; import cn.axzo.xlog.server.dto.OperateLogQueryRespDTO; import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.exception.ServiceException; import cn.axzo.xlog.server.service.OperateLogService; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; +import cn.hutool.core.date.DateUtil; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -38,21 +39,36 @@ public class OperateLogController { @RequestMapping(value = "/operateLog/create", method = RequestMethod.POST) @ApiOperation(value = "操作日志创建") - public CommonResponse operateLogCreate(@RequestBody @Valid OperateLogReqDTO req) { + public CommonResponse operateLogCreate(@RequestBody @Valid OperateLogReqDTO req, BindingResult bindingResult) { + //参数缺失等返回 + if (bindingResult.hasErrors()) { + return CommonResponse.fail(bindingResult.getAllErrors().get(0).getDefaultMessage()); + } try { return CommonResponse.success(operateLogService.insertOperaLog(req)); } catch (Exception e) { - logger.error("create operate log failed,", e); + logger.error("create operate log failed.", e); return CommonResponse.fail(e.getMessage()); } } @RequestMapping(value = "/operateLog/queryForPage", method = RequestMethod.POST) @ApiOperation(value = "操作日志查询") - public CommonResponse> operateLogsQuery(@RequestBody @Valid OperateLogQueryReqDTO req) { + public CommonResponse> operateLogsQuery(@RequestBody @Valid OperateLogQueryReqDTO req, + BindingResult bindingResult) { + //参数缺失等返回 + if (bindingResult.hasErrors()) { + return CommonResponse.fail(bindingResult.getAllErrors().get(0).getDefaultMessage()); + } + //时间跨度校验 + if (DateUtil.betweenDay(req.getStartTime(), req.getEndTime(), true) > 7) { + logger.error("start and end date interval greater than 7."); + return CommonResponse.fail("the time span is greater than 7"); + } try { - return CommonResponse.success(operateLogService.queryForPage(req)); - } catch (ServiceException e) { + CommonPageResponse resp = operateLogService.queryForPageFromEs(req); + return CommonResponse.success(resp); + } catch (Exception e) { logger.error("query operate logs failed,", e); return CommonResponse.fail(e.getMessage()); } diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java b/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java index 3d8070d..ccc9a87 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.Date; import java.util.List; @@ -45,15 +46,17 @@ public class OperateLogQueryReqDTO extends PageRequest { /** * 开始时间 */ - @ApiModelProperty(value = "开始时间", position = 1) + @ApiModelProperty(value = "操作开始时间", position = 1) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull private Date startTime; /** * 结束时间 */ - @ApiModelProperty(value = "结束时间", position = 1) + @ApiModelProperty(value = "操作结束时间", position = 1) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull private Date endTime; /** diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java b/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java index bd69f35..0eb3d71 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java @@ -51,6 +51,7 @@ public class OperateLogReqDTO { */ @ApiModelProperty(value = "操作时间", required = true, position = 5) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "操作时间不能为空") private Date operateTime; /** diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java b/xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java index 1dff36f..09bc7dd 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java @@ -1,6 +1,9 @@ package cn.axzo.xlog.server.service; import cn.axzo.xlog.server.config.SpringContextAware; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.index.IndexRequest; @@ -16,7 +19,10 @@ import org.elasticsearch.rest.RestStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.concurrent.TimeUnit; /*** * @author: pepsi @@ -27,13 +33,55 @@ public class BaseEsService { private final Logger logger = LoggerFactory.getLogger(BaseEsService.class); + /** + * 索引缓存, 索引数量不大、新增频率不高等。可以做成内存缓存。 + */ + private LoadingCache> INDICES_CACHE = CacheBuilder.newBuilder() + .expireAfterWrite(10, TimeUnit.MINUTES) + .build(new CacheLoader>() { + @Override + public List load(String key) throws Exception { + return loadIndices(key); + } + }); + + public List getIndices(String indexName) { + try { + return INDICES_CACHE.get(indexName); + } catch (Exception e) { + logger.error("get indices from cache exception,indexName=" + indexName, e); + return null; + } + + } + + /*** + * 根据索引前置获取到索引列表,并排序 + * @param key + * @return + */ + private List loadIndices(String key) { + ArrayList lists = new ArrayList(); + try { + String[] indices = queryIndices(key + "*"); + if (indices.length == 0) { + return lists; + } + lists.addAll(Arrays.asList(indices)); + return lists; + } catch (Exception e) { + logger.error("load indices exception", e); + return null; + } + } + /** * 获取索引 * * @param wildcardIndex * @return */ - public String[] getIndices(String wildcardIndex) throws Exception { + public String[] queryIndices(String wildcardIndex) throws Exception { GetIndexRequest request = new GetIndexRequest(wildcardIndex); try { RestHighLevelClient client = SpringContextAware.getBean(RestHighLevelClient.class); @@ -107,8 +155,8 @@ public class BaseEsService { RestHighLevelClient client = SpringContextAware.getBean(RestHighLevelClient.class); return client.search(request, RequestOptions.DEFAULT); } catch (Exception e) { - logger.error("query failed,", e); - throw new Exception(""); + logger.error("query occur exception,", e); + throw new Exception(e.getMessage()); } } } diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java b/xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java index 43bbf4a..cdee3d8 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java @@ -13,13 +13,14 @@ import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; import cn.axzo.xlog.server.dto.OperateLogQueryRespDTO; import cn.axzo.xlog.server.dto.OperateLogReqDTO; import cn.axzo.xlog.server.entity.OperateLogRecordEntity; -import cn.axzo.xlog.server.enums.IdentityType; import cn.axzo.xlog.server.repository.OperateLogRepository; import cn.axzo.xlog.server.service.BaseEsService; import cn.axzo.xlog.server.service.OperateLogService; import cn.axzo.xlog.server.service.converter.OperateLogConverter; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; +import cn.hutool.core.date.CalendarUtil; +import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -37,8 +38,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /*** * @author: pepsi @@ -50,12 +50,21 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe private final Logger logger = LoggerFactory.getLogger(OperateLogServiceImpl.class); - @Value("${xlog.elastic.index.name:xlog_operatelog_}") + /** + * 索引前置名称,看后续是否要修改。 + */ + @Value("${xlog.elastic.index.name:axzo_operatelog_}") private String indexNamePrex; @Value("${xlog.es.storage:true}") private boolean esStorageFlag; + @Value("${oprlog.index.interval.days:7}") + private int intervalDays; + + @Value("${oprlog.index.interval.mills:604800000}") + private long intervalMills; + @Resource private OperateLogRepository operateLogRepository; @@ -80,12 +89,25 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe operateLogRepository.save(record); return true; } - //todo 落 ES,根据日期决定索引,目前索引规则还没定,暂定一个月一个。 - String indexDate = DateUtil.format(operateLogReq.getOperateTime(), "YYYYMM"); + //目前决定根据operateTime时间定,7天 (一般查询限制时间都是7天或者30天) 数据落一个索引中, + // 目前查看pre_new环境数据很少,上线前再查看一波线上数据决定索引生成的时间跨度,再做调整。 + String indexSuffixDate = findIndexSuffixDate(operateLogReq.getOperateTime()); String json = JSONObject.toJSONString(operateLogReq); - return insert(json, indexNamePrex + indexDate); + return insert(json, indexNamePrex + indexSuffixDate); } + /*** + * 根据数据中的日期信息找到所属的索引 + * 目前是按7天的规则。 + * @param date + * @return + */ + private String findIndexSuffixDate(Date date) { + long mills = date.getTime(); + long weekMills = mills % intervalMills; + Date currDate = new Date(mills - weekMills); + return DateUtil.format(currDate, DatePattern.PURE_DATE_PATTERN); + } private OperateLogRecordEntity fieldFill(OperateLogReqDTO req) { //补充 termimnal identityType featureName @@ -124,13 +146,17 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe * @return */ public CommonPageResponse queryForPageFromEs(OperateLogQueryReqDTO req) throws Exception { - //todo 根据时间段获取数据所在的索引s,目前索引规则还没定 - String[] indices = new String[]{"xlog_operatelog_202209"}; + //根据查询的时间段获取所属的索引集合 + Set indices = betweenIndices(req.getStartTime(), req.getEndTime()); + if (indices.isEmpty()) { + logger.warn("can not find index,startDate={}.", DateUtil.format(req.getStartTime(), DatePattern.PURE_DATE_PATTERN)); + return CommonPageResponse.zero(req.getPage(), req.getPageSize()); + } //组装查询条件. SearchSourceBuilder builder = assembleQueryBuilder(req); SearchRequest request = new SearchRequest(); request.source(builder); - SearchResponse response = search(request, indices); + SearchResponse response = search(request, indices.toArray(new String[]{})); //处理查询结果的数据 SearchHits hits = response.getHits(); SearchHit[] searchHits = hits.getHits(); @@ -146,6 +172,30 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe return CommonPageResponse.list(req.getPage(), req.getPageSize(), hits.getTotalHits().value, respList); } + /*** + * 获取2个时间段之间的索引。startTime + 7 < endTime 即可。 + * @param startDate + * @param endDate + * @return + */ + private Set betweenIndices(Date startDate, Date endDate) { + Set betweenIndices = new HashSet<>(); + long startMills = startDate.getTime(); + long startIntervalMills = startMills % intervalMills; + Date startWeekDate = new Date(startMills - startIntervalMills); + while (startWeekDate.before(endDate)) { + String index = indexNamePrex + DateUtil.format(startWeekDate, DatePattern.PURE_DATE_PATTERN); + betweenIndices.add(index); + Calendar calendar = CalendarUtil.calendar(startWeekDate); + calendar.add(Calendar.DAY_OF_MONTH, intervalDays); + startWeekDate = calendar.getTime(); + } + //需要判断下索引是否存在, + List indices = getIndices(indexNamePrex); + betweenIndices.removeIf(index -> !indices.contains(index)); + return betweenIndices; + } + /*** * 组装ES查询条件 * @param req @@ -192,9 +242,10 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe .lte(req.getEndTime().getTime()); boolQueryBuilder.filter(rangeQueryBuilder); searchSourceBuilder.sort("operateTime", SortOrder.DESC); - //todo 分页,先采用 from +size 模式,后续优化考虑scroll或者 after. - int offset = (req.getPage().intValue() - 1) * req.getPageSize().intValue(); - searchSourceBuilder.from(offset).size(req.getPageSize().intValue()); + //采用 from +size,条件限制多一点。不做深查询了,因为scroll 快照数据不准确问题。 + int page = req.getPage() == null ? 1 : req.getPage().intValue(); + int size = req.getPageSize() == null ? 20 : req.getPageSize().intValue(); + searchSourceBuilder.from((page - 1) * size).size(size); searchSourceBuilder.query(boolQueryBuilder); return searchSourceBuilder; } diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java b/xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java index cab822f..6bca3f7 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java +++ b/xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java @@ -12,5 +12,5 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class XlogApplicationTestBase { - + } diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java b/xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java index 3745544..b38aa36 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java +++ b/xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java @@ -2,6 +2,9 @@ package cn.axzo.xlog.server.config; import cn.axzo.xlog.server.entity.OperateLogRecordEntity; import cn.axzo.xlog.server.service.BaseEsService; +import cn.hutool.core.date.CalendarUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import org.elasticsearch.client.RestHighLevelClient; import org.junit.Assert; @@ -12,6 +15,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -27,6 +31,8 @@ public class ElasticClientConfigTest extends BaseEsService { @Autowired private RestHighLevelClient client; + private long sevenDayMills = 7 * 24 * 60 * 60 * 1000; + @Test public void testInsert() throws Exception { OperateLogRecordEntity entity = new OperateLogRecordEntity(); @@ -58,4 +64,55 @@ public class ElasticClientConfigTest extends BaseEsService { Assert.assertTrue(flag); } + + @Test + public void testIndexInterval() { + long sevenDayMills = 7 * 24 * 60 * 60 * 1000; + Date now = new Date(); + String weekDate = interval(now); + System.out.println("now:" + weekDate); + + String weekDateThreeDaysAgo = interval(add(now, -3)); + System.out.println("ThreeDaysAgo:" + weekDateThreeDaysAgo); + + String weekDateTwoDaysAgo = interval(add(now, -2)); + System.out.println("now:" + weekDateTwoDaysAgo); + + String weekDateAfter1 = interval(add(now, 1)); + System.out.println("After1:" + weekDateAfter1); + + String weekDateAfter2 = interval(add(now, 2)); + System.out.println("After2:" + weekDateAfter2); + + String weekDateAfter3 = interval(add(now, 3)); + System.out.println("After3:" + weekDateAfter3); + + String weekDateAfter4 = interval(add(now, 4)); + System.out.println("After4:" + weekDateAfter4); + + String weekDateAfter5 = interval(add(now, 5)); + System.out.println("After5:" + weekDateAfter5); + + String weekDateAfter6 = interval(add(now, 6)); + System.out.println("After6:" + weekDateAfter6); + + String weekDateAfter7 = interval(add(now, 7)); + System.out.println("After7:" + weekDateAfter7); + + String weekDateAfter8 = interval(add(now, 8)); + System.out.println("After8:" + weekDateAfter8); + } + + private Date add(Date date, int interval) { + Calendar calendar = CalendarUtil.calendar(date); + calendar.add(Calendar.DAY_OF_MONTH, interval); + return calendar.getTime(); + } + + private String interval(Date date) { + long mills = date.getTime(); + long intervalMills = mills % sevenDayMills; + Date currDate = new Date(mills - intervalMills); + return DateUtil.format(currDate, DatePattern.PURE_DATE_PATTERN); + } } From 5b9f216f5519c46748f625ab37118d80396d2c2a Mon Sep 17 00:00:00 2001 From: pepsi Date: Thu, 29 Sep 2022 11:26:40 +0800 Subject: [PATCH 06/11] project rename --- Dockerfile | 2 +- {xlog-client => axzo-log-api}/pom.xml | 14 +++++--------- .../axzo/log/platform}/client/XLogClient.java | 10 +++++----- .../config/XLogClientAutoConfiguration.java | 7 ++++--- .../log/platform}/client/feign/XLogApi.java | 10 +++++----- .../client/feign/XLogApiFallback.java | 10 +++++----- .../client/model/OperateLogQueryReq.java | 2 +- .../client/model/OperateLogQueryResp.java | 2 +- .../platform}/client/model/OperateLogReq.java | 2 +- .../main/resources/META-INF/spring.factories | 2 +- .../cn/axzo/log/platform/client/AppTest.java | 8 ++++++++ {xlog-server => axzo-log-server}/pom.xml | 13 +++++-------- .../log/platform}/server/XlogApplication.java | 4 ++-- .../server/config/EsClientConfig.java | 2 +- .../platform}/server/config/FeignConfig.java | 2 +- .../server/config/MybatisPlusConfig.java | 4 ++-- .../server/config/RabbitMqConfig.java | 2 +- .../server/config/SpringContextAware.java | 2 +- .../server/consumer/OperateLogMqConsumer.java | 8 ++++---- .../controller/HealthCheckController.java | 2 +- .../controller/api/OperateLogController.java | 10 +++++----- .../server/dto/OperateLogQueryReqDTO.java | 2 +- .../server/dto/OperateLogQueryRespDTO.java | 2 +- .../server/dto/OperateLogReqDTO.java | 2 +- .../platform}/server/entity/BaseEntity.java | 2 +- .../server/entity/OperateLogRecordEntity.java | 2 +- .../log/platform}/server/enums/IEnum.java | 2 +- .../platform}/server/enums/IdentityType.java | 4 ++-- .../platform}/server/enums/LogGradeEnum.java | 2 +- .../server/exception/ServiceException.java | 2 +- .../server/mapper/OperateLogMapper.java | 4 ++-- .../repository/OperateLogRepository.java | 6 +++--- .../impl/OperateLogRepositoryImpl.java | 10 +++++----- .../server/service/BaseEsService.java | 4 ++-- .../server/service/OperateLogService.java | 9 ++++----- .../service/converter/EntityConverter.java | 2 +- .../converter/OperateLogConverter.java | 6 +++--- .../service/impl/OperateLogServiceImpl.java | 18 +++++++++--------- .../src/main/resources/bootstrap.yml | 0 .../src/main/resources/logback-spring.xml | 0 .../resources/mapper/OperateLogMapper.xml | 0 .../server/XlogApplicationTestBase.java | 4 ++-- .../config/ElasticClientConfigTest.java | 6 +++--- .../platform}/server/config/IndexOprTest.java | 4 ++-- .../server/config/RabbitMqConsumerTest.java | 6 +++--- .../server/service/OperateLogServiceTest.java | 14 +++++++------- pom.xml | 19 ++++++++++--------- .../server/controller/BaseController.java | 10 ---------- 48 files changed, 126 insertions(+), 134 deletions(-) rename {xlog-client => axzo-log-api}/pom.xml (85%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/XLogClient.java (78%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/config/XLogClientAutoConfiguration.java (71%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/feign/XLogApi.java (73%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/feign/XLogApiFallback.java (76%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/model/OperateLogQueryReq.java (96%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/model/OperateLogQueryResp.java (94%) rename {xlog-client/src/main/java/cn/axzo/xlog => axzo-log-api/src/main/java/cn/axzo/log/platform}/client/model/OperateLogReq.java (98%) rename {xlog-client => axzo-log-api}/src/main/resources/META-INF/spring.factories (50%) create mode 100644 axzo-log-api/src/test/java/cn/axzo/log/platform/client/AppTest.java rename {xlog-server => axzo-log-server}/pom.xml (95%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/XlogApplication.java (94%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/config/EsClientConfig.java (98%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/config/FeignConfig.java (99%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/config/MybatisPlusConfig.java (95%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/config/RabbitMqConfig.java (97%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/config/SpringContextAware.java (94%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/consumer/OperateLogMqConsumer.java (85%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/controller/HealthCheckController.java (89%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/controller/api/OperateLogController.java (90%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/dto/OperateLogQueryReqDTO.java (98%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/dto/OperateLogQueryRespDTO.java (95%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/dto/OperateLogReqDTO.java (98%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/entity/BaseEntity.java (95%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/entity/OperateLogRecordEntity.java (98%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/enums/IEnum.java (93%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/enums/IdentityType.java (93%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/enums/LogGradeEnum.java (90%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/exception/ServiceException.java (87%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/mapper/OperateLogMapper.java (70%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/repository/OperateLogRepository.java (66%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/repository/impl/OperateLogRepositoryImpl.java (87%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/service/BaseEsService.java (98%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/service/OperateLogService.java (72%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/service/converter/EntityConverter.java (77%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/service/converter/OperateLogConverter.java (66%) rename {xlog-server/src/main/java/cn/axzo/xlog => axzo-log-server/src/main/java/cn/axzo/log/platform}/server/service/impl/OperateLogServiceImpl.java (95%) rename {xlog-server => axzo-log-server}/src/main/resources/bootstrap.yml (100%) rename {xlog-server => axzo-log-server}/src/main/resources/logback-spring.xml (100%) rename {xlog-server => axzo-log-server}/src/main/resources/mapper/OperateLogMapper.xml (100%) rename {xlog-server/src/test/java/cn/axzo/xlog => axzo-log-server/src/test/java/cn/axzo/log/platform}/server/XlogApplicationTestBase.java (89%) rename {xlog-server/src/test/java/cn/axzo/xlog => axzo-log-server/src/test/java/cn/axzo/log/platform}/server/config/ElasticClientConfigTest.java (95%) rename {xlog-server/src/test/java/cn/axzo/xlog => axzo-log-server/src/test/java/cn/axzo/log/platform}/server/config/IndexOprTest.java (90%) rename {xlog-server/src/test/java/cn/axzo/xlog => axzo-log-server/src/test/java/cn/axzo/log/platform}/server/config/RabbitMqConsumerTest.java (90%) rename {xlog-server/src/test/java/cn/axzo/xlog => axzo-log-server/src/test/java/cn/axzo/log/platform}/server/service/OperateLogServiceTest.java (88%) delete mode 100644 xlog-server/src/main/java/cn/axzo/xlog/server/controller/BaseController.java diff --git a/Dockerfile b/Dockerfile index edcbcf2..4fb9b8d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,3 @@ FROM harbor.axzo.cn/images_base/jdk1.8-fc:v1 -COPY xlog-server/target/xlog-server.jar ./xlog.jar +COPY axzo-log-server/target/axzo-log-server.jar ./xlog.jar ENTRYPOINT [{ENTRYPOINT}] diff --git a/xlog-client/pom.xml b/axzo-log-api/pom.xml similarity index 85% rename from xlog-client/pom.xml rename to axzo-log-api/pom.xml index e747966..da3e474 100644 --- a/xlog-client/pom.xml +++ b/axzo-log-api/pom.xml @@ -1,19 +1,16 @@ - - xlog - cn.axzo.xlog - 1.0.0-SNAPSHOT - ../pom.xml + axzo-log-plat + cn.axzo.platform + 1.0-SNAPSHOT - 4.0.0 - xlog-client + axzo-log-api jar - xlog-client + axzo-log-api http://maven.apache.org @@ -21,7 +18,6 @@ - org.springframework.cloud spring-cloud-starter-openfeign diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/XLogClient.java similarity index 78% rename from xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/XLogClient.java index 665a9ba..466b5f7 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/XLogClient.java @@ -1,9 +1,9 @@ -package cn.axzo.xlog.client; +package cn.axzo.log.platform.client; -import cn.axzo.xlog.client.feign.XLogApi; -import cn.axzo.xlog.client.model.OperateLogQueryReq; -import cn.axzo.xlog.client.model.OperateLogQueryResp; -import cn.axzo.xlog.client.model.OperateLogReq; +import cn.axzo.log.platform.client.feign.XLogApi; +import cn.axzo.log.platform.client.model.OperateLogQueryReq; +import cn.axzo.log.platform.client.model.OperateLogQueryResp; +import cn.axzo.log.platform.client.model.OperateLogReq; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; import lombok.RequiredArgsConstructor; diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/config/XLogClientAutoConfiguration.java similarity index 71% rename from xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/config/XLogClientAutoConfiguration.java index f65e442..e19594b 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/config/XLogClientAutoConfiguration.java @@ -1,7 +1,8 @@ -package cn.axzo.xlog.client.config; +package cn.axzo.log.platform.client.config; -import cn.axzo.xlog.client.XLogClient; -import cn.axzo.xlog.client.feign.XLogApi; + +import cn.axzo.log.platform.client.XLogClient; +import cn.axzo.log.platform.client.feign.XLogApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java similarity index 73% rename from xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java index 8006394..026b6e8 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java @@ -1,8 +1,8 @@ -package cn.axzo.xlog.client.feign; +package cn.axzo.log.platform.client.feign; -import cn.axzo.xlog.client.model.OperateLogQueryReq; -import cn.axzo.xlog.client.model.OperateLogQueryResp; -import cn.axzo.xlog.client.model.OperateLogReq; +import cn.axzo.log.platform.client.model.OperateLogQueryReq; +import cn.axzo.log.platform.client.model.OperateLogQueryResp; +import cn.axzo.log.platform.client.model.OperateLogReq; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; import org.springframework.cloud.openfeign.FeignClient; @@ -18,7 +18,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; * @description: TODO * @date: 2022/9/16 */ -@FeignClient(name = "xlog", url = "http://xlog:10999", fallbackFactory = XLogApiFallback.class) +@FeignClient(name = "xlog", url = "http://xlog:8080", fallbackFactory = XLogApiFallback.class) public interface XLogApi { @PostMapping(value = "/api/operateLog/create", consumes = APPLICATION_JSON_VALUE) diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApiFallback.java similarity index 76% rename from xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApiFallback.java index c0d7246..7f699ed 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApiFallback.java @@ -1,8 +1,8 @@ -package cn.axzo.xlog.client.feign; +package cn.axzo.log.platform.client.feign; -import cn.axzo.xlog.client.model.OperateLogQueryReq; -import cn.axzo.xlog.client.model.OperateLogQueryResp; -import cn.axzo.xlog.client.model.OperateLogReq; +import cn.axzo.log.platform.client.model.OperateLogQueryReq; +import cn.axzo.log.platform.client.model.OperateLogQueryResp; +import cn.axzo.log.platform.client.model.OperateLogReq; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; import com.alibaba.fastjson.JSON; @@ -16,7 +16,7 @@ import lombok.extern.slf4j.Slf4j; */ @Slf4j @RequiredArgsConstructor -public class XLogApiFallback implements XLogApi{ +public class XLogApiFallback implements XLogApi { @Override public CommonResponse operateLogCreate(OperateLogReq req) { diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogQueryReq.java similarity index 96% rename from xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogQueryReq.java index 44bb71c..b9ff878 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogQueryReq.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.client.model; +package cn.axzo.log.platform.client.model; import cn.axzo.core.domain.PageRequest; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogQueryResp.java similarity index 94% rename from xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogQueryResp.java index a39e7d3..6765046 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogQueryResp.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.client.model; +package cn.axzo.log.platform.client.model; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogReq.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogReq.java similarity index 98% rename from xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogReq.java rename to axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogReq.java index 3c9510b..c27466e 100644 --- a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogReq.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/model/OperateLogReq.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.client.model; +package cn.axzo.log.platform.client.model; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; diff --git a/xlog-client/src/main/resources/META-INF/spring.factories b/axzo-log-api/src/main/resources/META-INF/spring.factories similarity index 50% rename from xlog-client/src/main/resources/META-INF/spring.factories rename to axzo-log-api/src/main/resources/META-INF/spring.factories index 324af78..2ba58bb 100644 --- a/xlog-client/src/main/resources/META-INF/spring.factories +++ b/axzo-log-api/src/main/resources/META-INF/spring.factories @@ -1,2 +1,2 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -cn.axzo.xlog.client.config.XLogClientAutoConfiguration \ No newline at end of file +cn.axzo.log.platform.client.config.XLogClientAutoConfiguration \ No newline at end of file diff --git a/axzo-log-api/src/test/java/cn/axzo/log/platform/client/AppTest.java b/axzo-log-api/src/test/java/cn/axzo/log/platform/client/AppTest.java new file mode 100644 index 0000000..4735dae --- /dev/null +++ b/axzo-log-api/src/test/java/cn/axzo/log/platform/client/AppTest.java @@ -0,0 +1,8 @@ +package cn.axzo.log.platform.client; + +/** + * Unit test for simple App. + */ +public class AppTest { + +} diff --git a/xlog-server/pom.xml b/axzo-log-server/pom.xml similarity index 95% rename from xlog-server/pom.xml rename to axzo-log-server/pom.xml index cde2310..f7fc208 100644 --- a/xlog-server/pom.xml +++ b/axzo-log-server/pom.xml @@ -1,18 +1,16 @@ - xlog - cn.axzo.xlog - 1.0.0-SNAPSHOT - ../pom.xml + axzo-log-plat + cn.axzo.platform + 1.0-SNAPSHOT - 4.0.0 - xlog-server + axzo-log-server jar - xlog-server + axzo-log-server http://maven.apache.org @@ -127,7 +125,6 @@ cn.axzo.basics basics-profiles-api - diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/XlogApplication.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java similarity index 94% rename from xlog-server/src/main/java/cn/axzo/xlog/server/XlogApplication.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java index d66909c..9aa42f8 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/XlogApplication.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server; +package cn.axzo.log.platform.server; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,7 +22,7 @@ import org.springframework.core.env.Environment; "cn.axzo.basics" }) @EnableDiscoveryClient -@SpringBootApplication(scanBasePackages = "cn.axzo.xlog.server") +@SpringBootApplication(scanBasePackages = "cn.axzo.log.platform.server") public class XlogApplication { private static final Logger logger = LoggerFactory.getLogger(XlogApplication.class); diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/config/EsClientConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java similarity index 98% rename from xlog-server/src/main/java/cn/axzo/xlog/server/config/EsClientConfig.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java index 9eccf39..75c320c 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/config/EsClientConfig.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/config/FeignConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java similarity index 99% rename from xlog-server/src/main/java/cn/axzo/xlog/server/config/FeignConfig.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java index 98195d8..f13cfc9 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/config/FeignConfig.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; import cn.axzo.pudge.core.service.ServiceException; import cn.azxo.framework.common.constatns.Constants; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/config/MybatisPlusConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/MybatisPlusConfig.java similarity index 95% rename from xlog-server/src/main/java/cn/axzo/xlog/server/config/MybatisPlusConfig.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/MybatisPlusConfig.java index 7c5a58f..6c99bf4 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/config/MybatisPlusConfig.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/MybatisPlusConfig.java @@ -1,6 +1,6 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; -import cn.axzo.xlog.server.entity.BaseEntity; +import cn.axzo.log.platform.server.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/config/RabbitMqConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java similarity index 97% rename from xlog-server/src/main/java/cn/axzo/xlog/server/config/RabbitMqConfig.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java index 3594bb0..8658b92 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/config/RabbitMqConfig.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/config/SpringContextAware.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/SpringContextAware.java similarity index 94% rename from xlog-server/src/main/java/cn/axzo/xlog/server/config/SpringContextAware.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/SpringContextAware.java index 44273da..0ab5639 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/config/SpringContextAware.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/SpringContextAware.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/consumer/OperateLogMqConsumer.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java similarity index 85% rename from xlog-server/src/main/java/cn/axzo/xlog/server/consumer/OperateLogMqConsumer.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java index bebf809..1a5db85 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/consumer/OperateLogMqConsumer.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java @@ -1,8 +1,8 @@ -package cn.axzo.xlog.server.consumer; +package cn.axzo.log.platform.server.consumer; -import cn.axzo.xlog.server.config.RabbitMqConfig; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.service.OperateLogService; +import cn.axzo.log.platform.server.config.RabbitMqConfig; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.service.OperateLogService; import com.alibaba.fastjson.JSONObject; import com.rabbitmq.client.Channel; import org.slf4j.Logger; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/HealthCheckController.java similarity index 89% rename from xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/HealthCheckController.java index 1887421..c511472 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/HealthCheckController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/HealthCheckController.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.controller; +package cn.axzo.log.platform.server.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java similarity index 90% rename from xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java index fb5a465..c6f864f 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/api/OperateLogController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java @@ -1,9 +1,9 @@ -package cn.axzo.xlog.server.controller.api; +package cn.axzo.log.platform.server.controller.api; -import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; -import cn.axzo.xlog.server.dto.OperateLogQueryRespDTO; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.service.OperateLogService; +import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; +import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.service.OperateLogService; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; import cn.hutool.core.date.DateUtil; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java similarity index 98% rename from xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java index ccc9a87..5e1cfac 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryReqDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.dto; +package cn.axzo.log.platform.server.dto; import cn.axzo.basics.common.page.PageRequest; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryRespDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java similarity index 95% rename from xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryRespDTO.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java index e205369..2f7fee0 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogQueryRespDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.dto; +package cn.axzo.log.platform.server.dto; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java similarity index 98% rename from xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java index 0eb3d71..25a5bc3 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/dto/OperateLogReqDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.dto; +package cn.axzo.log.platform.server.dto; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/entity/BaseEntity.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/BaseEntity.java similarity index 95% rename from xlog-server/src/main/java/cn/axzo/xlog/server/entity/BaseEntity.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/BaseEntity.java index 973cb7e..4039066 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/entity/BaseEntity.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/BaseEntity.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.entity; +package cn.axzo.log.platform.server.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/entity/OperateLogRecordEntity.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java similarity index 98% rename from xlog-server/src/main/java/cn/axzo/xlog/server/entity/OperateLogRecordEntity.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java index cb7ce8e..7c78196 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/entity/OperateLogRecordEntity.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.entity; +package cn.axzo.log.platform.server.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.EqualsAndHashCode; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/enums/IEnum.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/IEnum.java similarity index 93% rename from xlog-server/src/main/java/cn/axzo/xlog/server/enums/IEnum.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/IEnum.java index 9a51e6b..2db5346 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/enums/IEnum.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/IEnum.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.enums; +package cn.axzo.log.platform.server.enums; /** * 项目名称:pudge diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/enums/IdentityType.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/IdentityType.java similarity index 93% rename from xlog-server/src/main/java/cn/axzo/xlog/server/enums/IdentityType.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/IdentityType.java index 8145669..f77c72d 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/enums/IdentityType.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/IdentityType.java @@ -1,6 +1,6 @@ -package cn.axzo.xlog.server.enums; +package cn.axzo.log.platform.server.enums; -import cn.axzo.xlog.server.exception.ServiceException; +import cn.axzo.log.platform.server.exception.ServiceException; import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/enums/LogGradeEnum.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/LogGradeEnum.java similarity index 90% rename from xlog-server/src/main/java/cn/axzo/xlog/server/enums/LogGradeEnum.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/LogGradeEnum.java index 92bda8e..776f46b 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/enums/LogGradeEnum.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/LogGradeEnum.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.enums; +package cn.axzo.log.platform.server.enums; import lombok.Getter; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/exception/ServiceException.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/exception/ServiceException.java similarity index 87% rename from xlog-server/src/main/java/cn/axzo/xlog/server/exception/ServiceException.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/exception/ServiceException.java index 3d8a3d6..08a8dea 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/exception/ServiceException.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/exception/ServiceException.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.exception; +package cn.axzo.log.platform.server.exception; /** * @author Smile diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/mapper/OperateLogMapper.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/mapper/OperateLogMapper.java similarity index 70% rename from xlog-server/src/main/java/cn/axzo/xlog/server/mapper/OperateLogMapper.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/mapper/OperateLogMapper.java index 8624c97..8d7beeb 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/mapper/OperateLogMapper.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/mapper/OperateLogMapper.java @@ -1,6 +1,6 @@ -package cn.axzo.xlog.server.mapper; +package cn.axzo.log.platform.server.mapper; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/repository/OperateLogRepository.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java similarity index 66% rename from xlog-server/src/main/java/cn/axzo/xlog/server/repository/OperateLogRepository.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java index 4255ff7..ad61322 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/repository/OperateLogRepository.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java @@ -1,7 +1,7 @@ -package cn.axzo.xlog.server.repository; +package cn.axzo.log.platform.server.repository; -import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; import com.baomidou.mybatisplus.core.metadata.IPage; /*** diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/repository/impl/OperateLogRepositoryImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java similarity index 87% rename from xlog-server/src/main/java/cn/axzo/xlog/server/repository/impl/OperateLogRepositoryImpl.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java index 788fac6..234ca7e 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/repository/impl/OperateLogRepositoryImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java @@ -1,9 +1,9 @@ -package cn.axzo.xlog.server.repository.impl; +package cn.axzo.log.platform.server.repository.impl; -import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; -import cn.axzo.xlog.server.mapper.OperateLogMapper; -import cn.axzo.xlog.server.repository.OperateLogRepository; +import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.mapper.OperateLogMapper; +import cn.axzo.log.platform.server.repository.OperateLogRepository; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java similarity index 98% rename from xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java index 09bc7dd..8fa226d 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/BaseEsService.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java @@ -1,6 +1,6 @@ -package cn.axzo.xlog.server.service; +package cn.axzo.log.platform.server.service; -import cn.axzo.xlog.server.config.SpringContextAware; +import cn.axzo.log.platform.server.config.SpringContextAware; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java similarity index 72% rename from xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java index d82bf1a..b0306be 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java @@ -1,9 +1,8 @@ -package cn.axzo.xlog.server.service; +package cn.axzo.log.platform.server.service; -import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; -import cn.axzo.xlog.server.dto.OperateLogQueryRespDTO; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; +import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; import cn.azxo.framework.common.model.CommonPageResponse; /*** diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/converter/EntityConverter.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/EntityConverter.java similarity index 77% rename from xlog-server/src/main/java/cn/axzo/xlog/server/service/converter/EntityConverter.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/EntityConverter.java index 85fc411..60a325d 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/converter/EntityConverter.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/EntityConverter.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.service.converter; +package cn.axzo.log.platform.server.service.converter; import java.util.List; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/converter/OperateLogConverter.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java similarity index 66% rename from xlog-server/src/main/java/cn/axzo/xlog/server/service/converter/OperateLogConverter.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java index 73d5086..4693b1c 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/converter/OperateLogConverter.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java @@ -1,7 +1,7 @@ -package cn.axzo.xlog.server.service.converter; +package cn.axzo.log.platform.server.service.converter; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; import org.mapstruct.Mapper; import static org.mapstruct.NullValueCheckStrategy.ALWAYS; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java similarity index 95% rename from xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java rename to axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java index cdee3d8..1103ea0 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/impl/OperateLogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server.service.impl; +package cn.axzo.log.platform.server.service.impl; import cn.axzo.apollo.core.web.Result; import cn.axzo.apollo.workspace.api.workspace.WorkspaceApi; @@ -8,15 +8,15 @@ import cn.axzo.basics.organizational.api.OrganizationalUnitApi; import cn.axzo.basics.organizational.api.vo.response.OrganizationalUnitVO; import cn.axzo.basics.profiles.api.UserProfileServiceApi; import cn.axzo.basics.profiles.dto.basic.IdentityProfileDto; +import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; +import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.repository.OperateLogRepository; +import cn.axzo.log.platform.server.service.BaseEsService; +import cn.axzo.log.platform.server.service.OperateLogService; +import cn.axzo.log.platform.server.service.converter.OperateLogConverter; import cn.axzo.pudge.core.service.ServiceException; -import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; -import cn.axzo.xlog.server.dto.OperateLogQueryRespDTO; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; -import cn.axzo.xlog.server.repository.OperateLogRepository; -import cn.axzo.xlog.server.service.BaseEsService; -import cn.axzo.xlog.server.service.OperateLogService; -import cn.axzo.xlog.server.service.converter.OperateLogConverter; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; import cn.hutool.core.date.CalendarUtil; diff --git a/xlog-server/src/main/resources/bootstrap.yml b/axzo-log-server/src/main/resources/bootstrap.yml similarity index 100% rename from xlog-server/src/main/resources/bootstrap.yml rename to axzo-log-server/src/main/resources/bootstrap.yml diff --git a/xlog-server/src/main/resources/logback-spring.xml b/axzo-log-server/src/main/resources/logback-spring.xml similarity index 100% rename from xlog-server/src/main/resources/logback-spring.xml rename to axzo-log-server/src/main/resources/logback-spring.xml diff --git a/xlog-server/src/main/resources/mapper/OperateLogMapper.xml b/axzo-log-server/src/main/resources/mapper/OperateLogMapper.xml similarity index 100% rename from xlog-server/src/main/resources/mapper/OperateLogMapper.xml rename to axzo-log-server/src/main/resources/mapper/OperateLogMapper.xml diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/XlogApplicationTestBase.java similarity index 89% rename from xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java rename to axzo-log-server/src/test/java/cn/axzo/log/platform/server/XlogApplicationTestBase.java index 6bca3f7..b07e4c0 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/XlogApplicationTestBase.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/XlogApplicationTestBase.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.server; +package cn.axzo.log.platform.server; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; @@ -12,5 +12,5 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class XlogApplicationTestBase { - + } diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/ElasticClientConfigTest.java similarity index 95% rename from xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java rename to axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/ElasticClientConfigTest.java index b38aa36..e327e82 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/config/ElasticClientConfigTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/ElasticClientConfigTest.java @@ -1,7 +1,7 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; -import cn.axzo.xlog.server.service.BaseEsService; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.service.BaseEsService; import cn.hutool.core.date.CalendarUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/config/IndexOprTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/IndexOprTest.java similarity index 90% rename from xlog-server/src/test/java/cn/axzo/xlog/server/config/IndexOprTest.java rename to axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/IndexOprTest.java index 4edf9d1..f831edb 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/config/IndexOprTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/IndexOprTest.java @@ -1,6 +1,6 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; -import cn.axzo.xlog.server.XlogApplicationTestBase; +import cn.axzo.log.platform.server.XlogApplicationTestBase; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.client.RequestOptions; diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java similarity index 90% rename from xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java rename to axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java index 3e604bd..5c0d442 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java @@ -1,7 +1,7 @@ -package cn.axzo.xlog.server.config; +package cn.axzo.log.platform.server.config; -import cn.axzo.xlog.server.XlogApplicationTestBase; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.XlogApplicationTestBase; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; import com.alibaba.fastjson.JSONObject; import org.junit.Test; import org.springframework.amqp.rabbit.core.RabbitTemplate; diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java similarity index 88% rename from xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java rename to axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java index eefcc22..f48acd0 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java @@ -1,11 +1,11 @@ -package cn.axzo.xlog.server.service; +package cn.axzo.log.platform.server.service; -import cn.axzo.xlog.server.XlogApplicationTestBase; -import cn.axzo.xlog.server.dto.OperateLogQueryReqDTO; -import cn.axzo.xlog.server.dto.OperateLogQueryRespDTO; -import cn.axzo.xlog.server.dto.OperateLogReqDTO; -import cn.axzo.xlog.server.entity.OperateLogRecordEntity; -import cn.axzo.xlog.server.service.converter.OperateLogConverter; +import cn.axzo.log.platform.server.XlogApplicationTestBase; +import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; +import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; +import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; +import cn.axzo.log.platform.server.service.converter.OperateLogConverter; import cn.azxo.framework.common.model.CommonPageResponse; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; diff --git a/pom.xml b/pom.xml index a166771..57c9986 100644 --- a/pom.xml +++ b/pom.xml @@ -8,19 +8,20 @@ 2.4.13 - cn.axzo.xlog - xlog - 1.0.0-SNAPSHOT - pom - - xlog - http://maven.apache.org + cn.axzo.platform + axzo-log-plat + 1.0-SNAPSHOT - xlog-client - xlog-server + axzo-log-server + axzo-log-api + pom + + axzo-log-plat + http://maven.apache.org + UTF-8 1.4.2.Final diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/BaseController.java b/xlog-server/src/main/java/cn/axzo/xlog/server/controller/BaseController.java deleted file mode 100644 index 119d723..0000000 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/controller/BaseController.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.axzo.xlog.server.controller; - -/*** - * @author: pepsi - * @description: TODO - * @date: 2022/9/16 - */ -public abstract class BaseController { - -} From 9c0ed88a08228ffd8825361bfdfb1ab9d90c370c Mon Sep 17 00:00:00 2001 From: pepsi Date: Thu, 29 Sep 2022 15:41:43 +0800 Subject: [PATCH 07/11] code clean --- .../server/config/RabbitMqConfig.java | 41 ------------------- .../server/consumer/OperateLogMqConsumer.java | 3 +- .../server/dto/OperateLogQueryReqDTO.java | 22 +++++----- .../server/dto/OperateLogQueryRespDTO.java | 8 ++++ .../service/impl/OperateLogServiceImpl.java | 1 + .../server/config/RabbitMqConsumerTest.java | 7 +++- 6 files changed, 26 insertions(+), 56 deletions(-) delete mode 100644 axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java deleted file mode 100644 index 8658b92..0000000 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/RabbitMqConfig.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.axzo.log.platform.server.config; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.DirectExchange; -import org.springframework.amqp.core.Queue; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/*** - * @author: pepsi - * @description: TODO - * @date: 2022/9/16 - */ -@Configuration -public class RabbitMqConfig { - private final Logger logger = LoggerFactory.getLogger(RabbitMqConfig.class); - // 操作日志队列 - public static final String OPERATE_LOG_QUEUE_NAME = "unified.operate.log"; - public static final String OPERATE_LOG_EXCHANGE = "unified.operate.log.exchange"; - public static final String OPERATE_LOG_ROUTING_KEY = "unified.operate.log.routingKey"; - - @Bean - public Queue operateLogQueue() { - return new Queue(OPERATE_LOG_QUEUE_NAME, true); - } - - @Bean - public DirectExchange operateLogExchange() { - return new DirectExchange(OPERATE_LOG_EXCHANGE, true, false); - } - - @Bean - public Binding operateLogBindingDirect(DirectExchange exchange, Queue oprlogeQueue) { - Binding binding = BindingBuilder.bind(oprlogeQueue).to(exchange).with(OPERATE_LOG_ROUTING_KEY); - logger.info("rabbitmq queue:[{}] binding exchange:[{}] success.", oprlogeQueue.getName(), exchange.getName()); - return binding; - } -} diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java index 1a5db85..f3ad4ec 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java @@ -1,6 +1,5 @@ package cn.axzo.log.platform.server.consumer; -import cn.axzo.log.platform.server.config.RabbitMqConfig; import cn.axzo.log.platform.server.dto.OperateLogReqDTO; import cn.axzo.log.platform.server.service.OperateLogService; import com.alibaba.fastjson.JSONObject; @@ -27,7 +26,7 @@ public class OperateLogMqConsumer { @Resource private OperateLogService operateLogService; - @RabbitListener(queues = RabbitMqConfig.OPERATE_LOG_QUEUE_NAME) + @RabbitListener(queues = "${oprlog.consumer.queue.name:unified.operate.log}") public void consumerOprlogs(Message message, Channel channel) throws IOException { String msg = new String(message.getBody(), StandardCharsets.UTF_8); try { diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java index 5e1cfac..41ed4f3 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java @@ -28,25 +28,25 @@ public class OperateLogQueryReqDTO extends PageRequest { /** * 操作人 */ - @ApiModelProperty(value = "操作人", position = 1) + @ApiModelProperty(value = "操作人", position = 2) private String operateUserName; /** * 事件类型 */ - @ApiModelProperty(value = "事件类型", position = 1) + @ApiModelProperty(value = "事件类型", position = 3) private List featureCodes; /** * 功能name */ - @ApiModelProperty(value = "功能名称", position = 1) + @ApiModelProperty(value = "功能名称", position = 4) private String featureName; /** * 开始时间 */ - @ApiModelProperty(value = "操作开始时间", position = 1) + @ApiModelProperty(value = "操作开始时间", position = 5, required = true) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @NotNull private Date startTime; @@ -54,7 +54,7 @@ public class OperateLogQueryReqDTO extends PageRequest { /** * 结束时间 */ - @ApiModelProperty(value = "操作结束时间", position = 1) + @ApiModelProperty(value = "操作结束时间", position = 6, required = true) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @NotNull private Date endTime; @@ -62,40 +62,40 @@ public class OperateLogQueryReqDTO extends PageRequest { /** * 工作台Id */ - @ApiModelProperty(value = "工作台Id", position = 1) + @ApiModelProperty(value = "工作台Id", position = 7) @JsonIgnore private Long workspaceId; /** * 单位Id */ - @ApiModelProperty(value = "单位Id", position = 1) + @ApiModelProperty(value = "单位Id", position = 8) @JsonIgnore private Long ouId; /** * 身份Id */ - @ApiModelProperty(value = "身份Id", position = 1) + @ApiModelProperty(value = "身份Id", position = 9) @JsonIgnore private Long identityId; /** * 身份类型 */ - @ApiModelProperty(value = "身份类型", position = 1) + @ApiModelProperty(value = "身份类型", position = 10) @JsonIgnore private Integer identityType; /** * 操作类型 1:add 2:add_batch 3:update 4:update_batch 5:delete 6:delete_batch */ - @ApiModelProperty(value = "操作类型", position = 1) + @ApiModelProperty(value = "操作类型", position = 11) private Integer operateType; /** * 操作表名 */ - @ApiModelProperty(value = "操作表名", position = 1) + @ApiModelProperty(value = "操作表名", position = 12) private String operateTable; } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java index 2f7fee0..56a15dd 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java @@ -1,6 +1,7 @@ package cn.axzo.log.platform.server.dto; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @@ -16,36 +17,43 @@ public class OperateLogQueryRespDTO { /** * 操作人 */ + @ApiModelProperty(value = "操作人名称", position = 1) private String operateUserName; /** * 事件类型 */ + @ApiModelProperty(value = "事件code", position = 2) private String featureCode; /** * 事件类型 */ + @ApiModelProperty(value = "事件名称", position = 3) private String featureName; /** * 事件摘要 */ + @ApiModelProperty(value = "事件摘要", position = 4) private String contentSummary; /** * 操作时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty(value = "操作时间", position = 5) private Date operateTime; /** * 操作人手机号 */ + @ApiModelProperty(value = "操作人手机号", position = 6) private String operateUserPhone; /** * 所属单位名称 */ + @ApiModelProperty(value = "单位名称", position = 7) private String ouName; } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java index 1103ea0..fd2f680 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java @@ -278,6 +278,7 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe getDetailReq.setId(workspaceId); Result res = workspaceApi.getDetail(getDetailReq); if (res.getCode() != 200) { + logger.error("query workspace with wsId failed,wsId={},errMsg={}.", workspaceId, res.getMsg()); throw new ServiceException(res.getMsg()); } return res.getData(); diff --git a/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java index 5c0d442..bd09be5 100644 --- a/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java @@ -16,12 +16,15 @@ import java.util.Date; */ public class RabbitMqConsumerTest extends XlogApplicationTestBase { + public static final String OPERATE_LOG_QUEUE_NAME = "unified.operate.log"; + public static final String OPERATE_LOG_EXCHANGE = "unified.operate.log.exchange"; + public static final String OPERATE_LOG_ROUTING_KEY = "unified.operate.log.routingKey"; @Resource private RabbitTemplate rabbitTemplate; @Test public void testSendMsg() throws InterruptedException { - for (int i = 0; i < 10; i++) { + for (int i = 0; i < 1; i++) { OperateLogReqDTO reqData = new OperateLogReqDTO(); reqData.setLogGrade(1); reqData.setLogExt("test"); @@ -43,7 +46,7 @@ public class RabbitMqConsumerTest extends XlogApplicationTestBase { reqData.setOperateBefore("test"); reqData.setFeatureName("test"); reqData.setResourceId(1L); - rabbitTemplate.convertAndSend(RabbitMqConfig.OPERATE_LOG_QUEUE_NAME, JSONObject.toJSONString(reqData)); + rabbitTemplate.convertAndSend(OPERATE_LOG_QUEUE_NAME, JSONObject.toJSONString(reqData)); System.out.println("send msg success"); } Thread.sleep(1000 * 10); From ceafeccc436416c926960e5f5a398d0c31aba630 Mon Sep 17 00:00:00 2001 From: pepsi Date: Sat, 8 Oct 2022 16:17:58 +0800 Subject: [PATCH 08/11] modify project name & devops config --- Dockerfile | 2 +- .../log/platform/client/feign/XLogApi.java | 2 +- .../controller/api/OperateLogController.java | 21 ++++++++++++++++--- .../dto/OperateLogQueryDetailRespDTO.java | 10 +++++++++ .../server/dto/OperateLogQueryRespDTO.java | 6 ++++++ .../server/entity/OperateLogRecordEntity.java | 2 +- .../server/service/OperateLogService.java | 11 +++++++++- .../service/impl/OperateLogServiceImpl.java | 17 +++++++++++---- .../src/main/resources/bootstrap.yml | 2 +- .../server/service/OperateLogServiceTest.java | 2 +- 10 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java diff --git a/Dockerfile b/Dockerfile index 4fb9b8d..f760de7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,3 @@ FROM harbor.axzo.cn/images_base/jdk1.8-fc:v1 -COPY axzo-log-server/target/axzo-log-server.jar ./xlog.jar +COPY axzo-log-server/target/axzo-log-server.jar ./axzo-log-server.jar ENTRYPOINT [{ENTRYPOINT}] diff --git a/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java index 026b6e8..0bab777 100644 --- a/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java +++ b/axzo-log-api/src/main/java/cn/axzo/log/platform/client/feign/XLogApi.java @@ -18,7 +18,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; * @description: TODO * @date: 2022/9/16 */ -@FeignClient(name = "xlog", url = "http://xlog:8080", fallbackFactory = XLogApiFallback.class) +@FeignClient(name = "log-plat", url = "http://log-plat:8080", fallbackFactory = XLogApiFallback.class) public interface XLogApi { @PostMapping(value = "/api/operateLog/create", consumes = APPLICATION_JSON_VALUE) diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java index c6f864f..0af05a9 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java @@ -1,5 +1,6 @@ package cn.axzo.log.platform.server.controller.api; +import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; import cn.axzo.log.platform.server.dto.OperateLogReqDTO; @@ -39,7 +40,8 @@ public class OperateLogController { @RequestMapping(value = "/operateLog/create", method = RequestMethod.POST) @ApiOperation(value = "操作日志创建") - public CommonResponse operateLogCreate(@RequestBody @Valid OperateLogReqDTO req, BindingResult bindingResult) { + public CommonResponse operateLogCreate(@RequestBody @Valid OperateLogReqDTO req, + BindingResult bindingResult) { //参数缺失等返回 if (bindingResult.hasErrors()) { return CommonResponse.fail(bindingResult.getAllErrors().get(0).getDefaultMessage()); @@ -60,17 +62,30 @@ public class OperateLogController { if (bindingResult.hasErrors()) { return CommonResponse.fail(bindingResult.getAllErrors().get(0).getDefaultMessage()); } - //时间跨度校验 + //时间跨度校验。 if (DateUtil.betweenDay(req.getStartTime(), req.getEndTime(), true) > 7) { logger.error("start and end date interval greater than 7."); return CommonResponse.fail("the time span is greater than 7"); } try { - CommonPageResponse resp = operateLogService.queryForPageFromEs(req); + CommonPageResponse resp = operateLogService.queryForPage(req); return CommonResponse.success(resp); } catch (Exception e) { logger.error("query operate logs failed,", e); return CommonResponse.fail(e.getMessage()); } } + + + @RequestMapping(value = "/operateLog/queryDetail", method = RequestMethod.GET) + @ApiOperation(value = "操作日志详情查询") + public CommonResponse operateLogDetail(Long id) { + try { + OperateLogQueryDetailRespDTO detail = operateLogService.queryOperateLogDetail(id); + return CommonResponse.success(detail); + } catch (Exception e) { + return CommonResponse.fail(e.getMessage()); + } + + } } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java new file mode 100644 index 0000000..eb60451 --- /dev/null +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java @@ -0,0 +1,10 @@ +package cn.axzo.log.platform.server.dto; + +/*** + * @author: pepsi + * @description: 操作日志详情返回 + * @date: 2022/10/8 + */ +public class OperateLogQueryDetailRespDTO { + +} diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java index 56a15dd..eb3740e 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java @@ -14,6 +14,12 @@ import java.util.Date; @Data public class OperateLogQueryRespDTO { + /** + * 记录ID + */ + @ApiModelProperty(value = "ID", position = 0) + private int id; + /** * 操作人 */ diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java index 7c78196..6435065 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/entity/OperateLogRecordEntity.java @@ -18,7 +18,7 @@ import java.util.Date; @Setter @ToString @EqualsAndHashCode(callSuper = true) -@TableName("unified_log_record") +@TableName("log_record") public class OperateLogRecordEntity extends BaseEntity { /** * 调用方服务名 diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java index b0306be..913208d 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java @@ -1,5 +1,6 @@ package cn.axzo.log.platform.server.service; +import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; import cn.axzo.log.platform.server.dto.OperateLogReqDTO; @@ -24,7 +25,7 @@ public interface OperateLogService { * @param req * @return */ - CommonPageResponse queryForPage(OperateLogQueryReqDTO req); + CommonPageResponse queryForPage(OperateLogQueryReqDTO req) throws Exception; /** * query from es @@ -34,4 +35,12 @@ public interface OperateLogService { * @throws Exception */ CommonPageResponse queryForPageFromEs(OperateLogQueryReqDTO req) throws Exception; + + /** + * 查询每个日志的详情 + * + * @param id + * @return + */ + OperateLogQueryDetailRespDTO queryOperateLogDetail(Long id); } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java index fd2f680..e294c8c 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java @@ -8,6 +8,7 @@ import cn.axzo.basics.organizational.api.OrganizationalUnitApi; import cn.axzo.basics.organizational.api.vo.response.OrganizationalUnitVO; import cn.axzo.basics.profiles.api.UserProfileServiceApi; import cn.axzo.basics.profiles.dto.basic.IdentityProfileDto; +import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; import cn.axzo.log.platform.server.dto.OperateLogReqDTO; @@ -110,9 +111,8 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe } private OperateLogRecordEntity fieldFill(OperateLogReqDTO req) { - //补充 termimnal identityType featureName + //补充 termimnal identityType featureName. OperateLogRecordEntity unifiedLogRecord = operateLogConverter.toEntity(req); - // 通过接口调用,获取用户手机姓名 IdentityProfileDto identityProfile = qryIdentityProfile(req.getIdentityId(), req.getIdentityType()); if (identityProfile != null && identityProfile.getPersonProfile() != null) { @@ -128,8 +128,11 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe } @Override - public CommonPageResponse queryForPage(OperateLogQueryReqDTO req) { - //todo 转 entity 对象 + public CommonPageResponse queryForPage(OperateLogQueryReqDTO req) throws Exception { + //这里做个区分。时从ES查询获取还是从DB获取. + if (esStorageFlag) { + return queryForPageFromEs(req); + } IPage page = operateLogRepository.pageLogRecord(req); //为空则返回空 List recordList = page.getRecords(); @@ -172,6 +175,12 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe return CommonPageResponse.list(req.getPage(), req.getPageSize(), hits.getTotalHits().value, respList); } + @Override + public OperateLogQueryDetailRespDTO queryOperateLogDetail(Long id) { + //todo + return null; + } + /*** * 获取2个时间段之间的索引。startTime + 7 < endTime 即可。 * @param startDate diff --git a/axzo-log-server/src/main/resources/bootstrap.yml b/axzo-log-server/src/main/resources/bootstrap.yml index 55209ef..148622f 100644 --- a/axzo-log-server/src/main/resources/bootstrap.yml +++ b/axzo-log-server/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ spring: application: - name: xlog + name: axzo-log-plat cloud: nacos: config: diff --git a/axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java index f48acd0..8ecfd29 100644 --- a/axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/service/OperateLogServiceTest.java @@ -73,7 +73,7 @@ public class OperateLogServiceTest extends XlogApplicationTestBase { } @Test - public void testPageQuery() { + public void testPageQuery() throws Exception { OperateLogQueryReqDTO req = new OperateLogQueryReqDTO(); req.setPage(1L); req.setPageSize(3L); From 7b14e58a39daa36c0a5c5bf9c60ec0c9c273ba31 Mon Sep 17 00:00:00 2001 From: pepsi Date: Sat, 8 Oct 2022 20:25:03 +0800 Subject: [PATCH 09/11] add query detail api --- .../server/config/EsClientConfig.java | 8 +- .../platform/server/config/FeignConfig.java | 2 +- .../controller/api/OperateLogController.java | 14 +-- .../dto/OperateLogQueryDetailReqDTO.java | 34 ++++++ .../dto/OperateLogQueryDetailRespDTO.java | 113 +++++++++++++++++- .../server/dto/OperateLogQueryRespDTO.java | 4 +- .../repository/OperateLogRepository.java | 13 ++ .../impl/OperateLogRepositoryImpl.java | 5 + .../server/service/BaseEsService.java | 23 +++- .../server/service/OperateLogService.java | 9 +- .../converter/OperateLogConverter.java | 4 + .../service/impl/OperateLogServiceImpl.java | 72 +++++++++-- 12 files changed, 262 insertions(+), 39 deletions(-) create mode 100644 axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailReqDTO.java diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java index 75c320c..c9cdf7f 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/EsClientConfig.java @@ -25,16 +25,16 @@ public class EsClientConfig { private final Logger logger = LoggerFactory.getLogger(EsClientConfig.class); - @Value("${xlog.elasticsearch.host:121.196.20.126}") + @Value("${log-plat.elasticsearch.host:121.196.20.126}") private String host; - @Value("${xlog.elasticsearch.port:31647}") + @Value("${log-plat.elasticsearch.port:31647}") private int port; - @Value("${xlog.elasticsearch.username:elastic}") + @Value("${log-plat.elasticsearch.username:elastic}") private String userName; - @Value("${xlog.elasticsearch.pwd:Axz0ES2021}") + @Value("${log-plat.elasticsearch.pwd:Axz0ES2021}") private String password; @Bean diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java index f13cfc9..27d512a 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/config/FeignConfig.java @@ -30,7 +30,7 @@ import java.util.regex.Pattern; * @author xiajiafu * @date 2022/08/08 **/ -@Configuration(value = "xlogFeignConfig") +@Configuration(value = "logPlatFeignConfig") public class FeignConfig implements RequestInterceptor { private static final Logger log = LoggerFactory.getLogger(FeignConfig.class); diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java index 0af05a9..12dfa47 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java @@ -1,9 +1,6 @@ package cn.axzo.log.platform.server.controller.api; -import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; -import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; -import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; -import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.dto.*; import cn.axzo.log.platform.server.service.OperateLogService; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; @@ -77,15 +74,14 @@ public class OperateLogController { } - @RequestMapping(value = "/operateLog/queryDetail", method = RequestMethod.GET) - @ApiOperation(value = "操作日志详情查询") - public CommonResponse operateLogDetail(Long id) { + @RequestMapping(value = "/operateLog/queryDetail", method = RequestMethod.POST) + @ApiOperation(value = "单条日志详情查询") + public CommonResponse operateLogDetail(@RequestBody OperateLogQueryDetailReqDTO reqDTO) { try { - OperateLogQueryDetailRespDTO detail = operateLogService.queryOperateLogDetail(id); + OperateLogQueryDetailRespDTO detail = operateLogService.queryOperateLogDetail(reqDTO); return CommonResponse.success(detail); } catch (Exception e) { return CommonResponse.fail(e.getMessage()); } - } } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailReqDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailReqDTO.java new file mode 100644 index 0000000..1d179cb --- /dev/null +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailReqDTO.java @@ -0,0 +1,34 @@ +package cn.axzo.log.platform.server.dto; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * @author : liuchuntao + * @date : 2022/6/28 20:08 + * @description : 操作日志请求参数 + */ +@Data +public class OperateLogQueryDetailReqDTO { + + /** + * ID + */ + @ApiModelProperty(value = "记录ID", position = 1, required = true) + private String id; + + /** + * 操作时间 + */ + @ApiModelProperty(value = "操作时间", position = 2) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull + private Date operateTime; + + +} diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java index eb60451..bf16531 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryDetailRespDTO.java @@ -1,10 +1,119 @@ package cn.axzo.log.platform.server.dto; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + /*** * @author: pepsi * @description: 操作日志详情返回 * @date: 2022/10/8 */ +@Data public class OperateLogQueryDetailRespDTO { - -} + + /** + * 操作人 + */ + @ApiModelProperty(value = "操作人名称", position = 1) + private String operateUserName; + + /** + * 事件类型 + */ + @ApiModelProperty(value = "事件code", position = 2) + private String featureCode; + + /** + * 事件类型 + */ + @ApiModelProperty(value = "事件名称", position = 3) + private String featureName; + + /** + * 事件摘要 + */ + @ApiModelProperty(value = "事件摘要", position = 4) + private String contentSummary; + + /** + * 操作时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty(value = "操作时间", position = 5) + private Date operateTime; + + /** + * 操作人手机号 + */ + @ApiModelProperty(value = "操作人手机号", position = 6) + private String operateUserPhone; + + /** + * 所属单位名称 + */ + @ApiModelProperty(value = "单位名称", position = 7) + private String ouName; + + /** + * 操作人IP + */ + @ApiModelProperty(value = "操作人IP", position = 8) + private String operateUserIp; + + /** + * 操作那张表 + */ + @ApiModelProperty(value = "操作的表名称", position = 9) + private String operateTable; + + /** + * 操作前内容 + */ + @ApiModelProperty(value = "操作前信息", position = 10) + private String operateBefore; + + /** + * 操作后内容 + */ + @ApiModelProperty(value = "操作后信息", position = 11) + private String operateAfter; + + /** + * 操作参数 + */ + @ApiModelProperty(value = "操作的参数信息", position = 12) + private String operateParam; + + /** + * 日志拓展内容 + */ + @ApiModelProperty(value = "扩展信息", position = 13) + private String logExt; + + /** + * 工作台 + */ + @ApiModelProperty(value = "工作台名字", position = 14) + private String workspaceName; + + /** + * 操作人名字 + */ + @ApiModelProperty(value = "操作人名称", position = 15) + private String identityUserName; + + /** + * 操作人手机号 + */ + @ApiModelProperty(value = "操作人电话", position = 16) + private String identityUserPhone; + + /** + * 所属终端 + */ + @ApiModelProperty(value = "所属终端", position = 17) + private String terminal; +} diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java index eb3740e..dd30ba0 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryRespDTO.java @@ -15,10 +15,10 @@ import java.util.Date; public class OperateLogQueryRespDTO { /** - * 记录ID + * 记录ID,为后面单条详情查询提供 */ @ApiModelProperty(value = "ID", position = 0) - private int id; + private String id; /** * 操作人 diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java index ad61322..8441219 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/OperateLogRepository.java @@ -17,6 +17,19 @@ public interface OperateLogRepository { */ OperateLogRecordEntity save(OperateLogRecordEntity user); + /** + * 分页查询 + * + * @param req + * @return + */ IPage pageLogRecord(OperateLogQueryReqDTO req); + /** + * 根据ID获取 + * + * @param id + * @return + */ + OperateLogRecordEntity queryById(Long id); } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java index 234ca7e..415cf3d 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/repository/impl/OperateLogRepositoryImpl.java @@ -45,4 +45,9 @@ public class OperateLogRepositoryImpl implements OperateLogRepository { .orderByDesc(OperateLogRecordEntity::getCreateAt) ); } + + @Override + public OperateLogRecordEntity queryById(Long id) { + return mapper.selectById(id); + } } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java index 8fa226d..d133a3a 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/BaseEsService.java @@ -6,6 +6,8 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkResponse; +import org.elasticsearch.action.get.GetRequest; +import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.search.SearchRequest; @@ -137,7 +139,7 @@ public class BaseEsService { } return true; } catch (Exception e) { - logger.error("bulk insert failed,", e); + logger.error("es bulk insert failed,", e); throw new Exception(e.getMessage()); } } @@ -155,7 +157,24 @@ public class BaseEsService { RestHighLevelClient client = SpringContextAware.getBean(RestHighLevelClient.class); return client.search(request, RequestOptions.DEFAULT); } catch (Exception e) { - logger.error("query occur exception,", e); + logger.error("es search query occur exception,", e); + throw new Exception(e.getMessage()); + } + } + + /** + * get 方式获取 + * + * @param request + * @return + * @throws Exception + */ + public GetResponse get(GetRequest request) throws Exception { + try { + RestHighLevelClient client = SpringContextAware.getBean(RestHighLevelClient.class); + return client.get(request, RequestOptions.DEFAULT); + } catch (Exception e) { + logger.error("es get query occur exception,", e); throw new Exception(e.getMessage()); } } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java index 913208d..e6626af 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/OperateLogService.java @@ -1,9 +1,6 @@ package cn.axzo.log.platform.server.service; -import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; -import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; -import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; -import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.dto.*; import cn.azxo.framework.common.model.CommonPageResponse; /*** @@ -39,8 +36,8 @@ public interface OperateLogService { /** * 查询每个日志的详情 * - * @param id + * @param req * @return */ - OperateLogQueryDetailRespDTO queryOperateLogDetail(Long id); + OperateLogQueryDetailRespDTO queryOperateLogDetail(OperateLogQueryDetailReqDTO req) throws Exception; } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java index 4693b1c..12b55f9 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/converter/OperateLogConverter.java @@ -1,5 +1,6 @@ package cn.axzo.log.platform.server.service.converter; +import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; import cn.axzo.log.platform.server.dto.OperateLogReqDTO; import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; import org.mapstruct.Mapper; @@ -18,4 +19,7 @@ import static org.mapstruct.NullValueCheckStrategy.ALWAYS; public interface OperateLogConverter { OperateLogRecordEntity toEntity(OperateLogReqDTO dto); + + OperateLogQueryDetailRespDTO toDetailDto(OperateLogRecordEntity entity); + } diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java index e294c8c..0828587 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/OperateLogServiceImpl.java @@ -8,10 +8,7 @@ import cn.axzo.basics.organizational.api.OrganizationalUnitApi; import cn.axzo.basics.organizational.api.vo.response.OrganizationalUnitVO; import cn.axzo.basics.profiles.api.UserProfileServiceApi; import cn.axzo.basics.profiles.dto.basic.IdentityProfileDto; -import cn.axzo.log.platform.server.dto.OperateLogQueryDetailRespDTO; -import cn.axzo.log.platform.server.dto.OperateLogQueryReqDTO; -import cn.axzo.log.platform.server.dto.OperateLogQueryRespDTO; -import cn.axzo.log.platform.server.dto.OperateLogReqDTO; +import cn.axzo.log.platform.server.dto.*; import cn.axzo.log.platform.server.entity.OperateLogRecordEntity; import cn.axzo.log.platform.server.repository.OperateLogRepository; import cn.axzo.log.platform.server.service.BaseEsService; @@ -25,6 +22,8 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.elasticsearch.action.get.GetRequest; +import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.*; @@ -57,7 +56,7 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe @Value("${xlog.elastic.index.name:axzo_operatelog_}") private String indexNamePrex; - @Value("${xlog.es.storage:true}") + @Value("${xlog.es.storage:false}") private boolean esStorageFlag; @Value("${oprlog.index.interval.days:7}") @@ -143,6 +142,7 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe return CommonPageResponse.list(req.getPage(), req.getPageSize(), page.getTotal(), respList); } + /*** * 从ES获取查询结果 * @param req @@ -163,22 +163,51 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe //处理查询结果的数据 SearchHits hits = response.getHits(); SearchHit[] searchHits = hits.getHits(); - List resList = new ArrayList<>(searchHits.length); + Map resMap = new HashMap<>(searchHits.length); if (searchHits.length == 0) { return CommonPageResponse.zero(req.getPage(), req.getPageSize()); } for (SearchHit hit : searchHits) { String oprLogStr = hit.getSourceAsString(); - resList.add(JSONObject.parseObject(oprLogStr, OperateLogRecordEntity.class)); + resMap.put(hit.getId(), JSONObject.parseObject(oprLogStr, OperateLogRecordEntity.class)); } - List respList = assembleOperateLogResp(resList); + List respList = assembleOperateLogResp(resMap); return CommonPageResponse.list(req.getPage(), req.getPageSize(), hits.getTotalHits().value, respList); } @Override - public OperateLogQueryDetailRespDTO queryOperateLogDetail(Long id) { - //todo - return null; + public OperateLogQueryDetailRespDTO queryOperateLogDetail(OperateLogQueryDetailReqDTO req) throws Exception { + if (esStorageFlag) { + return queryOperateLogDetailFromEs(req.getOperateTime(), req.getId()); + } + //从DB查询 + OperateLogRecordEntity entity = operateLogRepository.queryById(Long.valueOf(req.getId())); + if (entity == null) { + return null; + } + return operateLogConverter.toDetailDto(entity); + } + + /** + * 对于 es 而言,需要索引信息. + * + * @param id + * @return + */ + public OperateLogQueryDetailRespDTO queryOperateLogDetailFromEs(Date oprDateTime, String id) throws Exception { + //根据日期找索引, + String indexName = indexNamePrex + findIndexSuffixDate(oprDateTime); + //需要判断下索引是否存在, + List indices = getIndices(indexNamePrex); + if (!indices.contains(indexName)) { + logger.warn("can not find index,oprDateTime={},id={}", oprDateTime, id); + return null; + } + GetRequest getRequest = new GetRequest(indexName, id); + GetResponse response = get(getRequest); + String oprLogStr = response.getSourceAsString(); + OperateLogRecordEntity entity = JSONObject.parseObject(oprLogStr, OperateLogRecordEntity.class); + return operateLogConverter.toDetailDto(entity); } /*** @@ -260,9 +289,9 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe } - private List assembleOperateLogResp(List recordList) { + private List assembleOperateLogResp(Map recordMap) { List resList = new ArrayList<>(); - recordList.forEach(item -> { + recordMap.forEach((id, item) -> { OperateLogQueryRespDTO resp = new OperateLogQueryRespDTO(); resp.setOperateUserName(item.getIdentityUserName()); resp.setFeatureCode(item.getFeatureCode()); @@ -271,11 +300,28 @@ public class OperateLogServiceImpl extends BaseEsService implements OperateLogSe resp.setOperateTime(item.getOperateTime()); resp.setOperateUserPhone(item.getIdentityUserPhone()); resp.setOuName(item.getOuName()); + resp.setId(id); resList.add(resp); }); return resList; } + private List assembleOperateLogResp(List recordList) { + List resList = new ArrayList<>(); + recordList.forEach((ele) -> { + OperateLogQueryRespDTO response = new OperateLogQueryRespDTO(); + response.setOperateUserName(ele.getIdentityUserName()); + response.setFeatureCode(ele.getFeatureCode()); + response.setFeatureName(ele.getFeatureName()); + response.setContentSummary(ele.getContentSummary()); + response.setOperateTime(ele.getOperateTime()); + response.setOperateUserPhone(ele.getIdentityUserPhone()); + response.setOuName(ele.getOuName()); + response.setId(ele.getId().toString()); + resList.add(response); + }); + return resList; + } /*** * workspaceId 查询 WS 信息 From aef72f0b5ba85cac154371ad9eda8d110e529335 Mon Sep 17 00:00:00 2001 From: pepsi Date: Sun, 9 Oct 2022 13:37:55 +0800 Subject: [PATCH 10/11] add sql script --- .../scripts/createtable_20221014.sql | 30 +++++++++++++++++++ .../log/platform/server/XlogApplication.java | 4 --- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 axzo-log-server/scripts/createtable_20221014.sql diff --git a/axzo-log-server/scripts/createtable_20221014.sql b/axzo-log-server/scripts/createtable_20221014.sql new file mode 100644 index 0000000..a167178 --- /dev/null +++ b/axzo-log-server/scripts/createtable_20221014.sql @@ -0,0 +1,30 @@ +create table log_record ( + id bigint auto_increment not null comment '主键' primary key, + service_name varchar(64) default '' not null comment '调用方服务名', + feature_name varchar(128) default '' not null comment '功能名称', + feature_code varchar(128) default '' not null comment '功能名称Code', + log_grade tinyint default 4 not null comment '日志等级 0:P0 1:P1 2:P2 3:P3 4:P4', + operate_time datetime default CURRENT_TIMESTAMP not null comment '操作时间', + terminal varchar(64) default '' not null comment '所属终端', + identity_id bigint default 0 not null comment '操作人Id', + identity_user_name varchar(64) default '' not null comment '操作人名字', + identity_user_phone varchar(64) default '' not null comment '操作人手机号', + identity_type bigint default 0 not null comment '操作人类型-与档案域一致 1:工人 2:班组长 3:从业人员 4:监管人员 5:运营人员', + workspace_id bigint default 0 not null comment '工作台Id', + ou_id bigint default 0 not null comment '单位Id', + workspace_name varchar(255) default '0' not null comment '工作台名字', + ou_name varchar(255) default '0' not null comment '单位名字', + resource_id bigint default 0 not null comment '资源Id 预防更小范围数据权限预留字段', + resource_type int default 0 not null comment '资源类型 预防更小范围数据权限预留字段', + operate_user_ip varchar(32) default '' not null comment '操作人Ip', + operate_before text null comment '操作前内容', + is_delete bigint default 0 not null, + create_at datetime default CURRENT_TIMESTAMP not null, + update_at datetime null, + content_summary varchar(255) default '' not null comment '内容摘要', + log_ext varchar(255) default '' not null comment '日志拓展内容', + operate_table varchar(64) default '' not null comment '操作表名', + operate_after text null comment '操作后内容', + operate_type tinyint not null comment '操作类型 1:add 2:add_batch 3:update 4:update_batch 5:delete 6:delete_batch', + operate_param text null comment '操作参数' +) comment '操作日志记录表'; \ No newline at end of file diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java index 9aa42f8..8762952 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/XlogApplication.java @@ -31,15 +31,11 @@ public class XlogApplication { Environment env = context.getEnvironment(); logger.info("Application 【{}】 is running on 【{}】 environment!\n\t" + "MySQL: \t{}\t username:{}\t\n\t" + - "Redis: \t{}:{}\t database:{}\t\n\t" + "RabbitMQ: \t{}\t username:{},\t\n", env.getProperty("spring.application.name"), env.getProperty("spring.profiles.active"), env.getProperty("spring.datasource.url"), env.getProperty("spring.datasource.username"), - env.getProperty("spring.redis.host"), - env.getProperty("spring.redis.port"), - env.getProperty("spring.redis.database"), env.getProperty("spring.rabbitmq.addresses"), env.getProperty("spring.rabbitmq.username")); } From aa8e03e8f8ac8f19a288e53006ed8f980ff00dcf Mon Sep 17 00:00:00 2001 From: pepsi Date: Mon, 10 Oct 2022 17:28:36 +0800 Subject: [PATCH 11/11] modify dto desc --- .../log/platform/server/consumer/OperateLogMqConsumer.java | 3 ++- .../server/controller/api/OperateLogController.java | 4 ++-- .../axzo/log/platform/server/dto/OperateLogQueryReqDTO.java | 4 ++-- .../cn/axzo/log/platform/server/dto/OperateLogReqDTO.java | 2 +- .../log/platform/server/config/RabbitMqConsumerTest.java | 6 +++--- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java index f3ad4ec..ee71195 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/consumer/OperateLogMqConsumer.java @@ -7,6 +7,7 @@ import com.rabbitmq.client.Channel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @@ -26,7 +27,7 @@ public class OperateLogMqConsumer { @Resource private OperateLogService operateLogService; - @RabbitListener(queues = "${oprlog.consumer.queue.name:unified.operate.log}") + @RabbitListener(queuesToDeclare = @Queue("${log-plat.oprlog.queue.name:log-plat.oprlog.queue}")) public void consumerOprlogs(Message message, Channel channel) throws IOException { String msg = new String(message.getBody(), StandardCharsets.UTF_8); try { diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java index 12dfa47..71bfbc8 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java @@ -52,7 +52,7 @@ public class OperateLogController { } @RequestMapping(value = "/operateLog/queryForPage", method = RequestMethod.POST) - @ApiOperation(value = "操作日志查询") + @ApiOperation(value = "操作日志分页查询") public CommonResponse> operateLogsQuery(@RequestBody @Valid OperateLogQueryReqDTO req, BindingResult bindingResult) { //参数缺失等返回 @@ -75,7 +75,7 @@ public class OperateLogController { @RequestMapping(value = "/operateLog/queryDetail", method = RequestMethod.POST) - @ApiOperation(value = "单条日志详情查询") + @ApiOperation(value = "操作日志详情查询") public CommonResponse operateLogDetail(@RequestBody OperateLogQueryDetailReqDTO reqDTO) { try { OperateLogQueryDetailRespDTO detail = operateLogService.queryOperateLogDetail(reqDTO); diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java index 41ed4f3..d9eb883 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogQueryReqDTO.java @@ -46,7 +46,7 @@ public class OperateLogQueryReqDTO extends PageRequest { /** * 开始时间 */ - @ApiModelProperty(value = "操作开始时间", position = 5, required = true) + @ApiModelProperty(value = "操作开始时间", position = 5, required = true, example = "2022-10-10 12:12:12") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @NotNull private Date startTime; @@ -54,7 +54,7 @@ public class OperateLogQueryReqDTO extends PageRequest { /** * 结束时间 */ - @ApiModelProperty(value = "操作结束时间", position = 6, required = true) + @ApiModelProperty(value = "操作结束时间", position = 6, required = true, example = "2022-10-10 12:12:12") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @NotNull private Date endTime; diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java index 25a5bc3..b0ea522 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/dto/OperateLogReqDTO.java @@ -49,7 +49,7 @@ public class OperateLogReqDTO { /** * 操作时间 */ - @ApiModelProperty(value = "操作时间", required = true, position = 5) + @ApiModelProperty(value = "操作时间", required = true, position = 5, example = "2022-10-10 12:12:12") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @NotNull(message = "操作时间不能为空") private Date operateTime; diff --git a/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java index bd09be5..7c53a87 100644 --- a/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java +++ b/axzo-log-server/src/test/java/cn/axzo/log/platform/server/config/RabbitMqConsumerTest.java @@ -16,9 +16,9 @@ import java.util.Date; */ public class RabbitMqConsumerTest extends XlogApplicationTestBase { - public static final String OPERATE_LOG_QUEUE_NAME = "unified.operate.log"; - public static final String OPERATE_LOG_EXCHANGE = "unified.operate.log.exchange"; - public static final String OPERATE_LOG_ROUTING_KEY = "unified.operate.log.routingKey"; + public static final String OPERATE_LOG_QUEUE_NAME = "log-plat.oprlog.queue"; + public static final String OPERATE_LOG_EXCHANGE = "log-plat.oprlog.test.exchange"; + public static final String OPERATE_LOG_ROUTING_KEY = "log-plat.oprlog.test.routingKey"; @Resource private RabbitTemplate rabbitTemplate;