xiaoyong931011
2023-04-08 12b84637ae89a2136bfc6774284841e87af02f0d
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -72,6 +72,7 @@
    private final AgentProducer agentProducer;
    private final IPayService payService;
    private final IMallAchieveService mallAchieveService;
    private final MallAchieveRecordMapper mallAchieveRecordMapper;
    private final UnipayService unipayService;
    private final MallMemberBankSignMapper mallMemberBankSignMapper;
@@ -327,45 +328,37 @@
                orderInfo.setPayResult("1");
                boolean hasTc = false;
                // 静态倍数
                BigDecimal achieveAmount = BigDecimal.ZERO;
                List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId());
                if (CollUtil.isNotEmpty(orderItems)) {
                    for (MallOrderItem orderItem : orderItems) {
                        MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId());
                        BigDecimal score = BigDecimal.ZERO;
                        MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId());
                        if (mallGoods.getIsNormal() == 2) {
                            hasTc = true;
                            score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti()).multiply(new BigDecimal(orderItem.getCnt()));
//                            BigDecimal staticMulti = mallGoods.getStaticMulti() == null ? BigDecimal.ZERO : mallGoods.getStaticMulti();
//                            score = sku.getPresentPrice().multiply(staticMulti);
                            // 普通商品也及时结算,不再10天结算
                        } else {
                            score = sku.getPresentPrice();
                        }
                        if (score.compareTo(BigDecimal.ZERO) > 0) {
                            memberWalletService.add(score, member.getId(), "score");
                            mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
                            // 添加业绩
                            mallAchieveService.add(orderItem.getId());
                            achieveAmount = achieveAmount.add(sku.getPresentPrice().multiply(new BigDecimal(orderItem.getCnt())));
                        }
                    }
                }
                // 购买套餐后,升级为普通会员
                if (hasTc) {
                    MallMember mallMember = memberMapper.selectById(member.getId());
                    if (AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())) {
                        mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
                        memberMapper.updateById(mallMember);
                if (hasTc){
                    if(achieveAmount.compareTo(BigDecimal.ZERO) > 0) {
                        // 添加业绩
                        MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
                        mallAchieveRecord.setMemberId(member.getId());
                        mallAchieveRecord.setAmount(achieveAmount);
                        mallAchieveRecord.setAchieveTime(orderInfo.getPayTime());
                        mallAchieveRecord.setOrderId(orderInfo.getId());
                        mallAchieveRecord.setIsNormal(2);
                        mallAchieveRecord.setPayTime(orderInfo.getPayTime());
                        mallAchieveRecordMapper.insert(mallAchieveRecord);
                    }
                }
                mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
                agentProducer.sendAutoLevelUpMsg(member.getId());
                agentProducer.sendOrderReturn(orderInfo.getId());
//                agentProducer.sendOrderReturn(orderInfo.getId());
                agentProducer.sendReturnMoneyMsg(orderInfo.getId());
                break;
            case "4":