| | |
| | | private final MallProductSellRecordMapper mallProductSellRecordMapper; |
| | | private final MallMemberAmountMapper mallMemberAmountMapper; |
| | | private final IMallMoneyFlowService iMallMoneyFlowService; |
| | | private final MallProductNftMapper mallProductNftMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | BigDecimal nftCntTotalBuy = mallProductBuyRecords.stream().map(MallProductBuyRecord::getPickNftCnt).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | MallProductBuy mallProductBuy = mallProductBuyMapper.selectById(buyId); |
| | | if(nftCntTotalBuy.compareTo(mallProductBuy.getNftTotal()) >= 0){ |
| | | |
| | | Long productNftId = mallProductBuy.getProductNftId(); |
| | | MallProductNft mallProductNft = mallProductNftMapper.selectById(productNftId); |
| | | BigDecimal perkTime = mallProductNft.getPerkTime(); |
| | | BigDecimal totalPerk = perkTime.multiply(mallProductBuy.getNftTotal()).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | mallProductBuy.setTotalPerk(totalPerk); |
| | | mallProductBuy.setState(ProductEnum.PRODUCT_BUY_SUCCESS.getValue()); |
| | | mallProductBuy.setPayTime(DateUtil.date()); |
| | | mallProductBuyMapper.updateById(mallProductBuy); |
| | | |
| | | } |
| | | } |
| | | } |