【add】后台管理系统订单分页查询接口实现
This commit is contained in:
parent
8be188f2c2
commit
925e4c5954
|
@ -2,9 +2,13 @@ package com.chint.infrastructure.repository.jdbc;
|
||||||
|
|
||||||
import com.chint.domain.aggregates.order.OrderDetail;
|
import com.chint.domain.aggregates.order.OrderDetail;
|
||||||
import com.chint.domain.aggregates.order.RouteOrder;
|
import com.chint.domain.aggregates.order.RouteOrder;
|
||||||
|
import com.chint.manage.entity.query.OrderPageQuery;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.jdbc.repository.query.Query;
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
@ -30,4 +34,22 @@ public interface JdbcOrderDetailRepository extends CrudRepository<OrderDetail, L
|
||||||
List<OrderDetail> findByUpdateTimeBetween(LocalDateTime createTime, LocalDateTime createTime2);
|
List<OrderDetail> findByUpdateTimeBetween(LocalDateTime createTime, LocalDateTime createTime2);
|
||||||
|
|
||||||
List<OrderDetail> findAllByRouteIdIn(List<Long> routeIds);
|
List<OrderDetail> findAllByRouteIdIn(List<Long> routeIds);
|
||||||
|
|
||||||
|
|
||||||
|
@Query("SELECT * FROM order_detail " +
|
||||||
|
"WHERE 1=1 " +
|
||||||
|
"AND (:#{#dto.orderNo} ='' OR order_no LIKE :#{#dto.orderNo}) " +
|
||||||
|
"AND (:#{#dto.applicant} ='' OR supplier_name LIKE :#{#dto.applicant}) " +
|
||||||
|
"AND (:#{#dto.startTime} IS NULL OR :#{#dto.endTime} IS NULL OR order_date BETWEEN :#{#dto.startTime} AND :#{#dto.endTime} ) " +
|
||||||
|
"AND (:#{#dto.productType} ='' OR product_type = :#{#dto.productType}) "+
|
||||||
|
"LIMIT :#{#pageRequest.pageSize} OFFSET :#{#pageRequest.pageNumber}")
|
||||||
|
List<OrderDetail> listByCondition(@Param("dto") OrderPageQuery dto, @Param("pageRequest")PageRequest pageRequest);
|
||||||
|
|
||||||
|
@Query("SELECT COUNT(*) FROM order_detail " +
|
||||||
|
"WHERE 1=1 " +
|
||||||
|
"AND (:#{#dto.orderNo} ='' OR order_no LIKE :#{#dto.orderNo}) " +
|
||||||
|
"AND (:#{#dto.applicant} ='' OR supplier_name LIKE :#{#dto.applicant}) " +
|
||||||
|
"AND (:#{#dto.startTime} IS NULL OR :#{#dto.endTime} IS NULL OR order_date BETWEEN :#{#dto.startTime} AND :#{#dto.endTime} ) " +
|
||||||
|
"AND (:#{#dto.productType} ='' OR product_type = :#{#dto.productType}) ")
|
||||||
|
Integer countByCondition(@Param("dto") OrderPageQuery dto);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import com.chint.manage.entity.query.ItineraryPageQuery;
|
||||||
import com.chint.manage.entity.query.OrderPageQuery;
|
import com.chint.manage.entity.query.OrderPageQuery;
|
||||||
import com.chint.manage.entity.query.StandardQuery;
|
import com.chint.manage.entity.query.StandardQuery;
|
||||||
import com.chint.manage.service.ManageService;
|
import com.chint.manage.service.ManageService;
|
||||||
import com.chint.manage.util.BaseUtil;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -26,7 +25,6 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.chint.dama.dc.basic.Result.SUCCESS;
|
import static com.chint.dama.dc.basic.Result.SUCCESS;
|
||||||
|
|
||||||
|
@ -99,7 +97,7 @@ public class ManageController {
|
||||||
@PostMapping("/order/pageQuery")
|
@PostMapping("/order/pageQuery")
|
||||||
public Result<?> orderPageQuery(@RequestBody OrderPageQuery dto){
|
public Result<?> orderPageQuery(@RequestBody OrderPageQuery dto){
|
||||||
//订单查询 order_detail 行程号改为申请单号 任务创建创建生成记录 异步生成 完成之后再开发下载
|
//订单查询 order_detail 行程号改为申请单号 任务创建创建生成记录 异步生成 完成之后再开发下载
|
||||||
return null;
|
return Result.Success(SUCCESS,manageService.orderPageQuery(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("订单下载记录查询接口")
|
@ApiOperation("订单下载记录查询接口")
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package com.chint.manage.entity.dto;
|
package com.chint.manage.entity.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class OrderPageDto {
|
public class OrderPageDto {
|
||||||
|
@ -12,9 +14,20 @@ public class OrderPageDto {
|
||||||
private Integer productType;
|
private Integer productType;
|
||||||
private String price; // 价格
|
private String price; // 价格
|
||||||
private String employeeNo;
|
private String employeeNo;
|
||||||
|
//出发
|
||||||
|
private Long originId;
|
||||||
|
private String originName;
|
||||||
|
//目的地
|
||||||
|
private Long destinationId;
|
||||||
|
private String destinationName;
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime orderDate;
|
private LocalDateTime orderDate;
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime startTime;
|
private LocalDateTime startTime;
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.util.List;
|
||||||
@Data
|
@Data
|
||||||
public class OrderPageQuery extends BaseQuery {
|
public class OrderPageQuery extends BaseQuery {
|
||||||
//订单号
|
//订单号
|
||||||
private String oderNo="";
|
private String orderNo="";
|
||||||
//申请单号
|
//申请单号
|
||||||
private String actualOrderNo="";
|
private String actualOrderNo="";
|
||||||
//出行人
|
//出行人
|
||||||
|
@ -20,9 +20,19 @@ public class OrderPageQuery extends BaseQuery {
|
||||||
private String startTime;
|
private String startTime;
|
||||||
//结束日期
|
//结束日期
|
||||||
private String endTime;
|
private String endTime;
|
||||||
//产品类型
|
/**
|
||||||
private String productType;
|
* 商品类型 0-火车 1飞机 2酒店 3打车 4其他
|
||||||
|
*/
|
||||||
|
private String productType="";
|
||||||
//部门名称
|
//部门名称
|
||||||
private String deptName="";
|
private String deptName="";
|
||||||
private List<String> userIds=new ArrayList<>();
|
private List<String> userIds=new ArrayList<>();
|
||||||
|
|
||||||
|
public String getOrderNo() {
|
||||||
|
return "%" +orderNo+"%";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApplicant(){
|
||||||
|
return "%" +applicant+"%";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,14 @@ package com.chint.manage.service;
|
||||||
import com.chint.infrastructure.util.PageResult;
|
import com.chint.infrastructure.util.PageResult;
|
||||||
import com.chint.manage.entity.OrderDownloadRecord;
|
import com.chint.manage.entity.OrderDownloadRecord;
|
||||||
import com.chint.manage.entity.dto.ItineraryPageDto;
|
import com.chint.manage.entity.dto.ItineraryPageDto;
|
||||||
|
import com.chint.manage.entity.dto.OrderPageDto;
|
||||||
import com.chint.manage.entity.query.ConsumptionDetailQuery;
|
import com.chint.manage.entity.query.ConsumptionDetailQuery;
|
||||||
import com.chint.manage.entity.query.ItineraryPageQuery;
|
import com.chint.manage.entity.query.ItineraryPageQuery;
|
||||||
|
import com.chint.manage.entity.query.OrderPageQuery;
|
||||||
import com.chint.manage.entity.query.StandardQuery;
|
import com.chint.manage.entity.query.StandardQuery;
|
||||||
import com.chint.manage.entity.excel.BaseExcel;
|
import com.chint.manage.entity.excel.BaseExcel;
|
||||||
import com.chint.manage.entity.excel.OrderExceedStandardExcel;
|
import com.chint.manage.entity.excel.OrderExceedStandardExcel;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -32,4 +35,6 @@ public interface ManageService {
|
||||||
void addOrderDownloadRecord(OrderDownloadRecord orderDownloadRecord);
|
void addOrderDownloadRecord(OrderDownloadRecord orderDownloadRecord);
|
||||||
|
|
||||||
List<OrderDownloadRecord> orderDownloadRecordQuery();
|
List<OrderDownloadRecord> orderDownloadRecordQuery();
|
||||||
|
|
||||||
|
PageResult<OrderPageDto> orderPageQuery(OrderPageQuery dto);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,14 @@ package com.chint.manage.service.impl;
|
||||||
|
|
||||||
import com.chint.application.dtos.response.LocationRes;
|
import com.chint.application.dtos.response.LocationRes;
|
||||||
import com.chint.domain.aggregates.order.Leg;
|
import com.chint.domain.aggregates.order.Leg;
|
||||||
|
import com.chint.domain.aggregates.order.Location;
|
||||||
|
import com.chint.domain.aggregates.order.OrderDetail;
|
||||||
import com.chint.domain.aggregates.order.RouteOrder;
|
import com.chint.domain.aggregates.order.RouteOrder;
|
||||||
import com.chint.domain.aggregates.user.User;
|
import com.chint.domain.aggregates.user.User;
|
||||||
import com.chint.domain.repository.UserRepository;
|
import com.chint.domain.repository.UserRepository;
|
||||||
import com.chint.domain.service.LegDomainService;
|
import com.chint.domain.service.LegDomainService;
|
||||||
|
import com.chint.infrastructure.repository.jdbc.JdbcLocationRepository;
|
||||||
|
import com.chint.infrastructure.repository.jdbc.JdbcOrderDetailRepository;
|
||||||
import com.chint.infrastructure.repository.jdbc.JdbcRouteRepository;
|
import com.chint.infrastructure.repository.jdbc.JdbcRouteRepository;
|
||||||
import com.chint.infrastructure.repository.jdbc.JdbcUserRepository;
|
import com.chint.infrastructure.repository.jdbc.JdbcUserRepository;
|
||||||
import com.chint.infrastructure.util.BaseContext;
|
import com.chint.infrastructure.util.BaseContext;
|
||||||
|
@ -13,10 +17,12 @@ import com.chint.infrastructure.util.PageResult;
|
||||||
import com.chint.manage.entity.OrderDownloadRecord;
|
import com.chint.manage.entity.OrderDownloadRecord;
|
||||||
import com.chint.manage.entity.OrderExceedStandard;
|
import com.chint.manage.entity.OrderExceedStandard;
|
||||||
import com.chint.manage.entity.dto.ItineraryPageDto;
|
import com.chint.manage.entity.dto.ItineraryPageDto;
|
||||||
|
import com.chint.manage.entity.dto.OrderPageDto;
|
||||||
import com.chint.manage.entity.excel.BaseExcel;
|
import com.chint.manage.entity.excel.BaseExcel;
|
||||||
import com.chint.manage.entity.excel.OrderExceedStandardExcel;
|
import com.chint.manage.entity.excel.OrderExceedStandardExcel;
|
||||||
import com.chint.manage.entity.query.ConsumptionDetailQuery;
|
import com.chint.manage.entity.query.ConsumptionDetailQuery;
|
||||||
import com.chint.manage.entity.query.ItineraryPageQuery;
|
import com.chint.manage.entity.query.ItineraryPageQuery;
|
||||||
|
import com.chint.manage.entity.query.OrderPageQuery;
|
||||||
import com.chint.manage.entity.query.StandardQuery;
|
import com.chint.manage.entity.query.StandardQuery;
|
||||||
import com.chint.manage.mapper.JdbcOrderDownloadRecordRepository;
|
import com.chint.manage.mapper.JdbcOrderDownloadRecordRepository;
|
||||||
import com.chint.manage.mapper.JdbcOrderExceedStandardRepository;
|
import com.chint.manage.mapper.JdbcOrderExceedStandardRepository;
|
||||||
|
@ -35,6 +41,7 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,6 +67,10 @@ public class ManageServiceImpl implements ManageService {
|
||||||
private JdbcOrderDownloadRecordRepository jdbcOrderDownloadRecordRepository;
|
private JdbcOrderDownloadRecordRepository jdbcOrderDownloadRecordRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BaseUtil baseUtil;
|
private BaseUtil baseUtil;
|
||||||
|
@Autowired
|
||||||
|
private JdbcOrderDetailRepository jdbcOrderDetailRepository;
|
||||||
|
@Autowired
|
||||||
|
private JdbcLocationRepository locationRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<? extends BaseExcel> pageConsumptionDetail(ConsumptionDetailQuery dto) {
|
public PageResult<? extends BaseExcel> pageConsumptionDetail(ConsumptionDetailQuery dto) {
|
||||||
|
@ -149,6 +160,31 @@ public class ManageServiceImpl implements ManageService {
|
||||||
return jdbcOrderDownloadRecordRepository.findAllByEmployeeNo(user.getEmployeeNo());
|
return jdbcOrderDownloadRecordRepository.findAllByEmployeeNo(user.getEmployeeNo());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<OrderPageDto> orderPageQuery(OrderPageQuery dto) {
|
||||||
|
List<OrderDetail> list=jdbcOrderDetailRepository.listByCondition(dto,dto.getPageResult());
|
||||||
|
//处理地点信息
|
||||||
|
List<Long> locationIds = new ArrayList<>(list.stream().map(OrderDetail::getOriginId).toList());
|
||||||
|
locationIds.addAll(list.stream().map(OrderDetail::getDestinationId).toList());
|
||||||
|
List<Location> locations=locationRepository.findByLocationIdIn(locationIds);
|
||||||
|
|
||||||
|
List<OrderPageDto> result = list.stream().map(temp -> {
|
||||||
|
OrderPageDto obj = new OrderPageDto();
|
||||||
|
BeanUtils.copyProperties(temp, obj);
|
||||||
|
Location origin=locations.stream().filter(s->s.getLocationId().equals(obj.getOriginId())).toList().get(0);
|
||||||
|
Location destination=locations.stream().filter(s->s.getLocationId().equals(obj.getDestinationId())).toList().get(0);
|
||||||
|
if (origin!=null){
|
||||||
|
obj.setOriginName(origin.getLocationName());
|
||||||
|
}
|
||||||
|
if (destination!=null){
|
||||||
|
obj.setDestinationName(destination.getLocationName());
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
}).toList();
|
||||||
|
Integer count=jdbcOrderDetailRepository.countByCondition(dto);
|
||||||
|
return PageResult.totalPageNum(count, result);
|
||||||
|
}
|
||||||
|
|
||||||
private static List<OrderExceedStandardExcel> getOrderExceedStandardExcels(Page<OrderExceedStandard> page) {
|
private static List<OrderExceedStandardExcel> getOrderExceedStandardExcels(Page<OrderExceedStandard> page) {
|
||||||
List<OrderExceedStandard> orderList = page.getContent();
|
List<OrderExceedStandard> orderList = page.getContent();
|
||||||
List<OrderExceedStandardExcel> excelList = new ArrayList<>();
|
List<OrderExceedStandardExcel> excelList = new ArrayList<>();
|
||||||
|
|
Loading…
Reference in New Issue