feat(REQ-2972): 日志批量新增接口
This commit is contained in:
parent
6ea6194f00
commit
81d7fb5213
@ -1,6 +1,7 @@
|
||||
package cn.axzo.log.platform.client.feign;
|
||||
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogFindReq;
|
||||
import cn.axzo.log.platform.client.model.resp.LogResp;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
@ -51,4 +52,13 @@ public interface LogApi {
|
||||
*/
|
||||
@PostMapping(value = "/api/log/addLog", consumes = "application/json")
|
||||
CommonResponse<String> addLog(@RequestBody @Valid LogAddReq req);
|
||||
|
||||
/**
|
||||
* 批量添加日志
|
||||
*
|
||||
* @param req 日志列表 {@link LogBatchAddReq}
|
||||
* @return 日志id列表
|
||||
*/
|
||||
@PostMapping(value = "/batchAddLogs", consumes = "application/json")
|
||||
CommonResponse<List<String>> batchAddLogs(@RequestBody @Valid LogBatchAddReq req);
|
||||
}
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package cn.axzo.log.platform.client.model.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 LogBatchAddReq {
|
||||
|
||||
@NotEmpty(message = "logs is required")
|
||||
private List<@Valid LogAddReq> logs;
|
||||
}
|
||||
@ -2,13 +2,16 @@ package cn.axzo.log.platform.server.controller.api;
|
||||
|
||||
import cn.axzo.log.platform.client.feign.LogApi;
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogFindReq;
|
||||
import cn.axzo.log.platform.client.model.resp.LogResp;
|
||||
import cn.axzo.log.platform.server.service.LogService;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -38,4 +41,9 @@ public class LogController implements LogApi {
|
||||
public CommonResponse<String> addLog(LogAddReq req) {
|
||||
return CommonResponse.success(logService.addLog(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResponse<List<String>> batchAddLogs(@RequestBody @Valid LogBatchAddReq req) {
|
||||
return CommonResponse.success(logService.batchAddLogs(req));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.log.platform.server.controller.web;
|
||||
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogFindReq;
|
||||
import cn.axzo.log.platform.client.model.resp.LogResp;
|
||||
import cn.axzo.log.platform.server.service.LogService;
|
||||
@ -64,4 +65,15 @@ public class WebLogController {
|
||||
CommonResponse<String> addLog(@RequestBody @Valid LogAddReq req) {
|
||||
return CommonResponse.success(logService.addLog(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加日志
|
||||
*
|
||||
* @param req 日志列表 {@link LogBatchAddReq}
|
||||
* @return 日志id列表
|
||||
*/
|
||||
@PostMapping(value = "/batchAddLogs", consumes = "application/json")
|
||||
CommonResponse<List<String>> batchAddLogs(@RequestBody @Valid LogBatchAddReq req) {
|
||||
return CommonResponse.success(logService.batchAddLogs(req));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,18 @@
|
||||
package cn.axzo.log.platform.server.resolvers;
|
||||
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogFindReq;
|
||||
import cn.axzo.log.platform.client.model.resp.LogResp;
|
||||
import cn.axzo.log.platform.server.service.LogService;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import com.coxautodev.graphql.tools.GraphQLMutationResolver;
|
||||
import com.coxautodev.graphql.tools.GraphQLQueryResolver;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -54,4 +58,14 @@ public class LogResolver implements GraphQLQueryResolver, GraphQLMutationResolve
|
||||
public String addLog(LogAddReq req) {
|
||||
return logService.addLog(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加日志
|
||||
*
|
||||
* @param req 日志列表 {@link LogBatchAddReq}
|
||||
* @return 日志id列表
|
||||
*/
|
||||
public List<String> batchAddLogs(LogBatchAddReq req) {
|
||||
return logService.batchAddLogs(req);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.log.platform.server.service;
|
||||
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogFindReq;
|
||||
import cn.axzo.log.platform.client.model.resp.LogResp;
|
||||
|
||||
@ -18,4 +19,6 @@ public interface LogService {
|
||||
LogResp findLogById(String id);
|
||||
|
||||
List<LogResp> findLogsWithExample(LogFindReq req);
|
||||
|
||||
List<String> batchAddLogs(LogBatchAddReq req);
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.log.platform.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.util.NumberUtil;
|
||||
import cn.axzo.log.platform.client.model.req.LogAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
|
||||
import cn.axzo.log.platform.client.model.req.LogFindReq;
|
||||
import cn.axzo.log.platform.client.model.resp.LogResp;
|
||||
import cn.axzo.log.platform.server.entity.LogEntity;
|
||||
@ -23,6 +24,7 @@ import java.lang.reflect.Field;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@ -93,6 +95,20 @@ public class LogServiceImpl implements LogService {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加日志
|
||||
*
|
||||
* @param req 日志列表 {@link LogBatchAddReq}
|
||||
* @return 日志id列表
|
||||
*/
|
||||
@Override
|
||||
public List<String> batchAddLogs(LogBatchAddReq req) {
|
||||
List<LogEntity> logEntities = BeanUtil.copyToList(req.getLogs(), LogEntity.class);
|
||||
logEntities.forEach(logEntity -> logEntity.setTimestamp(System.currentTimeMillis()));
|
||||
logMapper.saveAll(logEntities);
|
||||
return logEntities.stream().map(LogEntity::getId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件
|
||||
*
|
||||
|
||||
@ -5,6 +5,7 @@ type Query {
|
||||
|
||||
type Mutation {
|
||||
addLog(logReq: LogAddReq): String!
|
||||
batchAddLogs(logsReq: LogBatchAddReq): [String!]!
|
||||
}
|
||||
|
||||
type LogResp {
|
||||
@ -32,4 +33,9 @@ input LogAddReq {
|
||||
level: String!
|
||||
tags: [String]
|
||||
message: String!
|
||||
}
|
||||
|
||||
# 批量添加日志入参
|
||||
input LogBatchAddReq {
|
||||
logs: [LogAddReq]!
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user