<?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.matrix.system.shopXcx.dao.ShopSearchRecordDao"> 
 | 
    <!-- 定义ShopSearchRecord 的复杂关联map --> 
 | 
    <resultMap type="com.matrix.system.shopXcx.bean.ShopSearchRecord" id="ShopSearchRecordMap"> 
 | 
        <id property="searchId" column="search_id" /> 
 | 
        <result property="createBy" column="create_by" /> 
 | 
        <result property="createTime" column="create_time" /> 
 | 
        <result property="updateBy" column="update_by" /> 
 | 
        <result property="updateTime" column="update_time" /> 
 | 
            <result property="userId" column="user_id" /> 
 | 
            <result property="searchContent" column="search_content" /> 
 | 
            <result property="searchBrand" column="search_brand" /> 
 | 
            <result property="searchPriceStart" column="search_price_start" /> 
 | 
            <result property="searchPriceEnd" column="search_price_end" /> 
 | 
            <result property="searchAttrs" column="search_attrs" /> 
 | 
            <result property="searchType" column="search_type" /> 
 | 
            <result property="searchDel" column="search_del" /> 
 | 
    </resultMap> 
 | 
     
 | 
     
 | 
    <!-- 定义ShopSearchRecord 的简单map  ,本map不添加其他的关联属性 --> 
 | 
    <resultMap type="com.matrix.system.shopXcx.bean.ShopSearchRecord" id="ShopSearchRecordSimpleMap"> 
 | 
        <id property="searchId" column="search_id" /> 
 | 
        <result property="createBy" column="create_by" /> 
 | 
        <result property="createTime" column="create_time" /> 
 | 
        <result property="updateBy" column="update_by" /> 
 | 
        <result property="updateTime" column="update_time" /> 
 | 
            <result property="userId" column="user_id" /> 
 | 
            <result property="searchContent" column="search_content" /> 
 | 
            <result property="searchBrand" column="search_brand" /> 
 | 
            <result property="searchPriceStart" column="search_price_start" /> 
 | 
            <result property="searchPriceEnd" column="search_price_end" /> 
 | 
            <result property="searchAttrs" column="search_attrs" /> 
 | 
            <result property="searchType" column="search_type" /> 
 | 
            <result property="searchDel" column="search_del" /> 
 | 
    </resultMap> 
 | 
     
 | 
    <!-- 字段sql --> 
 | 
    <sql id="columns"> 
 | 
        create_by, 
 | 
        create_time, 
 | 
        update_by, 
 | 
        update_time, 
 | 
            search_id, 
 | 
            user_id, 
 | 
            search_content, 
 | 
            search_brand, 
 | 
            search_price_start, 
 | 
            search_price_end, 
 | 
            search_attrs, 
 | 
            search_type, 
 | 
            search_del 
 | 
    </sql> 
 | 
     
 | 
    <!-- 属性sql --> 
 | 
    <sql id="propertys"> 
 | 
        #{item.createBy}, 
 | 
        now(), 
 | 
        #{item.updateBy}, 
 | 
        now(), 
 | 
            #{item.searchId}, 
 | 
            #{item.userId}, 
 | 
            #{item.searchContent}, 
 | 
            #{item.searchBrand}, 
 | 
            #{item.searchPriceStart}, 
 | 
            #{item.searchPriceEnd}, 
 | 
            #{item.searchAttrs}, 
 | 
            #{item.searchType}, 
 | 
            #{item.searchDel} 
 | 
    </sql> 
 | 
     
 | 
    <!-- where sql --> 
 | 
    <sql id="where_sql"> 
 | 
          
 | 
         <if test="record!=null"> 
 | 
            <if test="(record.searchId!=null and record.searchId!='') or  (record.searchId!='' and record.searchId==0)  "> 
 | 
                and search_id  = #{record.searchId}  
 | 
            </if> 
 | 
            <if test="(record.userId!=null and record.userId!='') or  (record.userId!='' and record.userId==0)  "> 
 | 
                and user_id  = #{record.userId}  
 | 
            </if> 
 | 
            <if test="(record.searchContent!=null and record.searchContent!='') or  (record.searchContent!='' and record.searchContent==0)  "> 
 | 
                and search_content  = #{record.searchContent}  
 | 
            </if> 
 | 
            <if test="(record.searchBrand!=null and record.searchBrand!='') or  (record.searchBrand!='' and record.searchBrand==0)  "> 
 | 
                and search_brand  = #{record.searchBrand}  
 | 
            </if> 
 | 
            <if test="(record.searchPriceStart!=null and record.searchPriceStart!='') or  (record.searchPriceStart!='' and record.searchPriceStart==0)  "> 
 | 
                and search_price_start  = #{record.searchPriceStart}  
 | 
            </if> 
 | 
            <if test="(record.searchPriceEnd!=null and record.searchPriceEnd!='') or  (record.searchPriceEnd!='' and record.searchPriceEnd==0)  "> 
 | 
                and search_price_end  = #{record.searchPriceEnd}  
 | 
            </if> 
 | 
            <if test="(record.searchAttrs!=null and record.searchAttrs!='') or  (record.searchAttrs!='' and record.searchAttrs==0)  "> 
 | 
                and search_attrs  = #{record.searchAttrs}  
 | 
            </if> 
 | 
            <if test="(record.searchType!=null and record.searchType!='') or  (record.searchType!='' and record.searchType==0)  "> 
 | 
                and search_type  = #{record.searchType}  
 | 
            </if> 
 | 
            <if test="(record.searchDel!=null and record.searchDel!='') or  (record.searchDel!='' and record.searchDel==0)  "> 
 | 
                and search_del  = #{record.searchDel}  
 | 
            </if> 
 | 
        </if> 
 | 
          
 | 
    </sql> 
 | 
     
 | 
    <!--  插入方法   --> 
 | 
    <insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopSearchRecord" 
 | 
        useGeneratedKeys="true" keyProperty="item.searchId"> 
 | 
        INSERT INTO shop_search_record ( 
 | 
             <include refid="columns"></include> 
 | 
        ) 
 | 
    VALUES ( 
 | 
         <include refid="propertys"></include> 
 | 
    ) 
 | 
    </insert> 
 | 
     
 | 
     
 | 
     
 | 
    <!--  批量插入   --> 
 | 
    <insert id="batchInsert" parameterType="java.util.List"> 
 | 
        INSERT INTO shop_search_record ( 
 | 
        <include refid="columns"></include>     
 | 
        ) 
 | 
    VALUES  
 | 
    <foreach collection="list" item="item" index="index" separator=",">( 
 | 
        <include refid="propertys"></include>     
 | 
    )</foreach> 
 | 
    </insert> 
 | 
     
 | 
     
 | 
     
 | 
     
 | 
     
 | 
    <!--  根据Map更新 部分更新   --> 
 | 
    <update id="updateByMap" parameterType="java.util.HashMap" > 
 | 
        UPDATE shop_search_record 
 | 
        <set> 
 | 
            <if test="_parameter.containsKey('userId')"> 
 | 
                    user_id = #{userId}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchContent')"> 
 | 
                    search_content = #{searchContent}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchBrand')"> 
 | 
                    search_brand = #{searchBrand}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchPriceStart')"> 
 | 
                    search_price_start = #{searchPriceStart}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchPriceEnd')"> 
 | 
                    search_price_end = #{searchPriceEnd}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchAttrs')"> 
 | 
                    search_attrs = #{searchAttrs}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchType')"> 
 | 
                    search_type = #{searchType}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('searchDel')"> 
 | 
                    search_del = #{searchDel}, 
 | 
                </if>         
 | 
        </set> 
 | 
        WHERE search_id=#{searchId}  
 | 
    </update>  
 | 
     
 | 
     
 | 
    <!--  根据对象更新 部分更新   --> 
 | 
    <update id="updateByModel" parameterType="Integer"> 
 | 
        UPDATE shop_search_record 
 | 
        <set> 
 | 
            <if test="record.userId != null and record.userId != '' "> 
 | 
                user_id  = #{record.userId},  
 | 
            </if> 
 | 
            <if test="record.searchContent != null and record.searchContent != '' "> 
 | 
                search_content  = #{record.searchContent},  
 | 
            </if> 
 | 
            <if test="record.searchBrand != null and record.searchBrand != '' "> 
 | 
                search_brand  = #{record.searchBrand},  
 | 
            </if> 
 | 
            <if test="record.searchPriceStart != null "> 
 | 
                search_price_start  = #{record.searchPriceStart},  
 | 
            </if> 
 | 
            <if test="record.searchPriceEnd != null "> 
 | 
                search_price_end  = #{record.searchPriceEnd},  
 | 
            </if> 
 | 
            <if test="record.searchAttrs != null and record.searchAttrs != '' "> 
 | 
                search_attrs  = #{record.searchAttrs},  
 | 
            </if> 
 | 
            <if test="record.searchType != null "> 
 | 
                search_type  = #{record.searchType},  
 | 
            </if> 
 | 
            <if test="record.searchDel != null "> 
 | 
                search_del  = #{record.searchDel},  
 | 
            </if> 
 | 
        </set> 
 | 
        WHERE search_id=#{record.searchId}  
 | 
    </update> 
 | 
     
 | 
    <!-- 批量删除 --> 
 | 
    <delete id="deleteByIds" parameterType="java.util.List"> 
 | 
        delete from shop_search_record where  search_id in 
 | 
        <foreach collection="list" index="index" item="item" open="(" 
 | 
            separator="," close=")"> 
 | 
            #{item} 
 | 
        </foreach> 
 | 
    </delete> 
 | 
         
 | 
    <!-- 根据id删除--> 
 | 
    <delete id="deleteById" parameterType="Integer"> 
 | 
        DELETE FROM shop_search_record 
 | 
        where  search_id=#{searchId}  
 | 
    </delete> 
 | 
     
 | 
    <!-- 根据对象删除--> 
 | 
    <delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopSearchRecord"> 
 | 
        DELETE FROM shop_search_record 
 | 
        <where> 
 | 
        <include refid="where_sql" ></include> 
 | 
        </where> 
 | 
    </delete> 
 | 
     
 | 
     
 | 
     
 | 
    <!-- 分页查询 --> 
 | 
    <select id="selectInPage" resultMap="ShopSearchRecordMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_search_record 
 | 
        <where> 
 | 
          <include refid="where_sql"></include> 
 | 
         </where> 
 | 
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> 
 | 
            <if test="pageVo.sort !=null  and pageVo.order !=null"> 
 | 
                order by 
 | 
                ${pageVo.sort} ${pageVo.order} 
 | 
            </if> 
 | 
            <if test="pageVo.offset >=0  and pageVo.limit >0"> 
 | 
                limit 
 | 
                #{pageVo.offset},#{pageVo.limit} 
 | 
            </if> 
 | 
        </if> 
 | 
    </select> 
 | 
     
 | 
    <!-- 查询总条数 --> 
 | 
    <select id="selectTotalRecord" parameterType="long"   resultType="java.lang.Integer"> 
 | 
    select count(*) 
 | 
    from shop_search_record 
 | 
        <where> 
 | 
           <include refid="where_sql"></include> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!-- 根据id查询--> 
 | 
    <select id="selectById" resultMap="ShopSearchRecordMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_search_record 
 | 
        where  search_id=#{searchId}  
 | 
    </select>     
 | 
     
 | 
     
 | 
    <!-- 根据id 锁表查询--> 
 | 
    <select id="selectForUpdate" resultMap="ShopSearchRecordMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_search_record 
 | 
        where  search_id=#{search_id}  
 | 
        for update 
 | 
    </select>     
 | 
     
 | 
     
 | 
     
 | 
    <!-- 根据对象查询--> 
 | 
    <select id="selectByModel" resultMap="ShopSearchRecordMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_search_record 
 | 
        <where> 
 | 
          <include refid="where_sql"></include> 
 | 
         </where> 
 | 
    </select> 
 | 
  
 | 
    <!-- 根据用户ID查询搜索记录--> 
 | 
    <select id="selectByUserId" resultType="java.lang.String"> 
 | 
        select DISTINCT search_content 
 | 
              from  shop_search_record 
 | 
        where user_id = #{userId} 
 | 
              and search_type = 1 
 | 
              and search_del = 2 
 | 
        order by create_time desc 
 | 
        limit 0,10 
 | 
    </select> 
 | 
  
 | 
    <update id="deleteByUserId" parameterType="String"> 
 | 
        UPDATE shop_search_record 
 | 
            set search_del = 1 
 | 
        where user_id = #{userId} 
 | 
    </update> 
 | 
</mapper> 
 |