xiaoyong931011
2023-04-06 c5b60fbff8008c95cef0236ea520041a43151d19
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -342,6 +342,7 @@
                orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
                orderInfo.setPayTime(new Date());
                orderInfo.setPayResult("1");
                this.baseMapper.updateById(orderInfo);
                changeWallet(orderInfo.getId());
                /**
@@ -448,6 +449,7 @@
         * 所有合伙人补贴至消费礼包的三倍额度需要复购一次。
         */
        BigDecimal scoreSum = BigDecimal.ZERO;
        BigDecimal achieveSum = BigDecimal.ZERO;
        List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId());
        if (CollUtil.isNotEmpty(orderItems)) {
            for (MallOrderItem orderItem : orderItems) {
@@ -461,9 +463,37 @@
                    BigDecimal star = (mallGoods.getStar()==null ? BigDecimal.ZERO : mallGoods.getStar())
                            .multiply(new BigDecimal(orderItem.getCnt()));
                    starSum = starSum.add(star);
//                    scoreSum = scoreSum.add(
//                            new BigDecimal(mallGoods.getPresentPrice())
//                                    .multiply(new BigDecimal(3))
//                                    .multiply(new BigDecimal(orderItem.getCnt()))
//                                    .abs()
//                                    .setScale(2,BigDecimal.ROUND_DOWN));
                    String goodsName = mallGoods.getGoodsName();
                    /**
                     * 1-2档投资级别,2.5倍
                     * 3-4档投资级别,2.8倍
                     * 5-6档投资级别,3倍
                     * 目前紧急修改成按照商品名称
                     */
                    BigDecimal basePercent = new BigDecimal("3");
                    if(goodsName.equals("礼包一") || goodsName.equals("礼包二")){
                        basePercent = new BigDecimal("2.5");
                    }
                    if(goodsName.equals("礼包三") || goodsName.equals("礼包四")){
                        basePercent = new BigDecimal("2.8");
                    }
                    if(goodsName.equals("礼包五") || goodsName.equals("礼包六")){
                        basePercent = new BigDecimal("3");
                    }
                    scoreSum = scoreSum.add(
                            new BigDecimal(mallGoods.getPresentPrice())
                                    .multiply(new BigDecimal(3))
                                    .multiply(new BigDecimal(orderItem.getCnt()))
                                    .multiply(basePercent)
                                    .abs()
                                    .setScale(2,BigDecimal.ROUND_DOWN));
                    achieveSum = achieveSum.add(
                            new BigDecimal(mallGoods.getPresentPrice())
                                    .multiply(new BigDecimal(orderItem.getCnt()))
                                    .abs()
                                    .setScale(2,BigDecimal.ROUND_DOWN));
@@ -491,7 +521,8 @@
                                    starSum,
                                    MoneyFlowTypeEnum.STAR.getValue(),
                                    orderInfo.getOrderNo(),
                                    FlowTypeEnum.STAR.getValue());
                                    FlowTypeEnum.STAR.getValue(),
                                    2);
                        }
                        if(starGet.compareTo(star) > 0){
                            BigDecimal subtract = starGet.subtract(star);
@@ -504,7 +535,8 @@
                                    starSum,
                                    MoneyFlowTypeEnum.STAR.getValue(),
                                    orderInfo.getOrderNo(),
                                    FlowTypeEnum.STAR.getValue());
                                    FlowTypeEnum.STAR.getValue(),
                                    2);
                        }
                    }else{
                        mallMemberWalletMapper.addStarByMemberId(starSum.intValue(), memberId);
@@ -513,7 +545,8 @@
                                starSum,
                                MoneyFlowTypeEnum.STAR.getValue(),
                                orderInfo.getOrderNo(),
                                FlowTypeEnum.STAR.getValue());
                                FlowTypeEnum.STAR.getValue(),
                                2);
                    }
                }
            }
@@ -521,13 +554,29 @@
             * 增加补贴额度
             */
            if (scoreSum.compareTo(BigDecimal.ZERO) > 0) {
//                MallMember mallMember = memberMapper.selectById(memberId);
//                if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) >= 5){
//                    scoreSum = scoreSum.multiply(new BigDecimal(3));
//                }
//                if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) >= 3
//                &&MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) < 5){
//                    scoreSum = scoreSum.multiply(new BigDecimal(2.8));
//                }
//                if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) < 3){
//                    scoreSum = scoreSum.multiply(new BigDecimal(2.5));
//                }
                memberWalletService.add(scoreSum, memberId, "totalScore");
                mallMoneyFlowService.addMoneyFlow(
                        memberId,
                        scoreSum,
                        MoneyFlowTypeEnum.TOTAL_SCORE.getValue(),
                        orderInfo.getOrderNo(),
                        FlowTypeEnum.TOTAL_SCORE.getValue());
                        "",
                        scoreSum.toString(),
                        memberId,
                        1,
                        FlowTypeEnum.TOTAL_SCORE.getValue(),
                        2);
            }
        }
@@ -566,13 +615,15 @@
        /**
         * 产生一条业绩记录
         */
        MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
        mallAchieveRecord.setMemberId(memberId);
        mallAchieveRecord.setAchieveTime(new Date());
        mallAchieveRecord.setAmount(orderInfo.getAmount().subtract(orderInfo.getScoreAmount()));
        mallAchieveRecord.setOrderId(orderId);
        mallAchieveRecord.setPayTime(orderInfo.getPayTime());
        mallAchieveRecordMapper.insert(mallAchieveRecord);
        if(achieveSum.compareTo(BigDecimal.ZERO) > 0){
            MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
            mallAchieveRecord.setMemberId(memberId);
            mallAchieveRecord.setAchieveTime(new Date());
            mallAchieveRecord.setAmount(achieveSum.subtract(orderInfo.getScoreAmount()));
            mallAchieveRecord.setOrderId(orderId);
            mallAchieveRecord.setPayTime(orderInfo.getPayTime());
            mallAchieveRecordMapper.insert(mallAchieveRecord);
        }
    }
    public static void main(String[] args) {