tao订单确认

This commit is contained in:
启航 2026-01-18 18:06:56 +08:00
parent 839f847300
commit 82827f0c82
7 changed files with 82 additions and 51 deletions

View File

@ -113,7 +113,7 @@ public class OrderAssembleHelper {
orderItem.setDivideOrderFee(StringUtils.hasText(item.getDivideOrderFee()) ? Double.parseDouble(item.getDivideOrderFee()) : null); orderItem.setDivideOrderFee(StringUtils.hasText(item.getDivideOrderFee()) ? Double.parseDouble(item.getDivideOrderFee()) : null);
orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPartMjzDiscount()) ? Double.parseDouble(item.getPartMjzDiscount()) : 0.0); orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPartMjzDiscount()) ? Double.parseDouble(item.getPartMjzDiscount()) : 0.0);
orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()) : 0.0); orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()) : 0.0);
orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? BigDecimal.valueOf(Double.parseDouble(item.getPrice())) : BigDecimal.valueOf(0)); orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? Double.parseDouble(item.getPrice()) : 0.0);
orderItem.setPicPath(item.getPicPath()); orderItem.setPicPath(item.getPicPath());
orderItem.setNumIid(item.getNumIid()); orderItem.setNumIid(item.getNumIid());
orderItem.setSkuId(item.getSkuId()); orderItem.setSkuId(item.getSkuId());
@ -208,7 +208,7 @@ public class OrderAssembleHelper {
orderItem.setDivideOrderFee( StringUtils.hasText(item.getDivideOrderFee()) ? Double.parseDouble(item.getDivideOrderFee()):null); orderItem.setDivideOrderFee( StringUtils.hasText(item.getDivideOrderFee()) ? Double.parseDouble(item.getDivideOrderFee()):null);
orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPartMjzDiscount()) ? Double.parseDouble(item.getPartMjzDiscount()):0.0); orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPartMjzDiscount()) ? Double.parseDouble(item.getPartMjzDiscount()):0.0);
orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()):0.0); orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()):0.0);
orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? BigDecimal.valueOf(Double.parseDouble(item.getPrice())): BigDecimal.valueOf(0)); orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? Double.parseDouble(item.getPrice()): 0.0);
orderItem.setPicPath(item.getPicPath()); orderItem.setPicPath(item.getPicPath());
orderItem.setNumIid(item.getNumIid()); orderItem.setNumIid(item.getNumIid());
orderItem.setSkuId(item.getSkuId()); orderItem.setSkuId(item.getSkuId());

View File

