xiaoyong931011
2021-09-29 63a846c145704323d29087f353ba330afc5f60e4
src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -54,32 +54,54 @@
    </select>
    <select id="selectMallGoodsListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsListVo">
        select
            a.id,
            a.goods_name,
            a.goods_introdution,
            a.thumb,
            a.original_price,
            a.present_price,
            sum(b.sku_volume) saleVolume
        from mall_goods a
             inner join mall_goods_sku b on a.id=b.goods_id
             inner join mall_goods_category c on a.category_id=c.id
        <where>
            a.is_sale=1
            <if test="record != null">
                <if test="record.isHot != null and record.isHot != ''">
                    and a.is_hot = 1
        select * from (
            select
                a.id,
                a.goods_name,
                a.goods_introdution,
                a.thumb,
                a.original_price,
                a.present_price,
                a.is_hot,
                min(b.present_price) price,
                sum(b.sku_volume) saleVolume
            from mall_goods a
                 inner join mall_goods_sku b on a.id=b.goods_id
                 inner join mall_goods_category c on a.category_id=c.id
            <where>
                a.is_sale=1
                <if test="record != null">
                    <if test="record.isHot != null and record.isHot != ''">
                        and a.is_hot = 1
                    </if>
                    <if test="record.categoryId != null and record.categoryId != ''">
                        and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId})
                    </if>
                    <if test="record.query != null and record.query != ''">
                        and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%'))
                    </if>
                </if>
                <if test="record.categoryId != null and record.categoryId != ''">
                    and (c.category_id = #{record.categoryId} or c.parent_id=#{record.categoryId})
                </if>
                <if test="record.query != null and record.query != ''">
                    and a.goods_name like CONCAT('%', CONCAT(#{record.query}, '%'))
                </if>
            </where>
            group by a.id
            order by a.id desc
        ) a
        <if test="record.sortType != null">
            <if test="record.sortType == 1">
                order by a.is_hot, a.saleVolume desc, a.id
            </if>
        </where>
        order by a.created_time desc
            <if test="record.sortType == 2">
                order by a.saleVolume desc
            </if>
            <if test="record.sortType == 3 and record.sort == 'asc'">
                order by a.price
            </if>
            <if test="record.sortType == 3 and record.sort == 'desc'">
                order by a.price desc
            </if>
            <if test="record.sortType == 4">
                order by a.id desc
            </if>
        </if>
    </select>
    <select id="selectMallGoodsInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsVo">
@@ -94,8 +116,13 @@
        a.is_sale,
        a.original_price,
        a.present_price,
        a.is_hot
        a.is_hot,
        b.name categaryName,
        sum(c.sku_volume) skuVolume,
        sum(c.stock) stock
        from mall_goods a
        left join mall_goods_category b on b.id = a.category_id
        left join mall_goods_sku c on c.goods_id = a.id
        <where>
            <if test="record != null">
                <if test="record.goodsName != null and record.goodsName != ''">
@@ -103,6 +130,7 @@
                </if>
            </if>
        </where>
        group by a.id
        order by a.created_time desc
    </select>
@@ -110,11 +138,44 @@
        select count(id) from mall_goods a where a.goods_name = #{goodsName}
    </select>
    <select id="selectMallGoodsCountByGoodsNameAndGoodId" resultType="java.lang.Integer">
        select count(id) from mall_goods a where a.goods_name = #{goodsName} and a.id != #{id}
    </select>
    <select id="selectMallGoodsCountByGoodsNo" resultType="java.lang.Integer">
        select count(id) from mall_goods a where a.goods_no = #{goodsNo}
    </select>
    <select id="selectMallGoodsCountByGoodsNoAndGoodId" resultType="java.lang.Integer">
        select count(id) from mall_goods a where a.goods_no = #{goodsNo} and a.id != #{id}
    </select>
    <select id="selectMallGoodsInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo">
        select * from mall_goods a where a.id = #{id}
    </select>
    <select id="selectGoodsStockAndVolume" resultType="java.util.HashMap">
        select
            sum(stock) stock,
            sum(sku_volume) volume
        from mall_goods_sku
        where goods_id=#{id}
    </select>
    <select id="selectMallGoodsByCategaryId" resultType="cc.mrbird.febs.mall.entity.MallGoods">
        select * from mall_goods a where a.category_id = #{categaryId}
    </select>
    <select id="getMallGoodsUpdateInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMailGoodsUpdateVo">
        select * from mall_goods a where a.id = #{id}
    </select>
    <select id="getAllGoodsTree" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsTreeVo">
        select
               a.id  goodsId,
               a.goods_name  goodsName
        from mall_goods a
    </select>
</mapper>