| | |
| | | BigDecimal mineScore = amount.multiply(minePercent).setScale(0, RoundingMode.HALF_DOWN); |
| | | log.info("下单获得积分:{}", mineScore); |
| | | if(mineScore.compareTo(BigDecimal.ZERO) > 0){ |
| | | recommendScoreMap.put(memberId, mineScore); |
| | | recommendTypeScoreMap.put(memberId, ScoreFlowTypeEnum.MINE_RECOMMEND.getValue()); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | mineScore, |
| | | ScoreFlowTypeEnum.MINE_RECOMMEND.getValue(), |
| | | mallOrderInfo.getOrderNo(), |
| | | FlowTypeEnum.PRIZE_SCORE.getValue(), |
| | | StrUtil.format( ScoreFlowTypeEnum.MINE_RECOMMEND.getDesc(),mineScore), |
| | | 2); |
| | | mallMemberWalletService.add(mineScore,memberId , "prizeScore"); |
| | | } |
| | | // 计算推荐人获得的积分 |
| | | if(StrUtil.isNotEmpty(member.getReferrerId())){ |
| | |
| | | BigDecimal otherScore = amount.multiply(otherPercent).setScale(0, RoundingMode.HALF_DOWN); |
| | | log.info("推荐人获得积分:{}", otherScore); |
| | | if(otherScore.compareTo(BigDecimal.ZERO) > 0){ |
| | | recommendScoreMap.put(refMember.getId(), otherScore); |
| | | recommendTypeScoreMap.put(memberId, ScoreFlowTypeEnum.OTHER_RECOMMEND.getValue()); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | refMember.getId(), |
| | | otherScore, |
| | | ScoreFlowTypeEnum.OTHER_RECOMMEND.getValue(), |
| | | mallOrderInfo.getOrderNo(), |
| | | FlowTypeEnum.PRIZE_SCORE.getValue(), |
| | | StrUtil.format( ScoreFlowTypeEnum.OTHER_RECOMMEND.getDesc(),otherScore), |
| | | 2); |
| | | mallMemberWalletService.add(otherScore,refMember.getId() , "prizeScore"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 为推荐人和自己添加积分流动记录和更新钱包 |
| | | recommendScoreMap.forEach((key, value) -> { |
| | | if (value != null) { |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | key, |
| | | value, |
| | | recommendTypeScoreMap.get(key), |
| | | mallOrderInfo.getOrderNo(), |
| | | FlowTypeEnum.PRIZE_SCORE.getValue(), |
| | | StrUtil.format(ScoreFlowTypeEnum.getDescByValue(recommendTypeScoreMap.get(key)),value), |
| | | 2); |
| | | mallMemberWalletService.add(value, key, "prizeScore"); |
| | | } |
| | | }); |
| | | |
| | | // 发送会员等级升级消息 |
| | | agentProducer.sendVipLevelUp(orderId); |