Blame | Last modification | View Log | RSS feed
<?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="in.shop2020.user.persistence.UserMapper"><resultMap type="user" id="userResult"><id property="id" column="id"/></resultMap><resultMap type="userWithAddress" id="userWithAddressResult"><id property="id" column="id"/><collection property="addresses" javaType="ArrayList" column="id" ofType="address" select="getAddressByUserId"/></resultMap><resultMap type="usercommunication" id="usercommunicationResult"><id property="id" column="id"/></resultMap><select id="getUserNameById" parameterType="String" resultMap="userWithAddressResult">SELECT nameFROM user<where>id = #{id}</where></select><insert id="createAnonymousUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">INSERT INTO user(jsession_id, active_cart_id, email, password, name, communication_email,is_anonymous, sex, trust_level,active_since)VALUES(#{jsession_id}, #{active_cart_id}, #{email}, #{password}, #{name},#{communication_email}, #{is_anonymous}, #{sex}, #{trust_level}, #{activeSince})</insert><select id="getUserById" parameterType="long" resultMap="userWithAddressResult">SELECT *FROM user<where>id = #{userId}</where></select><select id="getAddressByUserId" parameterType="int" resultType="address">SELECT *FROM address<where>user_id = #{id}</where>LIMIT 1;</select><select id="getUserByEmail" parameterType="String" resultMap="userWithAddressResult">SELECT *FROM user<where>email = #{email}</where></select><select id="getUserByMobileNumber" parameterType="String" resultMap="userWithAddressResult">SELECT *FROM user<where>mobile_number = #{mobileNumber}</where>LIMIT 1</select><insert id="createUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">INSERT INTO user(email, password, name, default_address_id, communication_email, active_cart_id, jsession_id,is_anonymous, date_of_birth, sex, mobile_number, source, source_start_time, trust_level, active_since)VALUES(#{email}, #{password}, #{name}, #{default_address_id}, #{communication_email}, #{active_cart_id},#{jsession_id}, #{is_anonymous}, #{date_of_birth}, #{sex}, #{mobile_number},#{source},#{source_start_time}, #{trust_level}, #{activeSince})</insert><update id="setLastLogin" parameterType="map">UPDATE userSET last_login = #{date}<where>id = #{userId}</where></update><update id="setLastLogout" parameterType="map">UPDATE userSET last_logout = #{date}<where>id = #{userId}</where></update><update id="increaseTrustLevel" parameterType="map">UPDATE userSET trust_level = trust_level + #{trustLevelDelta}<where>id = #{userId}</where></update><select id="getTrustLevel" parameterType="long" resultType="double">SELECT trust_levelFROM user<where>id = #{userId}</where></select><update id="updateUser" parameterType="user">UPDATE userSET email=#{email}, password=#{password}, name=#{name}, communication_email=#{communication_email},jsession_id=#{jsession_id}, is_anonymous=#{is_anonymous}, date_of_birth=#{date_of_birth},sex=#{sex}, mobile_number=#{mobile_number}, trust_level=#{trust_level}<where>id = #{id}</where></update><update id="setDefaultAddress" parameterType="map">UPDATE userSET default_address_id = #{addressId}<where>id = #{userId}</where></update><insert id="insertUserCommunication" parameterType="usercommunication" useGeneratedKeys="true" keyProperty="id">INSERT INTO usercommunication(user_id, communication_type, order_id, airwaybill_no, reply_to, product_name, subject,message, communication_timestamp)VALUES(#{user_id}, #{communication_type}, #{order_id}, #{airwaybill_no}, #{reply_to}, #{product_name},#{subject}, #{message}, #{communication_timestamp})</insert><select id="getUserCommunicationById" parameterType="long" resultType="usercommunication">SELECT *FROM usercommunication<where>id = #{id}</where></select><select id="getUserCommunicationByUser" parameterType="long" resultType="usercommunication">SELECT *FROM usercommunication<where>user_id = #{userId}</where>ORDER BY id</select><select id="getAllUserCommunications" resultType="usercommunication">SELECT *FROM usercommunicationORDER BY id</select><delete id="removeUserCommunication" parameterType="long">DELETE from usercommunication<where>id = #{id}</where></delete><update id="updatePassword" parameterType="map">UPDATE userSET password = #{newPassword}<where>id = #{userId}</where></update><select id="getUserCount" resultType="long">SELECT count(*)FROM user</select><select id="getUserCountByType" resultType="long">SELECT count(*)FROM user<where>is_anonymous = #{userType}</where></select><select id="getAllUsers" parameterType="map" resultType="user">SELECT *FROM user<where>is_anonymous = #{userType}AND active_since >= #{startDate}AND active_since <= #{endDate}</where></select><select id="getUserByCartId" resultMap="userWithAddressResult">SELECT *FROM user<where>active_cart_id = #{cartId}</where></select></mapper>