| 5432 |
amar.kumar |
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
2 |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
3 |
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
4 |
|
|
|
5 |
<mapper namespace="in.shop2020.user.persistence.UserMapper">
|
|
|
6 |
|
|
|
7 |
<resultMap type="user" id="userResult">
|
|
|
8 |
<id property="id" column="id"/>
|
|
|
9 |
</resultMap>
|
|
|
10 |
|
|
|
11 |
<resultMap type="userWithAddress" id="userWithAddressResult">
|
|
|
12 |
<id property="id" column="id"/>
|
|
|
13 |
<collection property="addresses" javaType="ArrayList" column="id" ofType="address" select="getAddressByUserId"/>
|
|
|
14 |
</resultMap>
|
|
|
15 |
|
|
|
16 |
<resultMap type="usercommunication" id="usercommunicationResult">
|
|
|
17 |
<id property="id" column="id"/>
|
|
|
18 |
</resultMap>
|
|
|
19 |
|
|
|
20 |
|
|
|
21 |
|
|
|
22 |
<select id="getUserNameById" parameterType="String" resultMap="userWithAddressResult">
|
|
|
23 |
SELECT name
|
|
|
24 |
FROM user
|
|
|
25 |
<where>
|
|
|
26 |
id = #{id}
|
|
|
27 |
</where>
|
|
|
28 |
</select>
|
|
|
29 |
|
|
|
30 |
<insert id="createAnonymousUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">
|
|
|
31 |
INSERT INTO user
|
|
|
32 |
(jsession_id, active_cart_id, email, password, name, communication_email,
|
|
|
33 |
is_anonymous, sex, trust_level,active_since)
|
|
|
34 |
VALUES
|
|
|
35 |
(#{jsession_id}, #{active_cart_id}, #{email}, #{password}, #{name},
|
|
|
36 |
#{communication_email}, #{is_anonymous}, #{sex}, #{trust_level}, #{activeSince})
|
|
|
37 |
</insert>
|
|
|
38 |
|
|
|
39 |
<select id="getUserById" parameterType="long" resultMap="userWithAddressResult">
|
|
|
40 |
SELECT *
|
|
|
41 |
FROM user
|
|
|
42 |
<where>
|
|
|
43 |
id = #{userId}
|
|
|
44 |
</where>
|
|
|
45 |
</select>
|
|
|
46 |
|
|
|
47 |
<select id="getAddressByUserId" parameterType="int" resultType="address">
|
|
|
48 |
SELECT *
|
|
|
49 |
FROM address
|
|
|
50 |
<where>
|
|
|
51 |
user_id = #{id}
|
|
|
52 |
</where>
|
|
|
53 |
LIMIT 1;
|
|
|
54 |
</select>
|
|
|
55 |
|
|
|
56 |
<select id="getUserByEmail" parameterType="String" resultMap="userWithAddressResult">
|
|
|
57 |
SELECT *
|
|
|
58 |
FROM user
|
|
|
59 |
<where>
|
|
|
60 |
email = #{email}
|
|
|
61 |
</where>
|
|
|
62 |
</select>
|
|
|
63 |
|
|
|
64 |
<select id="getUserByMobileNumber" parameterType="String" resultMap="userWithAddressResult">
|
|
|
65 |
SELECT *
|
|
|
66 |
FROM user
|
|
|
67 |
<where>
|
|
|
68 |
mobile_number = #{mobileNumber}
|
|
|
69 |
</where>
|
|
|
70 |
LIMIT 1
|
|
|
71 |
</select>
|
|
|
72 |
|
|
|
73 |
<insert id="createUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">
|
|
|
74 |
INSERT INTO user
|
|
|
75 |
(email, password, name, default_address_id, communication_email, active_cart_id, jsession_id,
|
|
|
76 |
is_anonymous, date_of_birth, sex, mobile_number, source, source_start_time, trust_level, active_since)
|
|
|
77 |
VALUES
|
|
|
78 |
(#{email}, #{password}, #{name}, #{default_address_id}, #{communication_email}, #{active_cart_id},
|
|
|
79 |
#{jsession_id}, #{is_anonymous}, #{date_of_birth}, #{sex}, #{mobile_number},#{source},
|
|
|
80 |
#{source_start_time}, #{trust_level}, #{activeSince})
|
|
|
81 |
</insert>
|
|
|
82 |
|
|
|
83 |
<update id="setLastLogin" parameterType="map">
|
|
|
84 |
UPDATE user
|
|
|
85 |
SET last_login = #{date}
|
|
|
86 |
<where>
|
|
|
87 |
id = #{userId}
|
|
|
88 |
</where>
|
|
|
89 |
</update>
|
|
|
90 |
|
|
|
91 |
<update id="setLastLogout" parameterType="map">
|
|
|
92 |
UPDATE user
|
|
|
93 |
SET last_logout = #{date}
|
|
|
94 |
<where>
|
|
|
95 |
id = #{userId}
|
|
|
96 |
</where>
|
|
|
97 |
</update>
|
|
|
98 |
|
|
|
99 |
<update id="increaseTrustLevel" parameterType="map">
|
|
|
100 |
UPDATE user
|
|
|
101 |
SET trust_level = trust_level + #{trustLevelDelta}
|
|
|
102 |
<where>
|
|
|
103 |
id = #{userId}
|
|
|
104 |
</where>
|
|
|
105 |
</update>
|
|
|
106 |
|
|
|
107 |
<select id="getTrustLevel" parameterType="long" resultType="double">
|
|
|
108 |
SELECT trust_level
|
|
|
109 |
FROM user
|
|
|
110 |
<where>
|
|
|
111 |
id = #{userId}
|
|
|
112 |
</where>
|
|
|
113 |
</select>
|
|
|
114 |
|
|
|
115 |
<update id="updateUser" parameterType="user">
|
|
|
116 |
UPDATE user
|
|
|
117 |
SET email=#{email}, password=#{password}, name=#{name}, communication_email=#{communication_email},
|
|
|
118 |
jsession_id=#{jsession_id}, is_anonymous=#{is_anonymous}, date_of_birth=#{date_of_birth},
|
|
|
119 |
sex=#{sex}, mobile_number=#{mobile_number}, trust_level=#{trust_level}
|
|
|
120 |
<where>
|
|
|
121 |
id = #{id}
|
|
|
122 |
</where>
|
|
|
123 |
</update>
|
|
|
124 |
|
|
|
125 |
<update id="setDefaultAddress" parameterType="map">
|
|
|
126 |
UPDATE user
|
|
|
127 |
SET default_address_id = #{addressId}
|
|
|
128 |
<where>
|
|
|
129 |
id = #{userId}
|
|
|
130 |
</where>
|
|
|
131 |
</update>
|
|
|
132 |
|
|
|
133 |
<insert id="insertUserCommunication" parameterType="usercommunication" useGeneratedKeys="true" keyProperty="id">
|
|
|
134 |
INSERT INTO usercommunication
|
|
|
135 |
(user_id, communication_type, order_id, airwaybill_no, reply_to, product_name, subject,
|
|
|
136 |
message, communication_timestamp)
|
|
|
137 |
VALUES
|
|
|
138 |
(#{user_id}, #{communication_type}, #{order_id}, #{airwaybill_no}, #{reply_to}, #{product_name},
|
|
|
139 |
#{subject}, #{message}, #{communication_timestamp})
|
|
|
140 |
</insert>
|
|
|
141 |
|
|
|
142 |
<select id="getUserCommunicationById" parameterType="long" resultType="usercommunication">
|
|
|
143 |
SELECT *
|
|
|
144 |
FROM usercommunication
|
|
|
145 |
<where>
|
|
|
146 |
id = #{id}
|
|
|
147 |
</where>
|
|
|
148 |
</select>
|
|
|
149 |
|
|
|
150 |
<select id="getUserCommunicationByUser" parameterType="long" resultType="usercommunication">
|
|
|
151 |
SELECT *
|
|
|
152 |
FROM usercommunication
|
|
|
153 |
<where>
|
|
|
154 |
user_id = #{userId}
|
|
|
155 |
</where>
|
|
|
156 |
ORDER BY id
|
|
|
157 |
</select>
|
|
|
158 |
|
|
|
159 |
<select id="getAllUserCommunications" resultType="usercommunication">
|
|
|
160 |
SELECT *
|
|
|
161 |
FROM usercommunication
|
|
|
162 |
ORDER BY id
|
|
|
163 |
</select>
|
|
|
164 |
|
|
|
165 |
<delete id="removeUserCommunication" parameterType="long">
|
|
|
166 |
DELETE from usercommunication
|
|
|
167 |
<where>
|
|
|
168 |
id = #{id}
|
|
|
169 |
</where>
|
|
|
170 |
</delete>
|
|
|
171 |
|
|
|
172 |
<update id="updatePassword" parameterType="map">
|
|
|
173 |
UPDATE user
|
|
|
174 |
SET password = #{newPassword}
|
|
|
175 |
<where>
|
|
|
176 |
id = #{userId}
|
|
|
177 |
</where>
|
|
|
178 |
</update>
|
|
|
179 |
|
|
|
180 |
<select id="getUserCount" resultType="long">
|
|
|
181 |
SELECT count(*)
|
|
|
182 |
FROM user
|
|
|
183 |
</select>
|
|
|
184 |
|
|
|
185 |
<select id="getUserCountByType" resultType="long">
|
|
|
186 |
SELECT count(*)
|
|
|
187 |
FROM user
|
|
|
188 |
<where>
|
|
|
189 |
is_anonymous = #{userType}
|
|
|
190 |
</where>
|
|
|
191 |
</select>
|
|
|
192 |
|
|
|
193 |
<select id="getAllUsers" parameterType="map" resultType="user">
|
|
|
194 |
SELECT *
|
|
|
195 |
FROM user
|
|
|
196 |
<where>
|
|
|
197 |
is_anonymous = #{userType}
|
|
|
198 |
AND active_since >= #{startDate}
|
|
|
199 |
AND active_since <= #{endDate}
|
|
|
200 |
</where>
|
|
|
201 |
</select>
|
|
|
202 |
|
|
|
203 |
<select id="getUserByCartId" resultMap="userWithAddressResult">
|
|
|
204 |
SELECT *
|
|
|
205 |
FROM user
|
|
|
206 |
<where>
|
|
|
207 |
active_cart_id = #{cartId}
|
|
|
208 |
</where>
|
|
|
209 |
</select>
|
|
|
210 |
|
|
|
211 |
</mapper>
|