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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<?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="cn.iocoder.yudao.module.reward.dal.mysql.redeem.RewardRedeemMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="pageInfo" resultType="cn.iocoder.yudao.module.reward.vo.reward.RewardRedeemPageRespVO">
select
<include refid="columns"/>
from ecw_reward_redeem err
left join ecw_reward er on err.reward_id = er.id
left join member_user mu on mu.id = err.member_id
left join ecw_node en on er.node_id = en.id
left join system_user suc on suc.id = err.creator
left join system_user suu on suu.id = err.updater
left join ecw_currency cc on err.currency = cc.id
left join ecw_express ee on err.courier_company = ee.id
where 1=1
<include refid="pageCondition"/>
order by err.create_time desc
limit #{start}, #{size}
</select>
<select id="pageCount" resultType="java.lang.Integer">
select count(*)
from ecw_reward_redeem err
left join ecw_reward er on err.reward_id = er.id
left join member_user mu on mu.id = err.member_id
left join ecw_node en on er.node_id = en.id
left join system_user suc on suc.id = err.creator
left join system_user suu on suu.id = err.updater
left join ecw_express ee on err.courier_company = ee.id
where 1=1
<include refid="pageCondition"/>
</select>
<select id="detail" resultType="cn.iocoder.yudao.module.reward.vo.reward.RewardRedeemPageRespVO">
select
err.hold_score_before_redeem as holdScore,
er.points_require as pointsRequire,
er.start_time as startTime,
er.end_time as endTime,
er.img_zh as imgZh,
er.img_en as imgEn,
er.points_require as oncePointsRequire,
<include refid="columns"/>
from ecw_reward_redeem err
left join ecw_reward er on err.reward_id = er.id
left join member_user mu on mu.id = err.member_id
left join member_user_score mus on mu.id = mus.member_id
left join ecw_node en on er.node_id = en.id
left join system_user suc on suc.id = err.creator
left join system_user suu on suu.id = err.updater
left join ecw_currency cc on err.currency = cc.id
left join ecw_express ee on err.courier_company = ee.id
where err.id = #{id}
</select>
<select id="exportList" resultType="cn.iocoder.yudao.module.reward.vo.reward.RewardRedeemPageRespVO">
select
<include refid="columns"/>
from ecw_reward_redeem err
left join ecw_reward er on err.reward_id = er.id
left join member_user mu on mu.id = err.member_id
left join ecw_node en on er.node_id = en.id
left join system_user suc on suc.id = err.creator
left join system_user suu on suu.id = err.updater
left join ecw_currency cc on err.currency = cc.id
left join ecw_express ee on err.courier_company = ee.id
where 1=1
<include refid="pageCondition"/>
order by er.create_time desc
</select>
<select id="getCurrentMaxRedemptionNumber" resultType="java.lang.String">
select redemption_number from ecw_reward_redeem order by redemption_number desc limit 1
</select>
<sql id="columns">
err.id ,
err.redemption_number as redemptionNumber,
err.member_id as memberId,
err.reward_id as rewardId,
err.status,
err.reward_count as rewardCount,
err.redeem_type as redeemType,
err.entrance,
err.expenses,
err.currency,
err.recipient_name as recipientName,
err.recipient_phone_num as recipientPhoneNum,
err.recipient_address as recipientAddress,
err.redeemer,
err.redemption_time as redemptionTime,
err.courier_company as courierCompany,
ee.company_name as courierCompanyName,
err.express_no as expressNo,
err.express_date as expressDate,
err.express_sender as expressSender,
err.annex as annex,
err.remark as remark,
err.create_time as createTime,
err.update_time as updateTime,
err.creator as creator,
err.updater as updater,
err.deleted as deleted,
err.verify_user as verifyUser,
err.verify_time as verifyTime,
mu.nickname as memberNameZh,
mu.english_name as memberNameEn,
mu.code as memberCode,
er.code as rewardCode,
er.title_zh as rewardTitleZh,
er.title_en as rewardTitleEn,
er.title_fr as rewardTitleFr,
en.title_zh as nodeTitleZh,
en.title_en as nodeTitleEn,
err.score_count as totalCount,
suc.username as creatorName,
suu.username as updaterName,
cc.title_zh as currencyTitleZh,
cc.title_en as currencyTitleEn
</sql>
<sql id="pageCondition">
<if test="req.rewardTitle != null and req.rewardTitle !=''">
and (er.title_zh like '%${req.rewardTitle}%' or er.title_en like '%${req.rewardTitle}%' or er.title_fr like '%${req.rewardTitle}%')
</if>
<if test="req.memberName != null and req.memberName !=''">
and mu.nickname like '%${req.memberName}%'
</if>
<if test="req.memberCode != null and req.memberCode !=''">
and mu.code = #{req.memberCode}
</if>
<if test="req.rewardCode != null and req.rewardCode !=''">
and er.code like '%${req.rewardCode}%'
</if>
<if test="req.redeemType != null">
and err.redeem_type = #{req.redeemType}
</if>
<if test="req.status != null">
and err.status = #{req.status}
</if>
<if test="req.entrance != null">
and err.entrance = #{req.entrance}
</if>
<if test="req.nodeId != null">
and er.node_id = #{req.nodeId}
</if>
<if test="req.rewardCount != null and req.rewardCountOperate != null">
<!--1:大于 2:等于 3:小于-->
<if test="req.rewardCountOperate == 1">
and err.reward_count > #{req.rewardCount}
</if>
<if test="req.rewardCountOperate == 2">
and err.reward_count = #{req.rewardCount}
</if>
<if test="req.rewardCountOperate == 3">
and err.reward_count < #{req.rewardCount}
</if>
</if>
<if test="req.startTime != null ">
and err.create_time >= #{req.startTime}
</if>
<if test="req.endTime != null ">
and err.create_time <= #{req.endTime}
</if>
<if test="req.memberId != null">
and err.member_id = #{req.memberId}
</if>
<if test="req.redemptionNumber != null and req.redemptionNumber !=''">
and err.redemption_number = #{req.redemptionNumber}
</if>
</sql>
</mapper>