SysLoginLog.java 2.3 KB
package com.air.model;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.air.model.base.BaseSysLoginLog;
import com.jfinal.log.Log;
import com.jfinal.plugin.activerecord.Page;

@SuppressWarnings("serial")
public class SysLoginLog extends BaseSysLoginLog<SysLoginLog> {
	public static final SysLoginLog dao = new SysLoginLog();

	public String table() {
		return "WDS_"+getClass().getSimpleName();
	}
	
	public java.util.Date lastTime(Integer uid) {
		Map<String, Object> maps = new HashMap<String, Object>();
		maps.put("isLogin", true);
		maps.put("sysUserId", uid);

		String orderBy = " order by id desc";
		Page<SysLoginLog> modelList = dao.searchPaginate(1, 2, maps, orderBy);

		if (modelList != null && !modelList.getList().isEmpty()) {
			int position = modelList.getList().size() == 1 ? 0 : 1;
			return modelList.getList().get(position).getCreateTime();
		} else {
			Log.getLog(getClass()).error("the modelList is null");
		}

		return new Date();
	}

	public java.util.Date loginTime(Integer uid) {
		String sql = "select * from " + table() + " where isLogin=? and sysUserId=? order by id desc";
		SysLoginLog model = dao.findFirst(sql, true, uid);
		if (model != null) {
			return model.getCreateTime();
		}
		return new Date();
	}

	public void log(Integer uid, boolean isLogin) {
		SysLoginLog log = new SysLoginLog();
		log.setIsLogin(isLogin);
		log.setSysUserId(uid);
		log.save();
	}

	/**
	 * 查询
	 * 
	 * @param page
	 *            页码
	 * @param pageNum
	 *            每页数量
	 */
	public Page<SysLoginLog> search(int page, int pageNum) {
		String listSql = buildListSql();
		String orderBy = " order by createTime desc";
		Page<SysLoginLog> dataList = SysLoginLog.dao.paginate(page, pageNum, "select *", listSql + orderBy);
		if (dataList != null && dataList.getList() != null) {
			for (SysLoginLog data : dataList.getList()) {
				Integer sysUserId = data.getSysUserId();
				SysUser user = SysUser.dao.findById(sysUserId);
				if (user != null) {
					data.put("job", user.getJob());
					data.put("username", user.getUsername());
					data.put("realName", user.getRealName());
				}
			}
		}
		return dataList;
	}

	private String buildListSql() {
		StringBuilder sb = new StringBuilder();
		String table = table();
		sb.append(" from " + table);
		sb.append(" where id>-1");
		return sb.toString();
	}
}