提交修改

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
* @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 +
"}";
}
}

View File

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

View File

@ -49,7 +49,7 @@ public class MysqlMain_update {
List<TablesBean> list = new ArrayList<TablesBean>();
String a = "vv_trade_order_line";
String a = "vv_reverse_order";
for (String s : a.split(",")) {
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 {
/***
* 类型
* 类型 image video
*/
private String type ;

View File

@ -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<Long> tradeOrderLineIds;
private String trackNumber;
/***
* 申请退款金额,如果卖家没有选择修改则不需要传
@ -26,7 +26,15 @@ public class AppliyReverseRequest {
private Integer refundType;
/***
* 退款原因
*/
private String refundReason;
/***
* 图片或视频
*/
private List<ResourceDTO> resourceDTOList;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -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);
// 将子单和证据关联

View File

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

View File

@ -17,7 +17,7 @@ import java.util.List;
@Slf4j
@RestController
@RequestMapping("/mm/shipping/cat")
public class ShoppingCartController {
public class AdminShoppingCartController {
@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.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<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);
@ -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();
}
}