From 0f4b12c4ea1514978ab061ff8821435a4a4fd94c Mon Sep 17 00:00:00 2001 From: lzx_win <2602107437@qq.com> Date: Tue, 27 May 2025 22:37:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../applet/contoller/ApiAppletOrderController.java | 304 +++++++++++++++------ .../contoller/ApiMallUserTeacherController.java | 2 +- .../controller/AppletUsersTeacherController.java | 5 +- 3 files changed, 232 insertions(+), 79 deletions(-) diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java index 7de2c27..bd8bc76 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletOrderController.java @@ -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 addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date); +// +// Set uniqueDates = new HashSet<>(); +// List 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 serviceList = appletOrderItemDateService.selectAppletOrderItemDateList(service); +// List 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 appletOrderItemDates = appletOrderItemDateService.selectAppletOrderItemDateList(appletOrderItemDate); +// for (AppletOrderItemDate appletOrderItemDate1 : appletOrderItemDates) { +// // 组装item +// QueryWrapper orderItemQw = new QueryWrapper<>(); +// orderItemQw.eq("order_service_id", appletOrderItemDate1.getOrderServiceId()); +// List 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 addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date); - Set uniqueDates = new HashSet<>(); + // 用于存储按日期分组的订单 + Map> dateToOrdersMap = new HashMap<>(); + + for (AppletOrderItemDate dateItem : addressList) { + String serviceDate = dateItem.getServiceDate(); + dateToOrdersMap.computeIfAbsent(serviceDate, k -> new ArrayList<>()).add(dateItem); + } + List dateVoReturnList = new ArrayList<>(); - for (AppletOrderItemDate date1 : addressList) { - if (uniqueDates.add(date1.getServiceDate())) { + // 遍历每个日期 + for (Map.Entry> entry : dateToOrdersMap.entrySet()) { + String serviceDate = entry.getKey(); + List 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 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 serviceList = appletOrderItemDateService.selectAppletOrderItemDateList(service); - List 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 appletOrderItemDates = appletOrderItemDateService.selectAppletOrderItemDateList(appletOrderItemDate); - for (AppletOrderItemDate appletOrderItemDate1 : appletOrderItemDates) { - // 组装item + for (AppletOrderItemDate itemDate : appletOrderItemDates) { QueryWrapper orderItemQw = new QueryWrapper<>(); - orderItemQw.eq("order_service_id", appletOrderItemDate1.getOrderServiceId()); + orderItemQw.eq("order_service_id", itemDate.getOrderServiceId()); List 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 addressList = appletOrderItemDateService.selectAppletOrderItemDateList(date); +// +// // 用于存储按日期分组的订单 +// Map> dateToOrdersMap = new HashMap<>(); +// +// for (AppletOrderItemDate dateItem : addressList) { +// String serviceDate = dateItem.getServiceDate(); +// dateToOrdersMap.computeIfAbsent(serviceDate, k -> new ArrayList<>()).add(dateItem); +// } +// +// List dateVoReturnList = new ArrayList<>(); +// +// // 遍历每个日期 +// for (Map.Entry> entry : dateToOrdersMap.entrySet()) { +// String serviceDate = entry.getKey(); +// List 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 orderDetailsList = new ArrayList<>(); +// orderDetailsList.add(orderDetails); +// +// dateVoReturn.setOrderList(orderDetailsList); +// dateVoReturn.setNum(ordersForDate.size()); // 设置订单数量 +// +// // 设置订单项 +// List appletOrderItemDates = new ArrayList<>(); +// for (AppletOrderItemDate orderItemDate : ordersForDate) { +// AppletOrderItemDate itemDate = new AppletOrderItemDate(); +// itemDate.setOrderId(orderItemDate.getOrderId()); +// itemDate.setServiceDate(serviceDate); +// +// // 查询订单项信息 +// QueryWrapper orderItemQw = new QueryWrapper<>(); +// orderItemQw.eq("order_service_id", itemDate.getOrderServiceId()); +// List 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); +// } diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java index 4ac73c3..1c087cb 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallUserTeacherController.java @@ -122,7 +122,7 @@ public class ApiMallUserTeacherController extends BaseController { //如果距离在3-15公里内 - if (distance >= 3 && distance <= 100) { + if (distance <= 100) { // 检查appUsers1是否已经存在于appUsersListNew中 if (!appUsersListNew.contains(appUsers1)) { appUsers1.setDistance(distance); diff --git a/ruoyi-catdog/src/main/java/com/ruoyi/model/controller/AppletUsersTeacherController.java b/ruoyi-catdog/src/main/java/com/ruoyi/model/controller/AppletUsersTeacherController.java index d79697f..5d55aa5 100644 --- a/ruoyi-catdog/src/main/java/com/ruoyi/model/controller/AppletUsersTeacherController.java +++ b/ruoyi-catdog/src/main/java/com/ruoyi/model/controller/AppletUsersTeacherController.java @@ -51,7 +51,10 @@ public class AppletUsersTeacherController extends BaseController //获取用户信息 for (AppletUsersTeacher teacher : list) { AppUsers appUsers = appUsersService.selectAppUsersByUserId(teacher.getUserId()); - teacher.setUserName(appUsers.getUserName()); + if(appUsers != null){ + teacher.setUserName(appUsers.getUserName()); + } + } return getDataTable(list); }