/** * 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 */ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.ewcms.plugin.contribute.web; import static com.ewcms.common.lang.EmptyUtil.isStringNotEmpty; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import com.ewcms.web.QueryBaseAction; import com.ewcms.common.query.Resultable; import com.ewcms.common.query.jpa.EntityQueryable; import com.ewcms.common.query.jpa.QueryFactory; import com.ewcms.plugin.contribute.model.Contribute; import org.springframework.stereotype.Controller; /** * * @author 吴智俊 */ @Controller public class ContributeQueryAction extends QueryBaseAction { private static final long serialVersionUID = -2689913260990597980L; 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) { EntityQueryable query = queryFactory.createEntityQuery(Contribute.class).setPage(page).setRow(rows).orderDesc("date"); Integer checked = getParameterValue(Integer.class, "checked"); if (checked != null && checked != 0) { if (checked == 1) { query.eq("checked", true); } else { query.eq("checked", false); } } String content = getParameterValue(String.class, "content"); if (isStringNotEmpty(content)) query.likeAnywhere("content", content); String username = getParameterValue(String.class, "username"); if (isStringNotEmpty(username)) query.likeAnywhere("username", username); String email = getParameterValue(String.class, "email"); if (isStringNotEmpty(email)) query.likeAnywhere("email", email); String phone = getParameterValue(String.class, "phone"); if (isStringNotEmpty(email)) query.likeAnywhere("phone", phone); String title = getParameterValue(String.class, "title"); if (isStringNotEmpty(title)) query.likeAnywhere("title", title); try{ Integer ageStart = getParameterValue(Integer.class, "ageStart"); Integer ageEnd = getParameterValue(Integer.class, "endStart"); if (ageStart == null) ageStart = 1; if (ageEnd == null) ageEnd = 130; query.between("age", ageStart, ageEnd); }catch(Exception e){ } try { Date dateStart = getParameterValue(Date.class, "dateStart"); Date dataEnd = getParameterValue(Date.class, "dataEnd"); if (dateStart == null) dateStart = DATE_FORMAT.parse("1900-01-01 00:00:00"); if (dataEnd == null) dataEnd = DATE_FORMAT.parse("2099-12-31 23:59:59"); query.between("lastUsed", dateStart, dataEnd); } catch (Exception e) { } setDateFormat(DATE_FORMAT); return query.queryCacheResult(cacheKey); } @Override protected Resultable querySelectionsResult(QueryFactory queryFactory, int rows, int page, String[] selections, Order order) { return null; } }