初始化项目

This commit is contained in:
2026-04-21 16:12:04 +08:00
parent 4541af2c63
commit f9d96473da
443 changed files with 36365 additions and 19 deletions

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.xujun</groupId>
<artifactId>xtools-app-common</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>xtools-app-common-cache</artifactId>
<!-- 依赖 -->
<dependencies>
<!-- xtools begin -->
<!-- xtools-extend -->
<dependency>
<groupId>org.xujun</groupId>
<artifactId>xtools-extend</artifactId>
</dependency>
<!-- xtools-boot-log -->
<dependency>
<groupId>org.xujun</groupId>
<artifactId>xtools-boot-log</artifactId>
</dependency>
<!-- xtools-boot-cache-redis -->
<dependency>
<groupId>org.xujun</groupId>
<artifactId>xtools-boot-cache-redis</artifactId>
</dependency>
<!-- xtools end -->
<!-- aop -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,73 @@
package xtools.app.common.cache.aop;
import com.alibaba.fastjson2.JSONObject;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import xtools.boot.api.model.dto.log.LogTrack;
import xtools.boot.log.LogBus;
import xtools.boot.log.enums.LogBusBaseType;
import xtools.boot.log.holder.LogTrackHolder;
import xtools.core.enums.LogLevel;
import java.util.Objects;
/**
* <p>Title : RedisServiceAop</p>
* <p>Description : RedisServiceAop</p>
* <p>DevelopTools : Idea_x64_v2026.1</p>
* <p>DevelopSystem : macOS Sequoia 15.7.5</p>
* <p>Company : org.xujun</p>
*
* @author : XuJun
* @version : 1.0.0
* @date : 2026/2/11 14:07
*/
@Aspect
@Component
public class RedisServiceAop {
/**
* 方法切面
*/
@Pointcut("execution(* xtools.boot.cache.redis.base.RedisService.*(..))")
public void methods() {
}
/**
* 调用记录
*
* @param joinPoint 切点
* @return 调用结果
* @throws Throwable 异常信息
*/
@Around("methods()")
public Object logMethodCall(ProceedingJoinPoint joinPoint) throws Throwable {
LogTrack logTrack = LogTrackHolder.getDefNull();
if (Objects.isNull(logTrack)) {
return joinPoint.proceed();
}
long startTime = System.currentTimeMillis();
String method = joinPoint.getSignature().getName();
Object[] args = joinPoint.getArgs();
Exception err = null;
Object result = null;
try {
result = joinPoint.proceed();
return result;
} catch (Exception e) {
err = e;
throw e;
} finally {
long endTime = System.currentTimeMillis();
JSONObject logData = JSONObject.of("method", method, "args", args, "result", result, "execTime", endTime - startTime);
LogBus.init(err == null ? LogLevel.INFO : LogLevel.ERROR, LogBusBaseType.REDIS, logTrack)
.data(logData)
.error(err)
.save();
}
}
}

View File

@@ -0,0 +1,107 @@
package xtools.app.common.cache.enums;
import xtools.boot.cache.redis.enums.BaseCacheEnum;
import xtools.core.extend.TemplateUtils;
/**
* <p>Title : AppCache</p>
* <p>Description : AppCache</p>
* <p>DevelopTools : Idea_x64_v2026.1</p>
* <p>DevelopSystem : macOS Sequoia 15.7.5</p>
* <p>Company : org.xujun</p>
*
* @author : XuJun
* @version : 1.0.0
* @date : 2026/2/4 16:27
*/
public enum AppCache implements BaseCacheEnum {
// uid加密SM2
UID_SM2("uid:{}:sm2", 5 * 60L),
// uid验证码
UID_CAPTCHA("uid:{}:captcha", 60L),
// SYS 授权用户信息
AUTH_SYS_USER("auth:sys:user:", 60 * 60L),
// SYS 授权 URI
AUTH_SYS_URI("auth:sys:uri", -1L),
// CLOUD 授权 TOKEN
AUTH_CLOUD_TOKEN("auth:cloud:token", 60L),
// MQ消息错误次数
MQ_MSG_ERR_COUNT("mq:msg:err:", 60L),
// JOB锁
LOCK_JOB("lock:job:", 5 * 60L),
// 风控IP
RISK_IP("risk:ip:", -1L),
// 风控URI
RISK_URI("risk:uri:", -1L),
// 系统参数缓存
SYS_CACHE_PARAM("sys:cache:param:", -1L),
// 系统JAR包缓存
SYS_CACHE_JAR("sys:cache:jar:", -1L),
// 地址缓存
SYS_CACHE_ADDR("sys:cache:addr:", 60 * 60L),
// 天气缓存
SYS_CACHE_HOME_WEATHER("sys:cache:home:weather:", 30 * 60L),
;
/**
* 系统缓存前缀
*/
private final static String SYS_CACHE_PREFIX = "xtools-app:";
/**
* key
*/
private final String key;
/**
* 超时时间
*/
private final Long expireTime;
/**
* 构造方法
*
* @param key 缓存 key
* @param expireTime 过期时间
*/
AppCache(String key, Long expireTime) {
this.key = key;
this.expireTime = expireTime;
}
/**
* 获取缓存 key
*
* @param param 参数
* @return 缓存 key
*/
public String key(Object... param) {
return SYS_CACHE_PREFIX + TemplateUtils.format(key, param);
}
/**
* 获取缓存 key
*
* @return 缓存 key
*/
@Override
public String key() {
return SYS_CACHE_PREFIX + key;
}
/**
* 获取缓存过期时间
*
* @return 缓存过期时间
*/
@Override
public Long expireTime() {
return expireTime;
}
}