puzhibing
2023-06-30 f58cca364b731eac2d60a440ffaa804be3cd43fd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?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.agentdriving.user.modular.system.dao.UserToCouponMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.agentdriving.user.modular.system.model.UserToCoupon">
        <id column="id" property="id" />
        <result column="userId" property="userId" />
        <result column="couponId" property="couponId" />
        <result column="couponTotal" property="couponTotal" />
        <result column="validCount" property="validCount" />
        <result column="expireCount" property="expireCount" />
        <result column="expireTime" property="expireTime" />
        <result column="createTime" property="createTime" />
        <result column="status" property="status" />
    </resultMap>
 
 
    <select id="queryCoupon" resultType="com.agentdriving.user.modular.system.model.Coupon">
        select
        b.id,
        a.agent_id as agentId,
        a.branch_office_id as branchOfficeId,
        a.create_time as createTime,
        a.coupon_name as couponName,
        a.coupon_type as couponType,
        a.coupon_code as couponCode,
        a.coupon_service_type as couponServiceType,
        a.coupon_conditional_amount as couponConditionalAmount,
        a.coupon_preferential_amount as couponPreferentialAmount,
        a.coupon_validity as couponValidity,
        a.coupon_send_quantity as couponSendQuantity,
        a.coupon_state as couponState,
        a.coupon_count as couponCount,
        a.remaining_quantity as remainingQuantity
        from t_coupon a
        left join t_user_to_coupon b on (a.id = b.couponId)
        where b.status = 1 and b.expireTime > now() and b.validCount &gt; 0
        and b.userId = #{uid} and a.coupon_conditional_amount &lt;= #{price} and a.coupon_preferential_amount &lt; #{price}
        order by a.coupon_preferential_amount desc limit 0, 1
    </select>
 
 
    <select id="queryPayCouponList" resultType="com.agentdriving.user.modular.system.warpper.CouponWarpper">
        select
        b.id,
        a.coupon_conditional_amount as couponConditionalAmount,
        a.coupon_preferential_amount as couponPreferentialAmount,
        a.coupon_name as couponName,
        UNIX_TIMESTAMP(b.expireTime) * 1000 as expirationDate,
        b.validCount as number
        from t_coupon a
        left join t_user_to_coupon b on (a.id = b.couponId)
        where b.userId = #{uid}  and b.validCount > 0 and b.expireTime > now() and
        a.coupon_conditional_amount &lt;= #{price} and a.coupon_preferential_amount &lt; #{price} order by b.createTime
    </select>
 
 
    <select id="queryMyCoupons" resultType="com.agentdriving.user.modular.system.warpper.CouponsWarpper">
        select
        a.id,
        b.coupon_name as `name`,
        b.coupon_conditional_amount as preferentialTerms,
        b.coupon_preferential_amount as discountAmount,
        UNIX_TIMESTAMP(a.expireTime) * 1000 as endTime
        from t_user_to_coupon a
        left join t_coupon b on (a.couponId = b.id)
        where a.`status` = 1 and a.userId = #{uid}
        <if test="null != state and 1 == state">
            and a.couponTotal = a.validCount and now() &lt; a.expireTime
        </if>
        <if test="null != state and 2 == state">
            and a.couponTotal != a.validCount and now() &lt; a.expireTime
        </if>
        <if test="null != state and 3 == state">
            and now() &gt;= a.expireTime
        </if>
        order by a.createTime desc limit #{pageNum}, #{pageSize}
    </select>
 
 
    <select id="queryUsedCouponNum" resultType="int">
        select sum(couponTotal - validCount) from t_user_to_coupon where `status` = 1 and userId = #{uid}
    </select>
</mapper>