/** * 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.content.history.web; import static com.ewcms.common.lang.EmptyUtil.isNotNull; import static com.ewcms.common.lang.EmptyUtil.isStringNotEmpty; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import org.springframework.stereotype.Controller; import com.ewcms.common.query.Resultable; import com.ewcms.common.query.jpa.HqlQueryable; import com.ewcms.common.query.jpa.QueryFactory; import com.ewcms.web.QueryBaseAction; import com.ewcms.web.util.EwcmsContextUtil; /** * * @author 吴智俊 */ @Controller("history.query") public class HistoryQueryAction extends QueryBaseAction { private static final long serialVersionUID = -6958534645862618323L; private DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override protected Resultable queryResult(QueryFactory queryFactory,String cacheKey, int rows, int page, Order order) { String hql = "Select h From HistoryModel h Where h.userName=:userName "; String countHql = "Select count(h.id) From HistoryModel h Where h.userName=:userName "; Long id = getParameterValue(Long.class, "id", "查询编号错误,应该是整型"); if (isNotNull(id)){ hql += " And h.id=:id "; countHql += " And h.id=:id"; } String startDate = getParameterValue(String.class, "startDate","开始时间错误"); if (isNotNull(startDate)){ hql += " And h.createDate>=:startDate "; countHql += " And h.createDate>=:startDate "; } String endDate = getParameterValue(String.class, "endDate","结束时间错误"); if (isNotNull(endDate)){ hql += " And h.createDate<=:endDate"; countHql += " And h.createDate<=:endDate"; } hql += " Order By h.id Desc"; hql += " Limit " + rows + " OffSet " + (rows * (page + 1)); HqlQueryable query = queryFactory.createHqlQuery(hql, countHql); query.setParameter("userName", EwcmsContextUtil.getUserName()); if (isNotNull(id)){ query.setParameter("id", id); } if (isStringNotEmpty(startDate)){ try { query.setParameter("startDate", DATE_FORMAT.parse(startDate)); } catch (ParseException e) { e.printStackTrace(); } } if (isStringNotEmpty(endDate)){ try { query.setParameter("endDate", DATE_FORMAT.parse(startDate)); } catch (ParseException e) { e.printStackTrace(); } } setDateFormat(DATE_FORMAT); return query.setRow(rows).setPage(page).queryResult(); } @Override protected Resultable querySelectionsResult(QueryFactory queryFactory, int rows, int page, String[] selections, Order order) { String hql = "Select h From HistoryModel h Where h.id In (:id) And h.userName=:userName Order By h.id DESC"; String countHql = "Select count(h.id) From HistoryModel h Where h.id In (:id) And h.userName=:userName "; HqlQueryable query = queryFactory.createHqlQuery(hql, countHql); query.setParameter("id", getIds(Integer.class)); query.setParameter("userName", EwcmsContextUtil.getUserName()); setDateFormat(DATE_FORMAT); return query.setRow(rows).setPage(page).queryResult(); } }