package sy.timingTask;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import oracle.sql.DATE;

import org.springframework.beans.factory.annotation.Autowired;

import sy.pageModel.Json;
import sy.pageModel.Online;
import sy.service.OnlineServiceI;

import com.alibaba.druid.support.http.stat.WebAppStatManager;
import com.alibaba.fastjson.JSON;

public class OnlineJob {

	//来自druid.jar 
	private final WebAppStatManager      webAppStatManager    = WebAppStatManager.getInstance();
	
	private OnlineServiceI onlineService;
	
	public OnlineServiceI getOnlineService() {
		return onlineService;
	}
	@Autowired
	public void setOnlineService(OnlineServiceI onlineService) {
		this.onlineService = onlineService;
	}
	
	@SuppressWarnings("unchecked")
	public void onlineofuser()
	{
		//来自druid.jar中 获得session信息
		List<Map<String, Object>> list = webAppStatManager.getSessionStatData();
		Online online = new Online();
		//查询数据库中在线用户
		List<Online> listonline = onlineService.datagrid(online).getRows();
		boolean result =false;
		for(int j=0;j<listonline.size();j++ )
		{
			result = false;
			for(int i = 0;i<list.size();i++)
			{
				Map<String, Object> map = list.get(i);
				//map.get("Principal")得到的是登录系统的用户
				//map.get("RemoteAddress")得到远程访问的ip地址
				if(map.get("Principal")!=null&&!("").equals(map.get("Principal")))
				{
					if(map.get("Principal").equals(listonline.get(j).getLoginname())&&map.get("RemoteAddress").equals(listonline.get(j).getIp()))
					{
							Long currenttime = new Date().getTime();
							System.out.println(currenttime +" - "+((Date)map.get("LastAccessTime")).getTime()+" = "+ (currenttime-((Date)map.get("LastAccessTime")).getTime()));
							if(currenttime-((Date)map.get("LastAccessTime")).getTime()<1000*60*5)//因为页面有ajax每10秒就发送请求,所以5分钟没有访问,则是关闭浏览器
							{
								System.out.println(map.get("Principal")+"---"+map.get("RemoteAddress"));
								result=true ;
								break;
							}
					}
						
				}
			}
			if(!result)
			{
				//根据IP和用户,删除数据库中的信息
				onlineService.deleteTonlineByLoginNameAndIp(listonline.get(j).getLoginname(),listonline.get(j).getIp());
			}
		}
	}
}
最近下载更多
yyw520  LV2 2020年6月22日
qiheideguang  LV16 2019年10月17日
cafebabeio  LV1 2019年10月14日
jisen  LV7 2019年5月10日
月之氏族  LV23 2019年3月21日
jianjianzhang  LV1 2018年6月16日
wxjwhqwy  LV29 2018年6月3日
394934420  LV1 2018年3月16日
a364462221  LV1 2018年3月8日
liuna9876  LV7 2017年9月19日
最近浏览更多
denglu123321  LV4 2023年12月27日
cc900118  LV17 2022年12月5日
lcjz99  LV11 2022年9月28日
a3870764722a  LV22 2022年7月12日
740330437  LV1 2022年6月19日
Hachi6  LV13 2022年6月16日
无敌波  LV1 2021年9月14日
xiaoding1999  LV7 2021年7月15日
王天麟  LV12 2021年1月22日
一哥simon  LV1 2021年1月5日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友