@ -4436,8 +4436,6 @@ CREATE TABLE `oms_tao_order_item` (
`refund_status` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'NO_REFUND' COMMENT '退款状态。退款状态。可选值 WAIT_SELLER_AGREE(买家已经申请退款,等待卖家同意) WAIT_BUYER_RETURN_GOODS(卖家已经同意退款,等待买家退货) WAIT_SELLER_CONFIRM_GOODS(买家已经退货,等待卖家确认收货) SELLER_REFUSE_BUYER(卖家拒绝退款) CLOSED(退款关闭) SUCCESS(退款成功)', `refund_status` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'NO_REFUND' COMMENT '退款状态。退款状态。可选值 WAIT_SELLER_AGREE(买家已经申请退款,等待卖家同意) WAIT_BUYER_RETURN_GOODS(卖家已经同意退款,等待买家退货) WAIT_SELLER_CONFIRM_GOODS(买家已经退货,等待卖家确认收货) SELLER_REFUSE_BUYER(卖家拒绝退款) CLOSED(退款关闭) SUCCESS(退款成功)',
`refund_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最近退款ID', `refund_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最近退款ID',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`o_goods_id` bigint NULL DEFAULT NULL COMMENT '商品id(o_goods外键)',
`o_goods_sku_id` bigint NULL DEFAULT NULL COMMENT '商品skuid(o_goods_sku外键)',
PRIMARY KEY (`id`) USING BTREE, PRIMARY KEY (`id`) USING BTREE,
INDEX `tid_index`(`tid` ASC) USING BTREE, INDEX `tid_index`(`tid` ASC) USING BTREE,
INDEX `oid_index`(`oid` ASC) USING BTREE INDEX `oid_index`(`oid` ASC) USING BTREE

View File

@ -192,7 +192,7 @@ public class TaoOrder implements Serializable {
/** /**
* 交易结束时间交易成功时间(更新交易状态为成功的同时更新)/确认收货时间或者交易关闭时间 格式:yyyy-MM-dd HH:mm:ss * 交易结束时间交易成功时间(更新交易状态为成功的同时更新)/确认收货时间或者交易关闭时间 格式:yyyy-MM-dd HH:mm:ss
*/ */
private Date endTime; private String endTime;
/** /**
* 卖家备忘信息 * 卖家备忘信息

View File

@ -73,7 +73,7 @@ public class TaoOrderItem implements Serializable {
/** /**
* 商品价格 * 商品价格
*/ */
private BigDecimal price; private Double price;
/** /**
* 商品数字ID * 商品数字ID
@ -222,8 +222,6 @@ PAY_PENDING(国际信用卡支付付款确认中)
private String isShShip; private String isShShip;
private String oGoodsId;
private String oGoodsSkuId;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -235,21 +233,6 @@ PAY_PENDING(国际信用卡支付付款确认中)
this.isShShip = isShShip; this.isShShip = isShShip;
} }
public String getoGoodsId() {
return oGoodsId;
}
public void setoGoodsId(String oGoodsId) {
this.oGoodsId = oGoodsId;
}
public String getoGoodsSkuId() {
return oGoodsSkuId;
}
public void setoGoodsSkuId(String oGoodsSkuId) {
this.oGoodsSkuId = oGoodsSkuId;
}
/** /**
* *
@ -408,14 +391,14 @@ PAY_PENDING(国际信用卡支付付款确认中)
/** /**
* 商品价格 * 商品价格
*/ */
public BigDecimal getPrice() { public Double getPrice() {
return price; return price;
} }
/** /**
* 商品价格 * 商品价格
*/ */
public void setPrice(BigDecimal price) { public void setPrice(Double price) {
this.price = price; this.price = price;
} }

View File

@ -261,6 +261,7 @@ public class DouOrderServiceImpl extends ServiceImpl<DouOrderMapper, DouOrder>
oOrderItem.setSubOrderNum(item.getOrderId()); oOrderItem.setSubOrderNum(item.getOrderId());
oOrderItem.setShopType(EnumShopType.DOU.getIndex()); oOrderItem.setShopType(EnumShopType.DOU.getIndex());
oOrderItem.setShopId(douOrder.getSShopId()); oOrderItem.setShopId(douOrder.getSShopId());
oOrderItem.setProductId(item.getProductId().toString());
oOrderItem.setSkuId(item.getSkuId().toString()); oOrderItem.setSkuId(item.getSkuId().toString());
oOrderItem.setGoodsTitle(item.getProductName()); oOrderItem.setGoodsTitle(item.getProductName());
oOrderItem.setGoodsImg(item.getProductPic()); oOrderItem.setGoodsImg(item.getProductPic());

View File

@ -56,8 +56,8 @@ public class DouRefundServiceImpl extends ServiceImpl<DouRefundMapper, DouRefund
List<DouOrderItem> douOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<DouOrderItem>().eq(DouOrderItem::getOrderId, refund.getOrderSkuOrderId())); List<DouOrderItem> douOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<DouOrderItem>().eq(DouOrderItem::getOrderId, refund.getOrderSkuOrderId()));
if(!douOrderItems.isEmpty()){ if(!douOrderItems.isEmpty()){
update.setSkuId(douOrderItems.get(0).getSkuId().toString()); update.setSkuId(douOrderItems.get(0).getSkuId().toString());
update.setOGoodsId(douOrderItems.get(0).getOGoodsId()); // update.setOGoodsId(douOrderItems.get(0).getOGoodsId());
update.setOGoodsSkuId(douOrderItems.get(0).getOGoodsSkuId()); // update.setOGoodsSkuId(douOrderItems.get(0).getOGoodsSkuId());
} }
@ -101,8 +101,8 @@ public class DouRefundServiceImpl extends ServiceImpl<DouRefundMapper, DouRefund
List<DouOrderItem> douOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<DouOrderItem>().eq(DouOrderItem::getOrderId, refund.getOrderSkuOrderId())); List<DouOrderItem> douOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<DouOrderItem>().eq(DouOrderItem::getOrderId, refund.getOrderSkuOrderId()));
if(!douOrderItems.isEmpty()){ if(!douOrderItems.isEmpty()){
refund.setSkuId(douOrderItems.get(0).getSkuId().toString()); refund.setSkuId(douOrderItems.get(0).getSkuId().toString());
refund.setOGoodsId(douOrderItems.get(0).getOGoodsId()); // refund.setOGoodsId(douOrderItems.get(0).getOGoodsId());
refund.setOGoodsSkuId(douOrderItems.get(0).getOGoodsSkuId()); // refund.setOGoodsSkuId(douOrderItems.get(0).getOGoodsSkuId());
} }
refund.setShopId(shopId); refund.setShopId(shopId);
refund.setPullTime(new Date()); refund.setPullTime(new Date());

