提交修改

This commit is contained in:
quyixiao 2025-10-16 08:34:45 +08:00
parent 12fa45989f
commit a9a938fc51
14 changed files with 145 additions and 33 deletions

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/** /**
*逆向表 *逆向表
* @author quyixiao * @author quyixiao
* @since 2025-08-27 * @since 2025-10-16
*/ */
@Data @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 create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间撮
public final static String modify_timestamp = CLASS_NAME + "modify_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_count = CLASS_NAME + "refund_count"; // 退款子单数量
public final static String refund_reason = CLASS_NAME + "refund_reason"; // 退款原因
// //
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ -88,6 +89,8 @@ private static final long serialVersionUID = 1L;
private Long modifyTimestamp; private Long modifyTimestamp;
//退款子单数量 //退款子单数量
private Integer refundCount; private Integer refundCount;
//退款原因
private String refundReason;
/** /**
* *
* @return * @return
@ -418,6 +421,21 @@ private static final long serialVersionUID = 1L;
this.refundCount = refundCount; this.refundCount = refundCount;
} }
/**
* 退款原因
* @return
*/
public String getRefundReason() {
return refundReason;
}
/**
* 退款原因
* @param refundReason
*/
public void setRefundReason(String refundReason) {
this.refundReason = refundReason;
}
@Override @Override
public String toString() { public String toString() {
return "VvReverseOrderEntity{" + return "VvReverseOrderEntity{" +
@ -443,6 +461,7 @@ private static final long serialVersionUID = 1L;
",createTimestamp=" + createTimestamp + ",createTimestamp=" + createTimestamp +
",modifyTimestamp=" + modifyTimestamp + ",modifyTimestamp=" + modifyTimestamp +
",refundCount=" + refundCount + ",refundCount=" + refundCount +
",refundReason=" + refundReason +
"}"; "}";
} }
} }

View File

@ -1,15 +1,16 @@
package com.heyu.api.data.entity.vv; package com.heyu.api.data.entity.vv;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; 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 * @author quyixiao
* @since 2025-08-26 * @since 2025-10-16
*/ */
@Data @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 reverse_order_id = CLASS_NAME + "reverse_order_id"; // 逆向订单id
public final static String type_ = CLASS_NAME + "type"; // image video 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 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) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ -42,6 +44,8 @@ private static final long serialVersionUID = 1L;
private String type; private String type;
//资源url //资源url
private String resourceUrl; private String resourceUrl;
//场景upload_track_number ,上传物流单号, upload_reverse_prove 上传证据
private String scene;
/** /**
* *
* @return * @return
@ -147,6 +151,21 @@ private static final long serialVersionUID = 1L;
this.resourceUrl = resourceUrl; 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 @Override
public String toString() { public String toString() {
return "VvReverseOrderProveEntity{" + return "VvReverseOrderProveEntity{" +
@ -157,6 +176,7 @@ private static final long serialVersionUID = 1L;
",reverseOrderId=" + reverseOrderId + ",reverseOrderId=" + reverseOrderId +
",type=" + type + ",type=" + type +
",resourceUrl=" + resourceUrl + ",resourceUrl=" + resourceUrl +
",scene=" + scene +
"}"; "}";
} }
} }

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>(); List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_trade_order_line"; String a = "vv_reverse_order";
for (String s : a.split(",")) { for (String s : a.split(",")) {
list.add(new TablesBean(s)); list.add(new TablesBean(s));
} }

View File

@ -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;
}
}

View File

@ -7,7 +7,7 @@ import lombok.Data;
public class ResourceDTO { public class ResourceDTO {
/*** /***
* 类型 * 类型 image video
*/ */
private String type ; private String type ;

View File

@ -1,6 +1,7 @@
package com.heyu.api.alibaba.request.mm.reverse; package com.heyu.api.alibaba.request.mm.reverse;
import com.heyu.api.alibaba.request.mm.order.ResourceDTO;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -10,10 +11,9 @@ import java.util.List;
public class AppliyReverseRequest { public class AppliyReverseRequest {
/*** /***
* 订单子单列表 * 物流单号
*/ */
private List<Long> tradeOrderLineIds; private String trackNumber;
/*** /***
* 申请退款金额,如果卖家没有选择修改则不需要传 * 申请退款金额,如果卖家没有选择修改则不需要传
@ -26,7 +26,15 @@ public class AppliyReverseRequest {
private Integer refundType; private Integer refundType;
/***
* 退款原因
*/
private String refundReason;
/***
* 图片或视频
*/
private List<ResourceDTO> resourceDTOList;
} }

View File

