分销佣金计算时间设置

This commit is contained in:
lifenlong 2021-08-23 17:39:02 +08:00
parent 1424eaa90f
commit f9308fa5bf
3 changed files with 14 additions and 8 deletions

View File

@ -19,7 +19,8 @@ public interface DistributionMapper extends BaseMapper<Distribution> {
* @param commissionFrozen 分销金额
* @param distributionId 分销员ID
*/
@Update("UPDATE li_distribution set commission_frozen = (commission_frozen+#{commissionFrozen}) , rebate_total=(rebate_total+#{commissionFrozen}) WHERE id = #{distributionId}")
@Update("UPDATE li_distribution set commission_frozen = (commission_frozen+#{commissionFrozen}) " +
", rebate_total=(rebate_total+#{commissionFrozen}) WHERE id = #{distributionId}")
void subCanRebate(Double commissionFrozen, String distributionId);
/**
@ -28,7 +29,9 @@ public interface DistributionMapper extends BaseMapper<Distribution> {
* @param commissionFrozen 分销金额
* @param distributionId 分销员ID
*/
@Update("UPDATE li_distribution set commission_frozen = (commission_frozen+#{commissionFrozen}) , rebate_total=(rebate_total+#{commissionFrozen}) , distribution_order_count=(distribution_order_count+1) WHERE id = #{distributionId}")
@Update("UPDATE li_distribution set commission_frozen = (commission_frozen+#{commissionFrozen}) " +
", rebate_total=(rebate_total+#{commissionFrozen}) " +
", distribution_order_count=(distribution_order_count+1) WHERE id = #{distributionId}")
void addCanRebate(Double commissionFrozen, String distributionId);
}

View File

@ -20,9 +20,8 @@ public interface DistributionOrderMapper extends BaseMapper<DistributionOrder> {
* @param settleCycle 时间
*/
@Update("UPDATE li_distribution AS d " +
"SET d.can_rebate =(d.can_rebate +(SELECT SUM( dorder.rebate ) " +
"SET d.commission_frozen =(d.commission_frozen -(SELECT SUM( dorder.rebate ) " +
"FROM li_distribution_order AS dorder WHERE dorder.distribution_id = d.id AND dorder.distribution_order_status=#{distributionOrderStatus} AND dorder.settle_cycle< #{settleCycle} ))")
"SET d.can_rebate =(d.can_rebate +(SELECT SUM( dorder.rebate ) FROM li_distribution_order AS dorder WHERE dorder.distribution_order_status = #{distributionOrderStatus} AND dorder.settle_cycle< #{settleCycle} AND dorder.distribution_id = d.id ))" +
",d.commission_frozen =(d.commission_frozen -(SELECT SUM( dorder.rebate ) FROM li_distribution_order AS dorder WHERE dorder.distribution_order_status = #{distributionOrderStatus} AND dorder.settle_cycle< #{settleCycle} AND dorder.distribution_id = d.id ) )")
void rebate(String distributionOrderStatus, DateTime settleCycle);
}

View File

@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -38,6 +39,7 @@ import java.util.List;
* @author pikachu
* @since 2020-03-14 23:04:56
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderMapper, DistributionOrder> implements DistributionOrderService {
@ -107,7 +109,7 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
distributionOrder.setSettleCycle(new DateTime());
} else {
DateTime dateTime = new DateTime();
dateTime.offsetNew(DateField.DAY_OF_MONTH, distributionSetting.getCashDay());
dateTime = dateTime.offsetNew(DateField.DAY_OF_MONTH, distributionSetting.getCashDay());
distributionOrder.setSettleCycle(dateTime);
}
@ -120,13 +122,15 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
//如果天数写0则立即进行结算
if (distributionSetting.getCashDay().equals(0)) {
DateTime dateTime = new DateTime();
dateTime = dateTime.offsetNew(DateField.MINUTE, 5);
//计算分销提佣
this.baseMapper.rebate(DistributionOrderStatusEnum.WAIT_BILL.name(), new DateTime());
this.baseMapper.rebate(DistributionOrderStatusEnum.WAIT_BILL.name(), dateTime);
//修改分销订单状态
this.update(new LambdaUpdateWrapper<DistributionOrder>()
.eq(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.WAIT_BILL.name())
.le(DistributionOrder::getSettleCycle, new DateTime())
.le(DistributionOrder::getSettleCycle, dateTime)
.set(DistributionOrder::getDistributionOrderStatus, DistributionOrderStatusEnum.WAIT_CASH.name()));
}
}