[code="java"]
public Pager findPage(int pageNo, int pageSize, final Integer pfunctionsId,
final Integer pclazzId, final Integer psubclazzId,
final String pcolor, final Integer pbrandId, final Integer pprice,
final double lowerPrice, final double upperPrice,
final int sortFlag, String pkeyword) {
Productdetail productdetail = new Productdetail();
List criterions = new ArrayList();
//功能编号
if (pfunctionsId != null && pfunctionsId.intValue() != 0) {
Criterion criterion = Restrictions.eq(
FIELD_PFUNCTIONSID, pfunctionsId);
criterions.add(criterion);
}
//大类编号
if (pclazzId != null && pclazzId.intValue() != 0) {
Criterion criterion = Restrictions.eq(
FIELD_PCLAZZID, pclazzId);
criterions.add(criterion);
}//小类编号
if (psubclazzId != null && psubclazzId.intValue() != 0) {
Criterion criterion = Restrictions.eq(
FIELD_PSUBCLASSID, psubclazzId);
criterions.add(criterion);
}
//颜色
if (pcolor != null && !pcolor.equals("0")) {
Criterion criterion = Restrictions.like(
FIELD_PCOLOR, pcolor, MatchMode.ANYWHERE);
criterions.add(criterion);
}
//品牌
if (pbrandId != null && pbrandId.intValue() != 0) {
Criterion criterion = Restrictions.eq(
FIELD_PBRANDID, pbrandId);
criterions.add(criterion);
}
//价格
if (pprice != null && pprice.intValue() != 0){
if (1 == pprice.intValue()) {
Criterion criterion = Restrictions.ge(
FIELD_LOWERPRICE, Double.valueOf(0.0D));
criterions.add(criterion);
Criterion criterion2 = Restrictions.le(
FIELD_UPPERPRICE, Double.valueOf(100D));
criterions.add(criterion2);
} else if (2 == pprice.intValue()) {
Criterion criterion = Restrictions.ge(
FIELD_LOWERPRICE, Double.valueOf(100D));
criterions.add(criterion);
Criterion criterion2 = Restrictions.le(
FIELD_UPPERPRICE, Double.valueOf(299D));
criterions.add(criterion2);
} else if (3 == pprice.intValue()) {
Criterion criterion = Restrictions.ge(
FIELD_LOWERPRICE, Double.valueOf(300D));
criterions.add(criterion);
Criterion criterion2 = Restrictions.le(
FIELD_UPPERPRICE, Double.valueOf(499D));
criterions.add(criterion2);
} else if (4 == pprice.intValue()) {
Criterion criterion = Restrictions.ge(
FIELD_LOWERPRICE, Double.valueOf(500D));
criterions.add(criterion);
Criterion criterion2 = Restrictions.le(
FIELD_UPPERPRICE, Double.valueOf(999D));
criterions.add(criterion2);
} else if (5 == pprice.intValue()) {
Criterion criterion = Restrictions.ge(
FIELD_LOWERPRICE, Double.valueOf(1000D));
criterions.add(criterion);
} else if (6 == pprice.intValue()) {
Criterion criterion = Restrictions.ge(
FIELD_LOWERPRICE, Double.valueOf(lowerPrice));
criterions.add(criterion);
Criterion criterion2 = Restrictions.le(
FIELD_UPPERPRICE, Double.valueOf(upperPrice));
criterions.add(criterion2);
}
}
if (pkeyword != null) {
if(pkeyword.equals("nokw")){
pkeyword="";
}
String pkeywordtmp = pkeyword.trim();
String keyWords[] = pkeywordtmp.split(" ");
if (keyWords.length > 0) {
for (int i = 0; i < keyWords.length; i++)
if (!keyWords[i].equals(" ")) {
Criterion criterion = Restrictions.or(Restrictions.like(FIELD_PNAME, keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_PMODEL,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_PDESCRIBE,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_CNAME,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_SNAME,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_BNAME,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_PCOLOR,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_FNAME,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_PTRAIT,keyWords[i],MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like(FIELD_PSTUFF,keyWords[i],MatchMode.ANYWHERE),
Restrictions.like(FIELD_PKEYWORD,keyWords[i],MatchMode.ANYWHERE)))))))))));
criterions.add(criterion);
}
}
}
List<Order> orders = new ArrayList<Order>();
//价格排序
if(0!=sortFlag){
if(1==sortFlag){
orders.add(Order.asc(FIELD_LOWERPRICE));
}else if(2==sortFlag){
orders.add(Order.desc(FIELD_LOWERPRICE));
}
}
// 类别排序
orders.add(Order.desc(FIELD_PCLAZZIDX));
// 总排序
orders.add(Order.desc(FIELD_PALLIDX));
Pager pager = productdetailDAO.selectPageByCriterias(pageNo, pageSize,
productdetail, criterions, orders);
return pager;
}
[/code]
数据是从视图里查询出来的