Administrator
2025-05-15 df8ae86941b1bc539ef873f5c7d85ff27e7f9f9d
refactor(mall): 优化订单详情接口

- 移除 ApiMallOrderInfoServiceImpl 中的冗余代码
- 在 MallOrderInfoMapper.xml 中添加订单项的相关字段映射
- 修改订单详情查询 SQL,加入商品 SKU 和商品信息的关联
2 files modified
24 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 14 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallOrderInfoMapper.xml 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -724,13 +724,13 @@
        if (ObjectUtil.isNull(orderInfo)) {
            throw new FebsException("订单不存在");
        }
        List<MallOrderItem> items = orderInfo.getItems();
        if(CollUtil.isNotEmpty(items)){
            for(MallOrderItem mallOrderItem : items){
                mallOrderItem.setItemAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getAmount());
                mallOrderItem.setScoreAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getScoreAmount());
            }
        }
//        List<MallOrderItem> items = orderInfo.getItems();
//        if(CollUtil.isNotEmpty(items)){
//            for(MallOrderItem mallOrderItem : items){
//                mallOrderItem.setItemAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getAmount());
//                mallOrderItem.setScoreAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getScoreAmount());
//            }
//        }
        OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -157,6 +157,9 @@
            <result property="memberInviteId" column="member_invite_id" />
            <result property="memberCouponId" column="member_coupon_id" />
            <result property="state" column="state" />
            <result property="itemScoreAmount" column="item_score_amount" />
            <result property="itemAmount" column="item_amount" />
            <result property="itemScorePrice" column="item_score_price" />
        </collection>
    </resultMap>
@@ -204,11 +207,16 @@
            b.cnt,
            b.price,
            b.amount,
            b.amount as item_amount ,
            b.score_amount as item_score_amount ,
            FLOOR((c.original_price * d.static_prop)/100) as item_score_price ,
            b.member_invite_id,
            b.member_coupon_id,
            b.is_normal
        from mall_order_info a
             inner join mall_order_item b on a.id=b.order_id
             left join mall_order_item b on a.id=b.order_id
             left join mall_goods_sku c on c.id=b.sku_id
             left join mall_goods d on d.id=b.goods_id
        where a.id=#{id}
    </select>