|
|
|
@ -876,6 +876,7 @@ public class ProductOrderServiceImpl implements IProductOrderService {
|
|
|
|
|
if(status.equals("4")){ |
|
|
|
|
updateWrapper.set(ProductOrder::getFinishDate, new Date()); |
|
|
|
|
updateWrapper.set(ProductOrder::getSettlement, 1L); |
|
|
|
|
updateWrapper.eq(ProductOrder::getSettlement, 0L); |
|
|
|
|
ProductOrderPriceVo productOrderPriceVo = productOrderPriceMapper.selectVoById(id); |
|
|
|
|
BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice(); |
|
|
|
|
if (productOrderVo.getSettlement() == 0L) { |
|
|
|
@ -910,21 +911,28 @@ public class ProductOrderServiceImpl implements IProductOrderService {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 完成订单以后 结算settlement 0-> 1 |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
@Transactional |
|
|
|
|
public void settlement() { |
|
|
|
|
String settlementDay = sysConfigService.selectConfigByKey("finish.order.settlement.day"); |
|
|
|
|
Integer day = Integer.parseInt(settlementDay); |
|
|
|
|
Date jdkDate = DateUtil.offsetDay(new Date(), -day).toJdkDate(); |
|
|
|
|
LambdaQueryWrapper<ProductOrder> lqw = new LambdaQueryWrapper<>(); |
|
|
|
|
lqw.eq(ProductOrder::getSettlement, 1L); |
|
|
|
|
//结算时间小于jdkDate
|
|
|
|
|
lqw.lt(ProductOrder::getFinishDate, jdkDate); |
|
|
|
|
List<ProductOrderVo> productOrderVos = baseMapper.selectVoList(lqw); |
|
|
|
|
QueryWrapper<ProductOrder> lqw = new QueryWrapper<>(); |
|
|
|
|
//待结算
|
|
|
|
|
lqw.eq("po.settlement", 1L); |
|
|
|
|
// lqw.in(ProductOrder::getStatus, "4", "5");
|
|
|
|
|
//完成时间小于设定时间
|
|
|
|
|
lqw.lt("po.finish_date", jdkDate); |
|
|
|
|
lqw.eq("po.del_flag", "0"); |
|
|
|
|
lqw.eq("sb.del_flag", "0"); |
|
|
|
|
List<ProductOrderVo> productOrderVos = baseMapper.selectSettlementList(lqw); |
|
|
|
|
productOrderVos.forEach(productOrderVo -> { |
|
|
|
|
ProductOrderPriceVo productOrderPriceVo = productOrderPriceService.queryById(productOrderVo.getId()); |
|
|
|
|
BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice(); |
|
|
|
|
log.info("结算金额:{}", settlementCurrentPrice); |
|
|
|
|
sysBusinessBalanceService.addBalance(settlementCurrentPrice, productOrderVo.getBusinessId(), |
|
|
|
|
"冻结转入余额", productOrderVo.getId(), "order"); |
|
|
|
|
sysBusinessBalanceService.subFrozenBalance(settlementCurrentPrice, productOrderVo.getBusinessId(), |
|
|
|
|