/**
* 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.user;
import static com.ewcms.common.lang.EmptyUtil.isStringNotEmpty;
import java.util.List;
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.User;
import com.ewcms.web.QueryBaseAction;
/**
* 用户列表查询
*
* @author wangwei
*/
@Controller("security.user.query.action")
public class QueryAction extends QueryBaseAction {
private static final long serialVersionUID = -8736899399025749992L;
@Override
protected Resultable queryResult(QueryFactory queryFactory,
String cacheKey, int rows, int page, Order order) {
EntityQueryable query =
queryFactory.createEntityQuery(User.class)
.setPage(page)
.setRow(rows);
String username = getParameterValue(String.class, "username");
if (isStringNotEmpty(username)) query.likeAnywhere("username", username);
String name = getParameterValue(String.class,"name");
if (isStringNotEmpty(name)) query.likeAnywhere("userInfo.name", name);
if(order.hasOrder()){
entityOrder(query, order);
}else{
query.orderAsc("username");
}
return query.queryCacheResult(cacheKey);
}
@Override
protected Resultable querySelectionsResult(QueryFactory queryFactory,
int rows, int page, String[] selections, Order order) {
EntityQueryable query =
queryFactory.createEntityQuery(User.class)
.setPage(page)
.setRow(rows);
List<String> usernames = getIds(String.class);
query.in("username", usernames);
return query.queryResult();
}
}