Administrator
2025-05-15 bfcbb8f2d4e3c9bdc63412dde76bbf016c2c2aa2
refactor(mall): 积分商品相关逻辑调整

- 移除零撸商品重复领取限制
- 修正静态属性价格计算逻辑
- 更新订单信息中积分商品价格计算方式
3 files modified
22 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 12 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallGoodsMapper.xml 8 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallOrderInfoMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -209,12 +209,12 @@
                    MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
                    // 零撸专区购买
                    if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
                        List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
                        if (CollUtil.isNotEmpty(items)) {
                            throw new FebsException("无法重复领取同一个商品");
                        }
                    }
//                    if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
//                        List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
//                        if (CollUtil.isNotEmpty(items)) {
//                            throw new FebsException("积分商品限制一件");
//                        }
//                    }
                    if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
                        throw new FebsException(mallGoods.getGoodsName() + "已下架");
src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -68,12 +68,12 @@
            c.stock sku_stock,
            c.sku_volume,
            c.original_price sku_original_price,
            FLOOR(a.original_price * a.static_prop) staticPropPrice,
            FLOOR((a.original_price * a.static_prop)/100) staticPropPrice,
            c.present_price sku_present_price,
            c.style_id sku_style_id,
            c.goods_weight sku_goods_weight,
            c.sample sample,
            FLOOR(c.original_price*a.static_prop) sku_static_prop_price,
            FLOOR((c.original_price*a.static_prop)/100) sku_static_prop_price,
            c.level_one_price sku_level_one_price,
            c.level_two_price sku_level_two_price,
            c.level_three_price sku_level_three_price,
@@ -94,7 +94,7 @@
                a.thumb,
                a.unit,
                a.original_price,
                FLOOR(a.original_price * a.static_prop) staticPropPrice,
                FLOOR((a.original_price * a.static_prop)/100) staticPropPrice,
                a.present_price,
                a.level_one_price,
                a.level_two_price,
@@ -345,7 +345,7 @@
        a.thumb,
        a.unit,
        a.original_price,
        FLOOR(a.original_price * a.static_prop) staticPropPrice,
        FLOOR((a.original_price * a.static_prop)/100) staticPropPrice,
        a.present_price,
        a.score,
        a.is_hot,
src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -420,7 +420,7 @@
        b.* ,
        b.amount as item_amount ,
        b.score_amount as item_score_amount ,
        FLOOR(c.original_price * d.static_prop) as item_score_price ,
        FLOOR((c.original_price * d.static_prop)/100) as item_score_price ,
               express.express_no
        from mall_order_info a
            left join mall_express_info express on a.id=express.order_id