Merge branch 'master' of 94636829/pigx into dev

This commit is contained in:
pig666 authored and lengleng committed 2022-05-29 13:46:21 +08:00
commit 7429455261
8 files changed
+108 -90

No files matched your search

+1 -1
View File
@@ -32,7 +32,7 @@
<groovy.version>3.0.3</groovy.version>
<jsoup.version>1.13.1</jsoup.version>
<security.oauth.version>2.3.6.RELEASE</security.oauth.version>
<fastjson.version>1.2.75</fastjson.version>
<fastjson.version>1.2.83</fastjson.version>
<xxl.job.version>2.3.0</xxl.job.version>
<aliyun.version>3.0.52.ALL</aliyun.version>
<aws.version>1.11.543</aws.version>
@@ -34,6 +34,12 @@ public @interface SysLog {
* 描述
* @return {String}
*/
String value();
String value() default "";
/**
* spel 表达式
* @return 日志描述
*/
String expression() default "";
}
@@ -58,11 +58,19 @@ public class SysLogAspect {
log.debug("[类名]:{},[方法]:{}", strClassName, strMethodName);
String value = sysLog.value();
if (StrUtil.contains(value, "#")) {
String expression = sysLog.expression();
// 当前表达式存在 SPEL,会覆盖 value 的值
if (StrUtil.isNotBlank(expression)) {
// 解析SPEL
MethodSignature signature = (MethodSignature) point.getSignature();
EvaluationContext context = SysLogUtils.getContext(point.getArgs(), signature.getMethod());
value = SysLogUtils.getValue(context, value, String.class);
try {
value = SysLogUtils.getValue(context, expression, String.class);
}
catch (Exception e) {
// SPEL 表达式异常,则获取 value 的值
log.error("@SysLog 解析SPEL {} 异常", expression);
}
}
SysLogDTO logDTO = SysLogUtils.getSysLog();
@@ -1,7 +1,7 @@
package com.pig4cloud.pigx.common.sequence.range.impl.db;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
import com.pig4cloud.pigx.common.sequence.exception.SeqException;
import com.pig4cloud.pigx.common.sequence.range.impl.db.provider.SqlProviderFactory;
@@ -21,6 +21,8 @@ abstract class BaseDbHelper {
private static final long DELTA = 100000000L;
private final static DefaultIdentifierGenerator identifierGenerator = new DefaultIdentifierGenerator();
/**
* 创建表
* @param dataSource DB来源
@@ -60,7 +62,7 @@ abstract class BaseDbHelper {
try {
conn = dataSource.getConnection();
stmt = conn.prepareStatement(SQL_PROVIDER_FACTORY.getInsertRangeSql().replace("#tableName", tableName));
stmt.setLong(1, RandomUtil.randomLong(12));
stmt.setLong(1, identifierGenerator.nextId(null));
stmt.setString(2, name);
stmt.setLong(3, stepStart);
stmt.setTimestamp(4, new Timestamp(System.currentTimeMillis()));
@@ -25,64 +25,66 @@
2. 注意修改 <property name="${log-path}/log.path" value=""/> 的value模块
-->
<configuration debug="false" scan="false">
<property name="log.path" value="logs/${project.artifactId}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<property name="log.path" value="logs/${project.artifactId}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- Log file debug output -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
</appender>
<!-- Log file debug output -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
</appender>
<!-- Log file error output -->
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- Log file error output -->
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<logger name="com.anji" level="ERROR">
<appender-ref ref="debug"/>
</logger>
<!--nacos 心跳 INFO 屏蔽-->
<logger name="com.alibaba.nacos" level="OFF">
<appender-ref ref="error"/>
</logger>
<!--nacos 心跳 INFO 屏蔽-->
<logger name="com.alibaba.nacos" level="OFF">
<appender-ref ref="error"/>
</logger>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
<!-- 屏蔽ws 关闭异常-->
<logger name="reactor.core.publisher.Operators" level="OFF">
<appender-ref ref="error"/>
</logger>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
</root>
</configuration>
@@ -129,6 +129,7 @@ public class SysClientController {
* 同步缓存字典
* @return R
*/
@Inner(false)
@SysLog("同步终端")
@PutMapping("/sync")
public R sync() {
@@ -79,6 +79,28 @@ public class SysOauthClientDetailsServiceImpl extends ServiceImpl<SysOauthClient
@Override
@CacheEvict(value = CacheConstants.CLIENT_DETAILS_KEY, key = "#clientDetailsDTO.clientId")
public Boolean updateClientById(SysOauthClientDetailsDTO clientDetailsDTO) {
this.insertOrUpdate(clientDetailsDTO);
return Boolean.TRUE;
}
/**
* 添加客户端
* @param clientDetailsDTO
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean saveClient(SysOauthClientDetailsDTO clientDetailsDTO) {
this.insertOrUpdate(clientDetailsDTO);
return Boolean.TRUE;
}
/**
* 插入或更新客户端对象
* @param clientDetailsDTO
* @return
*/
private SysOauthClientDetails insertOrUpdate(SysOauthClientDetailsDTO clientDetailsDTO){
// copy dto 对象
SysOauthClientDetails clientDetails = new SysOauthClientDetails();
BeanUtils.copyProperties(clientDetailsDTO, clientDetails);
@@ -92,35 +114,10 @@ public class SysOauthClientDetailsServiceImpl extends ServiceImpl<SysOauthClient
clientDetails.setAdditionalInformation(informationObj.toString());
// 更新数据库
baseMapper.updateById(clientDetails);
saveOrUpdate(clientDetails);
// 更新Redis
SpringContextHolder.publishEvent(new ClientDetailsInitRunner.ClientDetailsInitEvent(clientDetails));
return Boolean.TRUE;
}
/**
* 添加客户端
* @param clientDetailsDTO
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean saveClient(SysOauthClientDetailsDTO clientDetailsDTO) {
// copy dto 对象
SysOauthClientDetails clientDetails = new SysOauthClientDetails();
BeanUtils.copyProperties(clientDetailsDTO, clientDetails);
// 获取扩展信息,插入开关相关
String information = clientDetailsDTO.getAdditionalInformation();
JSONUtil.parseObj(information).set(CommonConstants.CAPTCHA_FLAG, clientDetailsDTO.getCaptchaFlag())
.set(CommonConstants.ENC_FLAG, clientDetailsDTO.getEncFlag())
.set(CommonConstants.ONLINE_QUANTITY, clientDetailsDTO.getOnlineQuantity());
// 插入数据
this.baseMapper.insert(clientDetails);
// 更新Redis
SpringContextHolder.publishEvent(new ClientDetailsInitRunner.ClientDetailsInitEvent(clientDetails));
return Boolean.TRUE;
return clientDetails;
}
/**
@@ -156,6 +153,8 @@ public class SysOauthClientDetailsServiceImpl extends ServiceImpl<SysOauthClient
@Override
@CacheEvict(value = CacheConstants.CLIENT_DETAILS_KEY, allEntries = true)
public R syncClientCache() {
// 更新Redis
SpringContextHolder.publishEvent(new ClientDetailsInitRunner.ClientDetailsInitEvent(this));
return R.ok();
}
+1 -1
View File
@@ -33,7 +33,7 @@
</organization>
<properties>
<spring-boot.version>2.6.7</spring-boot.version>
<spring-boot.version>2.6.8</spring-boot.version>
<spring-cloud.version>2021.0.2</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>