KKSU
2025-01-08 cc5d54b0721421913edb471238519f1a42953667
feat(mall): 轮播图跳转活动页面

- 新增 activityId 字段用于平台轮播图表
- 查询支付方式列表时,为每个平台轮播图对象设置 activityId
- 修改商品列表查询条件,支持按活动 ID 查询
3 files modified
32 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/entity/PlatformBanner.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java 21 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallGoodsMapper.xml 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/PlatformBanner.java
@@ -49,5 +49,9 @@
    //商品ID
    @TableField(exist = false)
    private Long goodsId;
    //商品ID
    @TableField(exist = false)
    private Long activityId;
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java
@@ -8,7 +8,7 @@
import cc.mrbird.febs.mall.service.IApiMallNewsService;
import cc.mrbird.febs.mall.vo.NewsListVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -32,6 +32,7 @@
    private final PlatformBannerMapper platformBannerMapper;
    private final MallGoodsMapper mallGoodsMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final MallActivityMapper mallActivityMapper;
    @Override
    public List<MallNewsCategory> findNewsCategoryList() {
@@ -64,18 +65,14 @@
        queryWrapper.orderByAsc("created_time");
        List<PlatformBanner> paymentMethodList = platformBannerMapper.selectList(queryWrapper);
        if(CollUtil.isNotEmpty(paymentMethodList)){
            for(PlatformBanner platformBanner : paymentMethodList){
                if("1".equals(platformBanner.getIsJump()) &&
                    1 == platformBanner.getIsInside()){
                    String jumpUrl = platformBanner.getJumpUrl();
                    QueryWrapper<MallGoods> queryWrapperGoods = new QueryWrapper<>();
                    queryWrapperGoods.eq("goods_no",jumpUrl);
                    List<MallGoods> goodsList = mallGoodsMapper.selectList(queryWrapperGoods);
                    if(CollUtil.isNotEmpty(goodsList)){
                        platformBanner.setGoodsId(goodsList.get(0).getId());
                    }
            paymentMethodList.forEach(item -> {
                if("1".equals(item.getIsJump()) && 1 == item.getIsInside()){
                    String jumpUrl = item.getJumpUrl();
                    MallActivity mallActivity = mallActivityMapper.selectById(
                            new LambdaQueryWrapper<MallActivity>().eq(MallActivity::getId, Long.parseLong(jumpUrl)));
                    item.setActivityId(mallActivity.getId());
                }
            }
            });
        }
        return new FebsResponse().success().data(paymentMethodList);
    }
src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -332,16 +332,12 @@
        select
        a.id,
        a.goods_name,
        a.goods_introdution goodsIntroduction,
        a.thumb,
        a.unit,
        a.original_price,
        a.present_price,
        a.score,
        a.is_hot,
        a.carriage_type,
        a.carriage_amount,
        a.carriage_rule_id,
        a.goods_weight,
        a.order_number,
        min(b.id) skuId,
@@ -360,6 +356,9 @@
                <if test="record.isNormal != null and record.isNormal != ''">
                    and a.is_normal = #{record.isNormal}
                </if>
                <if test="record.isNormal == 3">
                    and a.activity_id = #{record.activityId}
                </if>
                <if test="record.goodsType != null and record.goodsType != '' and record.goodsType != 3">
                    and a.goods_type = #{record.goodsType} and a.present_price != 0
                </if>