| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package com.datarecovery.master.utils;
- import android.text.format.DateUtils;
- import com.atmob.common.data.KVUtils;
- public class CounterUtil {
- private static final String COUNTER_PREFIX = "COUNTER_UTIL_";
- private static final String COUNTER_DATE_SUFFIX = "_DATE";
- private CounterUtil() {
- }
- /**
- * 检查并增加计数(当天)
- *
- * @param key 计数器key
- * @param limitTimes 限制次数
- * @return 是否超过限制
- */
- public static boolean checkAndIncrementByDay(String key, int limitTimes) {
- if (key == null || key.isEmpty() || limitTimes == 0) {
- return false;
- }
- long lastTime = KVUtils.getDefault().getLong(COUNTER_PREFIX + key + COUNTER_DATE_SUFFIX, 0L);
- if (DateUtils.isToday(lastTime)) {
- int count = KVUtils.getDefault().getInt(COUNTER_PREFIX + key, 0);
- if (count >= limitTimes) {
- return false;
- } else {
- KVUtils.getDefault().putInt(COUNTER_PREFIX + key, count + 1);
- return true;
- }
- } else {
- KVUtils.getDefault().putLong(COUNTER_PREFIX + key + COUNTER_DATE_SUFFIX, System.currentTimeMillis());
- KVUtils.getDefault().putInt(COUNTER_PREFIX + key, 1);
- return true;
- }
- }
- /**
- * 检查是否超过计数(当天)
- *
- * @param key 计数器key
- * @param limitTimes 限制次数
- * @return 是否超过限制
- */
- public static boolean checkLimitByDay(String key, int limitTimes) {
- if (key == null || key.isEmpty() || limitTimes == 0) {
- return false;
- }
- long lastTime = KVUtils.getDefault().getLong(COUNTER_PREFIX + key + COUNTER_DATE_SUFFIX, 0L);
- if (DateUtils.isToday(lastTime)) {
- int count = KVUtils.getDefault().getInt(COUNTER_PREFIX + key, 0);
- return count < limitTimes;
- }
- return true;
- }
- /**
- * 增加计数器(当天)
- *
- * @param key 计数器key
- */
- public static void incrementByDay(String key) {
- long lastTime = KVUtils.getDefault().getLong(COUNTER_PREFIX + key + COUNTER_DATE_SUFFIX, 0L);
- if (DateUtils.isToday(lastTime)) {
- int count = KVUtils.getDefault().getInt(COUNTER_PREFIX + key, 0);
- KVUtils.getDefault().putLong(COUNTER_PREFIX + key + COUNTER_DATE_SUFFIX, System.currentTimeMillis());
- KVUtils.getDefault().putInt(COUNTER_PREFIX + key, count + 1);
- } else {
- KVUtils.getDefault().putLong(COUNTER_PREFIX + key + COUNTER_DATE_SUFFIX, System.currentTimeMillis());
- KVUtils.getDefault().putInt(COUNTER_PREFIX + key, 1);
- }
- }
- }
|