From 48cdc2fbb6b91075f4be2794a76506872b3b1ada Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 13 Nov 2025 23:12:36 +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 --- .../heyu/api/data/dao/vv/VvTradeOrderDao.java | 1 + .../api/data/dao/vv/VvTradeOrderLineDao.java | 14 ++++++++++- .../mm/reverse/AppliyReverseRequest.java | 8 ++----- .../api/controller/vv/AppOrderController.java | 23 +++++++++++++++---- .../controller/vv/AppReverseController.java | 22 +++++++----------- 5 files changed, 43 insertions(+), 25 deletions(-) diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java index 5222d57..542d103 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvTradeOrderDao.java @@ -65,4 +65,5 @@ public interface VvTradeOrderDao extends BaseMapper { List selectVvTradeOrderByTradeOrderIds(@IFNullReturnEmpty @IN List id); + List selectAppTradeOrderByTradeOrderIds(@IFNullReturnEmpty @IN List id); } \ No newline at end of file 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 c7e97b1..0bb3490 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 @@ -122,7 +122,8 @@ public interface VvTradeOrderLineDao extends BaseMapper @ExludeColumn({ VvTradeOrderLineEntity.profit_amount, VvTradeOrderLineEntity.settle_status, - VvTradeOrderLineEntity.is_delete + VvTradeOrderLineEntity.is_delete, + VvTradeOrderLineEntity.origin_price }) List selectByAppCondition(IPage page, @IF @IN List tradeOrderId, @@ -148,6 +149,17 @@ public interface VvTradeOrderLineDao extends BaseMapper List selectVvTradeOrderByTradeOrderIds(@IN List tradeOrderId); + @OrderBy(VvTradeOrderLineEntity.id_) + @GroupBy(VvTradeOrderLineEntity.trade_order_id) + @ExludeColumn({ + VvTradeOrderLineEntity.profit_amount, + VvTradeOrderLineEntity.settle_status, + VvTradeOrderLineEntity.is_delete, + VvTradeOrderLineEntity.origin_price + }) + List selectAppTradeOrderByTradeOrderIds(@IN List tradeOrderId); + + List selectVvTradeOrderLineByBuyerIdTrackNumber(Long buyerId, String trackNumber); List selectByTradeOrderIdAndTransactionId(Long tradeOrderId, @IF String transactionId); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseRequest.java index aa9ba21..39b81e3 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseRequest.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseRequest.java @@ -18,11 +18,6 @@ public class AppliyReverseRequest extends AppBaseRequest { private String userName; - /*** - * 物流单号 - */ - private String trackNumber; - /*** * 退款状态 @@ -55,10 +50,11 @@ public class AppliyReverseRequest extends AppBaseRequest { */ private List resourceDTOList; + /*** * 订单号 */ - private Long tradeOrderId; + private List tradeOrderLineIds; } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java index f8dd96b..21588e0 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java @@ -122,6 +122,7 @@ public class AppOrderController { ); } }); + // 获取子单 List vvTradeOrderLineEntitiesGroupByTradeOrderId = pageUtils.getRows(); // 获取订单 @@ -130,7 +131,7 @@ public class AppOrderController { List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); // 拿到所有的子订单 - List vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); + List vvTradeOrderLineEntities = vvTradeOrderLineDao.selectAppTradeOrderByTradeOrderIds(tradeOrderIds); Map> listGroupByTradeOrderId = SanUtils.list2GroupBy(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId); @@ -149,7 +150,6 @@ public class AppOrderController { // 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组 Map> groupBytrader_order_id_sku_id = new HashMap<>(); for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) { - Long tradeOrderId = vvTradeOrderLineEntity.getTradeOrderId(); Map keyMap = groupBytrader_order_id_sku_id.get(tradeOrderId); if (keyMap == null) { @@ -172,20 +172,36 @@ public class AppOrderController { keyMap.put(key, vvTradeOrderLineTrackNumberDTO); groupBytrader_order_id_sku_id.put(tradeOrderId, keyMap); } - for (Long tradeOrderId : tradeOrderIds) { VvTradeOrderLineEntity vvTradeOrderLineEntity = listGroupByTradeOrderId.get(tradeOrderId).get(0); Map stringVvTradeOrderLineTrackNumberDTOMap = groupBytrader_order_id_sku_id.get(tradeOrderId); for (Map.Entry mapEntry : stringVvTradeOrderLineTrackNumberDTOMap.entrySet()) { VvTradeOrderLineTrackNumberDTO vvTradeOrderLineTrackNumberDTO = mapEntry.getValue(); + AppTradeOrderLineResp appTradeOrderLineResp = new AppTradeOrderLineResp(); BeanUtils.copyProperties(vvTradeOrderLineEntity, appTradeOrderLineResp); + + List vvTradeOrderLineEntityList = vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities(); + // 设置促销价格和销售价格 + BigDecimal promotionPrice = BigDecimal.ZERO; + BigDecimal salePrice = BigDecimal.ZERO; + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + //当时促销价 + promotionPrice = promotionPrice.add(tradeOrderLineEntity.getPromotionPrice()); + salePrice = salePrice.add(tradeOrderLineEntity.getSalePrice()); + } + + vvTradeOrderLineEntity.setPromotionPrice(promotionPrice); + vvTradeOrderLineEntity.setSalePrice(salePrice); + // 如果有tracknumber ,则以 trader_order_id_sku_id 分组, 如果有trackNumber ,则以 trader_order_id_track_number_sku_id 分组 if (StringUtils.isNotEmpty(vvTradeOrderLineTrackNumberDTO.getTrackNumber())) { VvPackageEntity packageDTO = vvPackageEntityMap.get(vvTradeOrderLineTrackNumberDTO.getTrackNumber()); appTradeOrderLineResp.setVvPackageEntity(packageDTO); } + appTradeOrderLineResp.setNum(vvTradeOrderLineTrackNumberDTO.getVvTradeOrderLineEntities().size()); + VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderEntityMap.get(vvTradeOrderLineEntity.getTradeOrderId()); appTradeOrderLineResp.setTrackNumber(vvTradeOrderLineTrackNumberDTO.getTrackNumber()); appTradeOrderLineResp.setTradeOrderEntity(vvTradeOrderEntity); @@ -195,7 +211,6 @@ public class AppOrderController { return R.ok().setData(vvOrderListResps); } - /*** * 订单添加 */ diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppReverseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppReverseController.java index 48d2e20..456d025 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppReverseController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppReverseController.java @@ -2,9 +2,6 @@ package com.heyu.api.controller.vv; import com.alibaba.fastjson.JSON; -import com.heyu.api.data.enums.ReverseStatusEnums; -import com.heyu.api.data.enums.ReverseUploadSceneEnums; -import com.heyu.api.data.enums.ShippingTypeEnums; import com.heyu.api.alibaba.request.mm.order.ResourceDTO; import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseCloseRequest; import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseProveRequest; @@ -12,10 +9,12 @@ import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseRequest; import com.heyu.api.common.annotation.Describe; import com.heyu.api.data.dao.vv.*; import com.heyu.api.data.entity.vv.*; +import com.heyu.api.data.enums.ReverseStatusEnums; +import com.heyu.api.data.enums.ReverseUploadSceneEnums; +import com.heyu.api.data.enums.ShippingTypeEnums; import com.heyu.api.data.utils.NumberUtil; import com.heyu.api.data.utils.R; import com.heyu.api.data.utils.SanUtils; -import com.heyu.api.data.utils.StringUtils; import com.heyu.api.service.ReverseOrderService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; @@ -65,20 +64,14 @@ public class AppReverseController { @RequestMapping("/add") public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) { // 退款类型 1 仅退款, 2 退款退货 - if(NumberUtil.equals(appliyReverseRequest.getRefundType(), 1 )){ + if (NumberUtil.equals(appliyReverseRequest.getRefundType(), 1)) { appliyReverseRequest.setStatus(ReverseStatusEnums.buyer_apply_refund_wait_seller_agree.getStatus()); - }else{ + } else { appliyReverseRequest.setStatus(ReverseStatusEnums.buyer_apply_return_wait_seller_agree.getStatus()); } - appliyReverseRequest.setRefundReason("买家申请退款:" + appliyReverseRequest.getRefundReason()); - List vvTradeOrderLineEntityList = null; - if(StringUtils.isNotEmpty(appliyReverseRequest.getTrackNumber())){ - vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(appliyReverseRequest.getTrackNumber()); - }else{ - vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(appliyReverseRequest.getTradeOrderId()); - } - + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(appliyReverseRequest.getTradeOrderLineIds()); + ; R r = reverseOrderService.createReverseOrder(vvTradeOrderLineEntityList, appliyReverseRequest); if (r.ifSuccessful()) { VvReverseOrderEntity vvReverseOrderEntity = (VvReverseOrderEntity) r.getData(); @@ -87,6 +80,7 @@ public class AppReverseController { } return R.ok(); } + /** * 退货退款 : /app/reverse/tracknumber *