处理分页问题 以及完单报错问题处理

This commit is contained in:
cb 2025-11-11 15:22:01 +08:00
parent ae843ab767
commit 5c17e811a9
5 changed files with 50 additions and 24 deletions

View File

@ -1026,6 +1026,9 @@ public class OrderMasterController extends BaseController {
// 查询所有数据不进行分页 // 查询所有数据不进行分页
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster); List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
orderMaster.setPageNum(null);
orderMaster.setPageSize(null);
List<OrderMaster> countList = orderMasterService.selectOrderMasterList(orderMaster);
// 处理orderType为0的情况额外查询原师傅ID相关的订单 // 处理orderType为0的情况额外查询原师傅ID相关的订单
OrderMaster origiOrderMaster = new OrderMaster(); OrderMaster origiOrderMaster = new OrderMaster();
@ -1035,6 +1038,7 @@ public class OrderMasterController extends BaseController {
origiOrderMaster.setOrderStatuses("0,1,2,3,4"); origiOrderMaster.setOrderStatuses("0,1,2,3,4");
List<OrderMaster> originalList = orderMasterService.selectOrderMasterList(origiOrderMaster); List<OrderMaster> originalList = orderMasterService.selectOrderMasterList(origiOrderMaster);
list.addAll(originalList); list.addAll(originalList);
countList.addAll(originalList);
} }
// 合并数据后去重根据订单ID // 合并数据后去重根据订单ID
@ -1042,8 +1046,15 @@ public class OrderMasterController extends BaseController {
for (OrderMaster order : list) { for (OrderMaster order : list) {
uniqueOrderMap.put(order.getId(), order); uniqueOrderMap.put(order.getId(), order);
} }
List<OrderMaster> uniqueList = new ArrayList<>(uniqueOrderMap.values()); List<OrderMaster> uniqueList = new ArrayList<>(uniqueOrderMap.values());
uniqueOrderMap = new LinkedHashMap<>();
for (OrderMaster order : countList) {
uniqueOrderMap.put(order.getId(), order);
}
countList = new ArrayList<>(uniqueOrderMap.values());
// 按创建时间排序 // 按创建时间排序
uniqueList.sort((o1, o2) -> { uniqueList.sort((o1, o2) -> {
if (o1.getUpdateTimeAlias() == null && o2.getUpdateTimeAlias() == null) return 0; if (o1.getUpdateTimeAlias() == null && o2.getUpdateTimeAlias() == null) return 0;
@ -1052,8 +1063,8 @@ public class OrderMasterController extends BaseController {
return o2.getUpdateTimeAlias().compareTo(o1.getUpdateTimeAlias()); return o2.getUpdateTimeAlias().compareTo(o1.getUpdateTimeAlias());
}); });
// 使用startPage()方式获取分页参数从HTTP请求中获取 // 获取分页参数从HTTP请求中获取
// startPage(); // 注意这里不能使用startPage()因为我们要查询所有数据进行手动分页
// 获取分页参数从PageDomain中获取 // 获取分页参数从PageDomain中获取
// PageDomain pageDomain = TableSupport.buildPageRequest(); // PageDomain pageDomain = TableSupport.buildPageRequest();
// Integer pageNum = pageDomain.getPageNum() != null ? pageDomain.getPageNum() : orderMaster.getPageNum(); // Integer pageNum = pageDomain.getPageNum() != null ? pageDomain.getPageNum() : orderMaster.getPageNum();
@ -1358,7 +1369,7 @@ public class OrderMasterController extends BaseController {
} }
orderListResponses.add(orderListResponse); orderListResponses.add(orderListResponse);
}); });
return voDataTable(orderListResponses, uniqueList); return voDataTable(orderListResponses, countList);
} }
@PostMapping("/app/count") @PostMapping("/app/count")

View File

@ -254,11 +254,10 @@
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label class="col-sm-6 control-label is-required">倒计时小时数:</label> <label class="col-sm-6 control-label">倒计时小时数:</label>
<div class="col-sm-6"> <div class="col-sm-6">
<input name="countdownHours" placeholder="请输入倒计时小时数" class="form-control" type="number" min="1" max="168" <input name="countdownHours" placeholder="请输入倒计时小时数" class="form-control" type="number" min="1" max="168"
th:field="*{countdownHours}" th:field="*{countdownHours}">
required>
</div> </div>
</div> </div>
</div> </div>

View File

@ -380,7 +380,7 @@ public class OrderMaster extends BaseEntity {
@Excel(name = "退款时是否已支付", cellType = Excel.ColumnType.NUMERIC, readConverterExp = "0=未支付,1=已支付") @Excel(name = "退款时是否已支付", cellType = Excel.ColumnType.NUMERIC, readConverterExp = "0=未支付,1=已支付")
private Integer refundPayStatus; private Integer refundPayStatus;
// private Integer pageSize; private Integer pageSize;
//
// private Integer pageNum; private Integer pageNum;
} }

View File

