diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderEntity.java index 1bd2721..c0bcea3 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderEntity.java @@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date; /** *逆向表 * @author quyixiao -* @since 2025-08-27 +* @since 2025-10-16 */ @Data @@ -43,6 +43,7 @@ private static final long serialVersionUID = 1L; public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间撮 public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 修改时间撮 public final static String refund_count = CLASS_NAME + "refund_count"; // 退款子单数量 + public final static String refund_reason = CLASS_NAME + "refund_reason"; // 退款原因 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -88,6 +89,8 @@ private static final long serialVersionUID = 1L; private Long modifyTimestamp; //退款子单数量 private Integer refundCount; + //退款原因 + private String refundReason; /** * * @return @@ -418,6 +421,21 @@ private static final long serialVersionUID = 1L; this.refundCount = refundCount; } + /** + * 退款原因 + * @return + */ + public String getRefundReason() { + return refundReason; + } + /** + * 退款原因 + * @param refundReason + */ + public void setRefundReason(String refundReason) { + this.refundReason = refundReason; + } + @Override public String toString() { return "VvReverseOrderEntity{" + @@ -443,6 +461,7 @@ private static final long serialVersionUID = 1L; ",createTimestamp=" + createTimestamp + ",modifyTimestamp=" + modifyTimestamp + ",refundCount=" + refundCount + + ",refundReason=" + refundReason + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderProveEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderProveEntity.java index 59bcd4a..641a85e 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderProveEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvReverseOrderProveEntity.java @@ -1,15 +1,16 @@ package com.heyu.api.data.entity.vv; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import com.lz.mybatis.plugin.annotations.AS; -import java.util.Date; +import java.math.BigDecimal; +import java.util.Date;import java.util.Date; /** *退款证据表 * @author quyixiao -* @since 2025-08-26 +* @since 2025-10-16 */ @Data @@ -27,6 +28,7 @@ private static final long serialVersionUID = 1L; public final static String reverse_order_id = CLASS_NAME + "reverse_order_id"; // 逆向订单id public final static String type_ = CLASS_NAME + "type"; // image 或 video public final static String resource_url = CLASS_NAME + "resource_url"; // 资源url + public final static String scene_ = CLASS_NAME + "scene"; // 场景,upload_track_number ,上传物流单号, upload_reverse_prove 上传证据 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -42,6 +44,8 @@ private static final long serialVersionUID = 1L; private String type; //资源url private String resourceUrl; + //场景,upload_track_number ,上传物流单号, upload_reverse_prove 上传证据 + private String scene; /** * * @return @@ -147,6 +151,21 @@ private static final long serialVersionUID = 1L; this.resourceUrl = resourceUrl; } + /** + * 场景,upload_track_number ,上传物流单号, upload_reverse_prove 上传证据 + * @return + */ + public String getScene() { + return scene; + } + /** + * 场景,upload_track_number ,上传物流单号, upload_reverse_prove 上传证据 + * @param scene + */ + public void setScene(String scene) { + this.scene = scene; + } + @Override public String toString() { return "VvReverseOrderProveEntity{" + @@ -157,6 +176,7 @@ private static final long serialVersionUID = 1L; ",reverseOrderId=" + reverseOrderId + ",type=" + type + ",resourceUrl=" + resourceUrl + + ",scene=" + scene + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java index d28fb85..752dc1f 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java @@ -49,7 +49,7 @@ public class MysqlMain_update { List list = new ArrayList(); - String a = "vv_trade_order_line"; + String a = "vv_reverse_order"; for (String s : a.split(",")) { list.add(new TablesBean(s)); } diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseUploadSceneEnums.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseUploadSceneEnums.java new file mode 100644 index 0000000..f427d5d --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseUploadSceneEnums.java @@ -0,0 +1,39 @@ +package com.heyu.api.alibaba.request.mm.enums; + + +public enum ReverseUploadSceneEnums { + + //场景,upload_track_number ,上传物流单号, upload_reverse_prove 上传证据 + upload_track_number("upload_track_number","上传物流单号"), + + upload_reverse_prove("upload_reverse_prove","上传退款原因证据"); + + private String code; + + private String desc; + + + ReverseUploadSceneEnums(String code, String desc) { + + + this.code = code; + this.desc = desc; + } + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java index db85e14..3b7d4c7 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/ResourceDTO.java @@ -7,7 +7,7 @@ import lombok.Data; public class ResourceDTO { /*** - * 类型 + * 类型 image 或 video */ private String type ; 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 dd0e7ef..705feef 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 @@ -1,6 +1,7 @@ package com.heyu.api.alibaba.request.mm.reverse; +import com.heyu.api.alibaba.request.mm.order.ResourceDTO; import lombok.Data; import java.math.BigDecimal; @@ -10,10 +11,9 @@ import java.util.List; public class AppliyReverseRequest { /*** - * 订单子单列表 + * 物流单号 */ - private List tradeOrderLineIds; - + private String trackNumber; /*** * 申请退款金额,如果卖家没有选择修改,则不需要传 @@ -26,7 +26,15 @@ public class AppliyReverseRequest { private Integer refundType; + /*** + * 退款原因 + */ + private String refundReason; + /*** + * 图片或视频 + */ + private List resourceDTOList; } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/BuyerController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java similarity index 98% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/BuyerController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java index d706615..49d57a2 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/BuyerController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminBuyerController.java @@ -26,7 +26,7 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("/mm/buyer") -public class BuyerController { +public class AdminBuyerController { @Autowired diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CategoryPropertyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminCategoryPropertyController.java similarity index 99% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CategoryPropertyController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminCategoryPropertyController.java index 1ed4a34..53f1277 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CategoryPropertyController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminCategoryPropertyController.java @@ -26,7 +26,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("/mm/admin/category/property") -public class CategoryPropertyController { +public class AdminCategoryPropertyController { @Autowired private VvCategoryPropertyDao vvCategoryPropertyDao; diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminCommentController.java similarity index 99% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminCommentController.java index ec75ff6..97de2d8 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/CommentController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminCommentController.java @@ -25,7 +25,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("/mm/comment") -public class CommentController { +public class AdminCommentController { @Autowired diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/FrontManagerController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminFrontManagerController.java similarity index 98% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/FrontManagerController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminFrontManagerController.java index 4a73cd3..9debd5e 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/FrontManagerController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminFrontManagerController.java @@ -19,7 +19,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("/mm/front/manager") -public class FrontManagerController { +public class AdminFrontManagerController { @Autowired private VvProductDao vvProductDao; 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/AdminOrderController.java similarity index 99% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/OrderController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java index 51372be..a6594e7 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/AdminOrderController.java @@ -31,7 +31,7 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("/mm/order") -public class OrderController { +public class AdminOrderController { @Autowired @@ -282,7 +282,7 @@ public class OrderController { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { tradeOrderLineEntity.setSettleStatus(1); // 更新利润 - tradeOrderLineEntity.setProfitAmount(BigDecimalUtil.subtract(tradeOrderLineEntity.getSalePrice(), tradeOrderLineEntity.getOriginPrice())); + tradeOrderLineEntity.setProfitAmount(BigDecimalUtil.subtract(tradeOrderLineEntity.getPromotionPrice(), tradeOrderLineEntity.getOriginPrice())); vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity); // 将子单和证据关联 diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java similarity index 99% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java index 62a742f..b600889 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java @@ -29,7 +29,7 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("/mm/product") -public class ProductController { +public class AdminProductController { @Autowired diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ShoppingCartController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminShoppingCartController.java similarity index 97% rename from api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ShoppingCartController.java rename to api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminShoppingCartController.java index c7e39fa..88d63af 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ShoppingCartController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminShoppingCartController.java @@ -17,7 +17,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("/mm/shipping/cat") -public class ShoppingCartController { +public class AdminShoppingCartController { @Autowired 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 820231a..ab3a4cb 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,6 +2,7 @@ package com.heyu.api.controller.vv; import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums; +import com.heyu.api.alibaba.request.mm.enums.ReverseUploadSceneEnums; 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; @@ -44,15 +45,23 @@ public class AppReverseController { @Autowired private VvReverseOrderProveDao vvReverseOrderProveDao; - /*** + * /app/reverse/add + * * 逆向订单创建 * @param appliyReverseRequest * @return */ @RequestMapping("/add") public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) { - List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(appliyReverseRequest.getTradeOrderLineIds()); + + + List VvTradeOrderLines = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(appliyReverseRequest.getTrackNumber()); + + List tradeOrderLineIds = SanUtils.list2list(VvTradeOrderLines, VvTradeOrderLineEntity::getId); + + + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds); Map vvTradeOrderLineEntityMap = SanUtils.list2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId); @@ -67,37 +76,38 @@ public class AppReverseController { vvReverseOrderEntity.setStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus()); BigDecimal realRefundAmount = appliyReverseRequest.getRefundAmount() == null - ? SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice) + ? SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPromotionPrice) : appliyReverseRequest.getRefundAmount(); // 设置退款金额 vvReverseOrderEntity.setRefundAmount(realRefundAmount); - BigDecimal originRefundAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice); // 本来应该退款金额 - vvReverseOrderEntity.setRefundTradeOrderLineCount(appliyReverseRequest.getTradeOrderLineIds().size()); + BigDecimal originRefundAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPromotionPrice); // 本来应该退款金额 + vvReverseOrderEntity.setRefundTradeOrderLineCount(tradeOrderLineIds.size()); vvReverseOrderEntity.setRefundType(appliyReverseRequest.getRefundType()); vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date()); vvReverseOrderEntity.setCreateTimestamp(System.currentTimeMillis()); vvReverseOrderEntity.setModifyTimestamp(System.currentTimeMillis()); - vvReverseOrderEntity.setRefundCount(appliyReverseRequest.getTradeOrderLineIds().size()); + vvReverseOrderEntity.setRefundCount(tradeOrderLineIds.size()); vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date()); + vvReverseOrderEntity.setRefundReason(appliyReverseRequest.getRefundReason()); vvReverseOrderDao.insertOrUpdateVvReverseOrder(vvReverseOrderEntity); BigDecimal preSum = BigDecimal.ZERO; - for (int i = 0; i < appliyReverseRequest.getTradeOrderLineIds().size(); i++) { - Long tradeOrderLineId = appliyReverseRequest.getTradeOrderLineIds().get(i); + for (int i = 0; i < tradeOrderLineIds.size(); i++) { + Long tradeOrderLineId = tradeOrderLineIds.get(i); VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineEntityMap.get(tradeOrderLineId); VvReverseOrderLineEntity vvReverseOrderLineEntity = new VvReverseOrderLineEntity(); vvReverseOrderLineEntity.setReverseOrderId(vvReverseOrderEntity.getId()); vvReverseOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId()); vvReverseOrderLineEntity.setTradeOrderLineId(tradeOrderLineId); if (appliyReverseRequest.getRefundAmount() == null) { - vvReverseOrderLineEntity.setRefundAmount(vvTradeOrderLineEntity.getSalePrice()); + vvReverseOrderLineEntity.setRefundAmount(vvTradeOrderLineEntity.getPromotionPrice()); } else { - if (i == appliyReverseRequest.getTradeOrderLineIds().size() - 1) { + if (i == tradeOrderLineIds.size() - 1) { BigDecimal lastRefundAmount = BigDecimalUtil.subtract(realRefundAmount, preSum); vvReverseOrderLineEntity.setRefundAmount(lastRefundAmount); } else { - BigDecimal allPrice = BigDecimalUtil.multiply(vvTradeOrderLineEntity.getSalePrice(), realRefundAmount); + BigDecimal allPrice = BigDecimalUtil.multiply(vvTradeOrderLineEntity.getPromotionPrice(), realRefundAmount); BigDecimal subLineRefundAmount = BigDecimalUtil.divide(allPrice, originRefundAmount); preSum = preSum.add(subLineRefundAmount); vvReverseOrderLineEntity.setRefundAmount(subLineRefundAmount); @@ -118,12 +128,29 @@ public class AppReverseController { vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus()); vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity); } - return R.ok(); + + + if (CollectionUtils.isNotEmpty(appliyReverseRequest.getResourceDTOList())) { + for (ResourceDTO resourceDTO : appliyReverseRequest.getResourceDTOList()) { + VvReverseOrderProveEntity vvReverseOrderProveEntity = new VvReverseOrderProveEntity(); + vvReverseOrderProveEntity.setReverseOrderId(vvReverseOrderEntity.getId()); + vvReverseOrderProveEntity.setResourceUrl(resourceDTO.getResourceUrl()); + vvReverseOrderProveEntity.setType(resourceDTO.getType()); + vvReverseOrderProveEntity.setScene(ReverseUploadSceneEnums.upload_reverse_prove.getCode()); + + vvReverseOrderProveDao.insertOrUpdateVvReverseOrderProve(vvReverseOrderProveEntity); + } + } + return R.ok("申请退款成功"); } - @RequestMapping("/uploadProve") - public R uploadProve(@RequestBody AppliyReverseProveRequest appliyReverseRequest) { + /** + * 退货退款 : /app/reverse/tracknumber + * + */ + @RequestMapping("/upload/tracknumber") + public R uploadTracknumber(@RequestBody AppliyReverseProveRequest appliyReverseRequest) { VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderById(appliyReverseRequest.getReverseOrderId()); if (!ReverseStatusEnums.seller_agree_return_wait_buyer_post.getStatus().equals(vvReverseOrderEntity.getStatus())) { return R.error("逆向订单状态不对"); @@ -141,6 +168,7 @@ public class AppReverseController { vvReverseOrderProveEntity.setReverseOrderId(vvReverseOrderEntity.getId()); vvReverseOrderProveEntity.setResourceUrl(resourceDTO.getResourceUrl()); vvReverseOrderProveEntity.setType(resourceDTO.getType()); + vvReverseOrderProveEntity.setScene(ReverseUploadSceneEnums.upload_track_number.getCode()); vvReverseOrderProveDao.insertOrUpdateVvReverseOrderProve(vvReverseOrderProveEntity); } @@ -176,6 +204,4 @@ public class AppReverseController { return R.ok(); } - - }