package org.bigdata.framework.admin.web.controller;
import javax.servlet.http.HttpSessionListener;
import org.bigdata.framework.admin.web.entity.UtilVo;
import org.bigdata.framework.admin.web.service.IUtilService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
@Component
public class SessionCounterController implements HttpSessionListener {
// private static int activeSessions =0;
@Autowired
private IUtilService utilService;
// 静态初使化当前类
public static SessionCounterController sessionCounterController;
@PostConstruct
public void init() {
sessionCounterController = this;
}
/* Session创建事件 */
public void sessionCreated(HttpSessionEvent se) {
ServletContext ctx = se.getSession( ).getServletContext( );
Integer numSessions = (Integer) ctx.getAttribute("numSessions");
if (numSessions == null) {
numSessions = new Integer(1);
}
else {
int count = numSessions.intValue( );
numSessions = new Integer(count + 1);
}
ctx.setAttribute("numSessions", numSessions);
}
/* Session失效事件 */
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext ctx=se.getSession().getServletContext();
if (se!=null) {
long loginTime=(long) se.getSession().getAttribute("loginTime");
String userId= se.getSession().getAttribute("userId").toString();
if (userId!=null) {
long nm = 1000 * 60;
long nowTime=new Date().getTime();
long disTime=nowTime-loginTime;
long min = disTime / nm;
System.out.println(nowTime+"==="+loginTime);
int onlineNum = sessionCounterController.utilService.findCountByUserId("", userId, UtilVo.TYPE_ONLINE);
if (onlineNum==0) {
if (min>=40&&min <60) {
sessionCounterController.utilService.addLog(userId, UtilVo.TYPE_ONLINE,userId);
sessionCounterController.utilService.addIntegral(userId, UtilVo.LINE_ONE_ADD);
}else if (min>=60) {
sessionCounterController.utilService.addLog(userId, UtilVo.TYPE_ONLINE,userId);
sessionCounterController.utilService.addIntegral(userId, UtilVo.LINE_TWE_ADD);
}
}
}
}
Integer numSessions = (Integer)ctx.getAttribute("numSessions");
if(numSessions == null) {
numSessions = new Integer(0);
} else{
int count = numSessions.intValue( );
numSessions = new Integer(count - 1);
}
ctx.setAttribute("numSessions", numSessions);
}
}
注入service有问题
最新推荐文章于 2023-07-21 09:32:31 发布