@ -193,22 +193,38 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 子单修改从服务中到确认中需要修改已服务商品数量从确认中到服务中需要重置已服务商品数量 // 子单修改从服务中到确认中需要修改已服务商品数量从确认中到服务中需要重置已服务商品数量
if (OrderStatus.FINISH_CHECK.code() == orderDetail.getOrderStatus() && originOrderDetail.getOrderStatus() < OrderStatus.FINISH_CHECK.code()) { if (OrderStatus.FINISH_CHECK.code() == orderDetail.getOrderStatus() && originOrderDetail.getOrderStatus() < OrderStatus.FINISH_CHECK.code()) {
List<OrderGoods> orderGoodsList = orderGoodsService.selectByOrderDetailId(orderDetail.getId()); List<OrderGoods> orderGoodsList = orderGoodsService.selectByOrderDetailId(orderDetail.getId());
orderGoodsList.stream().forEach(orderGoods -> { if (CollectionUtils.isNotEmpty(orderGoodsList)) {
orderGoods.setServerGoodsNum(orderGoods.getGoodsNum()); orderGoodsList.stream().filter(Objects::nonNull).forEach(orderGoods -> {
orderGoodsService.updateOrderGoods(orderGoods); if (orderGoods.getGoodsStandardId() != null) {
// 主单关联商品相应修改已服务数量 // 检查goodsNum是否为null提供默认值0
Integer masterServerGoodsNum = masterGoodsMap.get(orderGoods.getGoodsStandardId()).getServerGoodsNum(); Integer goodsNum = orderGoods.getGoodsNum() != null ? orderGoods.getGoodsNum() : 0;
masterGoodsMap.get(orderGoods.getGoodsStandardId()).setServerGoodsNum(masterServerGoodsNum += orderGoods.getServerGoodsNum()); orderGoods.setServerGoodsNum(goodsNum);
}); orderGoodsService.updateOrderGoods(orderGoods);
// 主单关联商品相应修改已服务数量
OrderGoods masterGoods = masterGoodsMap.get(orderGoods.getGoodsStandardId());
if (masterGoods != null && masterGoods.getServerGoodsNum() != null) {
Integer masterServerGoodsNum = masterGoods.getServerGoodsNum();
masterGoods.setServerGoodsNum(masterServerGoodsNum + goodsNum);
}
}
});
}
} else if (OrderStatus.FINISH_CHECK.code() == originOrderDetail.getOrderStatus() && orderDetail.getOrderStatus() < OrderStatus.FINISH_CHECK.code()) { } else if (OrderStatus.FINISH_CHECK.code() == originOrderDetail.getOrderStatus() && orderDetail.getOrderStatus() < OrderStatus.FINISH_CHECK.code()) {
List<OrderGoods> orderGoodsList = orderGoodsService.selectByOrderDetailId(orderDetail.getId()); List<OrderGoods> orderGoodsList = orderGoodsService.selectByOrderDetailId(orderDetail.getId());
orderGoodsList.stream().forEach(orderGoods -> { if (CollectionUtils.isNotEmpty(orderGoodsList)) {
orderGoods.setServerGoodsNum(0); orderGoodsList.stream().filter(Objects::nonNull).forEach(orderGoods -> {
orderGoodsService.updateOrderGoods(orderGoods); if (orderGoods.getGoodsStandardId() != null) {
// 主单关联商品相应修改已服务数量 orderGoods.setServerGoodsNum(0);
Integer masterServerGoodsNum = masterGoodsMap.get(orderGoods.getGoodsStandardId()).getServerGoodsNum(); orderGoodsService.updateOrderGoods(orderGoods);
masterGoodsMap.get(orderGoods.getGoodsStandardId()).setServerGoodsNum(masterServerGoodsNum -= orderGoods.getGoodsNum()); // 主单关联商品相应修改已服务数量
}); OrderGoods masterGoods = masterGoodsMap.get(orderGoods.getGoodsStandardId());
if (masterGoods != null && masterGoods.getServerGoodsNum() != null && orderGoods.getGoodsNum() != null) {
Integer masterServerGoodsNum = masterGoods.getServerGoodsNum();
masterGoods.setServerGoodsNum(masterServerGoodsNum - orderGoods.getGoodsNum());
}
}
});
}
} }
// 更新主单关联商品 // 更新主单关联商品
masterOrderGoodsList.stream().forEach(masterOrderGoods -> { masterOrderGoodsList.stream().forEach(masterOrderGoods -> {

View File

@ -1341,7 +1341,7 @@ public class OrderServiceImpl implements OrderService {
//单独处理待上门通知 //单独处理待上门通知
public void checkTimeoutDoor(OrderDetail order) { public void checkTimeoutDoor(OrderDetail order) {
log.info("子单超时开始:单号:{}, 内容:{}", order.getCode(), order); //log.info("子单超时开始:单号:{}, 内容:{}", order.getCode(), order);
Date now = new Date(); Date now = new Date();
// 是否超时 // 是否超时
boolean timeout = ONE.equals(order.getTimeout()); boolean timeout = ONE.equals(order.getTimeout());