PersonFileLimit.java
2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.jflyfox.component.controller;
import java.util.concurrent.atomic.AtomicLong;
import com.jflyfox.util.DateUtils;
import com.jflyfox.util.StrUtils;
public class PersonFileLimit {
public static final int nowHourMaxCount = 50;
public static final int nowDayMaxCount = 200;
public static final String OK = "ok";
public static final String ERROR_NOWDAY = "nowDayError";
public static final String ERROR_NOWHOUR = "nowHourError";
/**
* 用户ID
*/
private int id;
/**
* 当前天
*/
private String nowDay = "";
/**
* 当前小时
*/
private String nowHour = "";
/***
* 当前天数上传次数
*/
private AtomicLong nowDayCount = new AtomicLong(0);
/**
* 当前小时上传次数
*/
private AtomicLong nowHourCount = new AtomicLong(0);
private String legal = OK;
/**
* 入库
*/
private boolean insert = false;
public boolean isLegal() {
return OK.equals(legal);
}
public void add() {
// 用户不合法了~你就什么都别干了~
if (!OK.equals(legal)) {
return;
}
String tmpDay = DateUtils.getNow("yyyyMMdd");
if (StrUtils.isEmpty(nowDay)) {
nowDay = tmpDay;
} else if(!tmpDay.equals(nowDay)){
nowDay = tmpDay;
nowDayCount.set(0); // 清0从算
}
nowDayCount.incrementAndGet();
if (nowDayCount.get() > nowDayMaxCount) {
legal = ERROR_NOWDAY;
}
String tmpHour = DateUtils.getNow("yyyyMMddHH");
if (StrUtils.isEmpty(nowHour)) {
nowHour = tmpHour;
} else if(!tmpHour.equals(nowHour)){
nowHour = tmpHour;
nowHourCount.set(0); // 清0从算
}
nowHourCount.incrementAndGet();
if (nowHourCount.get() > nowHourMaxCount) {
legal = ERROR_NOWHOUR;
}
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNowDay() {
return nowDay;
}
public void setNowDay(String nowDay) {
this.nowDay = nowDay;
}
public String getNowHour() {
return nowHour;
}
public void setNowHour(String nowHour) {
this.nowHour = nowHour;
}
public AtomicLong getNowDayCount() {
return nowDayCount;
}
public void setNowDayCount(AtomicLong nowDayCount) {
this.nowDayCount = nowDayCount;
}
public AtomicLong getNowHourCount() {
return nowHourCount;
}
public void setNowHourCount(AtomicLong nowHourCount) {
this.nowHourCount = nowHourCount;
}
public String getLegal() {
return legal;
}
public void setLegal(String legal) {
this.legal = legal;
}
public boolean isInsert() {
return insert;
}
public void setInsert(boolean insert) {
this.insert = insert;
}
}