Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public OrderPayListDto getPayList(Integer orderStatus, String orderCode, String payTimeStart, String payTimeEnd, Integer pageNumber, Integer pageSize) {
- String sql = "select o.id orderId,o.order_code orderCode,date_format(p.pay_date,'%Y-%m-%d %H:%i:%s') payDateStr,o.main_line_id lineId,o.order_price orderPrice,p.real_payment_price realPaymentPrice,o.profit profit,p.pay_status payStatus from tb_receive_guest_order o,tb_receive_guest_order_pay p where o.id=p.order_id and p.pay_status=1";
- sql = apendWhereSql(orderStatus, orderCode, payTimeStart, payTimeEnd, sql);
- sql += " order by p.pay_date desc";
- sql += " limit :offset,:limit";
- Query query = tbReceiveGuestOrderDao.getSession().createSQLQuery(sql)
- .addScalar("orderId", new IntegerType())
- .addScalar("orderCode", new StringType())
- .addScalar("payDateStr", new StringType())
- .addScalar("lineId", new IntegerType())
- .addScalar("orderPrice", new BigDecimalType())
- .addScalar("realPaymentPrice", new BigDecimalType())
- .addScalar("profit", new BigDecimalType())
- .addScalar("payStatus", new IntegerType());
- setCommonParameter(orderStatus, orderCode, payTimeStart, payTimeEnd, query);
- query.setParameter("offset", (pageNumber-1)*pageSize);
- query.setParameter("limit", pageSize);
- List<OrderPayItemDto> list = (List<OrderPayItemDto>)query.setResultTransformer(Transformers.aliasToBean(OrderPayItemDto.class)).list();
- OrderPayListDto orderPayListDto = new OrderPayListDto();
- orderPayListDto.setTotal(getTotal(orderStatus, orderCode, payTimeStart, payTimeEnd));
- orderPayListDto.setOrderPayItemDtos(list);
- return orderPayListDto;
- }
- private Integer getTotal(Integer orderStatus, String orderCode, String payTimeStart, String payTimeEnd) {
- String sql = "select count(1) from tb_receive_guest_order o,tb_receive_guest_order_pay p where o.id=p.order_id and p.pay_status=1";
- sql = apendWhereSql(orderStatus, orderCode, payTimeStart, payTimeEnd, sql);
- Query query = tbReceiveGuestOrderDao.getSession().createSQLQuery(sql);
- setCommonParameter(orderStatus, orderCode, payTimeStart, payTimeEnd, query);
- Object object = query.uniqueResult();
- return Integer.valueOf(object.toString());
- }
- private void setCommonParameter(Integer orderStatus, String orderCode, String payTimeStart, String payTimeEnd,
- Query query) {
- if (null != orderStatus) {
- query.setParameter("orderStatus", orderStatus);
- }
- if (StringUtils.isNotBlank(orderCode)) {
- query.setParameter("orderCode", "%"+orderCode+"%", new StringType());
- }
- if (StringUtils.isNotBlank(payTimeStart)) {
- query.setParameter("payTimeStart", payTimeStart, new StringType());
- }
- if (StringUtils.isNotBlank(payTimeEnd)) {
- query.setParameter("payTimeEnd", payTimeEnd, new StringType());
- }
- }
- private String apendWhereSql(Integer orderStatus, String orderCode, String payTimeStart, String payTimeEnd,
- String sql) {
- if (null != orderStatus) {
- sql += " and p.pay_status=:orderStatus";
- }
- if (StringUtils.isNotBlank(orderCode)) {
- sql += " and o.order_code like :orderCode";
- }
- if (StringUtils.isNotBlank(payTimeStart)) {
- sql += " and p.pay_date >= :payTimeStart";
- }
- if (StringUtils.isNotBlank(payTimeEnd)) {
- sql += " and p.pay_date <= :payTimeEnd";
- }
- return sql;
- }
Add Comment
Please, Sign In to add comment