| <?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.ShopCouponRecordDao"> | 
|     <!-- 定义ShopCouponRecord 的复杂关联map --> | 
|     <resultMap type="com.matrix.system.shopXcx.bean.ShopCouponRecord" id="ShopCouponRecordMap"> | 
|         <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="userId" column="user_id"/> | 
|         <result property="cId" column="c_id"/> | 
|         <result property="receiveTime" column="receive_time"/> | 
|         <result property="isUsing" column="is_using"/> | 
|         <result property="orderId" column="order_id"/> | 
|   | 
|     </resultMap> | 
|   | 
|   | 
|     <!-- 定义ShopCouponRecord 的简单map  ,本map不添加其他的关联属性 --> | 
|     <resultMap type="com.matrix.system.shopXcx.bean.ShopCouponRecord" id="ShopCouponRecordSimpleMap"> | 
|         <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="userId" column="user_id"/> | 
|         <result property="cId" column="c_id"/> | 
|         <result property="receiveTime" column="receive_time"/> | 
|         <result property="isUsing" column="is_using"/> | 
|         <result property="orderId" column="order_id"/> | 
|     </resultMap> | 
|   | 
|     <!-- 字段sql --> | 
|     <sql id="columns"> | 
|         create_by, | 
|         create_time, | 
|         update_by, | 
|         update_time, | 
|             id, | 
|             user_id, | 
|             c_id, | 
|             receive_time, | 
|             is_using, | 
|             order_id | 
|     </sql> | 
|   | 
|     <!-- 属性sql --> | 
|     <sql id="propertys"> | 
|         #{item.createBy}, | 
|         now(), | 
|         #{item.updateBy}, | 
|         now(), | 
|             #{item.id}, | 
|             #{item.userId}, | 
|             #{item.cId}, | 
|             now(), | 
|             #{item.isUsing}, | 
|             #{item.orderId} | 
|     </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.userId!=null and record.userId!='') or  (record.userId!='' and record.userId==0)  "> | 
|                 and user_id = #{record.userId} | 
|             </if> | 
|             <if test="(record.cId!=null and record.cId!='') or  (record.cId!='' and record.cId==0)  "> | 
|                 and c_id = #{record.cId} | 
|             </if> | 
|             <if test="(record.receiveTime!=null and record.receiveTime!='') or  (record.receiveTime!='' and record.receiveTime==0)  "> | 
|                 and receive_time = #{record.receiveTime} | 
|             </if> | 
|             <if test="(record.isUsing!=null and record.isUsing!='') or  (record.isUsing!='' and record.isUsing==0)  "> | 
|                 and is_using = #{record.isUsing} | 
|             </if> | 
|             <if test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  "> | 
|                 and order_id = #{record.orderId} | 
|             </if> | 
|         </if> | 
|   | 
|     </sql> | 
|   | 
|     <!--  插入方法   --> | 
|     <insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopCouponRecord" | 
|             useGeneratedKeys="true" keyProperty="item.id"> | 
|         INSERT INTO shop_coupon_record ( | 
|         <include refid="columns"></include> | 
|         ) | 
|         VALUES ( | 
|         <include refid="propertys"></include> | 
|         ) | 
|     </insert> | 
|   | 
|   | 
|     <!--  批量插入   --> | 
|     <insert id="batchInsert" parameterType="java.util.List"> | 
|         INSERT INTO shop_coupon_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_coupon_record | 
|         <set> | 
|             <if test="_parameter.containsKey('userId')"> | 
|                 user_id = #{userId}, | 
|             </if> | 
|             <if test="_parameter.containsKey('cId')"> | 
|                 c_id = #{cId}, | 
|             </if> | 
|             <if test="_parameter.containsKey('receiveTime')"> | 
|                 receive_time = #{receiveTime}, | 
|             </if> | 
|             <if test="_parameter.containsKey('isUsing')"> | 
|                 is_using = #{isUsing}, | 
|             </if> | 
|             <if test="_parameter.containsKey('orderId')"> | 
|                 order_id = #{orderId}, | 
|             </if> | 
|         </set> | 
|         WHERE id=#{id} | 
|     </update> | 
|   | 
|   | 
|     <!--  根据对象更新 部分更新   --> | 
|     <update id="updateByModel" parameterType="Integer"> | 
|         UPDATE shop_coupon_record | 
|         <set> | 
|             <if test="record.userId != null and record.userId != '' "> | 
|                 user_id = #{record.userId}, | 
|             </if> | 
|             <if test="record.cId != null "> | 
|                 c_id = #{record.cId}, | 
|             </if> | 
|             <if test="record.receiveTime != null "> | 
|                 receive_time = #{record.receiveTime}, | 
|             </if> | 
|             <if test="record.isUsing != null "> | 
|                 is_using = #{record.isUsing}, | 
|             </if> | 
|             <if test="record.orderId != null "> | 
|                 order_id = #{record.orderId}, | 
|             </if> | 
|         </set> | 
|         WHERE id=#{record.id} | 
|     </update> | 
|   | 
|     <!-- 批量删除 --> | 
|     <delete id="deleteByIds" parameterType="java.util.List"> | 
|         delete from shop_coupon_record where id in | 
|         <foreach collection="list" index="index" item="item" open="(" | 
|                  separator="," close=")"> | 
|             #{item} | 
|         </foreach> | 
|     </delete> | 
|   | 
|     <!-- 根据id删除--> | 
|     <delete id="deleteById" parameterType="Integer"> | 
|         DELETE FROM shop_coupon_record | 
|         where  id=#{id}  | 
|     </delete> | 
|   | 
|     <!-- 根据对象删除--> | 
|     <delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopCouponRecord"> | 
|         DELETE FROM shop_coupon_record | 
|         <where> | 
|             <include refid="where_sql"></include> | 
|         </where> | 
|     </delete> | 
|   | 
|   | 
|     <!-- 分页查询 --> | 
|     <select id="selectInPage" resultMap="ShopCouponRecordMap"> | 
|         select | 
|         <include refid="columns"></include> | 
|         from shop_coupon_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_coupon_record | 
|         <where> | 
|             <include refid="where_sql"></include> | 
|         </where> | 
|     </select> | 
|   | 
|     <!-- 根据id查询--> | 
|     <select id="selectById" resultMap="ShopCouponRecordMap"> | 
|         select | 
|         <include refid="columns"></include> | 
|         from shop_coupon_record | 
|         where id=#{id} | 
|     </select> | 
|   | 
|   | 
|     <!-- 根据id 锁表查询--> | 
|     <select id="selectForUpdate" resultMap="ShopCouponRecordMap"> | 
|         select | 
|         <include refid="columns"></include> | 
|         from shop_coupon_record | 
|         where id=#{id} | 
|         for update | 
|     </select> | 
|   | 
|   | 
|     <!-- 根据对象查询--> | 
|     <select id="selectByModel" resultMap="ShopCouponRecordMap"> | 
|         select | 
|         <include refid="columns"></include> | 
|         from shop_coupon_record | 
|         <where> | 
|             <include refid="where_sql"></include> | 
|         </where> | 
|     </select> | 
|   | 
|     <!--通过用户ID查询优惠券信息--> | 
|     <select id="selectMyCouponByUserId" resultType="com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO"> | 
|         select sc.id, sc.c_name cName, sc.begin_time beginTime, sc.end_time endTime, | 
|         sc.min_amount minAmount, sc.offset_amount offsetAmount, sc.is_all isAll, | 
|         sc.product_ids productIds, sc.attr_ids attrIds, scr.is_using isUsing | 
|         from shop_coupon sc, shop_coupon_record scr | 
|         where sc.id = scr.c_id and scr.user_id = #{userId} and is_using = 2 | 
|         and now() >= begin_time and end_time >= now() and is_open = 1 | 
|         <!--<if test="!isNewPeople">--> | 
|         <!--and get_limit = 1--> | 
|         <!--</if>--> | 
|     </select> | 
|   | 
|     <!--通过领取记录ID查询优惠券信息--> | 
|     <select id="selectMyCouponByReceiveId" resultType="com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO"> | 
|         select scr.id as receiveId, sc.id as couponId, sc.c_name cName, sc.begin_time beginTime, sc.end_time endTime, | 
|         sc.min_amount minAmount, sc.offset_amount offsetAmount, sc.is_all isAll, | 
|         sc.product_ids productIds, sc.attr_ids attrIds, scr.is_using isUsing | 
|         from shop_coupon sc, shop_coupon_record scr | 
|         where sc.id = scr.c_id and scr.id = #{receiveId} and is_using = 2 | 
|         and now() >= begin_time and end_time >= now() and is_open = 1 | 
|     </select> | 
|   | 
|     <!--通过用户ID优惠券状态查询优惠券信息--> | 
|     <select id="selectMyCouponByStatus" resultType="com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO"> | 
|         select scr.id as receiveId, sc.id as couponId, sc.c_name cName, sc.begin_time beginTime, sc.end_time endTime, | 
|         sc.min_amount minAmount, sc.offset_amount offsetAmount, sc.is_all isAll, | 
|         sc.product_ids productIds, sc.attr_ids attrIds, scr.is_using isUsing | 
|         from shop_coupon sc, shop_coupon_record scr | 
|         where sc.shop_id=#{shopId} and sc.id = scr.c_id and scr.user_id = #{userId} and is_using = #{status} | 
|         and is_open = 1 | 
|         <if test="status == 2"> | 
|             and now() >= begin_time and end_time >= now() | 
|         </if> | 
|         <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> | 
|         <!--<if test="!isNewPeople and status == 1">--> | 
|         <!--and get_limit = 1--> | 
|         <!--</if>--> | 
|     </select> | 
|   | 
|     <!--通过用户ID查询已过期优惠券--> | 
|     <select id="selectMyPastCoupon" resultType="com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO"> | 
|         select scr.id as receiveId, sc.id as couponId, sc.c_name cName, sc.begin_time beginTime, sc.end_time endTime, | 
|         sc.min_amount minAmount, sc.offset_amount offsetAmount, sc.is_all isAll, | 
|         sc.product_ids productIds, sc.attr_ids attrIds, scr.is_using isUsing | 
|         from shop_coupon sc, shop_coupon_record scr | 
|         where sc.shop_id=#{shopId} and sc.id = scr.c_id and scr.user_id = #{userId} | 
|         and (isnull(order_id) or order_id = 0) | 
|         and now() > end_time and is_open = 1 | 
|         <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> | 
|   | 
| </mapper> |