|
|
@ -618,121 +618,271 @@ public class ApiAppletOrderController extends BaseController { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
// //我的订单流程 |
|
|
|
// @ApiOperation("小程序-我的订单流程-日订单") |
|
|
|
// @GetMapping("/myDateList") |
|
|
|
// public AjaxResult myDateList(AppletOrderDateVo dateVo){ |
|
|
|
// if(dateVo.getUserId() == null){ |
|
|
|
// return AjaxResult.error("userId用户标识不能为空"); |
|
|
|
// } |
|
|
|
// if(dateVo.getStatus() == null){ |
|
|
|
// return AjaxResult.error("status当前状态不能为空"); |
|
|
|
// } |
|
|
|
// |
|
|
|
// //查询我所有的日订单数据 |
|
|
|
// AppletOrderItemDate date = new AppletOrderItemDate(); |
|
|
|
// date.setUserId(dateVo.getUserId()); |
|
|
|
// date.setStatus(dateVo.getStatus()); |
|
|
|
// List<AppletOrderItemDate> addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date); |
|
|
|
// |
|
|
|
// Set<String> uniqueDates = new HashSet<>(); |
|
|
|
// List<AppletOrderDateVoReturn> dateVoReturnList = new ArrayList<>(); |
|
|
|
// |
|
|
|
// for (AppletOrderItemDate date1 : addressList) { |
|
|
|
// if (uniqueDates.add(date1.getServiceDate())) { |
|
|
|
// AppletOrderDateVoReturn dateVoReturn = new AppletOrderDateVoReturn(); |
|
|
|
// dateVoReturn.setServiceDate(date1.getServiceDate()); |
|
|
|
// |
|
|
|
// if(dateVo.getStatus() == 1){ |
|
|
|
// AppletOrderItem orders = appletOrderItemService.selectAppletOrderItemById(date1.getOrderId()); |
|
|
|
// if(orders.getOrderStatus()==2){ |
|
|
|
// dateVoReturnList.add(dateVoReturn); |
|
|
|
// } |
|
|
|
// }else{ |
|
|
|
// dateVoReturnList.add(dateVoReturn); |
|
|
|
// } |
|
|
|
// |
|
|
|
// } |
|
|
|
// } |
|
|
|
// |
|
|
|
// |
|
|
|
// //得到日订单集合 |
|
|
|
// for (AppletOrderDateVoReturn dateVoReturn : dateVoReturnList) { |
|
|
|
// //得到日订单日期 |
|
|
|
// String serviceDate = dateVoReturn.getServiceDate(); |
|
|
|
// |
|
|
|
// //订单下订单集合 |
|
|
|
// AppletOrderItemDate service = new AppletOrderItemDate(); |
|
|
|
// service.setServiceDate(serviceDate); |
|
|
|
// |
|
|
|
// List<AppletOrderItemDate> serviceList = appletOrderItemDateService.selectAppletOrderItemDateList(service); |
|
|
|
// List<AppletOrderDateAddressReturn> uniqueOrderDetails = serviceList.stream() |
|
|
|
// .collect(Collectors.toMap( |
|
|
|
// AppletOrderItemDate::getOrderId, // 使用orderId作为键 |
|
|
|
// item -> new AppletOrderDateAddressReturn(item.getOrderId(), item.getCityAddress(), item.getAddress()), // 创建OrderDetails对象作为值 |
|
|
|
// (existing, replacement) -> existing // 如果有重复的orderId,保留现有的(可以根据需要修改合并逻辑) |
|
|
|
// )) |
|
|
|
// .values() |
|
|
|
// .stream() |
|
|
|
// .collect(Collectors.toList()); |
|
|
|
// // 假设dateVoReturn有一个setOrderList方法 |
|
|
|
// |
|
|
|
// dateVoReturn.setOrderList(uniqueOrderDetails); |
|
|
|
// dateVoReturn.setNum(uniqueOrderDetails.size()); |
|
|
|
// |
|
|
|
// for (AppletOrderDateAddressReturn uniqueOrderDetail : uniqueOrderDetails) { |
|
|
|
// AppletOrderItemDate appletOrderItemDate = new AppletOrderItemDate(); |
|
|
|
// appletOrderItemDate.setOrderId(uniqueOrderDetail.getOrderId()); |
|
|
|
// appletOrderItemDate.setServiceDate(serviceDate); |
|
|
|
// |
|
|
|
// |
|
|
|
// List<AppletOrderItemDate> appletOrderItemDates = appletOrderItemDateService.selectAppletOrderItemDateList(appletOrderItemDate); |
|
|
|
// for (AppletOrderItemDate appletOrderItemDate1 : appletOrderItemDates) { |
|
|
|
// // 组装item |
|
|
|
// QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>(); |
|
|
|
// orderItemQw.eq("order_service_id", appletOrderItemDate1.getOrderServiceId()); |
|
|
|
// List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw); |
|
|
|
// appletOrderItemDate1.setOrderItemList(orderItemList); |
|
|
|
// |
|
|
|
// |
|
|
|
// OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(appletOrderItemDate1.getOrderServiceId()); |
|
|
|
// omsOrderService.setPetVo(h5PetService.selectPetById(omsOrderService.getPetId())); |
|
|
|
// appletOrderItemDate1.setOrderServiceList(omsOrderService); |
|
|
|
// } |
|
|
|
// |
|
|
|
// uniqueOrderDetail.setAppletOrderItemDate(appletOrderItemDates); |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// } |
|
|
|
// |
|
|
|
// |
|
|
|
// } |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// |
|
|
|
// return AjaxResult.success("日订单数据",dateVoReturnList); |
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//我的订单流程 |
|
|
|
@ApiOperation("小程序-我的订单流程-日订单") |
|
|
|
@GetMapping("/myDateList") |
|
|
|
public AjaxResult myDateList(AppletOrderDateVo dateVo){ |
|
|
|
if(dateVo.getUserId() == null){ |
|
|
|
public AjaxResult myDateList(AppletOrderDateVo dateVo) { |
|
|
|
if (dateVo.getUserId() == null) { |
|
|
|
return AjaxResult.error("userId用户标识不能为空"); |
|
|
|
} |
|
|
|
if(dateVo.getStatus() == null){ |
|
|
|
if (dateVo.getStatus() == null) { |
|
|
|
return AjaxResult.error("status当前状态不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
//查询我所有的日订单数据 |
|
|
|
// 查询我所有的日订单数据 |
|
|
|
AppletOrderItemDate date = new AppletOrderItemDate(); |
|
|
|
date.setUserId(dateVo.getUserId()); |
|
|
|
date.setStatus(dateVo.getStatus()); |
|
|
|
List<AppletOrderItemDate> addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date); |
|
|
|
|
|
|
|
Set<String> uniqueDates = new HashSet<>(); |
|
|
|
// 用于存储按日期分组的订单 |
|
|
|
Map<String, List<AppletOrderItemDate>> dateToOrdersMap = new HashMap<>(); |
|
|
|
|
|
|
|
for (AppletOrderItemDate dateItem : addressList) { |
|
|
|
String serviceDate = dateItem.getServiceDate(); |
|
|
|
dateToOrdersMap.computeIfAbsent(serviceDate, k -> new ArrayList<>()).add(dateItem); |
|
|
|
} |
|
|
|
|
|
|
|
List<AppletOrderDateVoReturn> dateVoReturnList = new ArrayList<>(); |
|
|
|
|
|
|
|
for (AppletOrderItemDate date1 : addressList) { |
|
|
|
if (uniqueDates.add(date1.getServiceDate())) { |
|
|
|
// 遍历每个日期 |
|
|
|
for (Map.Entry<String, List<AppletOrderItemDate>> entry : dateToOrdersMap.entrySet()) { |
|
|
|
String serviceDate = entry.getKey(); |
|
|
|
List<AppletOrderItemDate> ordersForDate = entry.getValue(); |
|
|
|
|
|
|
|
// 遍历该日期的所有订单 |
|
|
|
for (AppletOrderItemDate orderItemDate : ordersForDate) { |
|
|
|
AppletOrderDateVoReturn dateVoReturn = new AppletOrderDateVoReturn(); |
|
|
|
dateVoReturn.setServiceDate(date1.getServiceDate()); |
|
|
|
|
|
|
|
if(dateVo.getStatus() == 1){ |
|
|
|
//根据日订订单中关联的主订单标识查询主订单状态 |
|
|
|
// AppletOrderItem order = new AppletOrderItem(); |
|
|
|
// order.setOrderId(date1.getOrderId()); |
|
|
|
// order.setUserId(dateVo.getUserId()); |
|
|
|
AppletOrderItem orders = appletOrderItemService.selectAppletOrderItemById(date1.getOrderId()); |
|
|
|
//如果状态为1,则表示该订单已经完成,则不显示该订单 |
|
|
|
// if(orders.getStatus()==1){ |
|
|
|
// dateVoReturnList.add(dateVoReturn); |
|
|
|
// } |
|
|
|
if(orders.getOrderStatus()==2){ |
|
|
|
dateVoReturn.setServiceDate(serviceDate); |
|
|
|
|
|
|
|
if (dateVo.getStatus() == 1) { |
|
|
|
AppletOrderItem orders = appletOrderItemService.selectAppletOrderItemById(orderItemDate.getOrderId()); |
|
|
|
if (orders.getOrderStatus() == 2) { |
|
|
|
// 直接添加,不进行过滤 |
|
|
|
dateVoReturnList.add(dateVoReturn); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
dateVoReturnList.add(dateVoReturn); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//得到日订单集合 |
|
|
|
for (AppletOrderDateVoReturn dateVoReturn : dateVoReturnList) { |
|
|
|
//得到日订单日期 |
|
|
|
String serviceDate = dateVoReturn.getServiceDate(); |
|
|
|
// 设置订单详情 |
|
|
|
List<AppletOrderDateAddressReturn> orderDetailsList = new ArrayList<>(); |
|
|
|
AppletOrderDateAddressReturn orderDetails = new AppletOrderDateAddressReturn( |
|
|
|
orderItemDate.getOrderId(), |
|
|
|
orderItemDate.getCityAddress(), |
|
|
|
orderItemDate.getAddress() |
|
|
|
); |
|
|
|
orderDetailsList.add(orderDetails); |
|
|
|
|
|
|
|
//订单下订单集合 |
|
|
|
AppletOrderItemDate service = new AppletOrderItemDate(); |
|
|
|
service.setServiceDate(serviceDate); |
|
|
|
dateVoReturn.setOrderList(orderDetailsList); |
|
|
|
dateVoReturn.setNum(orderDetailsList.size()); |
|
|
|
|
|
|
|
List<AppletOrderItemDate> serviceList = appletOrderItemDateService.selectAppletOrderItemDateList(service); |
|
|
|
List<AppletOrderDateAddressReturn> uniqueOrderDetails = serviceList.stream() |
|
|
|
.collect(Collectors.toMap( |
|
|
|
AppletOrderItemDate::getOrderId, // 使用orderId作为键 |
|
|
|
item -> new AppletOrderDateAddressReturn(item.getOrderId(), item.getCityAddress(), item.getAddress()), // 创建OrderDetails对象作为值 |
|
|
|
(existing, replacement) -> existing // 如果有重复的orderId,保留现有的(可以根据需要修改合并逻辑) |
|
|
|
)) |
|
|
|
.values() |
|
|
|
.stream() |
|
|
|
.collect(Collectors.toList()); |
|
|
|
// 假设dateVoReturn有一个setOrderList方法 |
|
|
|
|
|
|
|
dateVoReturn.setOrderList(uniqueOrderDetails); |
|
|
|
dateVoReturn.setNum(uniqueOrderDetails.size()); |
|
|
|
|
|
|
|
for (AppletOrderDateAddressReturn uniqueOrderDetail : uniqueOrderDetails) { |
|
|
|
// 设置订单项 |
|
|
|
AppletOrderItemDate appletOrderItemDate = new AppletOrderItemDate(); |
|
|
|
appletOrderItemDate.setOrderId(uniqueOrderDetail.getOrderId()); |
|
|
|
appletOrderItemDate.setOrderId(orderItemDate.getOrderId()); |
|
|
|
appletOrderItemDate.setServiceDate(serviceDate); |
|
|
|
|
|
|
|
|
|
|
|
List<AppletOrderItemDate> appletOrderItemDates = appletOrderItemDateService.selectAppletOrderItemDateList(appletOrderItemDate); |
|
|
|
for (AppletOrderItemDate appletOrderItemDate1 : appletOrderItemDates) { |
|
|
|
// 组装item |
|
|
|
for (AppletOrderItemDate itemDate : appletOrderItemDates) { |
|
|
|
QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>(); |
|
|
|
orderItemQw.eq("order_service_id", appletOrderItemDate1.getOrderServiceId()); |
|
|
|
orderItemQw.eq("order_service_id", itemDate.getOrderServiceId()); |
|
|
|
List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw); |
|
|
|
appletOrderItemDate1.setOrderItemList(orderItemList); |
|
|
|
itemDate.setOrderItemList(orderItemList); |
|
|
|
|
|
|
|
|
|
|
|
OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(appletOrderItemDate1.getOrderServiceId()); |
|
|
|
OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(itemDate.getOrderServiceId()); |
|
|
|
omsOrderService.setPetVo(h5PetService.selectPetById(omsOrderService.getPetId())); |
|
|
|
appletOrderItemDate1.setOrderServiceList(omsOrderService); |
|
|
|
itemDate.setOrderServiceList(omsOrderService); |
|
|
|
} |
|
|
|
|
|
|
|
uniqueOrderDetail.setAppletOrderItemDate(appletOrderItemDates); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
orderDetails.setAppletOrderItemDate(appletOrderItemDates); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success("日订单数据",dateVoReturnList); |
|
|
|
return AjaxResult.success("日订单数据", dateVoReturnList); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
// @ApiOperation("小程序-我的订单流程-日订单") |
|
|
|
// @GetMapping("/myDateList") |
|
|
|
// public AjaxResult myDateList(AppletOrderDateVo dateVo) { |
|
|
|
// if (dateVo.getUserId() == null) { |
|
|
|
// return AjaxResult.error("userId用户标识不能为空"); |
|
|
|
// } |
|
|
|
// if (dateVo.getStatus() == null) { |
|
|
|
// return AjaxResult.error("status当前状态不能为空"); |
|
|
|
// } |
|
|
|
// |
|
|
|
// // 查询我所有的日订单数据 |
|
|
|
// AppletOrderItemDate date = new AppletOrderItemDate(); |
|
|
|
// date.setUserId(dateVo.getUserId()); |
|
|
|
// date.setStatus(dateVo.getStatus()); |
|
|
|
// List<AppletOrderItemDate> addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date); |
|
|
|
// |
|
|
|
// // 用于存储按日期分组的订单 |
|
|
|
// Map<String, List<AppletOrderItemDate>> dateToOrdersMap = new HashMap<>(); |
|
|
|
// |
|
|
|
// for (AppletOrderItemDate dateItem : addressList) { |
|
|
|
// String serviceDate = dateItem.getServiceDate(); |
|
|
|
// dateToOrdersMap.computeIfAbsent(serviceDate, k -> new ArrayList<>()).add(dateItem); |
|
|
|
// } |
|
|
|
// |
|
|
|
// List<AppletOrderDateVoReturn> dateVoReturnList = new ArrayList<>(); |
|
|
|
// |
|
|
|
// // 遍历每个日期 |
|
|
|
// for (Map.Entry<String, List<AppletOrderItemDate>> entry : dateToOrdersMap.entrySet()) { |
|
|
|
// String serviceDate = entry.getKey(); |
|
|
|
// List<AppletOrderItemDate> ordersForDate = entry.getValue(); |
|
|
|
// |
|
|
|
// // 创建一个合并的订单对象 |
|
|
|
// AppletOrderDateVoReturn dateVoReturn = new AppletOrderDateVoReturn(); |
|
|
|
// dateVoReturn.setServiceDate(serviceDate); |
|
|
|
// |
|
|
|
// // 合并订单的地址信息(假设所有订单地址相同,或者选择第一个订单的地址) |
|
|
|
// if (!ordersForDate.isEmpty()) { |
|
|
|
// AppletOrderItemDate firstOrder = ordersForDate.get(0); |
|
|
|
// AppletOrderDateAddressReturn orderDetails = new AppletOrderDateAddressReturn( |
|
|
|
// firstOrder.getOrderId(), |
|
|
|
// firstOrder.getCityAddress(), |
|
|
|
// firstOrder.getAddress() |
|
|
|
// ); |
|
|
|
// |
|
|
|
// List<AppletOrderDateAddressReturn> orderDetailsList = new ArrayList<>(); |
|
|
|
// orderDetailsList.add(orderDetails); |
|
|
|
// |
|
|
|
// dateVoReturn.setOrderList(orderDetailsList); |
|
|
|
// dateVoReturn.setNum(ordersForDate.size()); // 设置订单数量 |
|
|
|
// |
|
|
|
// // 设置订单项 |
|
|
|
// List<AppletOrderItemDate> appletOrderItemDates = new ArrayList<>(); |
|
|
|
// for (AppletOrderItemDate orderItemDate : ordersForDate) { |
|
|
|
// AppletOrderItemDate itemDate = new AppletOrderItemDate(); |
|
|
|
// itemDate.setOrderId(orderItemDate.getOrderId()); |
|
|
|
// itemDate.setServiceDate(serviceDate); |
|
|
|
// |
|
|
|
// // 查询订单项信息 |
|
|
|
// QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>(); |
|
|
|
// orderItemQw.eq("order_service_id", itemDate.getOrderServiceId()); |
|
|
|
// List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQw); |
|
|
|
// itemDate.setOrderItemList(orderItemList); |
|
|
|
// |
|
|
|
// OmsOrderService omsOrderService = omsOrderServiceMapper.selectById(itemDate.getOrderServiceId()); |
|
|
|
// omsOrderService.setPetVo(h5PetService.selectPetById(omsOrderService.getPetId())); |
|
|
|
// itemDate.setOrderServiceList(omsOrderService); |
|
|
|
// |
|
|
|
// appletOrderItemDates.add(itemDate); |
|
|
|
// } |
|
|
|
// |
|
|
|
// orderDetails.setAppletOrderItemDate(appletOrderItemDates); |
|
|
|
// } |
|
|
|
// |
|
|
|
// // 添加合并后的订单到结果列表 |
|
|
|
// dateVoReturnList.add(dateVoReturn); |
|
|
|
// } |
|
|
|
// |
|
|
|
// return AjaxResult.success("日订单数据", dateVoReturnList); |
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|