1
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
<?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.ruoyi.jarvis.mapper.GiftCouponMapper">
|
||||
|
||||
<resultMap id="GiftCouponResult" type="GiftCoupon">
|
||||
<result property="giftCouponKey" column="gift_coupon_key"/>
|
||||
<result property="skuId" column="sku_id"/>
|
||||
<result property="skuName" column="sku_name"/>
|
||||
<result property="owner" column="owner"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="quantity" column="quantity"/>
|
||||
<result property="usedQuantity" column="used_quantity"/>
|
||||
<result property="totalOcsAmount" column="total_ocs_amount"/>
|
||||
<result property="useCount" column="use_count"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="expireTime" column="expire_time"/>
|
||||
<result property="isExpired" column="is_expired"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectGiftCouponBase">
|
||||
SELECT
|
||||
gift_coupon_key,
|
||||
MAX(sku_id) as sku_id,
|
||||
MAX(sku_name) as sku_name,
|
||||
MAX(owner) as owner,
|
||||
COUNT(DISTINCT order_id) as use_count,
|
||||
SUM(gift_coupon_ocs_amount) as total_ocs_amount,
|
||||
MIN(order_time) as create_time,
|
||||
MAX(expire_time) as expire_time,
|
||||
CASE
|
||||
WHEN MAX(expire_time) IS NOT NULL AND MAX(expire_time) < NOW() THEN 1
|
||||
ELSE 0
|
||||
END as is_expired
|
||||
FROM (
|
||||
SELECT
|
||||
or_rows.gift_coupon_key,
|
||||
or_rows.sku_id,
|
||||
or_rows.sku_name,
|
||||
CASE
|
||||
WHEN or_rows.pop_id IS NULL OR or_rows.pop_id = '' THEN 'g'
|
||||
ELSE 'pop'
|
||||
END as owner,
|
||||
or_rows.order_id,
|
||||
or_rows.gift_coupon_ocs_amount,
|
||||
or_rows.order_time,
|
||||
NULL as expire_time
|
||||
FROM order_rows or_rows
|
||||
WHERE or_rows.gift_coupon_key IS NOT NULL AND or_rows.gift_coupon_key != ''
|
||||
<if test="giftCouponKey != null and giftCouponKey != ''">
|
||||
AND or_rows.gift_coupon_key like concat('%', #{giftCouponKey}, '%')
|
||||
</if>
|
||||
<if test="skuId != null and skuId != ''">
|
||||
AND or_rows.sku_id like concat('%', #{skuId}, '%')
|
||||
</if>
|
||||
<if test="skuName != null and skuName != ''">
|
||||
AND or_rows.sku_name like concat('%', #{skuName}, '%')
|
||||
</if>
|
||||
<if test="owner != null and owner != ''">
|
||||
AND CASE
|
||||
WHEN or_rows.pop_id IS NULL OR or_rows.pop_id = '' THEN 'g'
|
||||
ELSE 'pop'
|
||||
END = #{owner}
|
||||
</if>
|
||||
<if test="params.beginTime != null and params.beginTime != ''">
|
||||
AND or_rows.order_time >= #{params.beginTime}
|
||||
</if>
|
||||
<if test="params.endTime != null and params.endTime != ''">
|
||||
AND or_rows.order_time <= #{params.endTime}
|
||||
</if>
|
||||
) gc
|
||||
GROUP BY gift_coupon_key
|
||||
<if test="isExpired != null">
|
||||
HAVING CASE
|
||||
WHEN MAX(expire_time) IS NOT NULL AND MAX(expire_time) < NOW() THEN 1
|
||||
ELSE 0
|
||||
END = #{isExpired}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<select id="selectGiftCouponList" parameterType="GiftCoupon" resultMap="GiftCouponResult">
|
||||
<include refid="selectGiftCouponBase"/>
|
||||
ORDER BY create_time DESC, gift_coupon_key DESC
|
||||
</select>
|
||||
|
||||
<select id="selectGiftCouponByKey" parameterType="String" resultMap="GiftCouponResult">
|
||||
SELECT
|
||||
gift_coupon_key,
|
||||
MAX(sku_id) as sku_id,
|
||||
MAX(sku_name) as sku_name,
|
||||
MAX(owner) as owner,
|
||||
COUNT(DISTINCT order_id) as use_count,
|
||||
SUM(gift_coupon_ocs_amount) as total_ocs_amount,
|
||||
MIN(order_time) as create_time,
|
||||
MAX(expire_time) as expire_time,
|
||||
CASE
|
||||
WHEN MAX(expire_time) IS NOT NULL AND MAX(expire_time) < NOW() THEN 1
|
||||
ELSE 0
|
||||
END as is_expired
|
||||
FROM (
|
||||
SELECT
|
||||
or_rows.gift_coupon_key,
|
||||
or_rows.sku_id,
|
||||
or_rows.sku_name,
|
||||
CASE
|
||||
WHEN or_rows.pop_id IS NULL OR or_rows.pop_id = '' THEN 'g'
|
||||
ELSE 'pop'
|
||||
END as owner,
|
||||
or_rows.order_id,
|
||||
or_rows.gift_coupon_ocs_amount,
|
||||
or_rows.order_time,
|
||||
NULL as expire_time
|
||||
FROM order_rows or_rows
|
||||
WHERE or_rows.gift_coupon_key IS NOT NULL AND or_rows.gift_coupon_key != ''
|
||||
AND or_rows.gift_coupon_key = #{giftCouponKey}
|
||||
) gc
|
||||
GROUP BY gift_coupon_key
|
||||
</select>
|
||||
|
||||
<select id="selectGiftCouponStatistics" parameterType="GiftCoupon" resultMap="GiftCouponResult">
|
||||
SELECT
|
||||
COUNT(*) as use_count,
|
||||
COALESCE(SUM(total_ocs_amount), 0) as total_ocs_amount
|
||||
FROM (
|
||||
<include refid="selectGiftCouponBase"/>
|
||||
) stats
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user