xiaoyong931011
2022-09-23 14bb69110fc779feb53c0f2fe4623a24467d4422
src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -9,6 +9,7 @@
        <result property="goodsIntrodution" column="goods_introdution" />
        <result property="unit" column="unit" />
        <result property="thumb" column="thumb" />
        <result property="goodsParameter" column="goods_parameter" />
        <result property="goodsDetails" column="goods_details" />
        <result property="isSale" column="is_sale" />
        <result property="originalPrice" column="original_price" />
@@ -18,6 +19,9 @@
        <result property="stock" column="stock" />
        <result property="score" column="score" />
        <result property="goodsType" column="goods_type" />
        <result property="hasCarriage" column="has_carriage" />
        <result property="carriage" column="carriage" />
        <result property="isNormal" column="is_normal" />
        <collection property="styles" ofType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
            <id property="id" column="style_id" />
            <result property="name" column="style_name" />
@@ -62,12 +66,15 @@
            select
                a.id,
                a.goods_name,
                a.goods_introdution,
                a.goods_introdution goodsIntroduction,
                a.thumb,
                a.original_price,
                a.present_price,
                a.score,
                a.is_hot,
                min(b.id) skuId,
                min(b.present_price) price,
                sum(b.stock) stock,
                sum(b.sku_volume) saleVolume
            from mall_goods a
                 left join mall_goods_sku b on a.id=b.goods_id
@@ -76,13 +83,16 @@
                a.is_sale=1
                <if test="record != null">
                    <if test="record.isHot != null and record.isHot != ''">
                        and a.is_hot = 1
                        and a.is_hot = #{record.isHot}
                    </if>
                    <if test="record.isNormal != null and record.isNormal != ''">
                        and a.is_normal = #{record.isNormal}
                    </if>
                    <if test="record.goodsType != null and record.goodsType != ''">
                        and a.goods_type = #{record.goodsType}
                    <if test="record.goodsType != null and record.goodsType != '' and record.goodsType != 3">
                        and a.goods_type = #{record.goodsType} and a.present_price != 0
                    </if>
                    <if test="record.goodsType == 3">
                        and a.present_price = 0
                    </if>
                    <if test="record.categoryId != null and record.categoryId != ''">
                        and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId})
@@ -128,6 +138,7 @@
        a.present_price,
        a.is_hot,
        a.score,
        a.is_normal,
        b.name categaryName,
        IFNULL(sum(c.sku_volume), a.volume) skuVolume,
        IFNULL(sum(c.stock), a.stock) stock
@@ -192,4 +203,79 @@
               a.goods_name  goodsName
        from mall_goods a
    </select>
    <select id="selectOrderGoodsList" resultType="cc.mrbird.febs.mall.entity.MallGoods">
        select a.*,c.order_no from mall_goods a
            inner join mall_order_item b on a.id=b.goods_id
            inner join mall_order_info c on b.order_id=c.ID
        where c.status in (2, 3, 4) and b.is_normal=2
        <if test="memberId != null">
            and c.member_id=#{memberId}
        </if>
        <if test="date != null">
            and date_format(c.pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
        </if>
    </select>
    <select id="selectMallGoodsCommentListQueryInPage" resultType="cc.mrbird.febs.mall.vo.MallGoodsCommentVo">
        select
        a.*,
        b.name name,
        b.avatar avatar
        from mall_goods_comment a
        left join mall_member b on b.id = a.member_id
        <where>
            <if test="record != null">
                <if test="record.goodsId != null and record.goodsId != ''">
                    and a.goods_id=#{record.goodsId}
                </if>
                <if test="record.commentType != null and record.commentType != '' and record.commentType == 1">
                    and a.star <![CDATA[ > ]]> 4
                </if>
                <if test="record.commentType != null and record.commentType != '' and record.commentType == 2">
                    and (a.star <![CDATA[ >= ]]> 3 and a.star <![CDATA[ <= ]]> 4)
                </if>
                <if test="record.commentType != null and record.commentType != '' and record.commentType == 3">
                    and (a.star <![CDATA[ < ]]> 3 )
                </if>
            </if>
        </where>
        group by a.id
        order by a.created_time desc
    </select>
    <select id="getDeliveryHomeListInPage" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom">
        SELECT
            a.*
        FROM
            data_dictionary_custom a
        where a.type = 'HOME_DELIVERY_SETTING'
        GROUP BY a.id
        ORDER BY
            a.CREATED_TIME asc
    </select>
    <select id="findMallGoodsCommentLevelByGoodsId" resultType="cc.mrbird.febs.mall.vo.MallGoodsCommentVo">
        select
            (select count(z.id) from mall_goods_comment z where z.goods_id = #{id} and z.star <![CDATA[ > ]]> 4) greatNum,
            (select count(z.id) from mall_goods_comment z where z.goods_id = #{id}
                                                            and (z.star <![CDATA[ >= ]]> 3 and z.star <![CDATA[ <= ]]> 4)) goodNum,
            (select count(z.id) from mall_goods_comment z where z.goods_id = #{id} and (z.star <![CDATA[ < ]]> 3 )) badNum
        from mall_goods_comment a limit 1
    </select>
    <update id="upDateStockAndVolumeByGoodsId">
        update mall_goods
        set stock = stock - #{cnt},
            volume = volume + #{cnt}
        where id=#{id} and  stock - #{cnt} <![CDATA[ >= ]]> 0
    </update>
    <update id="updateStockAndVolumeByGoodsId">
        update mall_goods
        set stock = stock + #{cnt},
            volume = volume - #{cnt}
        where id=#{id} and  volume - #{cnt} <![CDATA[ >= ]]> 0
    </update>
</mapper>