Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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 &gt;= #{startDate}
199
  		AND active_since &lt;= #{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>