1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def excess(self, between=0):
"""
请求/验证次数检测
:param between: [int] 0 检测请求次数是否超额,1 检测验签次数是否超额,2 检测验签次数是否超额
:return[int]: 0 正常,未超标,1 小时超标、2 日限超标、3 月限超标
"""
# 统计的字段名及会员组限制字段名
field = ["request","verify","sign"][between]
# 时/天/月时间戳
ceiling =date(format="%Y%m%d%H")
t = [numeric(ceiling), numeric(ceiling[:-2] +"00"), numeric(ceiling[:-4] +"0000")]
# 当前用户组限制额 [-1, -1, 9000]
group_limit = json2dict(self.data[field])
fori in range(0, 3):
ifgroup_limit[i] != -1:
count= self.db.list(
table="statistics",
field=f'SUM(`{field}`) as rSUM',
where=f'`uid` = {self.data["uid"]} && `time` >= {t[i]}',
limit=1, shift=1,
)["rSUM"]
ifcount> group_limit[i]:
returni + 1
return0
|