/** * 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.particular.web; import static com.ewcms.common.lang.EmptyUtil.isNotNull; import static com.ewcms.common.lang.EmptyUtil.isStringNotEmpty; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.ewcms.common.query.Resultable; import com.ewcms.common.query.jpa.EntityQueryable; import com.ewcms.common.query.jpa.QueryFactory; import com.ewcms.content.particular.ParticularFacable; import com.ewcms.content.particular.model.ProjectBasic; import com.ewcms.content.particular.model.ProjectBasic.Nature; import com.ewcms.core.site.model.Organ; import com.ewcms.web.QueryBaseAction; import com.ewcms.web.util.EwcmsContextUtil; public class ProjectBasicQueryAction extends QueryBaseAction{ private static final long serialVersionUID = -4149344019910643538L; @Autowired private ParticularFacable particularFac; private Integer channelId; public Integer getChannelId() { return channelId; } public void setChannelId(Integer channelId) { this.channelId = channelId; } @Override protected Resultable queryResult(QueryFactory queryFactory, String cacheKey, int rows, int page, Order order) { EntityQueryable query = queryFactory.createEntityQuery(ProjectBasic.class).setPage(page).setRow(rows).orderDesc("id"); query.eq("channelId", getChannelId()); String code = getParameterValue(String.class,"code", ""); if (isNotNull(code)) query.likeAnywhere("code", code); String buildNature = getParameterValue(String.class, "buildNature", ""); if (isNotNull(buildNature) && buildNature.trim().length() > 0) { query.eq("bildNature", Nature.valueOf(buildNature)); } String industryCode = getParameterValue(String.class, "industryCode", ""); if (isNotNull(industryCode)) query.eq("industryCode.code", industryCode); String name = getParameterValue(String.class, "name", ""); if (isStringNotEmpty(name)) query.likeAnywhere("name", name); if (!EwcmsContextUtil.getGroupnames().contains("GROUP_GCLY_ADMIN")){ Organ organ = particularFac.findOrganByUserName(); if (organ == null){ query.eq("organ.id", null); }else{ query.eq("organ.id", organ.getId()); } } entityOrder(query, order); return query.queryCacheResult(cacheKey); } @Override protected Resultable querySelectionsResult(QueryFactory queryFactory, int rows, int page, String[] selections, Order order) { EntityQueryable query = queryFactory.createEntityQuery(ProjectBasic.class).setPage(page).setRow(rows).orderDesc("id"); query.eq("channelId", getChannelId()); if (!EwcmsContextUtil.getGroupnames().contains("GROUP_GCLY_ADMIN")){ Organ organ = particularFac.findOrganByUserName(); if (organ == null){ query.eq("organ.id", null); }else{ query.eq("organ.id", organ.getId()); } } List<Long> ids = getIds(Long.class); query.in("id", ids); return query.queryResult(); } }