action
public String list() throws Exception {
Struts2Utils.getRequest().setAttribute("filter_EQI_fkMagCompany", Struts2Utils.getParameter("filter_EQI_fkMagCompany"));
List<PropertyFilter> filters = HibernateUtils.buildPropertyFilters(Struts2Utils.getRequest());
//设置默认排序方式
if (!page.isOrderBySetted()) {
page.setOrderBy("userId");
page.setOrder(Page.ASC);
}
HttpSession session = ServletActionContext.getRequest().getSession();
MagUser user = (MagUser) session.getAttribute("userInfo");
level=user.getRole().getLevel();
if(user.getRole().getLevel()==0){
//admin特权模式
page = accountService.searchMagUser(page, filters);
companyList = accountService.getAllMagCompany();
}else{
//一般模式
PropertyFilter companyFilter = new PropertyFilter("EQI_fkMagCompany", String.valueOf(user.getMagCompany().getCompanyId()));
filters.add(companyFilter);
page = accountService.searchMagUser(page, filters,user.getRole().getLevel());
//没实现级联过滤,在这里过滤其他级联查询条件
}
return LIST;
}
service:
/**
* 使用属性过滤条件查询用户.
*/
public Page<MagUser> searchMagUser(Page<MagUser> page, List<PropertyFilter> filters) {
return magUserDao.findPage(page, filters);
}
Dao:
public Page<MagUser> findPage(final Page<MagUser> page, final List<PropertyFilter> filters) {
Criterion[] criterions = buildPropertyFilterCriterions(filters);
Criteria c = createCriteria(criterions);
c.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);//去重
return findPage(page, c);
}