xiaoyong931011
2021-11-10 7d35a3676ac6d4abcc7a02f33ba020bc29e1b825
gc-shop/src/main/resources/mapper/shop/ScoreGoodsMapper.xml
@@ -4,18 +4,65 @@
    <select id="queryGoodsList" resultType="com.xzx.gc.shop.vo.QueryGoodsListVo">
        SELECT
               *
               a.*,
        a.CREATED_TIME createTime,
               (
            SELECT
            ifnull(sum(b.stock),0)
            FROM
            xzx_score_goods_sku b
            WHERE 1 = 1
            and b.goods_id = a.id
                   ) stock
        FROM
        xzx_score_goods a
        WHERE 1 = 1
        and a.del_flag = 0
        <if test="name != null and name != ''">
            and a.name like concat('%',#{name},'%')
            and (a.name like concat('%',#{name},'%') or a.goods_no like concat('%',#{name},'%'))
        </if>
        <if test="isQg != null and isQg != ''">
            and a.is_qg= #{isQg}
        </if>
        <if test="isSale != null and isSale != ''">
            and a.is_sale= #{isSale}
        </if>
<!--        <if test="delFlag == 0 or delFlag == 1">-->
<!--            and a.del_flag = #{delFlag}-->
<!--        </if>-->
        and a.del_flag = 0
        order by a.CREATED_TIME desc
        order by
        <if test="namePx != null and namePx != '' and namePx == 1">
            a.qg_start_time
        </if>
        <if test="namePx != null and namePx != '' and namePx == 2">
            a.qg_end_time
        </if>
        <if test="namePx != null and namePx != '' and namePx == 3">
            a.is_sale
        </if>
        <if test="namePx != null and namePx != '' and namePx == 4">
            a.present_price + 0
        </if>
        <if test="namePx != null and namePx != '' and namePx == 5">
            a.original_price + 0
        </if>
        <if test="namePx != null and namePx != '' and namePx == 6">
            stock
        </if>
        <if test="namePx != null and namePx != '' and namePx == 7">
            a.CREATED_TIME
        </if>
        <if test="typePx != null and typePx != '' and typePx == 1">
            asc
        </if>
        <if test="typePx != null and typePx != '' and typePx == 2">
            desc
        </if>
    </select>
@@ -35,4 +82,85 @@
        where id=#{id}
    </update>
    <select id="selectXcxGoodsList" resultType="com.xzx.gc.shop.vo.XcxGoodsListVo">
        select
            a.*,
            sum(b.quantity) quantity,
            sum(b.stock) stock,
            min(b.present_price) minPrice
        from xzx_score_goods a
        inner join xzx_score_goods_sku b on a.id=b.goods_id and b.del_flag=0
        <where>
            a.del_flag=0 and a.is_sale=1
            <if test="record.minScore != null" >
                and b.present_price >= #{record.minScore}
            </if>
            <if test="record.maxScore != null">
                and #{record.maxScore} > b.present_price
            </if>
            <if test="record.name != null and record.name != ''">
                and a.name like concat('%',#{record.name},'%')
            </if>
            <if test="record.id != null and record.id != ''">
                and a.id=#{record.id}
            </if>
            <if test="record.isQg != null and record.isQg != ''">
                and a.is_qg=#{record.isQg} and  a.qg_end_time > now()
            </if>
            <if test="record.cateId != null and record.cateId != ''">
                and (a.category_id = #{record.cateId} or a.category_id in (select id from xzx_score_goods_category where parent_id=#{record.cateId}))
            </if>
        </where>
        group by a.id
        <if test="record.sort == 1">
            order by a.id desc
        </if>
        <if test="record.sort == 2">
            order by quantity desc
        </if>
        <if test="record.sort == 3">
            order by minPrice desc
        </if>
    </select>
    <resultMap id="goodsDetailsMap" type="com.xzx.gc.shop.vo.XcxGoodsDetailVo">
        <result property="name" column="name" />
        <result property="thumb" column="thumb" />
        <result property="presentPrice" column="present_price" />
        <result property="originalPrice" column="original_price" />
        <result property="isSale" column="is_sale" />
        <result property="isQg" column="is_qg" />
        <result property="qgStartTime" column="qg_start_time" />
        <result property="qgEndTime" column="qg_end_time" />
        <result property="details" column="details" />
        <collection property="styles" ofType="com.xzx.gc.shop.vo.XcxGoodsDetailStyleVo" >
            <id property="id" column="s_id" />
            <result property="name" column="s_name" />
            <collection property="skus" ofType="com.xzx.gc.shop.vo.XcxGoodsDetailSkuVo">
                <id property="id" column="sku_id" />
                <result property="name" column="sku_name" />
                <result property="originalPrice" column="sku_original_price" />
                <result property="presentPrice" column="sku_present_price" />
                <result property="stock" column="sku_stock" />
                <result property="quantity" column="sku_quantity" />
            </collection>
        </collection>
    </resultMap>
    <select id="selectGoodsDetailsById" resultMap="goodsDetailsMap">
        select
            a.*,
            b.id s_id,
            b.name s_name,
            c.id sku_id,
            c.name sku_name,
            c.original_price sku_original_price,
            c.present_price sku_present_price,
            c.stock sku_stock,
            c.quantity sku_quantity
        from xzx_score_goods a
        inner join xzx_score_goods_style b on a.id = b.goods_id and b.del_flag = 0
        inner join xzx_score_goods_sku c on b.id = c.style_id and c.del_flag = 0
        where a.id=#{id}
    </select>
</mapper>