| <?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> |