| | |
| | | BigDecimal amountMagic = amount; |
| | | List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectListByMemberId(memberId); |
| | | if(CollUtil.isEmpty(mallAchieveRecords)){ |
| | | |
| | | BigDecimal localTotalAchieve = amount; |
| | | /** |
| | | * 用户减少赠送积分 |
| | | */ |
| | | DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId); |
| | | DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(memberId); |
| | | BigDecimal totalScore = dappWalletMineEntity.getTotalAmount(); |
| | | BigDecimal availableScore = dappWalletMineEntity.getAvailableAmount(); |
| | | |
| | | if(localTotalAchieve.compareTo(totalScore) >= 0){ |
| | | localTotalAchieve = totalScore; |
| | | //当实际获取大于用户的赠送积分,将用户更新为未激活 |
| | | dappMemberEntity.setActiveStatus(2); |
| | | dappMemberDao.updateById(dappMemberEntity); |
| | | } |
| | | |
| | | DappAccountMoneyChangeEntity reduceScoreAMC = new DappAccountMoneyChangeEntity( |
| | | memberId, |
| | | totalScore, |
| | | amountMagic.negate(), |
| | | localTotalAchieve.negate(), |
| | | AccountFlowEnum.SCORE.getCode(), |
| | | null); |
| | | dappAccountMoneyChangeDao.insert(reduceScoreAMC); |
| | | |
| | | //插入积分流水 |
| | | DappFundFlowEntity scoreFlow = new DappFundFlowEntity( |
| | | AccountFlowEnum.SCORE.getCode(), |
| | | memberId, |
| | | localTotalAchieve.negate(), |
| | | FundFlowEnum.REDUCE_SCORE_REAL.getCode(), |
| | | DappFundFlowEntity.WITHDRAW_STATUS_AGREE, |
| | | BigDecimal.ZERO); |
| | | dappFundFlowDao.insert(scoreFlow); |
| | | |
| | | BigDecimal totalScoreRelease = totalScore.subtract(localTotalAchieve); |
| | | BigDecimal availableScoreRelease = availableScore.subtract(localTotalAchieve); |
| | | //更新积分账户 |
| | | dappWalletMineEntity.setTotalAmount(totalScoreRelease); |
| | | dappWalletMineEntity.setAvailableAmount(availableScoreRelease); |
| | | dappWalletMineDao.updateById(dappWalletMineEntity); |
| | | |
| | | |
| | | //用户增加余额 |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | BigDecimal totalAmount = dappWalletCoinEntity.getTotalAmount(); |
| | | BigDecimal availableAmount = dappWalletCoinEntity.getAvailableAmount(); |
| | | |
| | | DappAccountMoneyChangeEntity addAmountAMC = new DappAccountMoneyChangeEntity( |
| | | memberId, |
| | | totalAmount, |
| | | amountMagic, |
| | | localTotalAchieve, |
| | | AccountFlowEnum.AMOUNT.getCode(), |
| | | null); |
| | | dappAccountMoneyChangeDao.insert(addAmountAMC); |
| | | //插入余额流水 |
| | | DappFundFlowEntity amountFlow = new DappFundFlowEntity( |
| | | AccountFlowEnum.AMOUNT.getCode(), |
| | | memberId, |
| | | localTotalAchieve, |
| | | FundFlowEnum.ADD_AMOUNT_REAL.getCode(), |
| | | DappFundFlowEntity.WITHDRAW_STATUS_AGREE, |
| | | BigDecimal.ZERO); |
| | | dappFundFlowDao.insert(amountFlow); |
| | | |
| | | BigDecimal totalAmountRelease = totalAmount.add(localTotalAchieve); |
| | | BigDecimal availableAmountRelease = availableAmount.add(localTotalAchieve); |
| | | //更新余额账户 |
| | | dappWalletCoinEntity.setTotalAmount(totalAmountRelease); |
| | | dappWalletCoinEntity.setAvailableAmount(availableAmountRelease); |
| | | dappWalletCoinDao.updateById(dappWalletCoinEntity); |
| | | |
| | | StringBuffer content = new StringBuffer(); |
| | | if(amountMagic.compareTo(localTotalAchieve) > 0){ |
| | | content.append("今日可加速"+amountMagic.setScale(2,BigDecimal.ROUND_DOWN)+",实际加速"+localTotalAchieve.setScale(2,BigDecimal.ROUND_DOWN)+"" + |
| | | "烧伤"+amountMagic.subtract(localTotalAchieve).setScale(2,BigDecimal.ROUND_DOWN)+",原因消费金额1%加速上" + |
| | | "限,增加消费金额可获得更多收益"); |
| | | }else{ |
| | | content.append("今日可加速"+amountMagic.setScale(2,BigDecimal.ROUND_DOWN)+",实际加速"+localTotalAchieve.setScale(2,BigDecimal.ROUND_DOWN)+"" + |
| | | "烧伤"+amountMagic.subtract(localTotalAchieve).setScale(2,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | DappAccountMoneyChangeEntity record = new DappAccountMoneyChangeEntity( |
| | | memberId, |
| | | totalAmount, |
| | | amountMagic, |
| | | localTotalAchieve, |
| | | AccountFlowEnum.AMOUNT_RECORD.getCode(), |
| | | content.toString()); |
| | | dappAccountMoneyChangeDao.insert(record); |
| | | |
| | | //实时更新用户等级 |
| | | chainProducer.sendAutoLevelUpTeamMsg(memberId); |
| | | |
| | | set.add(dappMemberEntity); |
| | | continue; |
| | | } |
| | | //实际获取总收益 |