/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.security.manage.web.loginlogs;
import static com.ewcms.common.lang.EmptyUtil.isStringNotEmpty;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.ewcms.common.query.Resultable;
import com.ewcms.common.query.jpa.EntityQueryable;
import com.ewcms.common.query.jpa.QueryFactory;
import com.ewcms.security.manage.model.LoginLogs;
import com.ewcms.security.manage.service.LoginLogsServiceable;
import com.ewcms.web.QueryBaseAction;
@Controller("security.manage.web.loginlogs.query")
public class QueryAction extends QueryBaseAction{
private static final long serialVersionUID = 2584716134140615173L;
private DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Autowired
private LoginLogsServiceable persistentLoginsService;
@Override
protected Resultable queryResult(QueryFactory queryFactory, String cacheKey, int rows, int page, Order order) {
EntityQueryable query =
queryFactory.createEntityQuery(LoginLogs.class)
.setPage(page)
.setRow(rows).orderDesc("lastUsed");
String userName = getParameterValue(String.class, "userName");
if (isStringNotEmpty(userName)) query.likeAnywhere("userName", userName);
try {
Date startDate = getParameterValue(Date.class, "startDate");
Date endDate = getParameterValue(Date.class, "endDate");
if (startDate == null)
startDate = DATE_FORMAT.parse("1900-01-01 00:00:00");
if (endDate == null)
endDate = DATE_FORMAT.parse("2099-12-31 23:59:59");
query.between("lastUsed", startDate, endDate);
} catch (ParseException e) {
}
setDateFormat(DATE_FORMAT);
return query.setPage(page).setRow(rows).queryCacheResult(cacheKey);
}
@Override
protected Resultable querySelectionsResult(QueryFactory queryFactory, int rows, int page, String[] selections, Order order) {
return null;
}
}