diff --git a/common/common-dubbo/pom.xml b/common/common-dubbo/pom.xml index e6537a9..16bfced 100644 --- a/common/common-dubbo/pom.xml +++ b/common/common-dubbo/pom.xml @@ -12,11 +12,15 @@ common-dubbo - 3.0.3 + 3.2.0 UTF-8 + + cn.fateverse + common-core + org.apache.dubbo dubbo-registry-nacos @@ -45,6 +49,12 @@ org.apache.dubbo dubbo-spring-boot-starter ${dubbo.version} + + + com.alibaba.fastjson2 + fastjson2 + + diff --git a/common/common-log/src/main/java/cn/fateverse/common/log/LogAutoConfiguration.java b/common/common-log/src/main/java/cn/fateverse/common/log/LogAutoConfiguration.java index 005a4e8..26b0e44 100644 --- a/common/common-log/src/main/java/cn/fateverse/common/log/LogAutoConfiguration.java +++ b/common/common-log/src/main/java/cn/fateverse/common/log/LogAutoConfiguration.java @@ -6,6 +6,7 @@ import cn.fateverse.common.log.service.OperationService; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; /** @@ -17,13 +18,13 @@ import org.springframework.context.annotation.Bean; public class LogAutoConfiguration { @Bean - public LogAspect logAspect(){ + public LogAspect logAspect() { return new LogAspect(); } @Bean - public OperationService operationService(OperationProperties properties) { - return new OperationService(properties); + public OperationService operationService(OperationProperties properties, Environment environment) { + return new OperationService(properties, environment); } } diff --git a/common/common-log/src/main/java/cn/fateverse/common/log/service/OperationService.java b/common/common-log/src/main/java/cn/fateverse/common/log/service/OperationService.java index 3348e02..09cc235 100644 --- a/common/common-log/src/main/java/cn/fateverse/common/log/service/OperationService.java +++ b/common/common-log/src/main/java/cn/fateverse/common/log/service/OperationService.java @@ -11,10 +11,12 @@ import com.alibaba.fastjson2.JSON; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.Async; import org.springframework.util.ObjectUtils; import javax.annotation.PostConstruct; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -35,14 +37,23 @@ public class OperationService { @DubboReference private DubboLogService logService; + + private final String applicationName; + private final OperationProperties properties; private final List operationLogListCache; - public OperationService(OperationProperties properties) { + public OperationService(OperationProperties properties, Environment environment) { this.properties = properties; this.operationLogListCache = new ArrayList<>(properties.getCacheSize()); + String applicationName = environment.getProperty("spring.application.name"); + if (ObjectUtils.isEmpty(applicationName)) { + log.error("applicationName can not be null"); + throw new RuntimeException("applicationName can not be null"); + } + this.applicationName = applicationName; } @@ -62,6 +73,7 @@ public class OperationService { @Async public void asyncExecute(OperationLog operationLog, Object jsonResult, Throwable e, Long time) { operationLog.setState(BusinessState.SUCCESS.ordinal()); + operationLog.setApplicationName(applicationName); // 返回参数 if (jsonResult instanceof Result) { Result result = (Result) jsonResult; diff --git a/common/common-seata/pom.xml b/common/common-seata/pom.xml index 2fdabbd..782ba98 100644 --- a/common/common-seata/pom.xml +++ b/common/common-seata/pom.xml @@ -23,6 +23,12 @@ com.alibaba.cloud spring-cloud-starter-alibaba-seata + + + com.alibaba + fastjson + + io.seata diff --git a/common/common-security/pom.xml b/common/common-security/pom.xml index a1b3f92..d6159a0 100644 --- a/common/common-security/pom.xml +++ b/common/common-security/pom.xml @@ -27,6 +27,12 @@ com.alibaba.cloud spring-cloud-starter-alibaba-sentinel + + + com.alibaba + fastjson + + diff --git a/gateway/pom.xml b/gateway/pom.xml index 79ffb34..ee7b72e 100644 --- a/gateway/pom.xml +++ b/gateway/pom.xml @@ -27,6 +27,12 @@ com.alibaba.cloud spring-cloud-starter-alibaba-sentinel + + + com.alibaba + fastjson + + diff --git a/log/log-api/src/main/java/cn/fateverse/log/entity/OperationLog.java b/log/log-api/src/main/java/cn/fateverse/log/entity/OperationLog.java index d4b18ff..c8d15d2 100644 --- a/log/log-api/src/main/java/cn/fateverse/log/entity/OperationLog.java +++ b/log/log-api/src/main/java/cn/fateverse/log/entity/OperationLog.java @@ -27,6 +27,11 @@ public class OperationLog implements Serializable { */ private Long userId; + /** + * 应用名称 + */ + private String applicationName; + /** * 操作模块 */ diff --git a/log/log-api/src/main/java/cn/fateverse/log/query/OperationLogQuery.java b/log/log-api/src/main/java/cn/fateverse/log/query/OperationLogQuery.java index 27d8349..7bb5cc9 100644 --- a/log/log-api/src/main/java/cn/fateverse/log/query/OperationLogQuery.java +++ b/log/log-api/src/main/java/cn/fateverse/log/query/OperationLogQuery.java @@ -1,7 +1,6 @@ package cn.fateverse.log.query; import cn.fateverse.common.core.entity.QueryTime; -import io.swagger.annotations.ApiModel; import lombok.Data; @@ -12,7 +11,6 @@ import lombok.Data; * @Version: V2.0 */ @Data -@ApiModel("日志查询实体") public class OperationLogQuery extends QueryTime { /** @@ -20,6 +18,8 @@ public class OperationLogQuery extends QueryTime { */ private String title; + private String applicationName; + /** * 操作人员 */ diff --git a/log/log-api/src/main/java/cn/fateverse/log/vo/OperationLogVo.java b/log/log-api/src/main/java/cn/fateverse/log/vo/OperationLogVo.java index 3b67251..129ef45 100644 --- a/log/log-api/src/main/java/cn/fateverse/log/vo/OperationLogVo.java +++ b/log/log-api/src/main/java/cn/fateverse/log/vo/OperationLogVo.java @@ -32,6 +32,8 @@ public class OperationLogVo implements Serializable { */ private String title; + private String applicationName; + /** * 业务类型(0其它 1新增 2修改 3删除) */ @@ -111,6 +113,7 @@ public class OperationLogVo implements Serializable { public static OperationLogVo toOperationLogVo(OperationLog operationLog) { return OperationLogVo.builder() .operId(operationLog.getOperId()) + .applicationName(operationLog.getApplicationName()) .title(operationLog.getTitle()) .businessType(operationLog.getBusinessType()) .method(operationLog.getMethod()) diff --git a/log/log-biz/src/main/java/cn/fateverse/log/controller/OperationLogController.java b/log/log-biz/src/main/java/cn/fateverse/log/controller/OperationLogController.java index ce804bf..595bb9a 100644 --- a/log/log-biz/src/main/java/cn/fateverse/log/controller/OperationLogController.java +++ b/log/log-biz/src/main/java/cn/fateverse/log/controller/OperationLogController.java @@ -2,12 +2,9 @@ package cn.fateverse.log.controller; import cn.fateverse.common.core.result.Result; import cn.fateverse.common.core.result.page.TableDataInfo; -import cn.fateverse.common.security.annotation.Anonymity; import cn.fateverse.log.query.OperationLogQuery; import cn.fateverse.log.service.OperationService; import cn.fateverse.log.vo.OperationLogVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -19,7 +16,6 @@ import org.springframework.web.bind.annotation.*; * @author Clay * @date 2022/11/1 */ -@Api(tags = "操作日志管理") @Slf4j @RestController @RequestMapping("/log") @@ -31,13 +27,7 @@ public class OperationLogController { this.operationService = operationService; } - /** - * @param operationLogQuery - * @return - */ @GetMapping("/list") - @Anonymity - @ApiOperation("查询日志信息") @PreAuthorize("@ss.hasPermission('admin:log:list')") public Result> SearchLog(OperationLogQuery operationLogQuery) { TableDataInfo dataTable = operationService.search(operationLogQuery); @@ -45,7 +35,6 @@ public class OperationLogController { } @GetMapping("/{operId}") - @ApiOperation("查询日志信息") @PreAuthorize("@ss.hasPermission('admin:log:list')") public Result SearchLog(@PathVariable Long operId) { OperationLogVo operationLogVo = operationService.select(operId); @@ -53,7 +42,6 @@ public class OperationLogController { } @DeleteMapping("/{operIds}") - @ApiOperation("操作日志删除") @PreAuthorize("@ss.hasPermission('admin:log:del')") public Result OperationInfoRemove(@PathVariable Long[] operIds) { if (operIds.length == 0) { diff --git a/log/log-biz/src/main/resources/mapper/OperationMapper.xml b/log/log-biz/src/main/resources/mapper/OperationMapper.xml index 88ba3ce..664229b 100644 --- a/log/log-biz/src/main/resources/mapper/OperationMapper.xml +++ b/log/log-biz/src/main/resources/mapper/OperationMapper.xml @@ -7,6 +7,7 @@ + @@ -24,15 +25,35 @@ + + select oper_id, + title, + application_name, + business_type, + method, + request_method, + operator_type, + oper_name, + dept_name, + oper_url, + oper_ip, + oper_location, + state, + oper_time, + consume_time + from sys_operation_log + + insert into sys_operation_log - (oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, + (oper_id, title, application_name, business_type, method, request_method, operator_type, oper_name, dept_name, + oper_url, oper_ip, oper_location, oper_param, json_result, state, error_msg, error_stack_trace, oper_time, consume_time) values - (#{log.operId}, #{log.title}, #{log.businessType}, #{log.method}, #{log.requestMethod}, #{log.operatorType}, - #{log.operName}, + (#{log.operId}, #{log.title}, #{log.applicationName}, #{log.businessType}, #{log.method}, + #{log.requestMethod}, #{log.operatorType},#{log.operName}, #{log.deptName}, #{log.operUrl}, #{log.operIp}, #{log.operLocation}, #{log.operParam}, #{log.jsonResult}, #{log.state}, #{log.errorMsg}, #{log.errorStackTrace}, #{log.operTime}, #{log.consumeTime}) @@ -41,15 +62,16 @@ - select oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, - oper_ip, oper_location, state, oper_time, consume_time - from sys_operation_log + and title like concat('%',#{operation.title},'%') + + and application_name like concat('%',#{operation.applicationName},'%') + and oper_name like concat('%',#{operation.operName},'%') @@ -125,6 +151,9 @@ and title like concat('%',#{operation.title},'%') + + and application_name like concat('%',#{operation.applicationName},'%') + and oper_name like concat('%',#{operation.operName},'%') @@ -153,6 +182,7 @@