1.5.0重构;

修复一大堆已知问题,
优化代码,
增加 application 类,
重构拦截器组件,
添加缓存模块,
This commit is contained in:
天爱有情
2024-07-12 14:54:25 +08:00
parent db2f409783
commit 2cfb72349d
42 changed files with 2311 additions and 192 deletions
@@ -0,0 +1,105 @@
package cloud.tianai.captcha.interceptor;
import cloud.tianai.captcha.common.AnyMap;
import lombok.Getter;
import lombok.Setter;
/**
* @Author: 天爱有情
* @date 2024/7/11 16:22
* @Description 拦截器的上下文参数
*/
@Getter
public class Context {
/** 名称. */
private String name;
/** 父容器. */
@Setter
private Context parent;
/** 当前拦截器数量. */
private Integer current;
/** 拦截器总数. */
private Integer count;
/** 拦截器组. */
private CaptchaInterceptor group;
/** The previous interceptor returns data. */
@Setter
private Object preReturnData;
/** 传输数据. */
private AnyMap data = new AnyMap();
public Context(String name, Context parent, Integer current, Integer count, CaptchaInterceptor group) {
this.name = name;
this.parent = parent;
this.current = current;
this.count = count;
this.group = group;
}
public Object getPreReturnData() {
Object returnData = preReturnData;
if (returnData == null && parent != null) {
returnData = parent.getPreReturnData();
}
return returnData;
}
public void putCurrentData(String key, Object value) {
data.put(key, value);
}
public <T> T getCurrentData(String key, Class<T> type) {
return convert(data.get(key), type);
}
public void putData(String key, Object value) {
putCurrentData(key, value);
if (parent != null) {
parent.putData(key, value);
}
}
public <T> T getData(String key, Class<T> type) {
T result = getCurrentData(key, type);
if (result == null && parent != null) {
result = parent.getData(key, type);
}
return result;
}
private <T> T convert(Object data, Class<T> clazz) {
if (data == null || clazz == null) {
return null;
}
// 判断转换的类型是否是number类型
return (T) data;
}
public Integer next() {
current++;
return current;
}
public Integer end() {
current = count;
return count;
}
public Boolean isEnd() {
return current >= count;
}
public Boolean isStart() {
return current < 0;
}
public void allEnd() {
Context context = parent;
if (context != null) {
context.allEnd();
}
// 结束自身
end();
}
}