@ -26,7 +26,7 @@ import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/buyer") @RequestMapping("/mm/buyer")
public class BuyerController { public class AdminBuyerController {
@Autowired @Autowired

View File

@ -26,7 +26,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/admin/category/property") @RequestMapping("/mm/admin/category/property")
public class CategoryPropertyController { public class AdminCategoryPropertyController {
@Autowired @Autowired
private VvCategoryPropertyDao vvCategoryPropertyDao; private VvCategoryPropertyDao vvCategoryPropertyDao;

View File

@ -25,7 +25,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/comment") @RequestMapping("/mm/comment")
public class CommentController { public class AdminCommentController {
@Autowired @Autowired

View File

@ -19,7 +19,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/front/manager") @RequestMapping("/mm/front/manager")
public class FrontManagerController { public class AdminFrontManagerController {
@Autowired @Autowired
private VvProductDao vvProductDao; private VvProductDao vvProductDao;

View File

@ -31,7 +31,7 @@ import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/order") @RequestMapping("/mm/order")
public class OrderController { public class AdminOrderController {
@Autowired @Autowired
@ -282,7 +282,7 @@ public class OrderController {
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setSettleStatus(1); tradeOrderLineEntity.setSettleStatus(1);
// 更新利润 // 更新利润
tradeOrderLineEntity.setProfitAmount(BigDecimalUtil.subtract(tradeOrderLineEntity.getSalePrice(), tradeOrderLineEntity.getOriginPrice())); tradeOrderLineEntity.setProfitAmount(BigDecimalUtil.subtract(tradeOrderLineEntity.getPromotionPrice(), tradeOrderLineEntity.getOriginPrice()));
vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity); vvTradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity);
// 将子单和证据关联 // 将子单和证据关联

View File

@ -29,7 +29,7 @@ import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/product") @RequestMapping("/mm/product")
public class ProductController { public class AdminProductController {
@Autowired @Autowired

View File

@ -17,7 +17,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/mm/shipping/cat") @RequestMapping("/mm/shipping/cat")
public class ShoppingCartController { public class AdminShoppingCartController {
@Autowired @Autowired

View File

@ -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.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.order.ResourceDTO;
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseCloseRequest; import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseCloseRequest;
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseProveRequest; import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseProveRequest;
@ -44,15 +45,23 @@ public class AppReverseController {
@Autowired @Autowired
private VvReverseOrderProveDao vvReverseOrderProveDao; private VvReverseOrderProveDao vvReverseOrderProveDao;
/*** /***
* /app/reverse/add
*
* 逆向订单创建 * 逆向订单创建
* @param appliyReverseRequest * @param appliyReverseRequest
* @return * @return
*/ */
@RequestMapping("/add") @RequestMapping("/add")
public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) { public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(appliyReverseRequest.getTradeOrderLineIds());
List<VvTradeOrderLineEntity> VvTradeOrderLines = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(appliyReverseRequest.getTrackNumber());
List<Long> tradeOrderLineIds = SanUtils.list2list(VvTradeOrderLines, VvTradeOrderLineEntity::getId);
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);
Map<Long, VvTradeOrderLineEntity> vvTradeOrderLineEntityMap = SanUtils.list2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId); Map<Long, VvTradeOrderLineEntity> vvTradeOrderLineEntityMap = SanUtils.list2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
@ -67,37 +76,38 @@ public class AppReverseController {
vvReverseOrderEntity.setStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus()); vvReverseOrderEntity.setStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus());
BigDecimal realRefundAmount = appliyReverseRequest.getRefundAmount() == null BigDecimal realRefundAmount = appliyReverseRequest.getRefundAmount() == null
? SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice) ? SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPromotionPrice)
: appliyReverseRequest.getRefundAmount(); : appliyReverseRequest.getRefundAmount();
// 设置退款金额 // 设置退款金额
vvReverseOrderEntity.setRefundAmount(realRefundAmount); vvReverseOrderEntity.setRefundAmount(realRefundAmount);
BigDecimal originRefundAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice); // 本来应该退款金额 BigDecimal originRefundAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPromotionPrice); // 本来应该退款金额
vvReverseOrderEntity.setRefundTradeOrderLineCount(appliyReverseRequest.getTradeOrderLineIds().size()); vvReverseOrderEntity.setRefundTradeOrderLineCount(tradeOrderLineIds.size());
vvReverseOrderEntity.setRefundType(appliyReverseRequest.getRefundType()); vvReverseOrderEntity.setRefundType(appliyReverseRequest.getRefundType());
vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date()); vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date());
vvReverseOrderEntity.setCreateTimestamp(System.currentTimeMillis()); vvReverseOrderEntity.setCreateTimestamp(System.currentTimeMillis());
vvReverseOrderEntity.setModifyTimestamp(System.currentTimeMillis()); vvReverseOrderEntity.setModifyTimestamp(System.currentTimeMillis());
vvReverseOrderEntity.setRefundCount(appliyReverseRequest.getTradeOrderLineIds().size()); vvReverseOrderEntity.setRefundCount(tradeOrderLineIds.size());
vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date()); vvReverseOrderEntity.setGmtBuyerApplyRefund(new Date());
vvReverseOrderEntity.setRefundReason(appliyReverseRequest.getRefundReason());
vvReverseOrderDao.insertOrUpdateVvReverseOrder(vvReverseOrderEntity); vvReverseOrderDao.insertOrUpdateVvReverseOrder(vvReverseOrderEntity);
BigDecimal preSum = BigDecimal.ZERO; BigDecimal preSum = BigDecimal.ZERO;
for (int i = 0; i < appliyReverseRequest.getTradeOrderLineIds().size(); i++) { for (int i = 0; i < tradeOrderLineIds.size(); i++) {
Long tradeOrderLineId = appliyReverseRequest.getTradeOrderLineIds().get(i); Long tradeOrderLineId = tradeOrderLineIds.get(i);
VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineEntityMap.get(tradeOrderLineId); VvTradeOrderLineEntity vvTradeOrderLineEntity = vvTradeOrderLineEntityMap.get(tradeOrderLineId);
VvReverseOrderLineEntity vvReverseOrderLineEntity = new VvReverseOrderLineEntity(); VvReverseOrderLineEntity vvReverseOrderLineEntity = new VvReverseOrderLineEntity();
vvReverseOrderLineEntity.setReverseOrderId(vvReverseOrderEntity.getId()); vvReverseOrderLineEntity.setReverseOrderId(vvReverseOrderEntity.getId());
vvReverseOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId()); vvReverseOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId());
vvReverseOrderLineEntity.setTradeOrderLineId(tradeOrderLineId); vvReverseOrderLineEntity.setTradeOrderLineId(tradeOrderLineId);
if (appliyReverseRequest.getRefundAmount() == null) { if (appliyReverseRequest.getRefundAmount() == null) {
vvReverseOrderLineEntity.setRefundAmount(vvTradeOrderLineEntity.getSalePrice()); vvReverseOrderLineEntity.setRefundAmount(vvTradeOrderLineEntity.getPromotionPrice());
} else { } else {
if (i == appliyReverseRequest.getTradeOrderLineIds().size() - 1) { if (i == tradeOrderLineIds.size() - 1) {
BigDecimal lastRefundAmount = BigDecimalUtil.subtract(realRefundAmount, preSum); BigDecimal lastRefundAmount = BigDecimalUtil.subtract(realRefundAmount, preSum);
vvReverseOrderLineEntity.setRefundAmount(lastRefundAmount); vvReverseOrderLineEntity.setRefundAmount(lastRefundAmount);
} else { } else {
BigDecimal allPrice = BigDecimalUtil.multiply(vvTradeOrderLineEntity.getSalePrice(), realRefundAmount); BigDecimal allPrice = BigDecimalUtil.multiply(vvTradeOrderLineEntity.getPromotionPrice(), realRefundAmount);
BigDecimal subLineRefundAmount = BigDecimalUtil.divide(allPrice, originRefundAmount); BigDecimal subLineRefundAmount = BigDecimalUtil.divide(allPrice, originRefundAmount);
preSum = preSum.add(subLineRefundAmount); preSum = preSum.add(subLineRefundAmount);
vvReverseOrderLineEntity.setRefundAmount(subLineRefundAmount); vvReverseOrderLineEntity.setRefundAmount(subLineRefundAmount);
@ -118,12 +128,29 @@ public class AppReverseController {
vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus()); vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus());
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity); 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()); VvReverseOrderEntity vvReverseOrderEntity = vvReverseOrderDao.selectVvReverseOrderById(appliyReverseRequest.getReverseOrderId());
if (!ReverseStatusEnums.seller_agree_return_wait_buyer_post.getStatus().equals(vvReverseOrderEntity.getStatus())) { if (!ReverseStatusEnums.seller_agree_return_wait_buyer_post.getStatus().equals(vvReverseOrderEntity.getStatus())) {
return R.error("逆向订单状态不对"); return R.error("逆向订单状态不对");
@ -141,6 +168,7 @@ public class AppReverseController {
vvReverseOrderProveEntity.setReverseOrderId(vvReverseOrderEntity.getId()); vvReverseOrderProveEntity.setReverseOrderId(vvReverseOrderEntity.getId());
vvReverseOrderProveEntity.setResourceUrl(resourceDTO.getResourceUrl()); vvReverseOrderProveEntity.setResourceUrl(resourceDTO.getResourceUrl());
vvReverseOrderProveEntity.setType(resourceDTO.getType()); vvReverseOrderProveEntity.setType(resourceDTO.getType());
vvReverseOrderProveEntity.setScene(ReverseUploadSceneEnums.upload_track_number.getCode());
vvReverseOrderProveDao.insertOrUpdateVvReverseOrderProve(vvReverseOrderProveEntity); vvReverseOrderProveDao.insertOrUpdateVvReverseOrderProve(vvReverseOrderProveEntity);
} }
@ -176,6 +204,4 @@ public class AppReverseController {
return R.ok(); return R.ok();
} }
} }