diff --git a/DB/version4.2.3to4.2.4.sql b/DB/version4.2.3to4.2.4.sql index a0494786..d9a266fc 100644 --- a/DB/version4.2.3to4.2.4.sql +++ b/DB/version4.2.3to4.2.4.sql @@ -1,4 +1,3 @@ /** 新增已退货数量 **/ -ALTER TABLE li_order_item ADD return_goods_number int DEFAULT 0 COMMENT '已退货数量 '; -ALTER TABLE li_order_item ADD is_goods_number int DEFAULT 0 COMMENT '正在进行售后的商品数量 '; +ALTER TABLE li_order_item ADD return_goods_number int DEFAULT 0 COMMENT '退货数量 '; ALTER TABLE li_order_item ADD identification_status varchar(255) COMMENT '标识是否被4.2.4版本处理过的订单'; \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java index bbb39a32..b711a8a7 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java @@ -113,12 +113,9 @@ public class OrderItem extends BaseEntity { @ApiModelProperty(value = "交易投诉id") private String complainId; - @ApiModelProperty(value = "已退货商品数量") + @ApiModelProperty(value = "退货商品数量") private Integer returnGoodsNumber; - @ApiModelProperty(value = "正在进行退货中的商品数量") - private Integer isGoodsNumber; - @ApiModelProperty(value = "标识是否被4.2.4版本处理过的订单") private String identificationStatus; diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/AfterSaleServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/AfterSaleServiceImpl.java index 6cbca96c..7e00780b 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/AfterSaleServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/AfterSaleServiceImpl.java @@ -156,8 +156,6 @@ public class AfterSaleServiceImpl extends ServiceImpl() .eq(OrderItem::getOrderSn, afterSale.getOrderSn()) - .eq(OrderItem::getGoodsId, afterSale.getGoodsId())); + .eq(OrderItem::getSkuId, afterSale.getSkuId())); + AfterSaleStatusEnum afterSaleStatusEnum = AfterSaleStatusEnum.valueOf(afterSale.getServiceStatus()); + switch (afterSaleStatusEnum){ + //判断当前售后的状态---申请中 + case APPLY:{ + orderItem.setReturnGoodsNumber(orderItem.getReturnGoodsNumber() + afterSale.getNum()); + break; + } + + //判断当前售后的状态---已拒绝,买家取消售后,卖家终止售后 + case REFUSE: + case BUYER_CANCEL: + case SELLER_TERMINATION: { + orderItem.setReturnGoodsNumber(orderItem.getReturnGoodsNumber() - afterSale.getNum()); + break; + } + default: - //判断当前售后的状态---申请中 - if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.APPLY.name())) { - orderItem.setIsGoodsNumber(orderItem.getIsGoodsNumber() + afterSale.getNum()); - } - //判断当前售后的状态---已拒绝 - if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.REFUSE.name())) { - orderItem.setIsGoodsNumber(orderItem.getIsGoodsNumber() - afterSale.getNum()); - } - //判断当前售后的状态---买家取消售后 - if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.BUYER_CANCEL.name())) { - orderItem.setIsGoodsNumber(orderItem.getIsGoodsNumber() - afterSale.getNum()); - } - //判断当前售后的状态---卖家终止售后 - if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.SELLER_TERMINATION.name())) { - orderItem.setIsGoodsNumber(orderItem.getIsGoodsNumber() - afterSale.getNum()); } //修改orderItem订单 this.updateOrderItem(orderItem); @@ -514,8 +513,8 @@ public class AfterSaleServiceImpl extends ServiceImpl (orderItem.getNum() - orderItem.getIsGoodsNumber())) { + //申请商品数量不能超过商品总数量-售后商品数量 + if (afterSaleDTO.getNum() > (orderItem.getNum() - orderItem.getReturnGoodsNumber())) { throw new ServiceException(ResultCode.AFTER_GOODS_NUMBER_ERROR); } @@ -659,7 +658,7 @@ public class AfterSaleServiceImpl extends ServiceImpl orderItem.setIsGoodsNumber(orderItem.getIsGoodsNumber() + a.getNum())); + implementList.forEach(a -> orderItem.setReturnGoodsNumber(orderItem.getReturnGoodsNumber() + a.getNum())); } //获取已完成售后订单数量 @@ -682,25 +681,33 @@ public class AfterSaleServiceImpl extends ServiceImpl() .eq(OrderItem::getSn, orderItem.getSn()) - .set(OrderItem::getIsGoodsNumber, orderItem.getIsGoodsNumber()) .set(OrderItem::getAfterSaleStatus, orderItem.getAfterSaleStatus()) - .set(OrderItem::getIdentificationStatus,IdentificationStatusEnum.ALREADY_NOT_HANDLE.name())); + .set(OrderItem::getReturnGoodsNumber,orderItem.getReturnGoodsNumber()) + .set(OrderItem::getIdentificationStatus, IdentificationStatusEnum.ALREADY_NOT_HANDLE.name())); } } \ No newline at end of file