对于前段传的参数的拼装

package com.sfexpress.pmp.dao.impl.criteria;


import org.joda.time.DateTime;


import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;


public class QueryCriteriaBuilder {


    private QueryCriteria queryCriteria;


    private QueryCriteriaBuilder() {
        queryCriteria = new QueryCriteria();
    }


    public static QueryCriteriaBuilder builder() {
        return new QueryCriteriaBuilder();
    }


    public QueryCriteriaBuilder asc() {
        queryCriteria.orderType = OrderType.ASC;
        return this;
    }


    public QueryCriteriaBuilder desc() {
        queryCriteria.orderType = OrderType.DESC;
        return this;
    }


    public QueryCriteriaBuilder orderBy(String orderBy) {
        queryCriteria.orderBy = orderBy;
        return this;
    }


    public QueryCriteriaBuilder pageSize(int pageSize) {
        queryCriteria.pageSize = pageSize;
        return this;
    }


    public QueryCriteriaBuilder pageSizeAs7() {
        queryCriteria.pageSize = 7;
        return this;
    }


    public QueryCriteriaBuilder pageNum(int pageNum) {
        queryCriteria.pageNum = pageNum;
        return this;
    }


    public QueryCriteriaBuilder endRangeStart(Long endRangeStart) {
        queryCriteria.endRangeStart = new DateTime(endRangeStart).withTimeAtStartOfDay().toDate();
        return this;
    }


    public QueryCriteriaBuilder endRangeEnd(Long endRangeEnd) {
        queryCriteria.endRangeEnd = new DateTime(endRangeEnd).withTimeAtStartOfDay().toDate();
        return this;
    }


    public QueryCriteriaBuilder reviewRangeStart(Long reviewRangeStart) {
        queryCriteria.reviewRangeStart = new DateTime(reviewRangeStart).withTimeAtStartOfDay().toDate();
        return this;
    }


    public QueryCriteriaBuilder reviewRangeEnd(Long reviewRangeEnd) {
        queryCriteria.reviewRangeEnd = new DateTime(reviewRangeEnd).withTimeAtStartOfDay().toDate();
        return this;
    }


    
    /******************新增查询参数**********************/
    public QueryCriteriaBuilder taskName(String taskName) {
        queryCriteria.taskName = taskName;
        return this;
    }
    
    public QueryCriteriaBuilder userId(long userId) {
        queryCriteria.userId = userId;
        return this;
    }
    
    public QueryCriteriaBuilder creatorId(long creatorId) {
        queryCriteria.creatorId = creatorId;
        return this;
    }
    
    public QueryCriteriaBuilder receiverId(long receiverId) {
        queryCriteria.receiverId = receiverId;
        return this;
    }
    
    public QueryCriteriaBuilder userNameOrWorkNumber(String userNameOrWorkNumber) {
        queryCriteria.userNameOrWorkNumber = userNameOrWorkNumber;
        return this;
    }
    public QueryCriteriaBuilder orderByMap(LinkedHashMap<String,OrderType> orderByMap){
        OrderType value = null;
        queryCriteria.orderByMap = orderByMap;
        Iterator iter = orderByMap.entrySet().iterator();
        while (iter.hasNext()) {
            Map.Entry entry = (Map.Entry) iter.next();
            value = (OrderType) entry.getValue();
            break;
        }
        queryCriteria.orderByMap().put("Id",value);
        return this;
    }


    public QueryCriteria build() {
        return queryCriteria;
    }


    public QueryCriteriaBuilder order(String order) {
        if (order.equalsIgnoreCase("asc")) {
            this.asc();
        }
        return this;
    }


    public class QueryCriteria {
        private int pageNum = 1;
        private int pageSize = 100;
        private String orderBy;
        private OrderType orderType = OrderType.DESC;


        private LinkedHashMap<String,OrderType> orderByMap;


        private Date endRangeStart = new DateTime(new Date(0)).withTimeAtStartOfDay().toDate();
        private Date endRangeEnd = new DateTime().withDate(9999, 12, 31).withTimeAtStartOfDay().toDate();
        private Date reviewRangeStart = new DateTime(new Date(0)).withTimeAtStartOfDay().toDate();
        private Date reviewRangeEnd =  new DateTime().withDate(9999, 12, 31).withTimeAtStartOfDay().toDate();
        
        private Long userId;//发起人or承接人ID
        
        private String taskName;//任务名称
        
        private Long creatorId;//发起人userId
        
        private Long receiverId;//承接人userId
        
        private String userNameOrWorkNumber;//发起人名称或工号or承接人名称或工号


        public String orderBy() {
            return this.orderBy;
        }


        public OrderType orderType() {
            return orderType;
        }


        public int pageSize() {
            return pageSize;
        }


        public int pageNum() {
            return pageNum;
        }


        public Date endRangeStart() {
            return endRangeStart;
        }


        public Date endRangeEnd() {
            return endRangeEnd;
        }


        public Date reviewRangeStart() {
            return reviewRangeStart;
        }


        public Date reviewRangeEnd() {
            return reviewRangeEnd;
        }


        public Long userId() {
return userId;
}


public String taskName() {
return taskName;
}

public Long creatorId() {
return creatorId;
}


public Long receiverId() {
return receiverId;
}

public String userNameOrWorkNumber(){
return userNameOrWorkNumber;
}


public LinkedHashMap<String,OrderType> orderByMap(){ return orderByMap;}
    }

}

-------------------------------------------------------------------------------------------------------------------------------------

然后我们可以直接这样用


    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/creator/tasks/new")
    public Response listCreatorTasksNew(@QueryParam("statuses") List<TaskStatus> statuses,
                                     @QueryParam("endRangeStart") @DefaultValue("0") Long endRangeStart,
                                     @QueryParam("endRangeEnd") @DefaultValue("253402185600000") Long endRangeEnd,
                                     @QueryParam("reviewRangeStart") @DefaultValue("0") Long reviewRangeStart,
                                     @QueryParam("reviewRangeEnd") @DefaultValue("253402185600000") Long reviewRangeEnd,
                                     @QueryParam("pageNum") @DefaultValue("1") int pageNum,
                                     @QueryParam("pageSize") @DefaultValue("10") int pageSize,
                                     @QueryParam("orderBy") @DefaultValue("id") String orderBy,
                                     @QueryParam("order") @DefaultValue("desc") String order,
                                     @QueryParam("taskName") String taskName,
                                     @QueryParam("userId") long userId,
                                     @QueryParam("userNameOrWorkNumber") String userNameOrWorkNumber) {
    // 设置查询条件 
QueryCriteria criteria = builder().orderBy(orderBy).order(order).pageNum(pageNum).pageSize(pageSize)
.endRangeStart(endRangeStart).endRangeEnd(endRangeEnd).reviewRangeStart(reviewRangeStart)
.reviewRangeEnd(reviewRangeEnd).taskName(taskName).userId(userId).userNameOrWorkNumber(userNameOrWorkNumber).build();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值