<?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.yeshi.fanli.dao.mybatis.user.UserSystemCouponCountMapper">
|
<resultMap id="BaseResultMap" type="com.yeshi.fanli.vo.user.UserSystemCouponCountVO">
|
<id column="usc_id" property="id" jdbcType="BIGINT"/>
|
<result column="usc_uid" property="uid" jdbcType="BIGINT"/>
|
<result column="usc_source" property="source" jdbcType="VARCHAR"/>
|
<result column="usc_state" property="state" jdbcType="INTEGER"/>
|
<result column="usc_state_activate" property="stateActivated" jdbcType="INTEGER"/>
|
<result column="usc_start_time" property="startTime" jdbcType="TIMESTAMP"/>
|
<result column="usc_end_time" property="endTime" jdbcType="TIMESTAMP"/>
|
<result column="usc_use_time" property="useTime" jdbcType="TIMESTAMP"/>
|
<result column="usc_create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
<result column="usc_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
|
<association property="systemCoupon" column="ucr_id"
|
resultMap="com.yeshi.fanli.dao.mybatis.SystemCouponMapper.BaseResultMap"/>
|
|
<association property="userSystemCouponRecord" column="usc_coupon_id"
|
resultMap="com.yeshi.fanli.dao.mybatis.user.UserSystemCouponRecordMapper.BaseResultMap"/>
|
</resultMap>
|
|
|
<resultMap id="BaseResultSystemMap" type="com.yeshi.fanli.vo.user.SystemCouponVO">
|
<id column="sc_id" property="id" jdbcType="BIGINT"/>
|
<result column="sc_name" property="name" jdbcType="VARCHAR"/>
|
<result column="sc_picture" property="picture" jdbcType="VARCHAR"/>
|
<result column="sc_picture_invalid" property="pictureInvalid" jdbcType="VARCHAR"/>
|
<result column="sc_effect" property="effect" jdbcType="VARCHAR"/>
|
|
<result column="sc_type" property="type"
|
typeHandler="com.yeshi.fanli.util.mybatishandler.CouponTypeEnumHandler" />
|
|
<result column="sc_percent" property="percent" jdbcType="DECIMAL"/>
|
<result column="sc_amount" property="amount" jdbcType="VARCHAR"/>
|
<result column="sc_expiry_day" property="expiryDay" jdbcType="INTEGER"/>
|
<result column="sc_rule" property="rule" jdbcType="VARCHAR"/>
|
<result column="sc_remark" property="remark" jdbcType="VARCHAR"/>
|
<result column="sc_state" property="state" jdbcType="INTEGER"/>
|
<result column="sc_create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
<result column="sc_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
|
<result column="notUse" property="notUse" jdbcType="BIGINT"/>
|
<result column="used" property="used" jdbcType="BIGINT"/>
|
<result column="overdue" property="overdue" jdbcType="BIGINT"/>
|
<result column="total" property="total" jdbcType="BIGINT"/>
|
<result column="activateNum" property="activateNum" jdbcType="BIGINT"/>
|
</resultMap>
|
|
|
<resultMap id="BaseResultRecordMap" type="com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord">
|
<id column="ucr_id" property="id" jdbcType="BIGINT"/>
|
<result column="ucr_good_id" property="goodId" jdbcType="BIGINT"/>
|
<result column="ucr_good_source" property="goodSource" jdbcType="VARCHAR"/>
|
<result column="ucr_coupon_type" property="couponType" jdbcType="VARCHAR"/>
|
<result column="ucr_order_no" property="orderNo" jdbcType="VARCHAR"/>
|
<result column="ucr_state" property="state" jdbcType="INTEGER"/>
|
<result column="ucr_create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
<result column="ucr_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
|
<association property="userSystemCoupon" column="ucr_user_coupon_id"
|
resultMap="com.yeshi.fanli.dao.mybatis.user.UserSystemCouponMapper.BaseResultMap"/>
|
</resultMap>
|
|
|
<select id="listRebateCoupon" resultMap="BaseResultMap">
|
SELECT * FROM `yeshi_ec_user_system_coupon` uc
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id`
|
LEFT JOIN `yeshi_ec_user_system_coupon_record` d ON d.`ucr_user_coupon_id` = uc.`usc_id`
|
WHERE p.`sc_type` = 'rebatePercentCoupon'
|
<if test="state != null">
|
AND uc.usc_state = #{state}
|
</if>
|
|
<if test="percent != null">
|
AND p.`sc_percent` = #{percent}
|
</if>
|
|
<if test="key != null and key != '' ">
|
<if test="keyType == 1">
|
AND uc.`usc_uid` = #{key}
|
</if>
|
<if test="keyType == 2">
|
AND uc.`usc_source` like '%${key}%'
|
</if>
|
</if>
|
ORDER BY uc.`usc_create_time` DESC
|
LIMIT ${start},${count}
|
</select>
|
|
<select id="countRebateCoupon" resultType="java.lang.Long">
|
SELECT IFNULL(count(uc.`usc_id`),0) FROM `yeshi_ec_user_system_coupon` uc
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id`
|
WHERE p.`sc_type` = 'rebatePercentCoupon'
|
<if test="state != null">
|
AND uc.usc_state = #{state}
|
</if>
|
<if test="percent != null">
|
AND p.`sc_percent` = #{percent}
|
</if>
|
<if test="key != null and key != '' ">
|
<if test="keyType == 1">
|
AND uc.`usc_uid` = #{key}
|
</if>
|
<if test="keyType == 2">
|
AND uc.`usc_source` like '%${key}%'
|
</if>
|
</if>
|
</select>
|
|
|
<select id="listSystemCouponByRebate" resultMap="BaseResultSystemMap">
|
SELECT * FROM yeshi_ec_system_coupon p
|
LEFT JOIN
|
(SELECT SUM(A.notUse)AS notUse, SUM(A.used)AS used, SUM(A.overdue)AS overdue,COUNT(*)AS total,usc_coupon_id
|
FROM (SELECT IF(cp.`usc_state`=1,1,0)AS notUse,IF(cp.`usc_state`=3,1,0)AS used,IF(cp.`usc_state`=4,1,0)AS overdue,cp.`usc_coupon_id`
|
FROM `yeshi_ec_user_system_coupon` cp
|
)A
|
GROUP BY A.usc_coupon_id)B ON p.`sc_id` = B.usc_coupon_id
|
WHERE p.`sc_type` = 'rebatePercentCoupon'
|
<if test="key != null and key != '' ">
|
AND p.`sc_percent` = #{key}
|
</if>
|
ORDER BY
|
<if test="sort == null">p.`sc_percent`</if>
|
<if test="sort == 1">B.notUse</if>
|
<if test="sort == 2">B.notUse DESC</if>
|
<if test="sort == 3">B.used</if>
|
<if test="sort == 4">B.used DESC</if>
|
<if test="sort == 5">B.total</if>
|
<if test="sort == 6">B.total DESC</if>
|
|
LIMIT ${start},${count}
|
</select>
|
|
<select id="countSystemCouponRebate" resultType="java.lang.Long">
|
SELECT IFNULL(count(p.sc_id),0) FROM `yeshi_ec_system_coupon` p
|
WHERE p.`sc_type` = 'rebatePercentCoupon'
|
<if test="key != null and key != '' ">
|
AND p.`sc_percent` = #{key}
|
</if>
|
</select>
|
|
<select id="countRebateMoneyByCouponId" resultType="java.math.BigDecimal">
|
SELECT SUM(v2.`hb_money`) FROM yeshi_ec_user_system_coupon c
|
LEFT JOIN `yeshi_ec_user_system_coupon_record` pr ON c.`usc_id` = pr.`ucr_user_coupon_id`
|
LEFT JOIN `yeshi_ec_order` o ON o.`orderid` = pr.`ucr_order_no`
|
LEFT JOIN `yeshi_ec_order_hongbaov2_map` map ON map.`ohm_order_id` = o.`id`
|
LEFT JOIN `yeshi_ec_hongbao_v2` v2 ON v2.`hb_id`= map.`ohm_hongbao_id`
|
WHERE v2.`hb_id` IS NOT NULL AND c.`usc_coupon_id` = #{couponId}
|
</select>
|
|
<select id="listSystemCouponByFree" resultMap="BaseResultSystemMap">
|
SELECT * FROM yeshi_ec_system_coupon p
|
LEFT JOIN
|
(SELECT SUM(A.notUse)AS notUse, SUM(A.used)AS used, SUM(A.overdue)AS overdue,COUNT(*)AS total, SUM(A.activateNum)AS activateNum,usc_coupon_id
|
FROM (SELECT IF(cp.`usc_state`=1,1,0)AS notUse,IF(cp.`usc_state`=3,1,0)AS used,
|
IF(cp.`usc_state`=4,1,0)AS overdue,IF(cp.`usc_state_activate`=1,1,0)AS activateNum,cp.`usc_coupon_id`
|
FROM `yeshi_ec_user_system_coupon` cp
|
)A
|
GROUP BY A.usc_coupon_id)B ON p.`sc_id` = B.usc_coupon_id
|
WHERE (p.`sc_type` = 'freeCoupon' OR p.`sc_type` = 'welfareFreeCoupon' OR p.`sc_type` = 'freeCouponBuy' OR p.`sc_type` = 'freeCouponGive')
|
ORDER BY
|
<if test="sort == null">p.sc_id</if>
|
<if test="sort == 1">B.notUse</if>
|
<if test="sort == 2">B.notUse DESC</if>
|
<if test="sort == 3">B.used</if>
|
<if test="sort == 4">B.used DESC</if>
|
<if test="sort == 5">B.total</if>
|
<if test="sort == 6">B.total DESC</if>
|
|
LIMIT ${start},${count}
|
</select>
|
|
<select id="countSystemCouponFree" resultType="java.lang.Long">
|
SELECT IFNULL(count(p.sc_id),0) FROM `yeshi_ec_system_coupon` p
|
WHERE p.`sc_type` = 'rebatePercentCoupon'
|
</select>
|
|
<select id="countFreeMoneyByCouponId" resultType="java.math.BigDecimal">
|
SELECT SUM(v2.`hb_money`) FROM yeshi_ec_user_system_coupon c
|
LEFT JOIN `yeshi_ec_user_system_coupon_record` pr ON c.`usc_id` = pr.`ucr_user_coupon_id`
|
LEFT JOIN `yeshi_ec_common_order` co ON pr.`ucr_order_no` = co.`co_order_no`
|
LEFT JOIN `yeshi_ec_hongbao_order` ho ON ho.`ho_order_id` = co.`co_id`
|
LEFT JOIN `yeshi_ec_hongbao_v2` v2 ON ho.`ho_hongbao_id` = v2.`hb_id`
|
WHERE pr.`ucr_state` = 3 AND c.`usc_coupon_id` = #{couponId}
|
</select>
|
|
<select id="listFreeCoupon" resultMap="BaseResultMap">
|
SELECT * FROM `yeshi_ec_user_system_coupon` uc
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id`
|
LEFT JOIN (SELECT * FROM `yeshi_ec_user_system_coupon_record` d WHERE d.`ucr_state` = 2 or d.`ucr_state` = 3 )A ON A.`ucr_user_coupon_id` = uc.`usc_id`
|
WHERE (p.`sc_type` = 'freeCoupon' OR p.`sc_type` = 'welfareFreeCoupon' OR p.`sc_type` = 'freeCouponBuy')
|
<if test="state != null">
|
AND uc.usc_state = #{state}
|
</if>
|
<if test="activated != null">
|
AND uc.`usc_state_activate` = #{activated}
|
</if>
|
<if test="key != null and key != '' ">
|
<if test="keyType == 1">
|
AND uc.`usc_uid` = #{key}
|
</if>
|
<if test="keyType == 2">
|
AND uc.`usc_source` like '%${key}%'
|
</if>
|
</if>
|
ORDER BY uc.`usc_create_time` DESC
|
LIMIT ${start},${count}
|
</select>
|
|
<select id="countFreeCoupon" resultType="java.lang.Long">
|
SELECT IFNULL(count(uc.`usc_id`),0) FROM `yeshi_ec_user_system_coupon` uc
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id`
|
WHERE (p.`sc_type` = 'freeCoupon' or p.`sc_type` = 'welfareFreeCoupon' OR p.`sc_type` = 'freeCouponBuy')
|
<if test="state != null">
|
AND uc.usc_state = #{state}
|
</if>
|
<if test="activated != null">
|
AND uc.`usc_state_activate` = #{activated}
|
</if>
|
<if test="key != null and key != '' ">
|
<if test="keyType == 1">
|
AND uc.`usc_uid` = #{key}
|
</if>
|
<if test="keyType == 2">
|
AND uc.`usc_source` like '%${key}%'
|
</if>
|
</if>
|
</select>
|
|
<select id="listFreeCouponRecord" resultMap="BaseResultRecordMap">
|
SELECT * FROM `yeshi_ec_user_system_coupon_record` d
|
LEFT JOIN `yeshi_ec_user_system_coupon` uc ON d.`ucr_user_coupon_id` = uc.`usc_id`
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id`
|
WHERE (p.`sc_type` = 'freeCoupon' OR p.`sc_type` = 'welfareFreeCoupon' OR p.`sc_type` = 'freeCouponBuy')
|
<if test="state != null">
|
AND d.`ucr_state` = #{state}
|
</if>
|
<if test="key != null and key != '' ">
|
<if test="keyType == 1">
|
AND uc.`usc_uid` = #{key}
|
</if>
|
<if test="keyType == 2">
|
AND uc.`usc_id` = #{key}
|
</if>
|
</if>
|
ORDER BY d.`ucr_create_time` DESC
|
LIMIT ${start},${count}
|
</select>
|
|
<select id="countFreeCouponRecord" resultType="java.lang.Long">
|
SELECT IFNULL(count(d.`ucr_id`),0) FROM `yeshi_ec_user_system_coupon_record` d
|
LEFT JOIN `yeshi_ec_user_system_coupon` uc ON d.`ucr_user_coupon_id` = uc.`usc_id`
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id`
|
WHERE (p.`sc_type` = 'freeCoupon' or p.`sc_type` = 'welfareFreeCoupon' OR p.`sc_type` = 'freeCouponBuy')
|
<if test="state != null">
|
AND d.`ucr_state` = #{state}
|
</if>
|
<if test="key != null and key != '' ">
|
<if test="keyType == 1">
|
AND uc.`usc_uid` = #{key}
|
</if>
|
<if test="keyType == 2">
|
AND uc.`usc_id` = #{key}
|
</if>
|
</if>
|
</select>
|
|
|
<select id="countFreeMoneyByTypeAndDay" resultType="BigDecimal">
|
SELECT SUM(v2.`hb_money`) FROM yeshi_ec_user_system_coupon c
|
LEFT JOIN yeshi_ec_system_coupon sp ON sp.`sc_id` = c.`usc_coupon_id`
|
LEFT JOIN `yeshi_ec_user_system_coupon_record` pr ON c.`usc_id` = pr.`ucr_user_coupon_id`
|
LEFT JOIN `yeshi_ec_common_order` co ON pr.`ucr_order_no` = co.`co_order_no`
|
LEFT JOIN `yeshi_ec_hongbao_order` ho ON ho.`ho_order_id` = co.`co_id`
|
LEFT JOIN `yeshi_ec_hongbao_v2` v2 ON ho.`ho_hongbao_id` = v2.`hb_id`
|
WHERE pr.`ucr_state` = 3 AND sp.`sc_type` = #{type}
|
AND TO_DAYS(v2.`hb_get_time`) = TO_DAYS(#{preDay})
|
</select>
|
|
<select id="countRebateMoneyByDay" resultType="BigDecimal">
|
SELECT SUM(v2.`hb_money`) FROM yeshi_ec_hongbao_v2 v2
|
WHERE v2.`hb_type`= 10 AND TO_DAYS(v2.`hb_get_time`) = TO_DAYS(#{preDay})
|
</select>
|
|
<select id="countCouponNumByDay" resultType="BigDecimal">
|
SELECT COUNT(c.`usc_id`) FROM yeshi_ec_user_system_coupon c
|
LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= c.`usc_coupon_id`
|
WHERE p.`sc_type` = #{type} AND TO_DAYS(c.`usc_create_time`) = TO_DAYS(#{preDay})
|
</select>
|
|
|
</mapper>
|