From f4998e7103423290c2f1844011487ed995394e24 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Wed, 27 Aug 2025 13:31:23 +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 --- .../data/entity/vv/VvReverseOrderEntity.java | 19 +++++++ .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../request/mm/enums/ReverseStatusEnums.java | 26 +++++---- .../mm/reverse/AppliyReverseProveRequest.java | 31 +++++++++++ .../mm/reverse/AppliyReverseRequest.java | 5 ++ .../request/mm/reverse/VvApproveRequest.java | 37 +++++++++++++ .../controller/mm/AdminReverseController.java | 54 ++++++++++++++++++- .../controller/vv/AppReverseController.java | 50 +++++++++++++---- 8 files changed, 202 insertions(+), 22 deletions(-) create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseProveRequest.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/VvApproveRequest.java 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 41648bc..cdafd76 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 @@ -42,6 +42,7 @@ private static final long serialVersionUID = 1L; public final static String gmt_cancel = CLASS_NAME + "gmt_cancel"; // 订单取消时间 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"; // 退款子单数量 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -85,6 +86,8 @@ private static final long serialVersionUID = 1L; private Long createTimestamp; //修改时间撮 private Long modifyTimestamp; + //退款子单数量 + private Integer refundCount; /** * * @return @@ -400,6 +403,21 @@ private static final long serialVersionUID = 1L; this.modifyTimestamp = modifyTimestamp; } + /** + * 退款子单数量 + * @return + */ + public Integer getRefundCount() { + return refundCount; + } + /** + * 退款子单数量 + * @param refundCount + */ + public void setRefundCount(Integer refundCount) { + this.refundCount = refundCount; + } + @Override public String toString() { return "VvReverseOrderEntity{" + @@ -424,6 +442,7 @@ private static final long serialVersionUID = 1L; ",gmtCancel=" + gmtCancel + ",createTimestamp=" + createTimestamp + ",modifyTimestamp=" + modifyTimestamp + + ",refundCount=" + refundCount + "}"; } } \ 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/ReverseStatusEnums.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java index 1c3d867..062c7b8 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/enums/ReverseStatusEnums.java @@ -10,15 +10,23 @@ public enum ReverseStatusEnums { // agree_refunded 同意退款 , // refunded 退款完成 , // close 退款关闭 - cancel("cancel","订单取消"), - buyer_apply_reverse_wait_seller_agree("buyer_apply_reverse_wait_seller_agree","买家申请退款,等待卖家同意,"), - wait_buyer_post("wait_buyer_post","买家邮寄"), - shipping("shipping","运送中"), - delivered("delivered","已签收"), - reject_delivered("reject_delivered","拒绝接收"), - agree_refunded("agree_refunded","同意退款"), - refunded("refunded","退款完成"), - close("close","退款关闭"); + cancel("cancel", "订单取消"), + + buyer_apply_reverse_wait_seller_agree("buyer_apply_reverse_wait_seller_agree", "买家申请退款,等待卖家同意,"), + + seller_agree_return_wait_buyer_post("seller_agree_return_wait_buyer_post", "卖家同意退货,买家邮寄"), + + shipping("shipping", "运送中"), + + delivered("delivered", "已签收"), + + reject_delivered("reject_delivered", "拒绝接收"), + + agree_refunded("agree_refunded", "同意退款"), + + refunded("refunded", "退款完成"), + + close("close", "退款关闭"); ReverseStatusEnums(String status, String desc) { this.status = status; diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseProveRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseProveRequest.java new file mode 100644 index 0000000..01b1c4a --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/AppliyReverseProveRequest.java @@ -0,0 +1,31 @@ +package com.heyu.api.alibaba.request.mm.reverse; + + +import com.heyu.api.alibaba.request.mm.order.ResourceDTO; +import lombok.Data; + +import java.util.List; + +@Data +public class AppliyReverseProveRequest { + + + /*** + * 物流单号 + */ + private String trackNumber; + + + /*** + * 逆向物流单号 + */ + private Long reverseOrderId; + + + /*** + * 图片或视频 + */ + private List resourceDTOList; + + +} 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 c358751..dd0e7ef 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 @@ -24,4 +24,9 @@ public class AppliyReverseRequest { * 退款类型 1 仅退款, 2 退款退货 */ private Integer refundType; + + + + + } diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/VvApproveRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/VvApproveRequest.java new file mode 100644 index 0000000..a042ae9 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/reverse/VvApproveRequest.java @@ -0,0 +1,37 @@ +package com.heyu.api.alibaba.request.mm.reverse; + + +import lombok.Data; + +@Data +public class VvApproveRequest { + + + /*** + * 逆向id + */ + private Long reverseOrderId; + + + /*** + * seller_agree_return_wait_buyer_post 卖家同意退货,买家邮寄 + * + * agree_refunded 同意 退款 + * + * delivered 妥投成功 + * + * reject_delivered 拒绝妥投 + * + * agree_refunded 同意退款 + * + * close 关闭逆向 + */ + private String status ; + + + + + +} + + diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java index cbb91cb..9308a7f 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java @@ -2,9 +2,10 @@ package com.heyu.api.controller.mm; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums; +import com.heyu.api.alibaba.request.mm.reverse.VvApproveRequest; import com.heyu.api.alibaba.request.mm.reverse.VvReverseListRequest; import com.heyu.api.alibaba.request.mm.reverse.VvReverseOrderDTO; -import com.heyu.api.data.utils.SanUtils; import com.heyu.api.data.dao.vv.VvReverseOrderDao; import com.heyu.api.data.dao.vv.VvReverseOrderLineDao; import com.heyu.api.data.dao.vv.VvReverseOrderProveDao; @@ -12,6 +13,7 @@ import com.heyu.api.data.entity.vv.VvReverseOrderEntity; import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity; import com.heyu.api.data.entity.vv.VvReverseOrderProveEntity; import com.heyu.api.data.utils.R; +import com.heyu.api.data.utils.SanUtils; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; @@ -85,4 +87,54 @@ public class AdminReverseController { } + + /*** + * seller_agree_return_wait_buyer_post 卖家同意退货,买家邮寄 + * + * + * delivered 妥投成功 + * + * + * agree_refunded 同意 退款 + * + * reject_delivered 拒绝妥投 + * + * + * close 关闭逆向 + */ + + + @RequestMapping("/approve") + public R approve(@RequestBody VvApproveRequest vvApproveRequest) { + VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderById(vvApproveRequest.getReverseOrderId()); + + if (ReverseStatusEnums.seller_agree_return_wait_buyer_post.getStatus().equals(vvApproveRequest.getStatus())) { + if (ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus().equals(vvReverseOrderEntity.getStatus())) { + return R.error("逆向订单状态不是 seller_agree_return_wait_buyer_post"); + } + vvReverseOrderEntity.setStatus(vvApproveRequest.getStatus()); + +// vvReverseOrderEntity.setgm + + } else if (ReverseStatusEnums.delivered.getStatus().equals(vvApproveRequest.getStatus())) { + if (ReverseStatusEnums.shipping.getStatus().equals(vvReverseOrderEntity.getStatus())) { + return R.error("逆向订单状态不是 shipping"); + } + } else if (ReverseStatusEnums.reject_delivered.getStatus().equals(vvApproveRequest.getStatus())) { + if (ReverseStatusEnums.shipping.getStatus().equals(vvReverseOrderEntity.getStatus())) { + return R.error("逆向订单状态不是 shipping"); + } + } else if (ReverseStatusEnums.agree_refunded.getStatus().equals(vvApproveRequest.getStatus())) { + if (ReverseStatusEnums.delivered.getStatus().equals(vvReverseOrderEntity.getStatus())) { + return R.error("逆向订单状态不是 delivered"); + } + } else if (ReverseStatusEnums.close.getStatus().equals(vvApproveRequest.getStatus())) { + + } + vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity); + + + return R.ok(); + } + } 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 ab5f017..9f98f7e 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,19 +2,16 @@ package com.heyu.api.controller.vv; import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums; +import com.heyu.api.alibaba.request.mm.order.ResourceDTO; +import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseProveRequest; import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseRequest; -import com.heyu.api.data.dao.vv.VvReverseOrderDao; -import com.heyu.api.data.dao.vv.VvReverseOrderLineDao; -import com.heyu.api.data.dao.vv.VvTradeOrderDao; -import com.heyu.api.data.dao.vv.VvTradeOrderLineDao; -import com.heyu.api.data.entity.vv.VvReverseOrderEntity; -import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity; -import com.heyu.api.data.entity.vv.VvTradeOrderEntity; -import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; +import com.heyu.api.data.dao.vv.*; +import com.heyu.api.data.entity.vv.*; import com.heyu.api.data.utils.BigDecimalUtil; import com.heyu.api.data.utils.R; import com.heyu.api.data.utils.SanUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -43,6 +40,8 @@ public class AppReverseController { @Autowired private VvTradeOrderDao vvTradeOrderDao; + @Autowired + private VvReverseOrderProveDao vvReverseOrderProveDao; /*** @@ -54,7 +53,6 @@ public class AppReverseController { public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) { List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(appliyReverseRequest.getTradeOrderLineIds()); - Map vvTradeOrderLineEntityMap = SanUtils.list2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId); Long tradeOrderId = SanUtils.findAnyNotNull(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTradeOrderId); @@ -75,13 +73,13 @@ public class AppReverseController { BigDecimal originRefundAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice); // 本来应该退款金额 - vvReverseOrderEntity.setRefundTradeOrderLineCount(appliyReverseRequest.getTradeOrderLineIds().size()); vvReverseOrderEntity.setRefundType(appliyReverseRequest.getRefundType()); vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date()); vvReverseOrderEntity.setCreateTimestamp(System.currentTimeMillis()); vvReverseOrderEntity.setModifyTimestamp(System.currentTimeMillis()); - + vvReverseOrderEntity.setRefundCount(appliyReverseRequest.getTradeOrderLineIds().size()); + vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date()); vvReverseOrderDao.insertOrUpdateVvReverseOrder(vvReverseOrderEntity); BigDecimal preSum = BigDecimal.ZERO; for (int i = 0; i < appliyReverseRequest.getTradeOrderLineIds().size(); i++) { @@ -112,11 +110,41 @@ public class AppReverseController { // 保存逆向子单 vvReverseOrderLineDao.insertVvReverseOrderLine(vvReverseOrderLineEntity); + // 设置退款相关的东西 + vvTradeOrderLineEntity.setRefundCount(1); + vvTradeOrderLineEntity.setRefundAmount(vvReverseOrderLineEntity.getRefundAmount()); // 更新子单的逆向状态 vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus()); vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity); } + return R.ok(); + } + + @RequestMapping("/uploadProve") + public R uploadProve(@RequestBody AppliyReverseProveRequest appliyReverseRequest) { + VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderById(appliyReverseRequest.getReverseOrderId()); + + if (!ReverseStatusEnums.seller_agree_wait_buyer_post.getStatus().equals(vvReverseOrderEntity.getStatus())) { + return R.error("逆向订单状态不对"); + } + vvReverseOrderEntity.setStatus(ReverseStatusEnums.shipping.getStatus()); + vvReverseOrderEntity.setTrackNumber(appliyReverseRequest.getTrackNumber()); + vvReverseOrderEntity.setGmtBuyerPost(new Date()); + vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity); + + + 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()); + + vvReverseOrderProveDao.insertOrUpdateVvReverseOrderProve(vvReverseOrderProveEntity); + } + } return R.ok(); } }