View File

@ -165,20 +165,20 @@ public class TaoOrderServiceImpl extends ServiceImpl<TaoOrderMapper, TaoOrder>
itemUpdate.setShippingType(item.getShippingType()); itemUpdate.setShippingType(item.getShippingType());
itemUpdate.setLogisticsCompany(item.getLogisticsCompany()); itemUpdate.setLogisticsCompany(item.getLogisticsCompany());
itemUpdate.setInvoiceNo(item.getInvoiceNo()); itemUpdate.setInvoiceNo(item.getInvoiceNo());
List<TaoGoodsSku> skus = goodsSkuService.list(new LambdaQueryWrapper<TaoGoodsSku>().eq(TaoGoodsSku::getSkuId, item.getSkuId())); // List<TaoGoodsSku> skus = goodsSkuService.list(new LambdaQueryWrapper<TaoGoodsSku>().eq(TaoGoodsSku::getSkuId, item.getSkuId()));
if (skus != null && !skus.isEmpty()) { // if (skus != null && !skus.isEmpty()) {
itemUpdate.setoGoodsId(skus.get(0).getErpGoodsId().toString()); // itemUpdate.setoGoodsId(skus.get(0).getErpGoodsId().toString());
itemUpdate.setoGoodsSkuId(skus.get(0).getErpGoodsSkuId().toString()); // itemUpdate.setoGoodsSkuId(skus.get(0).getErpGoodsSkuId().toString());
} // }
itemMapper.updateById(itemUpdate); itemMapper.updateById(itemUpdate);
} else { } else {
// 新增 // 新增
List<TaoGoodsSku> skus = goodsSkuService.list(new LambdaQueryWrapper<TaoGoodsSku>().eq(TaoGoodsSku::getSkuId, item.getSkuId())); // List<TaoGoodsSku> skus = goodsSkuService.list(new LambdaQueryWrapper<TaoGoodsSku>().eq(TaoGoodsSku::getSkuId, item.getSkuId()));
if (skus != null && !skus.isEmpty()) { // if (skus != null && !skus.isEmpty()) {
item.setoGoodsId(skus.get(0).getErpGoodsId().toString()); // item.setoGoodsId(skus.get(0).getErpGoodsId().toString());
item.setoGoodsSkuId(skus.get(0).getErpGoodsSkuId().toString()); // item.setoGoodsSkuId(skus.get(0).getErpGoodsSkuId().toString());
} // }
itemMapper.insert(item); itemMapper.insert(item);
} }
} }
@ -266,8 +266,6 @@ public class TaoOrderServiceImpl extends ServiceImpl<TaoOrderMapper, TaoOrder>
order.setShipType(0); order.setShipType(0);
order.setBuyerMemo(taoOrder.getBuyerMemo()); order.setBuyerMemo(taoOrder.getBuyerMemo());
order.setSellerMemo(taoOrder.getSellerMemo()); order.setSellerMemo(taoOrder.getSellerMemo());
order.setRefundStatus(1);
order.setOrderStatus(1);
order.setGoodsAmount(taoOrder.getTotalFee()!=null?taoOrder.getTotalFee():0.0); order.setGoodsAmount(taoOrder.getTotalFee()!=null?taoOrder.getTotalFee():0.0);
order.setPostFee(taoOrder.getPostFee()!=null?taoOrder.getPostFee().doubleValue():0.0); order.setPostFee(taoOrder.getPostFee()!=null?taoOrder.getPostFee().doubleValue():0.0);
order.setSellerDiscount(taoOrder.getDiscountFee()!=null?taoOrder.getDiscountFee().doubleValue():0.0); order.setSellerDiscount(taoOrder.getDiscountFee()!=null?taoOrder.getDiscountFee().doubleValue():0.0);
@ -282,10 +280,41 @@ public class TaoOrderServiceImpl extends ServiceImpl<TaoOrderMapper, TaoOrder>
order.setTown(confirmBo.getTown()); order.setTown(confirmBo.getTown());
// 定义日期时间格式 // 定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 将字符串转换为LocalDateTime order.setOrderCreateTime(StringUtils.hasText(taoOrder.getCreated())?LocalDateTime.parse(taoOrder.getCreated(), formatter):LocalDateTime.now());
LocalDateTime orderTime = LocalDateTime.parse(taoOrder.getCreated(), formatter); order.setOrderUpdateTime(StringUtils.hasText(taoOrder.getModified())?LocalDateTime.parse(taoOrder.getModified(), formatter):LocalDateTime.now());
order.setOrderFinishTime(StringUtils.hasText(taoOrder.getEndTime())?LocalDateTime.parse(taoOrder.getEndTime(), formatter):LocalDateTime.now());
order.setOrderTime(StringUtils.hasText(taoOrder.getCreated())?orderTime:LocalDateTime.now()); order.setOrderStatus(taoOrder.getStatus());
// 交易状态可选值: * TRADE_NO_CREATE_PAY(没有创建支付宝交易) * WAIT_BUYER_PAY(等待买家付款) * SELLER_CONSIGNED_PART(卖家部分发货)
// * WAIT_SELLER_SEND_GOODS(等待卖家发货,:买家已付款) * WAIT_BUYER_CONFIRM_GOODS(等待买家确认收货,:卖家已发货)
// * TRADE_BUYER_SIGNED(买家已签收,货到付款专用) * TRADE_FINISHED(交易成功) * TRADE_CLOSED(付款以后用户退款成功交易自动关闭)
// * TRADE_CLOSED_BY_TAOBAO(付款以前卖家或买家主动关闭交易) * PAY_PENDING(国际信用卡支付付款确认中) * WAIT_PRE_AUTH_CONFIRM(0元购合约中)
// * PAID_FORBID_CONSIGN(拼团中订单或者发货强管控的订单已付款但禁止发货)
if(taoOrder.getStatus().equals("TRADE_NO_CREATE_PAY")) {
order.setOrderStatusText("没有创建支付宝交易");
}else if(taoOrder.getStatus().equals("WAIT_BUYER_PAY")) {
order.setOrderStatusText("等待买家付款");
}else if(taoOrder.getStatus().equals("SELLER_CONSIGNED_PART")) {
order.setOrderStatusText("卖家部分发货");
}else if(taoOrder.getStatus().equals("WAIT_SELLER_SEND_GOODS")) {
order.setOrderStatusText("等待卖家发货");
}else if(taoOrder.getStatus().equals("WAIT_BUYER_CONFIRM_GOODS")) {
order.setOrderStatusText("等待买家确认收货");
}else if(taoOrder.getStatus().equals("TRADE_BUYER_SIGNED")) {
order.setOrderStatusText("买家已签收,货到付款专用");
}else if(taoOrder.getStatus().equals("TRADE_FINISHED")) {
order.setOrderStatusText("交易成功");
}else if(taoOrder.getStatus().equals("TRADE_CLOSED")) {
order.setOrderStatusText("付款以后用户退款成功,交易自动关闭");
}else if(taoOrder.getStatus().equals("TRADE_CLOSED_BY_TAOBAO")) {
order.setOrderStatusText("付款以前,卖家或买家主动关闭交易");
}else if(taoOrder.getStatus().equals("PAY_PENDING")) {
order.setOrderStatusText("国际信用卡支付付款确认中");
}else if(taoOrder.getStatus().equals("WAIT_PRE_AUTH_CONFIRM")) {
order.setOrderStatusText("0元购合约中");
}else if(taoOrder.getStatus().equals("PAID_FORBID_CONSIGN")) {
order.setOrderStatusText("拼团中订单或者发货强管控的订单,已付款但禁止发货");
}
order.setShipper(0l); order.setShipper(0l);
order.setShipStatus(0); order.setShipStatus(0);
order.setCreateTime(new Date()); order.setCreateTime(new Date());
@ -294,14 +323,20 @@ public class TaoOrderServiceImpl extends ServiceImpl<TaoOrderMapper, TaoOrder>
//插入item //插入item
for (var item : pddOrderItems) { for (var item : pddOrderItems) {
OOrderItem oOrderItem = new OOrderItem(); OOrderItem oOrderItem = new OOrderItem();
List<TaoGoodsSku> skus = goodsSkuService.list(new LambdaQueryWrapper<TaoGoodsSku>().eq(TaoGoodsSku::getSkuId, item.getSkuId()));
if (skus != null && !skus.isEmpty()) {
oOrderItem.setGoodsId(skus.get(0).getErpGoodsId());
oOrderItem.setGoodsSkuId(skus.get(0).getErpGoodsSkuId());
}else {
return ResultVo.error("店铺商品找不到绑定的商品库商品");
}
oOrderItem.setOrderId(order.getId()); oOrderItem.setOrderId(order.getId());
oOrderItem.setOrderNum(order.getOrderNum()); oOrderItem.setOrderNum(order.getOrderNum());
oOrderItem.setSubOrderNum(item.getOid().toString()); oOrderItem.setSubOrderNum(item.getOid().toString());
oOrderItem.setShopType(EnumShopType.TAO.getIndex()); oOrderItem.setShopType(EnumShopType.TAO.getIndex());
oOrderItem.setShopId(taoOrder.getShopId()); oOrderItem.setShopId(taoOrder.getShopId());
oOrderItem.setSkuId(item.getSkuId().toString()); oOrderItem.setSkuId(item.getSkuId().toString());
oOrderItem.setGoodsId(StringUtils.hasText(item.getoGoodsId())?Long.parseLong(item.getoGoodsId()):0L); oOrderItem.setProductId(item.getNumIid());
oOrderItem.setGoodsSkuId(StringUtils.hasText(item.getoGoodsSkuId())?Long.parseLong(item.getoGoodsSkuId()):0L);
oOrderItem.setGoodsTitle(item.getTitle()); oOrderItem.setGoodsTitle(item.getTitle());
oOrderItem.setGoodsImg(item.getPicPath()); oOrderItem.setGoodsImg(item.getPicPath());
oOrderItem.setGoodsNum(item.getOuterIid()); oOrderItem.setGoodsNum(item.getOuterIid());
@ -309,12 +344,26 @@ public class TaoOrderServiceImpl extends ServiceImpl<TaoOrderMapper, TaoOrder>
oOrderItem.setSkuNum(item.getOuterSkuId()); oOrderItem.setSkuNum(item.getOuterSkuId());
oOrderItem.setGoodsPrice(item.getPrice()!=null?item.getPrice().doubleValue():0.0); oOrderItem.setGoodsPrice(item.getPrice()!=null?item.getPrice().doubleValue():0.0);
oOrderItem.setQuantity(item.getNum()); oOrderItem.setQuantity(item.getNum());
oOrderItem.setItemAmount(oOrderItem.getGoodsPrice()*oOrderItem.getQuantity()); // 价格信息
oOrderItem.setDiscountAmount(0.0); Double goodsAmount = item.getPrice() * item.getNum();
oOrderItem.setPayment(0.0); oOrderItem.setGoodsAmount(goodsAmount);
oOrderItem.setItemAmount(item.getTotalFee().doubleValue());
oOrderItem.setSellerDiscount(item.getDiscountFee().doubleValue());
oOrderItem.setPlatformDiscount(item.getPartMjzDiscount());
oOrderItem.setChangeAmount(item.getAdjustFee().doubleValue());
oOrderItem.setPayDiscount(0.0);
oOrderItem.setPayment(item.getPayment());
// 退款状态退款状态可选值 WAIT_SELLER_AGREE(买家已经申请退款等待卖家同意)
// WAIT_BUYER_RETURN_GOODS(卖家已经同意退款等待买家退货) WAIT_SELLER_CONFIRM_GOODS(买家已经退货等待卖家确认收货)
// SELLER_REFUSE_BUYER(卖家拒绝退款) CLOSED(退款关闭) SUCCESS(退款成功)
if(StringUtils.isEmpty(item.getRefundStatus())||item.getRefundStatus().equals("NO_REFUND")||item.getRefundStatus().equals("CLOSED")) {
oOrderItem.setRefundCount(0); oOrderItem.setRefundCount(0);
oOrderItem.setRefundStatus(1); oOrderItem.setRefundStatus(1);
} else {
oOrderItem.setRefundCount(item.getNum());
oOrderItem.setRefundStatus(4);
}
oOrderItem.setShipper(0l); oOrderItem.setShipper(0l);
oOrderItem.setShipType(order.getShipType()); oOrderItem.setShipType(order.getShipType());
oOrderItem.setShipStatus(0); oOrderItem.setShipStatus(0);