From c3e661d4c069d85296fdc3eaca3711f019463961 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 25 Aug 2025 23:24:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/data/dao/vv/VvTradeOrderLineDao.java | 15 ++++ .../request/mm/order/VvDeliveredDTO.java | 20 +++++ .../alibaba/request/mm/order/VvToPackDTO.java | 28 +++++++ .../alibaba/request/mm/order/VvUnpackDTO.java | 20 +++++ .../api/controller/mm/OrderController.java | 76 +++++++++++++++---- 5 files changed, 144 insertions(+), 15 deletions(-) create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvDeliveredDTO.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvUnpackDTO.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java index 43bb34a..87c6d6a 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderLineDao.java @@ -53,5 +53,20 @@ public interface VvTradeOrderLineDao extends BaseMapper + + List selectVvTradeOrderLineByTradeOrderId(Long tradeOrderId); + + + + + + List selectVvTradeOrderLineByTradeOrderIdNEStatus(Long tradeOrderId, + @IF @NE String status); + + + + List selectVvTradeOrderLineByTradeOrderIdStatus(Long tradeOrderId, + @IF String status); + } \ No newline at end of file diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvDeliveredDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvDeliveredDTO.java new file mode 100644 index 0000000..86e13f3 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvDeliveredDTO.java @@ -0,0 +1,20 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import lombok.Data; + +import java.util.List; + +@Data +public class VvDeliveredDTO { + + /*** + * 子订单号 + */ + private List tradeOrderLineIds; + + + +} + + diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToPackDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToPackDTO.java index bae9b63..ea242cd 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToPackDTO.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToPackDTO.java @@ -1,9 +1,11 @@ package com.heyu.api.alibaba.request.mm.order; +import com.alibaba.fastjson.JSON; import lombok.Data; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; @Data @@ -32,6 +34,32 @@ public class VvToPackDTO { private BigDecimal shippingAmount; + public static void main(String[] args) { + + VvToPackDTO vvToPackDTO = new VvToPackDTO(); + List tradeOrderLineIds = new ArrayList<>(); + tradeOrderLineIds.add(6L); + tradeOrderLineIds.add(7L); + tradeOrderLineIds.add(8L); + + + List packageImageUrls = new ArrayList<>(); + packageImageUrls.add("ioewoie"); + packageImageUrls.add("ioewoi2"); + + vvToPackDTO.setTrackNumber("3"); + vvToPackDTO.setTradeOrderLineIds(tradeOrderLineIds); + vvToPackDTO.setPackageImageUrls(packageImageUrls); + + + vvToPackDTO.setLogisticsCompany("顺丰"); + + vvToPackDTO.setShippingFrom("浙江 "); + vvToPackDTO.setShippingAmount(new BigDecimal("0.01")); + System.out.println(JSON.toJSONString(vvToPackDTO)); + + + } } diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvUnpackDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvUnpackDTO.java new file mode 100644 index 0000000..7231c09 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvUnpackDTO.java @@ -0,0 +1,20 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import lombok.Data; + +import java.util.List; + +@Data +public class VvUnpackDTO { + + /*** + * 子订单号 + */ + private List tradeOrderLineIds; + + + +} + + diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java index aa58320..edf51d7 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums; import com.heyu.api.alibaba.request.mm.order.VVOrderRequest; +import com.heyu.api.alibaba.request.mm.order.VvDeliveredDTO; import com.heyu.api.alibaba.request.mm.order.VvToPackDTO; import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; @@ -98,11 +99,7 @@ public class OrderController { for (VvTradeOrderLineEntity vvTradeOrderLineEntity : list) { trackNumbers.add(vvTradeOrderLineEntity.getTrackNumber()); } - - Map vvPackageEntityMap = new HashMap<>(); - - if (CollectionUtils.isNotEmpty(trackNumbers)) { List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); for (VvPackageEntity packageEntity : packageEntities) { @@ -172,7 +169,11 @@ public class OrderController { @RequestMapping("/topack") public R topack(@RequestBody VvToPackDTO vvOrderRequest) { List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds()); - + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + if(!OrderStatusEnums.wait_shipping.getStatus().equals(tradeOrderLineEntity.getStatus())){ + return R.error("订单状态不对"); + } + } VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(vvTradeOrderLineEntityList.get(0).getTradeOrderId()); VvPackageEntity vvPackageEntity = new VvPackageEntity(); @@ -192,19 +193,64 @@ public class OrderController { tradeOrderLineEntity.setStatus(OrderStatusEnums.shipping.getStatus()); // 已经发货 vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity); } - - List vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(vvTradeOrderEntity.getId()); - boolean flag = true; - for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) { - if (OrderStatusEnums.wait_shipping.getStatus().equals(vvTradeOrderLineEntity.getStatus())) { - flag = false; - } - } - - if (flag) { + List vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIdStatus(vvTradeOrderEntity.getId() + , OrderStatusEnums.wait_shipping.getStatus()); + if (CollectionUtils.isEmpty(vvTradeOrderLineEntities)) { vvTradeOrderEntity.setStatus(OrderStatusEnums.shipping.getStatus()); vvTradeOrderDao.updateVvTradeOrderById(vvTradeOrderEntity); } return R.ok(); } + + + + /*** + * 订单打包 + */ + @RequestMapping("/unpack") + public R unpack(@RequestBody VvToPackDTO vvOrderRequest) { + + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvOrderRequest.getTradeOrderLineIds()); + + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + + tradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus()); + tradeOrderLineEntity.setTrackNumber(null); + vvTradeOrderLineDao.updateCoverVvTradeOrderLineById(tradeOrderLineEntity); + } + Long tradeOrderId = vvTradeOrderLineEntityList.get(0).getTradeOrderId(); + + VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(tradeOrderId); + + vvTradeOrderEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus()); + vvTradeOrderDao.updateVvTradeOrderById(vvTradeOrderEntity); + return R.ok(); + } + + /*** + * 订单打包 + */ + @RequestMapping("/delivered") + public R topack(@RequestBody VvDeliveredDTO vvDeliveredDTO) { + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(vvDeliveredDTO.getTradeOrderLineIds()); + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + if(!OrderStatusEnums.shipping.getStatus().equals(tradeOrderLineEntity.getStatus())){ + return R.error("订单状态不对"); + } + } + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + tradeOrderLineEntity.setStatus(OrderStatusEnums.delivered.getStatus()); + vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity); + } + Long tradeOrderId = vvTradeOrderLineEntityList.get(0).getTradeOrderId(); + List countList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderIdNEStatus(tradeOrderId, OrderStatusEnums.delivered.getStatus()); + if (CollectionUtils.isEmpty(countList)) { + VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(tradeOrderId); + vvTradeOrderEntity.setStatus(OrderStatusEnums.delivered.getStatus()); + vvTradeOrderDao.updateVvTradeOrderById(vvTradeOrderEntity); + } + return R.ok(); + } + + }