imboard
Version:
Most convenient platform for webpage development.
146 lines (137 loc) • 4.33 kB
text/xml
<mapper namespace="user">
<resultMap type="UserVo" id="userResult">
<result column="ID" property="id" />
<result column="DISPLAY_ID" property="displayId" />
<result column="NAME" property="name" />
<result column="PASSWORD" property="password" />
<result column="PROVIDER" property="provider" />
<result column="PROFILE_IMG_URL" property="profileImgUrl" />
<result column="POINT" property="point" />
<result column="LEVEL" property="level" />
<result column="USER_STATUS" property="userStatus" />
<result column="DROP_OUT_DATE" property="dropOutDate" />
<result column="REGISTER_DATE" property="registerDate" />
<result column="LAST_ACCESS_DATE" property="lastAccessDate" />
</resultMap>
<select id="getUserList" parameterType="UserVo" resultMap="userResult">
SELECT *
FROM
(
SELECT
A.ID,
A.DISPLAY_ID,
A.NAME,
'' AS PASSWORD,
A.PROVIDER,
DATE_FORMAT(A.REGISTER_DATE, '%Y-%m-%d %H:%i:%s') AS REGISTER_DATE,
A.USER_STATUS,
A.DROP_OUT_DATE,
A.PROFILE_IMG_URL,
A.POINT,
DATE_FORMAT(A.LAST_ACCESS_DATE, '%Y-%m-%d %H:%i:%s') AS LAST_ACCESS_DATE,
if ( isnull(A.LEVEL), (SELECT LEVEL FROM (SELECT MIN(POINT), LEVEL FROM (SELECT (U.POINT - R.POINT) AS POINT, R.LEVEL FROM IMB_ROLE R, IMB_USER U WHERE R.LEVEL > 0) LT WHERE POINT >= 0) RE), A.LEVEL) AS LEVEL
FROM
IMB_USER A
) B
ORDER BY LEVEL
</select>
<select id="getUser" parameterType="userVo" resultMap="userResult">
SELECT
A.ID,
A.DISPLAY_ID,
A.NAME,
A.PASSWORD,
A.PROVIDER,
DATE_FORMAT(A.REGISTER_DATE, '%Y-%m-%d %H:%i:%s') AS REGISTER_DATE,
A.USER_STATUS,
A.DROP_OUT_DATE,
A.PROFILE_IMG_URL,
A.POINT,
DATE_FORMAT(A.LAST_ACCESS_DATE, '%Y-%m-%d %H:%i:%s') AS LAST_ACCESS_DATE
<if test="#{id}">,if ( isnull(A.LEVEL), (SELECT LEVEL FROM (SELECT MIN(POINT), LEVEL FROM (SELECT (U.POINT - R.POINT) AS POINT, R.LEVEL FROM IMB_ROLE R, IMB_USER U WHERE U.ID = #{id} AND R.LEVEL > 0) LT WHERE POINT >= 0) RE), A.LEVEL) AS LEVEL</if>
FROM
IMB_USER A
WHERE
1=1
<if test="#{id}">
AND ID = #{id}
</if>
<if test="#{displayId}">
AND DISPLAY_ID = #{displayId}
</if>
<if test="#{name}">
AND NAME = #{name}
</if>
</select>
<select id="getEncryptKey" parameterType="String" resultType="String">
SELECT
ENCRYPT_KEY
FROM
IMB_USER
WHERE
ID = #{id}
</select>
<insert id="insertUser" parameterType="UserVo">
INSERT INTO IMB_USER
(ID, DISPLAY_ID, PROVIDER, NAME, PROFILE_IMG_URL, LEVEL, ENCRYPT_KEY)
VALUES
(
#{id},
#{displayId},
#{provider},
#{name},
#{profileImgUrl},
#{level},
#{encryptKey}
)
</insert>
<update id="updateUser" parameterType="UserVo">
UPDATE
IMB_USER
SET
NAME = #{name},
DISPLAY_ID = #{displayId},
PROFILE_IMG_URL = #{profileImgUrl}
<if test="#{userStatus} != null">
,USER_STATUS = #{userStatus}
</if>
<if test="#{level} != null">
,LEVEL = #{level}
</if>
WHERE
ID = #{id}
</update>
<update id="updateLastAccessDate" parameterType="UserVo">
UPDATE
IMB_USER
SET
LAST_ACCESS_DATE = CURRENT_TIMESTAMP
WHERE
ID = #{id}
</update>
<update id="updateUserPassword" parameterType="UserVo">
UPDATE
IMB_USER
SET
PASSWORD = #{password}
WHERE
ID = #{id}
</update>
<update id="dropOut" parameterType="String">
UPDATE
IMB_USER
SET
DROP_OUT_DATE = date_add(now(), interval +7 day),
USER_STATUS = -1
WHERE
ID = #{id}
</update>
<delete id="deleteUser" parameterType="String">
DELETE FROM
IMB_USER
WHERE
ID = #{id}
</delete>
</mapper>