You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.9 KiB

<?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="cc.hiver.mall.dao.mapper.MallCouponMapper">
<resultMap id="couponMap" type="cc.hiver.mall.entity.MallCoupon">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="issuer_type" property="issuerType"/>
<result column="issuer_id" property="issuerId"/>
<result column="apply_scene" property="applyScene"/>
<result column="type" property="type"/>
<result column="min_amount" property="minAmount"/>
<result column="discount_amount" property="discountAmount"/>
<result column="total_count" property="totalCount"/>
<result column="remain_count" property="remainCount"/>
<result column="limit_per_user" property="limitPerUser"/>
<result column="valid_type" property="validType"/>
<result column="valid_start_time" property="validStartTime"/>
<result column="valid_end_time" property="validEndTime"/>
<result column="valid_days" property="validDays"/>
<result column="status" property="status"/>
<result column="region_id" property="regionId"/>
</resultMap>
<sql id="selectCouponColumns">
id,
name,
issuer_type,
issuer_id,
apply_scene,
type,
min_amount,
discount_amount,
total_count,
remain_count,
limit_per_user,
valid_type,
valid_start_time,
valid_end_time,
valid_days,
status,
region_id
</sql>
<update id="deductStock">
UPDATE t_mall_coupon
SET remain_count = remain_count - 1
WHERE id = #{id} AND remain_count > 0 AND del_flag = 0
</update>
<!-- 分页查询-->
<select id="selectPageVO" resultMap="couponMap">
SELECT
<include refid="selectCouponColumns"/>
FROM
t_mall_coupon
<where>
<!-- 示例:动态查询条件 -->
<if test="q.name != null and q.name != ''">
AND name LIKE CONCAT('%', #{q.name}, '%')
</if>
<if test="q.status != null">
AND status = #{q.status}
</if>
<if test="q.type != null">
AND type = #{q.type}
</if>
<if test="q.issuerType != null">
AND issuer_type = #{q.issuerType}
</if>
<if test="q.applyScene != null">
AND apply_scene = #{applyScene}
</if>
<if test="q.regionId != null and q.regionId != ''">
AND region_id = #{q.regionId}
</if>
</where>
ORDER BY id DESC
</select>
</mapper>