fix
Helius
2022-06-11 895dc6191e123c372ce5ea8e92246081e208f4b6
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -131,7 +131,7 @@
                // 零撸专区购买
                if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
                    List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId());
                    List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
                    if (CollUtil.isNotEmpty(items)) {
                        throw new FebsException("无法重复领取同一个商品");
                    }
@@ -243,15 +243,24 @@
                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;
                            MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId());
                            BigDecimal score = sku.getOriginalPrice().multiply(mallGoods.getStaticMulti());
                            score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti());
                            // 普通商品1:1 返还积分
                        } else {
                            if (!AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
                                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());
                        }
                    }
                }