diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java b/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java index 1bf7ffd..2460448 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/biz/OrderBiz.java @@ -13,10 +13,7 @@ import com.aircraft.modules.aircraft.service.AircraftDeviceService; import com.aircraft.modules.order.domain.*; import com.aircraft.modules.order.domain.constant.OrderConstant; import com.aircraft.modules.order.domain.constant.OrderRedisConstant; -import com.aircraft.modules.order.domain.dto.AddOrderDTO; -import com.aircraft.modules.order.domain.dto.AddOrderTaskDTO; -import com.aircraft.modules.order.domain.dto.OrderMainPageQueryDTO; -import com.aircraft.modules.order.domain.dto.UpdateOrderDTO; +import com.aircraft.modules.order.domain.dto.*; import com.aircraft.modules.order.domain.enums.*; import com.aircraft.modules.order.domain.vo.*; import com.aircraft.modules.order.service.*; @@ -836,40 +833,63 @@ public class OrderBiz { /** * 获取结算订单详情 * - * @param settlementOrderId 结算订单ID + * @param dto {@link SettlementDetailDTO} + * @param page {@link Page} 分页对象 * @return List */ - public List querySettlementOrderDetail(Long settlementOrderId) { - List settlementDetails = settlementDetailService.obtainDetailBySettlementOrderId(settlementOrderId); + public IPage querySettlementOrderDetail(SettlementDetailDTO dto, Page page) { + // 处理时间格式 + if (ObjectUtil.isNotNull(dto.getQueryStartTime())) { + Date start = DateUtil.beginOfDay(dto.getQueryStartTime()); + dto.setQueryStartTime(start); + } + if (ObjectUtil.isNotNull(dto.getQueryEndTime())) { + Date end = DateUtil.endOfDay(dto.getQueryEndTime()); + dto.setQueryEndTime(end); + } + List settlementDetails = settlementDetailService.querySettlementOrderDetail(dto); if (CollectionUtils.isEmpty(settlementDetails)) { - return new ArrayList<>(); + return new Page<>(); } // 获取所有的路线 List routeList = cpRouteService.obtainAllRoutes(); - if (CollectionUtil.isEmpty(routeList)) { - return settlementDetails; - } - Map routeMap = routeList.stream().collect(Collectors.toMap(CpRoute::getId, route -> route)); - for (SettlementDetail detail : settlementDetails) { - if (StrUtil.isBlank(detail.getRouteIds())) { - continue; - } - String[] routeIdArray = detail.getRouteIds().split(StrUtil.COMMA); - StringBuilder routeNameBuilder = new StringBuilder(); - for (String routeIdStr : routeIdArray) { - CpRoute cpRoute = routeMap.get(Long.valueOf(routeIdStr)); - if (ObjectUtil.isNull(cpRoute)) { + if (CollectionUtil.isNotEmpty(routeList)) { + Map routeMap = routeList.stream().collect(Collectors.toMap(CpRoute::getId, route -> route)); + for (SettlementDetail detail : settlementDetails) { + if (StrUtil.isBlank(detail.getRouteIds())) { continue; } - String name = cpRoute.getName(); - routeNameBuilder.append(name).append(StrUtil.COMMA); - } - // 去掉最后一个逗号 - if (routeNameBuilder.length() > 0) { - detail.setRouteIds(routeNameBuilder.substring(0, routeNameBuilder.length() - 1)); + String[] routeIdArray = detail.getRouteIds().split(StrUtil.COMMA); + StringBuilder routeNameBuilder = new StringBuilder(); + for (String routeIdStr : routeIdArray) { + CpRoute cpRoute = routeMap.get(Long.valueOf(routeIdStr)); + if (ObjectUtil.isNull(cpRoute)) { + continue; + } + String name = cpRoute.getName(); + routeNameBuilder.append(name).append(StrUtil.COMMA); + } + // 去掉最后一个逗号 + if (routeNameBuilder.length() > 0) { + detail.setRouteIds(routeNameBuilder.substring(0, routeNameBuilder.length() - 1)); + } } } - return settlementDetails; + + // 内存分页 + Page pageResult = new Page<>(page.getCurrent(), page.getSize()); + pageResult.setTotal(settlementDetails.size()); + // 计算分页起始和结束位置 + long start = (page.getCurrent() - 1) * page.getSize(); + long end = Math.min(start + page.getSize(), settlementDetails.size()); + // 如果起始位置超出了数据总量,则返回空列表 + if (start >= settlementDetails.size()) { + pageResult.setRecords(new ArrayList<>()); + } else { + // 截取当前页数据 + pageResult.setRecords(settlementDetails.subList((int) start, (int) end)); + } + return pageResult; } /** diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/controller/SettlementMainController.java b/aircraft-system/src/main/java/com/aircraft/modules/order/controller/SettlementMainController.java index fcdd635..3aeef14 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/controller/SettlementMainController.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/controller/SettlementMainController.java @@ -4,6 +4,7 @@ package com.aircraft.modules.order.controller; import com.aircraft.modules.order.biz.OrderBiz; import com.aircraft.modules.order.domain.SettlementDetail; import com.aircraft.modules.order.domain.SettlementMain; +import com.aircraft.modules.order.domain.dto.SettlementDetailDTO; import com.aircraft.modules.order.domain.vo.GenerateSettlementOrderConfirmVO; import com.aircraft.modules.order.domain.vo.PrintSettlementOrderDataVO; import com.aircraft.modules.order.service.ISettlementMainService; @@ -56,10 +57,12 @@ public class SettlementMainController { @ApiOperation("结算订单详情") @GetMapping("/querySettlementOrderDetail/{settlementOrderId}") - public ResponseEntity> querySettlementOrderDetail( + public ResponseEntity>querySettlementOrderDetail( @ApiParam(value = "结算订单ID", required = true, example = "1948997367110451201") - @PathVariable("settlementOrderId") Long settlementOrderId) { - return new ResponseEntity<>(orderBiz.querySettlementOrderDetail(settlementOrderId),HttpStatus.OK); + @PathVariable("settlementOrderId") Long settlementOrderId, + SettlementDetailDTO dto,Page page) { + dto.setSettlementOrderId(settlementOrderId); + return ResponseEntity.ok(orderBiz.querySettlementOrderDetail(dto, page)); } @ApiOperation("打印结算单数据-返回对应的数据集,前端进行打印PDF") diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/SettlementDetailDTO.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/SettlementDetailDTO.java new file mode 100644 index 0000000..480d00f --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/SettlementDetailDTO.java @@ -0,0 +1,51 @@ +package com.aircraft.modules.order.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * + * 结算详情分页查询DTO + * + * @author chenxiky + * @version 1.0.0 + * @since 2025/8/23 + */ +@Data +public class SettlementDetailDTO { + + /** + * 结算单ID + */ + @ApiModelProperty("结算单ID") + private Long settlementOrderId; + + /** + * 景区ID + */ + @ApiModelProperty("景区ID") + private Long attractionId; + + /** + * 订单编号查询 + */ + @ApiModelProperty(value = "订单编号查询") + private String orderNo; + /** + * 下单开始时间 + */ + @ApiModelProperty(value = "下单开始时间", example = "2025-07-19") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date queryStartTime; + + /** + * 下单结束时间 + */ + @ApiModelProperty(value = "下单结束时间", example = "2025-07-19") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date queryEndTime; + +} diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/ISettlementDetailService.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/ISettlementDetailService.java index edf0e8e..b36802a 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/ISettlementDetailService.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/ISettlementDetailService.java @@ -1,6 +1,7 @@ package com.aircraft.modules.order.service; import com.aircraft.modules.order.domain.SettlementDetail; +import com.aircraft.modules.order.domain.dto.SettlementDetailDTO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -37,4 +38,12 @@ public interface ISettlementDetailService extends IService { * @param updateStatus 状态 */ void updateSettlementOrderStatus(List ids, Integer updateStatus); + + /** + * 查询结算单详情列表 + * + * @param dto {@link SettlementDetailDTO} + * @return {@link List} + */ + List querySettlementOrderDetail(SettlementDetailDTO dto); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/SettlementDetailServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/SettlementDetailServiceImpl.java index bd94bdd..fc4bb63 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/SettlementDetailServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/SettlementDetailServiceImpl.java @@ -1,6 +1,9 @@ package com.aircraft.modules.order.service.impl; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.aircraft.modules.order.domain.SettlementDetail; +import com.aircraft.modules.order.domain.dto.SettlementDetailDTO; import com.aircraft.modules.order.mapper.SettlementDetailMapper; import com.aircraft.modules.order.service.ISettlementDetailService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -38,4 +41,15 @@ public class SettlementDetailServiceImpl extends ServiceImpl querySettlementOrderDetail(SettlementDetailDTO dto) { + return this.list(Wrappers.lambdaQuery(SettlementDetail.class) + .eq(SettlementDetail::getSettlementMainId, dto.getSettlementOrderId()) + .eq(ObjectUtil.isNotNull(dto.getAttractionId()), SettlementDetail::getAttractionId, dto.getAttractionId()) + .eq(StrUtil.isNotBlank(dto.getOrderNo()), SettlementDetail::getOrderNo, dto.getOrderNo()) + .ge(ObjectUtil.isNotNull(dto.getQueryStartTime()), SettlementDetail::getOrderCreateTime, dto.getQueryStartTime()) + .le(ObjectUtil.isNotNull(dto.getQueryEndTime()), SettlementDetail::getOrderCreateTime, dto.getQueryEndTime()) + .orderByDesc(SettlementDetail::getId)); + } }