From 3b49dea1144a424a11aa64f553ac7f0a7c424ac1 Mon Sep 17 00:00:00 2001 From: tianliyong Date: Sat, 17 Sep 2022 18:14:25 +0800 Subject: [PATCH] =?UTF-8?q?xlog-client=E7=9B=B8=E5=85=B3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 37 ++++++-- .../java/cn/axzo/xlog/api/OperateLogApi.java | 21 ----- {xlog-api => xlog-client}/pom.xml | 24 +++--- .../java/cn/axzo/xlog/client/XLogClient.java | 38 +++++++++ .../config/XLogClientAutoConfiguration.java | 20 +++++ .../cn/axzo/xlog/client/feign/XLogApi.java | 29 +++++++ .../xlog/client/feign/XLogApiFallback.java | 32 +++++++ .../xlog/client/model/OperateLogQueryReq.java | 84 +++++++++++++++++++ .../client/model/OperateLogQueryResp.java | 51 +++++++++++ .../xlog/client/model}/OperateLogReq.java | 6 +- .../main/resources/META-INF/spring.factories | 2 + xlog-server/pom.xml | 34 -------- .../server/config/OperateLogMqConsumer.java | 2 +- .../controller/api/OperateLogController.java | 2 +- .../server/service/OperateLogService.java | 2 +- .../service/impl/OperateLogServiceImpl.java | 2 +- .../server/config/RabbitMqConsumerTest.java | 2 +- .../server/service/OperateLogServiceTest.java | 2 +- 18 files changed, 309 insertions(+), 81 deletions(-) delete mode 100644 xlog-api/src/main/java/cn/axzo/xlog/api/OperateLogApi.java rename {xlog-api => xlog-client}/pom.xml (80%) create mode 100644 xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java create mode 100644 xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java create mode 100644 xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java create mode 100644 xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java create mode 100644 xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java create mode 100644 xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java rename {xlog-api/src/main/java/cn/axzo/xlog/api/dto => xlog-client/src/main/java/cn/axzo/xlog/client/model}/OperateLogReq.java (94%) create mode 100644 xlog-client/src/main/resources/META-INF/spring.factories diff --git a/pom.xml b/pom.xml index 93c8775..a166771 100644 --- a/pom.xml +++ b/pom.xml @@ -1,10 +1,6 @@ 4.0.0 - - xlog-api - xlog-server - cn.axzo.infra @@ -20,6 +16,11 @@ xlog http://maven.apache.org + + xlog-client + xlog-server + + UTF-8 1.4.2.Final @@ -48,10 +49,36 @@ + + + org.springframework.boot + spring-boot-starter + + + + + cn.axzo.framework + axzo-common + 2.0.0-SNAPSHOT + + + + + org.springframework.boot + spring-boot-starter-validation + + + org.projectlombok lombok - provided + + + + + org.springframework.boot + spring-boot-starter-test + test diff --git a/xlog-api/src/main/java/cn/axzo/xlog/api/OperateLogApi.java b/xlog-api/src/main/java/cn/axzo/xlog/api/OperateLogApi.java deleted file mode 100644 index b0663f6..0000000 --- a/xlog-api/src/main/java/cn/axzo/xlog/api/OperateLogApi.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.axzo.xlog.api; - -import cn.axzo.xlog.api.dto.OperateLogReq; -import cn.azxo.framework.common.model.CommonResponse; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -/*** - * @author: pepsi - * @description: TODO - * @date: 2022/9/16 - */ -@FeignClient(name = "xlog", url = "http://xlog:10999") -public interface OperateLogApi { - - @PostMapping("/api/operateLog/create") - CommonResponse operateLogCreate(@RequestBody OperateLogReq req); - - -} diff --git a/xlog-api/pom.xml b/xlog-client/pom.xml similarity index 80% rename from xlog-api/pom.xml rename to xlog-client/pom.xml index fc1512c..58b4057 100644 --- a/xlog-api/pom.xml +++ b/xlog-client/pom.xml @@ -10,7 +10,7 @@ 4.0.0 - xlog-api + xlog-client jar xlog-api @@ -22,24 +22,19 @@ - - javax.validation - validation-api - - - - org.hibernate.validator - hibernate-validator - - org.springframework.cloud spring-cloud-starter-openfeign + + com.alibaba + fastjson + + com.fasterxml.jackson.core - jackson-databind + jackson-annotations @@ -47,6 +42,11 @@ axzo-common + + cn.axzo.framework + axzo-core + + diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java b/xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java new file mode 100644 index 0000000..665a9ba --- /dev/null +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/XLogClient.java @@ -0,0 +1,38 @@ +package cn.axzo.xlog.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.azxo.framework.common.model.CommonPageResponse; +import cn.azxo.framework.common.model.CommonResponse; +import lombok.RequiredArgsConstructor; + +import javax.validation.Valid; + +/** + * @Author: liyong.tian + * @Date: 2022/9/17 + * @Description: + */ +@RequiredArgsConstructor +public class XLogClient { + + private final XLogApi xLogApi; + + public Boolean createOperateLog(@Valid OperateLogReq req) { + CommonResponse apiResult = xLogApi.operateLogCreate(req); + if (apiResult.getCode() == 200) { + return apiResult.getData(); + } + throw new RuntimeException(apiResult.getMsg()); + } + + public CommonPageResponse queryForPage(@Valid OperateLogQueryReq req) { + CommonResponse> apiResult = xLogApi.queryForPage(req); + if (apiResult.getCode() == 200) { + return apiResult.getData(); + } + throw new RuntimeException(apiResult.getMsg()); + } +} diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java b/xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java new file mode 100644 index 0000000..f65e442 --- /dev/null +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/config/XLogClientAutoConfiguration.java @@ -0,0 +1,20 @@ +package cn.axzo.xlog.client.config; + +import cn.axzo.xlog.client.XLogClient; +import cn.axzo.xlog.client.feign.XLogApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author: liyong.tian + * @Date: 2022/9/17 + * @Description: + */ +@Configuration +public class XLogClientAutoConfiguration { + + @Bean + public XLogClient xLogClient(XLogApi xLogApi) { + return new XLogClient(xLogApi); + } +} diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java b/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java new file mode 100644 index 0000000..8006394 --- /dev/null +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApi.java @@ -0,0 +1,29 @@ +package cn.axzo.xlog.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.azxo.framework.common.model.CommonPageResponse; +import cn.azxo.framework.common.model.CommonResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; + +import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; + +/*** + * @author: pepsi + * @description: TODO + * @date: 2022/9/16 + */ +@FeignClient(name = "xlog", url = "http://xlog:10999", fallbackFactory = XLogApiFallback.class) +public interface XLogApi { + + @PostMapping(value = "/api/operateLog/create", consumes = APPLICATION_JSON_VALUE) + CommonResponse operateLogCreate(@RequestBody OperateLogReq req); + + @PostMapping(value = "api/unified/operateLog/queryForPage", consumes = APPLICATION_JSON_VALUE) + CommonResponse> queryForPage(@RequestBody @Valid OperateLogQueryReq req); +} diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java b/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java new file mode 100644 index 0000000..c0d7246 --- /dev/null +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/feign/XLogApiFallback.java @@ -0,0 +1,32 @@ +package cn.axzo.xlog.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.azxo.framework.common.model.CommonPageResponse; +import cn.azxo.framework.common.model.CommonResponse; +import com.alibaba.fastjson.JSON; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * @Author: liyong.tian + * @Date: 2022/9/17 + * @Description: + */ +@Slf4j +@RequiredArgsConstructor +public class XLogApiFallback implements XLogApi{ + + @Override + public CommonResponse operateLogCreate(OperateLogReq req) { + log.error("创建操作日志失败,请求参数req={}", JSON.toJSONString(req)); + return CommonResponse.error("创建操作日志失败"); + } + + @Override + public CommonResponse> queryForPage(OperateLogQueryReq req) { + log.error("分页查询操作日志失败,请求参数req={}", JSON.toJSONString(req)); + return CommonResponse.error("分页查询操作日志失败"); + } +} diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java b/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java new file mode 100644 index 0000000..44bb71c --- /dev/null +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryReq.java @@ -0,0 +1,84 @@ +package cn.axzo.xlog.client.model; + +import cn.axzo.core.domain.PageRequest; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author : liuchuntao + * @date : 2022/6/28 20:08 + * @description : 操作日志请求参数 + */ +@Data +public class OperateLogQueryReq extends PageRequest { + + /** + * 调用方服务名 + */ + private String serviceName; + + /** + * 操作人 + */ + private String operateUserName; + + /** + * 事件类型 + */ + private List featureCodes; + + /** + * 功能name + */ + private String featureName; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; + + /** + * 工作台Id + */ + @JsonIgnore + private Long workspaceId; + + /** + * 单位Id + */ + @JsonIgnore + private Long ouId; + + /** + * 身份Id + */ + @JsonIgnore + private Long identityId; + + /** + * 身份类型 + */ + @JsonIgnore + private Integer identityType; + + /** + * 操作类型 1:add 2:add_batch 3:update 4:update_batch 5:delete 6:delete_batch + */ + private Integer operateType; + + /** + * 操作表名 + */ + private String operateTable; +} diff --git a/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java b/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java new file mode 100644 index 0000000..a39e7d3 --- /dev/null +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogQueryResp.java @@ -0,0 +1,51 @@ +package cn.axzo.xlog.client.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @author : liuchuntao + * @date : 2022/6/28 20:08 + * @description : 操作日志响应 + */ +@Data +public class OperateLogQueryResp { + + /** + * 操作人 + */ + private String operateUserName; + + /** + * 事件类型 + */ + private String featureCode; + + /** + * 事件类型 + */ + private String featureName; + + /** + * 事件摘要 + */ + private String contentSummary; + + /** + * 操作时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date operateTime; + + /** + * 操作人手机号 + */ + private String operateUserPhone; + + /** + * 所属单位名称 + */ + private String ouName; +} diff --git a/xlog-api/src/main/java/cn/axzo/xlog/api/dto/OperateLogReq.java b/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogReq.java similarity index 94% rename from xlog-api/src/main/java/cn/axzo/xlog/api/dto/OperateLogReq.java rename to xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogReq.java index 35ce911..3c9510b 100644 --- a/xlog-api/src/main/java/cn/axzo/xlog/api/dto/OperateLogReq.java +++ b/xlog-client/src/main/java/cn/axzo/xlog/client/model/OperateLogReq.java @@ -1,4 +1,4 @@ -package cn.axzo.xlog.api.dto; +package cn.axzo.xlog.client.model; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; @@ -37,7 +37,7 @@ public class OperateLogReq { private String featureName; /** - * 日志等级 为空默认P4 请参照 {@link cn.axzo.xlog.api.enums.LogGradeEnum} + * 日志等级 为空默认P4 请参照 {@link cn.axzo.xlog.client.enums.LogGradeEnum} */ private Integer logGrade = 4; @@ -55,7 +55,7 @@ public class OperateLogReq { /** * 人员类型 1:工人 2:班组长 3:从业人员..实际情况拓展 - * 请参照 {@link cn.axzo.xlog.api.enums.IdentityType} + * 请参照 {@link cn.axzo.xlog.client.enums.IdentityType} */ @NotNull(message = "人员类型身份不能为空") private Integer identityType; diff --git a/xlog-client/src/main/resources/META-INF/spring.factories b/xlog-client/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..324af78 --- /dev/null +++ b/xlog-client/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +cn.axzo.xlog.client.config.XLogClientAutoConfiguration \ No newline at end of file diff --git a/xlog-server/pom.xml b/xlog-server/pom.xml index db350ed..cbc55d0 100644 --- a/xlog-server/pom.xml +++ b/xlog-server/pom.xml @@ -26,23 +26,11 @@ spring-cloud-starter-bootstrap - - - org.springframework.boot - spring-boot-starter - - org.springframework.boot spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-validation - - org.springframework.boot spring-boot-starter-amqp @@ -53,13 +41,6 @@ spring-cloud-starter-alibaba-nacos-config - - - cn.axzo.framework - axzo-common - 2.0.0-SNAPSHOT - - cn.axzo.xlog xlog-api @@ -80,12 +61,6 @@ mybatis-plus-boot-starter - - - org.projectlombok - lombok - - com.github.xiaoymin knife4j-spring-boot-starter @@ -100,23 +75,14 @@ org.mapstruct mapstruct - 1.4.2.Final org.mapstruct mapstruct-processor - 1.4.2.Final provided - - - org.springframework.boot - spring-boot-starter-test - test - - junit junit diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/config/OperateLogMqConsumer.java b/xlog-server/src/main/java/cn/axzo/xlog/server/config/OperateLogMqConsumer.java index d72be45..c4fa70b 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/config/OperateLogMqConsumer.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/config/OperateLogMqConsumer.java @@ -1,6 +1,6 @@ package cn.axzo.xlog.server.config; -import cn.axzo.xlog.api.dto.OperateLogReq; +import cn.axzo.xlog.client.model.OperateLogReq; import cn.axzo.xlog.server.service.OperateLogService; import com.alibaba.fastjson.JSONObject; import com.rabbitmq.client.Channel; 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 89437e7..12ee441 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 @@ -1,6 +1,6 @@ package cn.axzo.xlog.server.controller.api; -import cn.axzo.xlog.api.dto.OperateLogReq; +import cn.axzo.xlog.client.model.OperateLogReq; import cn.axzo.xlog.server.exception.ServiceException; import cn.axzo.xlog.server.service.OperateLogService; import cn.azxo.framework.common.model.CommonResponse; diff --git a/xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java b/xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java index 0bbe9b8..366e651 100644 --- a/xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java +++ b/xlog-server/src/main/java/cn/axzo/xlog/server/service/OperateLogService.java @@ -1,6 +1,6 @@ package cn.axzo.xlog.server.service; -import cn.axzo.xlog.api.dto.OperateLogReq; +import cn.axzo.xlog.client.model.OperateLogReq; import cn.axzo.xlog.server.entity.OperateLogRecordEntity; /*** 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 0e94064..dd8cc79 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 @@ -9,7 +9,7 @@ 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.pudge.core.service.ServiceException; -import cn.axzo.xlog.api.dto.OperateLogReq; +import cn.axzo.xlog.client.model.OperateLogReq; import cn.axzo.xlog.server.entity.OperateLogRecordEntity; import cn.axzo.xlog.server.enums.IdentityType; import cn.axzo.xlog.server.repository.OperateLogRepository; diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java b/xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java index d268a76..ca74423 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java +++ b/xlog-server/src/test/java/cn/axzo/xlog/server/config/RabbitMqConsumerTest.java @@ -1,6 +1,6 @@ package cn.axzo.xlog.server.config; -import cn.axzo.xlog.api.dto.OperateLogReq; +import cn.axzo.xlog.client.model.OperateLogReq; import cn.axzo.xlog.server.XlogApplicationTestBase; import com.alibaba.fastjson.JSONObject; import org.junit.Test; diff --git a/xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java b/xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java index 589e4db..9ce041e 100644 --- a/xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java +++ b/xlog-server/src/test/java/cn/axzo/xlog/server/service/OperateLogServiceTest.java @@ -1,6 +1,6 @@ package cn.axzo.xlog.server.service; -import cn.axzo.xlog.api.dto.OperateLogReq; +import cn.axzo.xlog.client.dto.OperateLogReq; import cn.axzo.xlog.server.XlogApplicationTestBase; import cn.axzo.xlog.server.entity.OperateLogRecordEntity; import com.alibaba.fastjson.JSONObject;