ruqwhnt
This commit is contained in:
parent
dc3d0875e8
commit
a011f75daa
@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
|
||||
/**
|
||||
*购物车
|
||||
* @author quyixiao
|
||||
* @since 2025-08-26
|
||||
* @since 2025-08-27
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ -27,7 +27,7 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
|
||||
public final static String sale_price = CLASS_NAME + "sale_price"; // 单价
|
||||
public final static String num_ = CLASS_NAME + "num"; // 数量
|
||||
public final static String status_ = CLASS_NAME + "status"; // wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款
|
||||
public final static String status_ = CLASS_NAME + "status"; // wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, cancel 订单取消
|
||||
public final static String trade_order_id = CLASS_NAME + "trade_order_id"; // 订单号
|
||||
public final static String refund_amount = CLASS_NAME + "refund_amount"; // 退款金额
|
||||
public final static String track_number = CLASS_NAME + "track_number"; // 包裹追踪号
|
||||
@ -44,7 +44,7 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String gmt_to_pack = CLASS_NAME + "gmt_to_pack"; // 打包时间
|
||||
public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 妥投时间
|
||||
public final static String delivered_type = CLASS_NAME + "delivered_type"; // 1 买家手动确认收货, 2 系统自动确认收货
|
||||
public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结算
|
||||
public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结算,1 已经结算
|
||||
public final static String gmt_settle = CLASS_NAME + "gmt_settle"; // 结算时间
|
||||
public final static String seller_id = CLASS_NAME + "seller_id"; // 卖家id
|
||||
public final static String reverse_status = CLASS_NAME + "reverse_status"; // 逆向状态。
|
||||
@ -59,6 +59,7 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String province_ = CLASS_NAME + "province"; // 省
|
||||
public final static String city_ = CLASS_NAME + "city"; // 市
|
||||
public final static String district_ = CLASS_NAME + "district"; // 区
|
||||
public final static String seller_name = CLASS_NAME + "seller_name"; // 卖家名称
|
||||
//
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
@ -72,7 +73,7 @@ private static final long serialVersionUID = 1L;
|
||||
private BigDecimal salePrice;
|
||||
//数量
|
||||
private Integer num;
|
||||
//wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款
|
||||
//wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, cancel 订单取消
|
||||
private String status;
|
||||
//订单号
|
||||
private Long tradeOrderId;
|
||||
@ -106,7 +107,7 @@ private static final long serialVersionUID = 1L;
|
||||
private Date gmtDelivered;
|
||||
//1 买家手动确认收货, 2 系统自动确认收货
|
||||
private Integer deliveredType;
|
||||
//0 未结算
|
||||
//0 未结算,1 已经结算
|
||||
private Integer settleStatus;
|
||||
//结算时间
|
||||
private Date gmtSettle;
|
||||
@ -136,6 +137,8 @@ private static final long serialVersionUID = 1L;
|
||||
private String city;
|
||||
//区
|
||||
private String district;
|
||||
//卖家名称
|
||||
private String sellerName;
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
@ -227,14 +230,14 @@ private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
/**
|
||||
* wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款
|
||||
* wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, cancel 订单取消
|
||||
* @return
|
||||
*/
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
/**
|
||||
* wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, all_refund:全部退款,part_refund,部分退款
|
||||
* wait_pay:待支付,待发货:wait_shipping, 已经发货: shipping , 已接收,delivered, cancel 订单取消
|
||||
* @param status
|
||||
*/
|
||||
public void setStatus(String status) {
|
||||
@ -482,14 +485,14 @@ private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
/**
|
||||
* 0 未结算
|
||||
* 0 未结算,1 已经结算
|
||||
* @return
|
||||
*/
|
||||
public Integer getSettleStatus() {
|
||||
return settleStatus;
|
||||
}
|
||||
/**
|
||||
* 0 未结算
|
||||
* 0 未结算,1 已经结算
|
||||
* @param settleStatus
|
||||
*/
|
||||
public void setSettleStatus(Integer settleStatus) {
|
||||
@ -706,6 +709,21 @@ private static final long serialVersionUID = 1L;
|
||||
this.district = district;
|
||||
}
|
||||
|
||||
/**
|
||||
* 卖家名称
|
||||
* @return
|
||||
*/
|
||||
public String getSellerName() {
|
||||
return sellerName;
|
||||
}
|
||||
/**
|
||||
* 卖家名称
|
||||
* @param sellerName
|
||||
*/
|
||||
public void setSellerName(String sellerName) {
|
||||
this.sellerName = sellerName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VvTradeOrderLineEntity{" +
|
||||
@ -747,6 +765,7 @@ private static final long serialVersionUID = 1L;
|
||||
",province=" + province +
|
||||
",city=" + city +
|
||||
",district=" + district +
|
||||
",sellerName=" + sellerName +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,5 @@
|
||||
package com.heyu.api.data.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.heyu.api.common.LBiFunction0;
|
||||
import com.heyu.api.common.test.AriseUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -320,8 +319,8 @@ public class SanUtils {
|
||||
list.add(ai2);
|
||||
list.add(ai3);
|
||||
|
||||
Map<String, List<AriseUser>> map = list2GroupBy(list, AriseUser::getName);
|
||||
System.out.println(JSON.toJSONString(map));
|
||||
int age = sum(list, AriseUser::getAge);
|
||||
System.out.println(age);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ public class MysqlMain_update {
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
|
||||
String a = "vv_reverse_order";
|
||||
String a = "vv_trade_order_line";
|
||||
for (String s : a.split(",")) {
|
||||
list.add(new TablesBean(s));
|
||||
}
|
||||
|
||||
@ -16,7 +16,12 @@ public class AppliyReverseRequest {
|
||||
|
||||
|
||||
/***
|
||||
* 申请退款金额
|
||||
* 申请退款金额,如果卖家没有选择修改,则不需要传
|
||||
*/
|
||||
private BigDecimal refundAmount;
|
||||
|
||||
/***
|
||||
* 退款类型 1 仅退款, 2 退款退货
|
||||
*/
|
||||
private Integer refundType;
|
||||
}
|
||||
|
||||
@ -3,22 +3,27 @@ package com.heyu.api.controller.vv;
|
||||
|
||||
import com.heyu.api.alibaba.request.mm.enums.ReverseStatusEnums;
|
||||
import com.heyu.api.alibaba.request.mm.reverse.AppliyReverseRequest;
|
||||
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.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.utils.BigDecimalUtil;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.data.utils.SanUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@ -38,10 +43,20 @@ public class AppReverseController {
|
||||
@Autowired
|
||||
private VvTradeOrderDao vvTradeOrderDao;
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 逆向订单创建
|
||||
* @param appliyReverseRequest
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/add")
|
||||
public R add(@RequestBody AppliyReverseRequest appliyReverseRequest) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(appliyReverseRequest.getTradeOrderLineIds());
|
||||
|
||||
|
||||
Map<Long, VvTradeOrderLineEntity> vvTradeOrderLineEntityMap = SanUtils.list2Map(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getId);
|
||||
|
||||
Long tradeOrderId = SanUtils.findAnyNotNull(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getTradeOrderId);
|
||||
|
||||
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(tradeOrderId);
|
||||
@ -49,16 +64,59 @@ public class AppReverseController {
|
||||
VvReverseOrderEntity vvReverseOrderEntity = new VvReverseOrderEntity();
|
||||
|
||||
vvReverseOrderEntity.setTradeOrderId(vvTradeOrderEntity.getId());
|
||||
|
||||
vvReverseOrderEntity.setStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus());
|
||||
|
||||
// 设置退款金额
|
||||
vvReverseOrderEntity.setRefundAmount(appliyReverseRequest.getRefundAmount() == null
|
||||
BigDecimal realRefundAmount = appliyReverseRequest.getRefundAmount() == null
|
||||
? SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getSalePrice)
|
||||
: appliyReverseRequest.getRefundAmount());
|
||||
: appliyReverseRequest.getRefundAmount();
|
||||
// 设置退款金额
|
||||
vvReverseOrderEntity.setRefundAmount(realRefundAmount);
|
||||
|
||||
|
||||
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());
|
||||
|
||||
vvReverseOrderDao.insertOrUpdateVvReverseOrder(vvReverseOrderEntity);
|
||||
BigDecimal preSum = BigDecimal.ZERO;
|
||||
for (int i = 0; i < appliyReverseRequest.getTradeOrderLineIds().size(); i++) {
|
||||
Long tradeOrderLineId = appliyReverseRequest.getTradeOrderLineIds().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());
|
||||
} else {
|
||||
if (i == appliyReverseRequest.getTradeOrderLineIds().size() - 1) {
|
||||
BigDecimal lastRefundAmount = BigDecimalUtil.subtract(realRefundAmount, preSum);
|
||||
vvReverseOrderLineEntity.setRefundAmount(lastRefundAmount);
|
||||
} else {
|
||||
BigDecimal allPrice = BigDecimalUtil.multiply(vvTradeOrderLineEntity.getSalePrice(), realRefundAmount);
|
||||
BigDecimal subLineRefundAmount = BigDecimalUtil.divide(allPrice, originRefundAmount);
|
||||
preSum = preSum.add(subLineRefundAmount);
|
||||
vvReverseOrderLineEntity.setRefundAmount(subLineRefundAmount);
|
||||
}
|
||||
}
|
||||
vvReverseOrderLineEntity.setSellerId(vvTradeOrderLineEntity.getSellerId());
|
||||
vvReverseOrderLineEntity.setSellerName(vvTradeOrderLineEntity.getSellerName());
|
||||
vvReverseOrderLineEntity.setProductId(vvTradeOrderLineEntity.getProductId());
|
||||
vvReverseOrderLineEntity.setProductName(vvTradeOrderLineEntity.getProductName());
|
||||
vvReverseOrderLineEntity.setSkuImageUrl(vvTradeOrderLineEntity.getSkuImageUrl());
|
||||
// 保存逆向子单
|
||||
vvReverseOrderLineDao.insertVvReverseOrderLine(vvReverseOrderLineEntity);
|
||||
|
||||
// 更新子单的逆向状态
|
||||
vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.buyer_apply_reverse_wait_seller_agree.getStatus());
|
||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||
}
|
||||
|
||||
return R.ok();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user