📄 countserviceimpl.java
字号:
package jaoso.count.service.impl;
import jaoso.count.dao.CountDAO;
import jaoso.count.domain.Count;
import jaoso.count.service.CountService;
import jaoso.framework.service.impl.BaseService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.Calendar;
import java.util.Date;
/**
* @author 邊緣孤客
* @since 2004-07-23
* 獲取访问量統計信息
*/
public class CountServiceImpl extends BaseService implements CountService {
//~ Static fields/initializers =============================================
/** DOCUMENT ME! */
private static final int DEFAULT_COUNT = 0;
//~ Instance fields ========================================================
/** DOCUMENT ME! */
private CountDAO countDAO;
/** DOCUMENT ME! */
private Log log = LogFactory.getLog(getClass());
//~ Methods ================================================================
/**
* (non-Javadoc)
* @see jaoso.count.service.CountService#getCount(boolean)
*/
public final Count getCount(final boolean arg) {
Count count = countDAO.getCount();
if (count == null) {
count = createCount();
updateCount(count);
}
if (arg) {
updateCount(count);
}
return count;
}
/**
* @param countDAO The countDAO to set.
*/
public final void setCountDAO(final CountDAO countDAO) {
this.countDAO = countDAO;
}
/**
* create count
*
* @return persistanted count
*/
private Count createCount() {
Date date = new Date();
Count count = new Count();
count.setAllCount(DEFAULT_COUNT);
count.setAvgCount(DEFAULT_COUNT);
count.setCreateDate(date);
count.setMaxCount(DEFAULT_COUNT);
count.setMaxDate(date);
count.setTodayCount(DEFAULT_COUNT);
count.setTodayDate(date);
countDAO.createCount(count);
count.setOnlineCount(DEFAULT_COUNT);
return count;
}
/**
* DOCUMENT ME!
*
* @param count DOCUMENT ME!
*/
private void updateCount(Count count) {
Calendar now = Calendar.getInstance();
now.setTime(new Date());
Calendar oldDate = Calendar.getInstance();
oldDate.setTime(count.getTodayDate());
count.setAllCount(count.getAllCount() + 1);
//set today count
if ((now.get(Calendar.YEAR) + now.get(Calendar.MONTH)
+ now.get(Calendar.DAY_OF_MONTH)) == (oldDate.get(Calendar.YEAR)
+ oldDate.get(Calendar.MONTH)
+ oldDate.get(Calendar.DAY_OF_MONTH))) {
count.setTodayCount(count.getTodayCount() + 1);
} else {
count.setTodayCount(1);
count.setTodayDate(new Date());
}
//set max count
if (count.getTodayCount() > count.getMaxCount()) {
count.setMaxCount(count.getTodayCount());
count.setMaxDate(count.getTodayDate());
}
//set avg count
int days = Integer.parseInt(String.valueOf(
(count.getTodayDate()
.getTime() - count.getCreateDate()
.getTime()) / (3600 * 24 * 1000)));
days = (days == 0) ? 1 : days;
int avgCount = (count.getAllCount() / days);
count.setAvgCount(avgCount);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -