Merge branch 'feature/REQ-3282' into 'master'

Feature/req 3282

See merge request universal/infrastructure/backend/axzo-log-plat!143
This commit is contained in:
张弘昊 2025-01-08 02:01:54 +00:00
commit a2c484c50b
10 changed files with 214 additions and 7 deletions

43
axzo-log-api-v2/pom.xml Normal file
View File

@ -0,0 +1,43 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>axzo-log-plat</artifactId>
<groupId>cn.axzo.platform</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>axzo-log-api-v2</artifactId>
<packaging>jar</packaging>
<name>axzo-log-api-v2</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>cn.axzo.foundation</groupId>
<artifactId>common-lib</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,14 @@
package cn.axzo.platform.api.config;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/10
*/
@Configuration
@EnableFeignClients(basePackages = "cn.axzo.platform.api.**.feign")
public class LogPlatApiV2Config {
}

View File

@ -0,0 +1,37 @@
package cn.axzo.platform.api.log.feign;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.platform.api.log.req.LogAddV2Req;
import cn.axzo.platform.api.log.req.LogBatchAddV2Req;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(
value = "log-plat",
url = "${axzo.service.log-plat:http://log-plat:8080}"
)
public interface LogV2Api {
/**
* 添加日志
*
* @param req 日志信息 {@link LogAddV2Req}
* @return 日志id
*/
@PostMapping(value = "/api/log/add/v2", consumes = "application/json")
ApiResult<String> addLog(@RequestBody @Validated LogAddV2Req req);
/**
* 批量添加日志
*
* @param req 日志列表 {@link LogBatchAddV2Req}
* @return 日志id列表
*/
@PostMapping(value = "/api/log/add/batch/v2", consumes = "application/json")
ApiResult<List<String>> batchAddLogs(@RequestBody @Validated LogBatchAddV2Req req);
}

View File

@ -0,0 +1,45 @@
package cn.axzo.platform.api.log.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 新增日志请求参数
*
* @author chenwenjian
* @version 1.0
* @date 2024/9/11 10:51
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LogAddV2Req {
/**
* 场景
*/
@NotBlank(message = "scene is required")
private String scene;
/**
* 日志级别, DEBUG, INFO, WARN, ERROR
*/
@NotBlank(message = "level is required")
private String level;
/**
* 日志标签建议可以将服务名称操作等信息作为tag
*/
private List<String> tags;
/**
* 日志内容需要是json格式
*/
private String message;
}

View File

@ -0,0 +1,26 @@
package cn.axzo.platform.api.log.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* @author chenwenjian
* @version 1.0
* @date 2024/9/12 10:56
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LogBatchAddV2Req {
@NotEmpty(message = "logs is required")
@Valid
private List<LogAddV2Req> logs;
}

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.axzo.platform.api.config.LogPlatApiV2Config

View File

@ -5,6 +5,7 @@
<groupId>cn.axzo.platform</groupId> <groupId>cn.axzo.platform</groupId>
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>axzo-log-api</artifactId> <artifactId>axzo-log-api</artifactId>

View File

@ -74,7 +74,6 @@
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<!--mybatis-plus-->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId> <artifactId>mybatis-plus-boot-starter</artifactId>
@ -113,11 +112,6 @@
<artifactId>maokai-api</artifactId> <artifactId>maokai-api</artifactId>
</dependency> </dependency>
<!-- <dependency>
<groupId>cn.axzo.basics</groupId>
<artifactId>basics-organizational-api</artifactId>
</dependency>-->
<dependency> <dependency>
<groupId>cn.axzo.apollo</groupId> <groupId>cn.axzo.apollo</groupId>
<artifactId>apollo-workspace-api</artifactId> <artifactId>apollo-workspace-api</artifactId>
@ -173,7 +167,12 @@
<artifactId>graphql-java-tools</artifactId> <artifactId>graphql-java-tools</artifactId>
<version>5.2.4</version> <version>5.2.4</version>
</dependency> </dependency>
<dependency>
<groupId>cn.axzo.platform</groupId>
<artifactId>axzo-log-api-v2</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -0,0 +1,39 @@
package cn.axzo.log.platform.server.controller.api.v2;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.log.platform.client.model.req.LogAddReq;
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
import cn.axzo.log.platform.server.service.LogService;
import cn.axzo.platform.api.log.feign.LogV2Api;
import cn.axzo.platform.api.log.req.LogAddV2Req;
import cn.axzo.platform.api.log.req.LogBatchAddV2Req;
import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/13
*/
@RestController
@RequiredArgsConstructor
public class LogV2ApiController implements LogV2Api {
private final LogService logService;
@Override
public ApiResult<String> addLog(LogAddV2Req req) {
LogAddReq addReq = BeanUtil.copyProperties(req, LogAddReq.class);
String result = logService.addLog(addReq);
return ApiResult.success(result);
}
@Override
public ApiResult<List<String>> batchAddLogs(LogBatchAddV2Req req) {
LogBatchAddReq addReq = BeanUtil.copyProperties(req, LogBatchAddReq.class);
List<String> resultList = logService.batchAddLogs(addReq);
return ApiResult.success(resultList);
}
}

View File

@ -15,6 +15,7 @@
<modules> <modules>
<module>axzo-log-server</module> <module>axzo-log-server</module>
<module>axzo-log-api</module> <module>axzo-log-api</module>
<module>axzo-log-api-v2</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>