订单退款,即刻扣减分销员冻结佣金
This commit is contained in:
parent
25582e2958
commit
39e22f5561
@ -5,9 +5,7 @@ import cn.hutool.core.date.DateTime;
|
|||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.lili.event.AfterSaleStatusChangeEvent;
|
import cn.lili.event.AfterSaleStatusChangeEvent;
|
||||||
import cn.lili.event.OrderStatusChangeEvent;
|
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.entity.enums.DistributionOrderStatusEnum;
|
||||||
import cn.lili.modules.distribution.mapper.DistributionOrderMapper;
|
|
||||||
import cn.lili.modules.distribution.service.DistributionOrderService;
|
import cn.lili.modules.distribution.service.DistributionOrderService;
|
||||||
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
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.entity.enums.SettingEnum;
|
||||||
import cn.lili.modules.system.service.SettingService;
|
import cn.lili.modules.system.service.SettingService;
|
||||||
import cn.lili.timetask.handler.EveryDayExecute;
|
import cn.lili.timetask.handler.EveryDayExecute;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
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());
|
dateTime = dateTime.offsetNew(DateField.DAY_OF_MONTH, -distributionSetting.getCashDay());
|
||||||
//分销人员订单结算
|
//分销人员订单结算
|
||||||
distributionOrderService.updateRebate(dateTime,DistributionOrderStatusEnum.WAIT_BILL.name());
|
distributionOrderService.updateRebate(dateTime, DistributionOrderStatusEnum.WAIT_BILL.name());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterSaleStatusChange(AfterSale afterSale) {
|
public void afterSaleStatusChange(AfterSale afterSale) {
|
||||||
if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) {
|
if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) {
|
||||||
distributionOrderService.refundOrder(afterSale.getSn());
|
distributionOrderService.refundOrder(afterSale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package cn.lili.modules.distribution.service;
|
|||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
||||||
import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams;
|
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 cn.lili.modules.order.order.entity.dos.OrderItem;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -47,7 +48,7 @@ public interface DistributionOrderService extends IService<DistributionOrder> {
|
|||||||
*
|
*
|
||||||
* @param afterSaleSn 售后单号
|
* @param afterSaleSn 售后单号
|
||||||
*/
|
*/
|
||||||
void refundOrder(String afterSaleSn);
|
void refundOrder(AfterSale afterSale);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分销订单状态修改
|
* 分销订单状态修改
|
||||||
|
@ -16,6 +16,7 @@ import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams;
|
|||||||
import cn.lili.modules.distribution.mapper.DistributionOrderMapper;
|
import cn.lili.modules.distribution.mapper.DistributionOrderMapper;
|
||||||
import cn.lili.modules.distribution.service.DistributionOrderService;
|
import cn.lili.modules.distribution.service.DistributionOrderService;
|
||||||
import cn.lili.modules.distribution.service.DistributionService;
|
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.Order;
|
||||||
import cn.lili.modules.order.order.entity.dos.OrderItem;
|
import cn.lili.modules.order.order.entity.dos.OrderItem;
|
||||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||||
@ -189,28 +190,27 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refundOrder(String afterSaleSn) {
|
public void refundOrder(AfterSale afterSale) {
|
||||||
//判断是否为分销订单
|
//判断是否为分销订单
|
||||||
StoreFlow storeFlow = storeFlowService.queryOne(StoreFlowQueryDTO.builder().justDistribution(true).refundSn(afterSaleSn).build());
|
StoreFlow refundStoreFlow = storeFlowService.queryOne(StoreFlowQueryDTO.builder().justDistribution(true).refundSn(afterSale.getSn()).build());
|
||||||
if (storeFlow != null) {
|
if (refundStoreFlow != null) {
|
||||||
|
|
||||||
//获取收款分销订单
|
//获取收款分销订单
|
||||||
DistributionOrder distributionOrder = this.getOne(new LambdaQueryWrapper<DistributionOrder>()
|
DistributionOrder distributionOrder = this.getOne(new LambdaQueryWrapper<DistributionOrder>()
|
||||||
.eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn()));
|
.eq(DistributionOrder::getOrderItemSn, afterSale.getOrderItemSn()));
|
||||||
//分销订单不存在,则直接返回
|
//分销订单不存在,则直接返回
|
||||||
if (distributionOrder == null) {
|
if (distributionOrder == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (distributionOrder.getDistributionOrderStatus().equals(DistributionOrderStatusEnum.WAIT_BILL.name())) {
|
|
||||||
this.update(new LambdaUpdateWrapper<DistributionOrder>()
|
distributionOrder.setSellBackRebate(CurrencyUtil.add(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate()));
|
||||||
.eq(DistributionOrder::getOrderItemSn, storeFlow.getOrderItemSn())
|
distributionOrder.setRebate(CurrencyUtil.sub(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate()));
|
||||||
.set(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.CANCEL.name()));
|
if (distributionOrder.getRebate() == 0) {
|
||||||
}
|
distributionOrder.setDistributionOrderStatus(DistributionOrderStatusEnum.REFUND.name());
|
||||||
//如果已结算则创建退款分销订单
|
|
||||||
else {
|
|
||||||
//修改分销员提成金额
|
|
||||||
distributionService.subCanRebate(CurrencyUtil.sub(0, storeFlow.getDistributionRebate()), distributionOrder.getDistributionId());
|
|
||||||
}
|
}
|
||||||
|
this.updateById(distributionOrder);
|
||||||
|
|
||||||
|
// 修改分销员提成金额
|
||||||
|
distributionService.subCanRebate(CurrencyUtil.sub(0, refundStoreFlow.getDistributionRebate()), distributionOrder.getDistributionId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,7 +310,8 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
|
|||||||
* @param distributionList 分销列表
|
* @param distributionList 分销列表
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Distribution checkDistribution(String distributionId, List<DistributionOrder> list, List<Distribution> distributionList) {
|
public Distribution checkDistribution(String
|
||||||
|
distributionId, List<DistributionOrder> list, List<Distribution> distributionList) {
|
||||||
//获取所有待结算订单分销人员信息
|
//获取所有待结算订单分销人员信息
|
||||||
Distribution distribution = distributionList.parallelStream().filter(a -> StrUtil.equals(a.getId(), distributionId)).collect(Collectors.toList()).get(0);
|
Distribution distribution = distributionList.parallelStream().filter(a -> StrUtil.equals(a.getId(), distributionId)).collect(Collectors.toList()).get(0);
|
||||||
|
|
||||||
|
@ -23,9 +23,12 @@ public class StoreFlowQueryDTO {
|
|||||||
@ApiModelProperty(value = "售后编号")
|
@ApiModelProperty(value = "售后编号")
|
||||||
private String refundSn;
|
private String refundSn;
|
||||||
|
|
||||||
@ApiModelProperty(value = "售后编号")
|
@ApiModelProperty(value = "订单编号")
|
||||||
private String orderSn;
|
private String orderSn;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "订单货物编号")
|
||||||
|
private String orderItemSn;
|
||||||
|
|
||||||
@ApiModelProperty(value = "过滤只看分销订单")
|
@ApiModelProperty(value = "过滤只看分销订单")
|
||||||
private Boolean justDistribution;
|
private Boolean justDistribution;
|
||||||
|
|
||||||
|
@ -198,10 +198,13 @@ public class StoreFlowServiceImpl extends ServiceImpl<StoreFlowMapper, StoreFlow
|
|||||||
lambdaQueryWrapper.eq(CharSequenceUtil.isNotEmpty(storeFlowQueryDTO.getRefundSn()),
|
lambdaQueryWrapper.eq(CharSequenceUtil.isNotEmpty(storeFlowQueryDTO.getRefundSn()),
|
||||||
StoreFlow::getRefundSn, storeFlowQueryDTO.getRefundSn());
|
StoreFlow::getRefundSn, storeFlowQueryDTO.getRefundSn());
|
||||||
|
|
||||||
//售后编号判定
|
//订单编号判定
|
||||||
lambdaQueryWrapper.eq(CharSequenceUtil.isNotEmpty(storeFlowQueryDTO.getOrderSn()),
|
lambdaQueryWrapper.eq(CharSequenceUtil.isNotEmpty(storeFlowQueryDTO.getOrderSn()),
|
||||||
StoreFlow::getOrderSn, storeFlowQueryDTO.getOrderSn());
|
StoreFlow::getOrderSn, storeFlowQueryDTO.getOrderSn());
|
||||||
|
|
||||||
|
//订单货物编号
|
||||||
|
lambdaQueryWrapper.eq(CharSequenceUtil.isNotEmpty(storeFlowQueryDTO.getOrderItemSn()),
|
||||||
|
StoreFlow::getOrderItemSn, storeFlowQueryDTO.getOrderItemSn());
|
||||||
//结算单非空,则校对结算单参数
|
//结算单非空,则校对结算单参数
|
||||||
if (storeFlowQueryDTO.getBill() != null) {
|
if (storeFlowQueryDTO.getBill() != null) {
|
||||||
Bill bill = storeFlowQueryDTO.getBill();
|
Bill bill = storeFlowQueryDTO.getBill();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user