active-gift-record-mapper.xml
5.22 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?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">
<!-- @author tongxiaochuan -->
<mapper namespace="com.cjs.cms.dao.user.point.ActiveGiftRecordDao">
<sql id="active_gift_record_field">
id, active_id, user_id, gift_id, gift_at, gift_amount, gift_by, issue_status,
issue_by, issue_at, create_at, create_by
</sql>
<insert id="insert" parameterType="ActiveGiftRecordInfo" useGeneratedKeys="true" keyProperty="id">
insert into active_gift_record(active_id, user_id, gift_id, gift_at, gift_amount, gift_by, issue_status,
issue_by, issue_at, create_at, create_by)
values(#{activeId}, #{userId}, #{giftId}, CURRENT_TIMESTAMP, #{giftAmount}, #{giftBy}, #{issueStatus},
#{issueBy}, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, #{createBy})
</insert>
<delete id="delete" parameterType="map">
delete from active_gift_record
where active_id = #{activeId}
and user_id = #{userId}
and issue_status in (0,2)
</delete>
<!-- 查询符合条件的发奖条目数 -->
<select id="queryCountByConditions" parameterType="map" resultType="int">
select count(1) from active_gift_record
where active_id = #{activeId}
and user_id = #{clientId}
<if test="issueStatus != null and issueStatus != ''">
and issue_status = #{issueStatus}
</if>
</select>
<sql id="searchCondition">
where 1=1
<if test="activeId != null and activeId != ''">
and c.id = #{activeId}
</if>
<if test="issueStatus != null and issueStatus != ''">
and instr(#{issueStatus},r.issue_status) > 0
</if>
</sql>
<!-- 按条件查询发送记录 -->
<select id="search" parameterType="map" resultType="map">
select c.name, c.type, r.user_id, u.end_rule, g.gift_type, g.gift_code, g.gift_name, r.gift_id, r.gift_amount, r.issue_status
from active_gift_record r
left join active_gift g on r.gift_id = g.id
inner join active_config c on r.active_id = c.id
left join active_rule u on g.id = u.gift_id
<include refid="searchCondition" />
order by r.id asc
<include refid="common.pageLimit" />
</select>
<select id="searchTotal" parameterType="map" resultType="int">
select count(1) from active_gift_record r
left join active_gift g on r.gift_id = g.id
inner join active_config c on r.active_id = c.id
left join active_rule u on g.id = u.gift_id
<include refid="searchCondition" />
</select>
<!-- 查询用户中奖未送/送失败纪录 -->
<select id="queryRecord" parameterType="map" resultType="ActiveGiftRecordInfo">
select <include refid="active_gift_record_field" />
from active_gift_record
where active_id = #{activeId}
and instr('02', issue_status) > 0
<if test="userId != null and userId != ''">
and user_id = #{userId}
</if>
</select>
<update id="updateRecord" parameterType="ActiveGiftRecordInfo">
update active_gift_record set gift_id = #{giftId}, gift_at = CURRENT_TIMESTAMP,
gift_amount = #{giftAmount}, issue_status = #{issueStatus}, issue_by = #{issueBy},
issue_at = CURRENT_TIMESTAMP, create_by = #{createBy}
where id = #{id}
</update>
<update id="updateStatus" parameterType="ActiveGiftRecordInfo">
update active_gift_record set
issue_status = #{issueStatus}, issue_by = #{issueBy},
issue_at = CURRENT_TIMESTAMP
where id = #{id}
</update>
<!-- 查询所有发放记录 -->
<sql id="searchAll">
<if test="name != null and name != ''">and active.name = #{name}</if>
<if test="type != null and type != ''">and active.type = #{type}</if>
<if test="userId != null and userId != ''">and record.user_id = #{userId}</if>
<if test="giftType != null and giftType != ''">and gift.gift_type = #{giftType}</if>
<if test="issueStatus != null and issueStatus != ''">and record.issue_status = #{issueStatus}</if>
<if test="startDate != null and startDate != ''"> <![CDATA[ and record.issue_at >= #{startDate}]]> </if>
<if test="endDate != null and endDate != ''"> <![CDATA[ and record.issue_at <= DATE_ADD(#{endDate}, INTERVAL 1 day)]]> </if>
</sql>
<select id="queryAll" resultType="map" parameterType="map">
select record.id, active.name, active.type, record.user_id, record.gift_amount, record.issue_at, record.issue_status,
gift.gift_name, gift.gift_code, gift.gift_type ,record.gift_by
from active_gift_record record
left join active_gift gift on record.gift_id = gift.id
inner join active_config active on record.active_id = active.id
<include refid="searchAll" />
<include refid="common.pageLimit" />
</select>
<select id="queryAllTotal" resultType="int" parameterType="map">
select count(*)
from active_gift_record record
left join active_gift gift on record.gift_id = gift.id
inner join active_config active on record.active_id = active.id
<include refid="searchAll" />
</select>
<!-- 发放记录汇总 -->
<select id="recordCount" resultType="map" parameterType="map">
select count(DISTINCT record.user_id) user_id, sum(record.gift_by) end_rule, sum(record.gift_amount) gift_amount
from active_gift_record record
left join active_gift gift on record.gift_id = gift.id
inner join active_config active on record.active_id = active.id
<include refid="searchAll" />
</select>
</mapper>