<?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.company_id=#{companyId} 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.company_id=#{companyId} 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>
|
|
<select id="countUnuseCouponRecord" resultType="java.lang.Integer">
|
select count(*) from shop_coupon_record where user_id = #{userId} and is_using = 2
|
</select>
|
|
</mapper>
|