package cn.newgxu.bbs.service.impl;
import java.util.Date;
import java.util.List;
import cn.newgxu.bbs.common.HitsManager;
import cn.newgxu.bbs.common.util.Util;
import cn.newgxu.bbs.domain.HitsCounter;
import cn.newgxu.bbs.service.StatisticService;
import cn.newgxu.jpamodel.ObjectNotFoundException;
/**
*
* @author polly
* @since 4.0.0
* @version $Revision 1.1$
*/
public class StatisticServiceImpl implements StatisticService {
// 这里如果给每日访问设置缓存的话就会造成每次刷新都会++
// private static int todayCount = -1;
private static int totalCount = -1;
public void addHit(int forumId) {
Date date = new Date();
HitsManager.addHit(Util.getDate(date), Util.getHour(date), forumId);
// if (todayCount != -1) {
// todayCount++;
// }
if (totalCount != -1) {
totalCount++;
}
}
public void flushHitsManager() {
List<HitsCounter> entities = HitsManager.getHitsCounters();
HitsManager.reset();
for (HitsCounter entity : entities) {
HitsCounter po;
try {
po = HitsCounter.getByForumId_Date_Hour(entity.getForumId(),
entity.getHitsDate(), entity.getHitsHour());
po.incorporate(entity);
} catch (ObjectNotFoundException e) {
po = entity;
}
po.save();
}
}
public int getTodayHitsCounter() {
// if (todayCount == -1) {
// todayCount = HitsCounter.getTodayHitsCounter();
// }
// return todayCount;
return HitsCounter.getTodayHitsCounter();
}
public int getTotalHitsCounter() {
if (totalCount == -1) {
totalCount = HitsCounter.getTotalHitsCounter();
}
return totalCount;
}
}