| <?xml version="1.0" encoding="UTF-8"?> | 
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 
| <mapper namespace="com.xzx.gc.shop.mapper.ScoreGoodsMapper"> | 
|   | 
|     <select id="queryGoodsList" resultType="com.xzx.gc.shop.vo.QueryGoodsListVo"> | 
|         SELECT | 
|                a.*, | 
|         a.CREATED_TIME createTime | 
|         FROM | 
|         xzx_score_goods a | 
|   | 
|         WHERE 1 = 1 | 
|         <if test="name != null and name != ''"> | 
|             and (a.name like concat('%',#{name},'%') or a.goods_no like concat('%',#{name},'%')) | 
|         </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 | 
|     </select> | 
|   | 
|   | 
|   | 
|     <select id="selectById" resultType="com.xzx.gc.entity.ScoreGoods"> | 
|         SELECT | 
|         * | 
|         FROM | 
|         xzx_score_goods a | 
|         WHERE 1 = 1 | 
|             and id = #{id} | 
|     </select> | 
|   | 
|   | 
|     <update id="updateDelFlagById"> | 
|         update xzx_score_goods set del_flag=#{delFlag} | 
|         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> |