<?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.ShopActivitiesGroupInfoDao"> 
 | 
    <!-- 定义ShopActivitiesGroupInfo 的复杂关联map --> 
 | 
    <resultMap type="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo" id="ShopActivitiesGroupInfoMap"> 
 | 
        <id property="id" column="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="actId" column="act_id" /> 
 | 
            <result property="goodsId" column="goods_id" /> 
 | 
            <result property="giType" column="gi_type" /> 
 | 
            <result property="giHeadDiscount" column="gi_head_discount" /> 
 | 
            <result property="giLimitBuy" column="gi_limit_buy" /> 
 | 
        <result property="giVirtualGroup" column="gi_virtual_group" /> 
 | 
        <result property="companyId" column="company_id" /> 
 | 
    </resultMap> 
 | 
     
 | 
     
 | 
    <!-- 定义ShopActivitiesGroupInfo 的简单map  ,本map不添加其他的关联属性 --> 
 | 
    <resultMap type="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo" id="ShopActivitiesGroupInfoSimpleMap"> 
 | 
        <id property="id" column="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="actId" column="act_id" /> 
 | 
            <result property="goodsId" column="goods_id" /> 
 | 
            <result property="giType" column="gi_type" /> 
 | 
            <result property="giHeadDiscount" column="gi_head_discount" /> 
 | 
            <result property="giLimitBuy" column="gi_limit_buy" /> 
 | 
        <result property="companyId" column="company_id" /> 
 | 
    </resultMap> 
 | 
     
 | 
    <!-- 字段sql --> 
 | 
    <sql id="columns"> 
 | 
        create_by, 
 | 
        create_time, 
 | 
        update_by, 
 | 
        update_time, 
 | 
            id, 
 | 
            act_id, 
 | 
            goods_id, 
 | 
            gi_type, 
 | 
            gi_head_discount, 
 | 
            gi_limit_buy, 
 | 
            gi_virtual_group, 
 | 
            company_id 
 | 
    </sql> 
 | 
     
 | 
    <!-- 属性sql --> 
 | 
    <sql id="propertys"> 
 | 
        #{item.createBy}, 
 | 
        now(), 
 | 
        #{item.updateBy}, 
 | 
        now(), 
 | 
            #{item.id}, 
 | 
            #{item.actId}, 
 | 
            #{item.goodsId}, 
 | 
            #{item.giType}, 
 | 
            #{item.giHeadDiscount}, 
 | 
            #{item.giLimitBuy}, 
 | 
            #{item.giVirtualGroup}, 
 | 
            #{item.companyId} 
 | 
    </sql> 
 | 
     
 | 
    <!-- where sql --> 
 | 
    <sql id="where_sql"> 
 | 
          
 | 
         <if test="record!=null"> 
 | 
            <if test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  "> 
 | 
                and id  = #{record.id}  
 | 
            </if> 
 | 
             <if test="(record.companyId!=null and record.companyId!='') or  (record.companyId!='' and record.companyId==0)  "> 
 | 
                 and company_id  = #{record.companyId} 
 | 
             </if> 
 | 
            <if test="(record.actId!=null and record.actId!='') or  (record.actId!='' and record.actId==0)  "> 
 | 
                and act_id  = #{record.actId}  
 | 
            </if> 
 | 
            <if test="(record.goodsId!=null and record.goodsId!='') or  (record.goodsId!='' and record.goodsId==0)  "> 
 | 
                and goods_id  = #{record.goodsId}  
 | 
            </if> 
 | 
            <if test="(record.giType!=null and record.giType!='') or  (record.giType!='' and record.giType==0)  "> 
 | 
                and gi_type  = #{record.giType}  
 | 
            </if> 
 | 
            <if test="(record.giHeadDiscount!=null and record.giHeadDiscount!='') or  (record.giHeadDiscount!='' and record.giHeadDiscount==0)  "> 
 | 
                and gi_head_discount  = #{record.giHeadDiscount}  
 | 
            </if> 
 | 
            <if test="(record.giLimitBuy!=null and record.giLimitBuy!='') or  (record.giLimitBuy!='' and record.giLimitBuy==0)  "> 
 | 
                and gi_limit_buy  = #{record.giLimitBuy}  
 | 
            </if> 
 | 
        </if> 
 | 
          
 | 
    </sql> 
 | 
     
 | 
    <!--  插入方法   --> 
 | 
    <insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo" 
 | 
        useGeneratedKeys="true" keyProperty="item.id"> 
 | 
        INSERT INTO shop_activities_group_info ( 
 | 
             <include refid="columns"></include> 
 | 
        ) 
 | 
    VALUES ( 
 | 
         <include refid="propertys"></include> 
 | 
    ) 
 | 
    </insert> 
 | 
     
 | 
     
 | 
     
 | 
    <!--  批量插入   --> 
 | 
    <insert id="batchInsert" parameterType="java.util.List"> 
 | 
        INSERT INTO shop_activities_group_info ( 
 | 
        <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_activities_group_info 
 | 
        <set> 
 | 
            <if test="_parameter.containsKey('actId')"> 
 | 
                    act_id = #{actId}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('goodsId')"> 
 | 
                    goods_id = #{goodsId}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('giType')"> 
 | 
                    gi_type = #{giType}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('giHeadDiscount')"> 
 | 
                    gi_head_discount = #{giHeadDiscount}, 
 | 
                </if>         
 | 
            <if test="_parameter.containsKey('giLimitBuy')"> 
 | 
                    gi_limit_buy = #{giLimitBuy}, 
 | 
                </if>         
 | 
        </set> 
 | 
        WHERE id=#{id}  
 | 
    </update>  
 | 
     
 | 
     
 | 
    <!--  根据对象更新 部分更新   --> 
 | 
    <update id="updateByModel" parameterType="Long"> 
 | 
        UPDATE shop_activities_group_info 
 | 
        <set> 
 | 
            <if test="record.actId != null "> 
 | 
                act_id  = #{record.actId},  
 | 
            </if> 
 | 
            <if test="record.goodsId != null "> 
 | 
                goods_id  = #{record.goodsId},  
 | 
            </if> 
 | 
            <if test="record.giType != null "> 
 | 
                gi_type  = #{record.giType},  
 | 
            </if> 
 | 
            <if test="record.giHeadDiscount != null "> 
 | 
                gi_head_discount  = #{record.giHeadDiscount},  
 | 
            </if> 
 | 
            <if test="record.giLimitBuy != null "> 
 | 
                gi_limit_buy  = #{record.giLimitBuy},  
 | 
            </if> 
 | 
            <if test="record.companyId != null "> 
 | 
                company_id  = #{record.companyId}, 
 | 
            </if> 
 | 
        </set> 
 | 
        WHERE id=#{record.id}  
 | 
    </update> 
 | 
     
 | 
    <!-- 批量删除 --> 
 | 
    <delete id="deleteByIds" parameterType="java.util.List"> 
 | 
        delete from shop_activities_group_info where  id in 
 | 
        <foreach collection="list" index="index" item="item" open="(" 
 | 
            separator="," close=")"> 
 | 
            #{item} 
 | 
        </foreach> 
 | 
    </delete> 
 | 
         
 | 
    <!-- 根据id删除--> 
 | 
    <delete id="deleteById" parameterType="Long"> 
 | 
        DELETE FROM shop_activities_group_info 
 | 
        where  id=#{id}  
 | 
    </delete> 
 | 
     
 | 
    <!-- 根据对象删除--> 
 | 
    <delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopActivitiesGroupInfo"> 
 | 
        DELETE FROM shop_activities_group_info 
 | 
        <where> 
 | 
        <include refid="where_sql" ></include> 
 | 
        </where> 
 | 
    </delete> 
 | 
     
 | 
     
 | 
     
 | 
    <!-- 分页查询 --> 
 | 
    <select id="selectInPage" resultMap="ShopActivitiesGroupInfoMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_activities_group_info 
 | 
        <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_activities_group_info 
 | 
        <where> 
 | 
           <include refid="where_sql"></include> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!-- 根据id查询--> 
 | 
    <select id="selectById" resultMap="ShopActivitiesGroupInfoMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_activities_group_info 
 | 
        where  id=#{id}  
 | 
    </select>     
 | 
     
 | 
     
 | 
    <!-- 根据id 锁表查询--> 
 | 
    <select id="selectForUpdate" resultMap="ShopActivitiesGroupInfoMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_activities_group_info 
 | 
        where  id=#{id}  
 | 
        for update 
 | 
    </select>     
 | 
     
 | 
     
 | 
     
 | 
    <!-- 根据对象查询--> 
 | 
    <select id="selectByModel" resultMap="ShopActivitiesGroupInfoMap"> 
 | 
        select  
 | 
        <include refid="columns" ></include> 
 | 
        from shop_activities_group_info 
 | 
        <where> 
 | 
          <include refid="where_sql"></include> 
 | 
         </where> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectGroupBuyList" resultType="com.matrix.system.shopXcx.api.vo.WxActivitiesGroupBuyVO"> 
 | 
        select 
 | 
            t1.id id, 
 | 
            TIMESTAMPDIFF(SECOND, now(), t1.act_end_time) time, 
 | 
            t3.title goodsName, 
 | 
            t3.brief_introduction goodsIntro, 
 | 
            t3.price prePrice, 
 | 
            t4.gp_price nowPrice, 
 | 
            t1.act_status status, 
 | 
            t3.id goodsId, 
 | 
            t3.img_mobile goodsPic 
 | 
        from shop_activities t1 
 | 
        inner join shop_activities_group_info t2 on t1.id=t2.act_id 
 | 
        left join shop_product t3 on t2.goods_id=t3.id 
 | 
        left join shop_activities_group_price t4 on t1.id=t4.act_id and t4.seq=1 
 | 
        where find_in_set(#{record.shopId}, t1.shop_ids) and t1.act_status=1 and t1.act_type=1 
 | 
        and t1.company_id=#{record.companyId} 
 | 
        <if test="record !=null"><!-- 判断pageVo对象是否为空 --> 
 | 
            <if test="record.sort !=null  and record.order !=null"> 
 | 
                order by 
 | 
                t1.${record.sort} ${record.order} 
 | 
            </if> 
 | 
            <if test="record.offset >=0  and record.limit >0"> 
 | 
                limit 
 | 
                #{record.offset},#{record.limit} 
 | 
            </if> 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectGroupBuyListCnt" resultType="java.lang.Integer"> 
 | 
        select count(1) 
 | 
        from shop_activities t1 
 | 
        inner join shop_activities_group_info t2 on t1.id=t2.act_id 
 | 
        left join shop_product t3 on t2.goods_id=t3.id 
 | 
        left join shop_activities_group_price t4 on t1.id=t4.act_id and t4.seq=1 
 | 
        where find_in_set(#{record.shopId}, t1.shop_ids) and t1.act_status=1 
 | 
        and  t1.company_id=#{record.companyId} 
 | 
    </select> 
 | 
  
 | 
    <select id="selectGroupInfoByActId" resultMap="ShopActivitiesGroupInfoMap"> 
 | 
        select * from shop_activities_group_info where act_id=#{actId} 
 | 
    </select> 
 | 
  
 | 
    <resultMap type="com.matrix.system.shopXcx.api.vo.WxActivitiesGroupBuyVO" id="GroupBuyInfoMap"> 
 | 
        <id property="id" column="giId" /> 
 | 
        <result property="goodsId" column="goods_id" /> 
 | 
        <result property="time" column="time"/> 
 | 
        <result property="prePrice" column="prePrice"/> 
 | 
        <result property="status" column="status"/> 
 | 
        <collection property="groupPriceList" ofType="com.matrix.system.shopXcx.bean.ShopActivitiesGroupPrice" column="act_id"> 
 | 
            <id property="id" column="gpId"/> 
 | 
            <result property="actId" column="act_id"/> 
 | 
            <result property="gpCount" column="gp_count"/> 
 | 
            <result property="gpPrice" column="gp_price"/> 
 | 
            <result property="gpHeadPrice" column="gp_head_price"/> 
 | 
        </collection> 
 | 
    </resultMap> 
 | 
  
 | 
    <select id="selectGroupInfoWithPriceByActId" resultMap="GroupBuyInfoMap"> 
 | 
        select 
 | 
            t1.id giId, 
 | 
            TIMESTAMPDIFF(SECOND, now(), t1.act_end_time) time, 
 | 
            t4.price prePrice, 
 | 
            t4.id goods_id, 
 | 
            t1.act_status status, 
 | 
            t2.id gpId, 
 | 
            t2.act_id, 
 | 
            t2.gp_count, 
 | 
            t2.gp_price, 
 | 
            t2.gp_head_price 
 | 
        from shop_activities t1 
 | 
        left join shop_activities_group_price t2 on t1.id=t2.act_id 
 | 
        left join shop_activities_group_info t3 on t1.id=t3.act_id 
 | 
        left join shop_product t4 on t3.goods_id=t4.id 
 | 
        where t1.id=#{actId} 
 | 
    </select> 
 | 
  
 | 
    <delete id="deleteByActId"> 
 | 
        delete from shop_activities_group_info 
 | 
        where act_id=#{actId} 
 | 
    </delete> 
 | 
</mapper> 
 |