parent
60f76ee94a
commit
a59963be41
|
|
@ -21,6 +21,9 @@ public class ApiRecord implements Serializable {
|
||||||
/** api地址 */
|
/** api地址 */
|
||||||
private String apiUrl;
|
private String apiUrl;
|
||||||
|
|
||||||
|
/** api每天请求次数 */
|
||||||
|
private Long dayCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求耗费时间
|
* 请求耗费时间
|
||||||
*/
|
*/
|
||||||
|
|
@ -99,4 +102,12 @@ public class ApiRecord implements Serializable {
|
||||||
public void setRequestTime(Integer requestTime) {
|
public void setRequestTime(Integer requestTime) {
|
||||||
this.requestTime = requestTime;
|
this.requestTime = requestTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long getDayCount() {
|
||||||
|
return dayCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDayCount(Long dayCount) {
|
||||||
|
this.dayCount = dayCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,8 @@ module.exports = {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
chainWebpack(config) {
|
chainWebpack(config) {
|
||||||
config.plugins.delete('preload') // TODO: need test
|
config.plugins.delete('preload')
|
||||||
config.plugins.delete('prefetch') // TODO: need test
|
config.plugins.delete('prefetch')
|
||||||
|
|
||||||
// set svg-sprite-loader
|
// set svg-sprite-loader
|
||||||
config.module
|
config.module
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
|
||||||
log.info("start insert fill ....");
|
log.info("start insert fill ....");
|
||||||
//this.setFieldValByName("createTime", new Date(), metaObject);
|
//this.setFieldValByName("createTime", new Date(), metaObject);
|
||||||
this.strictInsertFill(metaObject, "createTime", Date.class,new Date()); // 起始版本 3.3.3(推荐)
|
this.strictInsertFill(metaObject, "createTime", Date.class,new Date()); // 起始版本 3.3.3(推荐)
|
||||||
|
this.strictInsertFill(metaObject, "updateTime", Date.class,new Date());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
package com.xjs.utils;
|
package com.xjs.utils;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUnit;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xiejs
|
* @author xiejs
|
||||||
|
|
@ -17,4 +19,12 @@ class ChineseUtilTest {
|
||||||
System.out.println(b);
|
System.out.println(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test2() {
|
||||||
|
long between = DateUtil
|
||||||
|
.between(new Date(), DateUtil.parseDate("2021-12-31 23:59:59").toJdkDate(), DateUnit.DAY);
|
||||||
|
System.out.println(between);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.xjs.common.aop;
|
package com.xjs.common.aop;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DateUnit;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.xjs.business.warning.RemoteWarningCRUDFeign;
|
import com.xjs.business.warning.RemoteWarningCRUDFeign;
|
||||||
|
|
@ -20,6 +21,7 @@ import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
@ -142,12 +144,29 @@ public class ApiLogAspect {
|
||||||
if (CollUtil.isEmpty(data)) {
|
if (CollUtil.isEmpty(data)) {
|
||||||
//设置初始请求次数
|
//设置初始请求次数
|
||||||
apiRecord.setTotalCount(1L);
|
apiRecord.setTotalCount(1L);
|
||||||
|
apiRecord.setDayCount(1L);
|
||||||
remoteWarningCRUDFeign.saveApiRecord(apiRecord);
|
remoteWarningCRUDFeign.saveApiRecord(apiRecord);
|
||||||
}else {
|
}else {
|
||||||
ApiRecord haveApiRecord = data.get(0);
|
ApiRecord haveApiRecord = data.get(0);
|
||||||
|
|
||||||
haveApiRecord.setRequestTime((int) between);
|
haveApiRecord.setRequestTime((int) between);
|
||||||
haveApiRecord.setTotalCount(haveApiRecord.getTotalCount()+1L);
|
haveApiRecord.setTotalCount(haveApiRecord.getTotalCount()+1L);
|
||||||
|
//统计当前的请求次数,隔天清零
|
||||||
|
haveApiRecord.setDayCount(haveApiRecord.getDayCount()+1L);
|
||||||
|
Date updateTime = haveApiRecord.getUpdateTime();
|
||||||
|
//当前时间和最后一次修改时间间隔天数(超过1 就清零)
|
||||||
|
long compareTime = DateUtil.between(new Date(), updateTime, DateUnit.DAY);
|
||||||
|
if (compareTime > 0) {
|
||||||
|
haveApiRecord.setDayCount(0L);
|
||||||
|
}
|
||||||
remoteWarningCRUDFeign.updateApiRecord(haveApiRecord);
|
remoteWarningCRUDFeign.updateApiRecord(haveApiRecord);
|
||||||
|
//判断接口请求是否超过阈值
|
||||||
|
if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount()) {
|
||||||
|
//TODO 把记录添加到预警表中
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,9 @@ public class ApiRecord implements Serializable {
|
||||||
@Excel(name = "api限制请求次数每天")
|
@Excel(name = "api限制请求次数每天")
|
||||||
private Long limitCount;
|
private Long limitCount;
|
||||||
|
|
||||||
|
@Excel(name = "api每天请求次数")
|
||||||
|
private Long dayCount;
|
||||||
|
|
||||||
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
@TableField(fill = FieldFill.INSERT)
|
@TableField(fill = FieldFill.INSERT)
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue