diff --git a/consumer/src/main/java/cn/lili/event/impl/DistributionOrderExecute.java b/consumer/src/main/java/cn/lili/event/impl/DistributionOrderExecute.java index 9c09c6382..10c050bae 100644 --- a/consumer/src/main/java/cn/lili/event/impl/DistributionOrderExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/DistributionOrderExecute.java @@ -5,9 +5,7 @@ import cn.hutool.core.date.DateTime; import cn.hutool.json.JSONUtil; import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent; -import cn.lili.modules.distribution.entity.dos.DistributionOrder; import cn.lili.modules.distribution.entity.enums.DistributionOrderStatusEnum; -import cn.lili.modules.distribution.mapper.DistributionOrderMapper; import cn.lili.modules.distribution.service.DistributionOrderService; import cn.lili.modules.order.aftersale.entity.dos.AfterSale; import cn.lili.modules.order.order.entity.dto.OrderMessage; @@ -17,13 +15,10 @@ import cn.lili.modules.system.entity.dto.DistributionSetting; import cn.lili.modules.system.entity.enums.SettingEnum; import cn.lili.modules.system.service.SettingService; import cn.lili.timetask.handler.EveryDayExecute; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.annotation.Resource; - /** * 分销订单入库 * @@ -78,14 +73,14 @@ public class DistributionOrderExecute implements OrderStatusChangeEvent, EveryDa //当前时间-结算天数=最终结算时间 dateTime = dateTime.offsetNew(DateField.DAY_OF_MONTH, -distributionSetting.getCashDay()); //分销人员订单结算 - distributionOrderService.updateRebate(dateTime,DistributionOrderStatusEnum.WAIT_BILL.name()); + distributionOrderService.updateRebate(dateTime, DistributionOrderStatusEnum.WAIT_BILL.name()); } @Override public void afterSaleStatusChange(AfterSale afterSale) { if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) { - distributionOrderService.refundOrder(afterSale.getSn()); + distributionOrderService.refundOrder(afterSale); } } diff --git a/framework/src/main/java/cn/lili/modules/distribution/service/DistributionOrderService.java b/framework/src/main/java/cn/lili/modules/distribution/service/DistributionOrderService.java index 7b52cf369..8063afda8 100644 --- a/framework/src/main/java/cn/lili/modules/distribution/service/DistributionOrderService.java +++ b/framework/src/main/java/cn/lili/modules/distribution/service/DistributionOrderService.java @@ -3,6 +3,7 @@ package cn.lili.modules.distribution.service; import cn.hutool.core.date.DateTime; import cn.lili.modules.distribution.entity.dos.DistributionOrder; import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams; +import cn.lili.modules.order.aftersale.entity.dos.AfterSale; import cn.lili.modules.order.order.entity.dos.OrderItem; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -47,7 +48,7 @@ public interface DistributionOrderService extends IService { * * @param afterSaleSn 售后单号 */ - void refundOrder(String afterSaleSn); + void refundOrder(AfterSale afterSale); /** * 分销订单状态修改 diff --git a/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java index c44efde82..429010efd 100644 --- a/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/distribution/serviceimpl/DistributionOrderServiceImpl.java @@ -16,6 +16,7 @@ import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams; import cn.lili.modules.distribution.mapper.DistributionOrderMapper; import cn.lili.modules.distribution.service.DistributionOrderService; import cn.lili.modules.distribution.service.DistributionService; +import cn.lili.modules.order.aftersale.entity.dos.AfterSale; import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dos.StoreFlow; @@ -189,28 +190,27 @@ public class DistributionOrderServiceImpl extends ServiceImpl() - .eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn())); + .eq(DistributionOrder::getOrderItemSn, afterSale.getOrderItemSn())); //分销订单不存在,则直接返回 if (distributionOrder == null) { return; } - if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.WAIT_BILL.name())) { - this.update(new LambdaUpdateWrapper() - .eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn()) - .set(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.CANCEL.name())); - } - //如果已结算则创建退款分销订单 - else { - //修改分销员提成金额 - distributionService.subCanRebate(CurrencyUtil.sub(0, storeFlow.getDistributionRebate()), distributionOrder.getDistributionId()); + + distributionOrder.setSellBackRebate(CurrencyUtil.add(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate())); + distributionOrder.setRebate(CurrencyUtil.sub(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate())); + if (distributionOrder.getRebate() == 0) { + distributionOrder.setDistributionOrderStatus(DistributionOrderStatusEnum.REFUND.name()); } + this.updateById(distributionOrder); + +// 修改分销员提成金额 + distributionService.subCanRebate(CurrencyUtil.sub(0, refundStoreFlow.getDistributionRebate()), distributionOrder.getDistributionId()); } } @@ -310,7 +310,8 @@ public class DistributionOrderServiceImpl extends ServiceImpl list, List distributionList) { + public Distribution checkDistribution(String + distributionId, List list, List distributionList) { //获取所有待结算订单分销人员信息 Distribution distribution = distributionList.parallelStream().filter(a -> StrUtil.equals(a.getId(), distributionId)).collect(Collectors.toList()).get(0); diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/StoreFlowQueryDTO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/StoreFlowQueryDTO.java index 958b47ba2..9b39df286 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/StoreFlowQueryDTO.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/StoreFlowQueryDTO.java @@ -23,9 +23,12 @@ public class StoreFlowQueryDTO { @ApiModelProperty(value = "售后编号") private String refundSn; - @ApiModelProperty(value = "售后编号") + @ApiModelProperty(value = "订单编号") private String orderSn; + @ApiModelProperty(value = "订单货物编号") + private String orderItemSn; + @ApiModelProperty(value = "过滤只看分销订单") private Boolean justDistribution; diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java index 2616b74cc..f657f1c26 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java @@ -198,10 +198,13 @@ public class StoreFlowServiceImpl extends ServiceImpl