2021-01-28 12:13:15 +08:00
<?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">
2021-02-14 22:09:36 +08:00
<mapper namespace= "ink.wgink.service.user.dao.IUserDao" >
2021-01-28 12:13:15 +08:00
2021-02-14 22:09:36 +08:00
<cache flushInterval= "3600000" />
<resultMap id= "userPO" type= "ink.wgink.service.user.pojo.pos.UserPO" >
2021-01-28 12:13:15 +08:00
<id property= "userId" column= "user_id" />
<result property= "userUsername" column= "user_username" />
<result property= "userPassword" column= "user_password" />
<result property= "userName" column= "user_name" />
<result property= "userPhone" column= "user_phone" />
<result property= "userEmail" column= "user_email" />
<result property= "userUKey" column= "user_ukey" />
<result property= "userAvatar" column= "user_avatar" />
<result property= "userType" column= "user_type" />
<result property= "userState" column= "user_state" />
<result property= "lastLoginAddress" column= "last_login_address" />
<result property= "lastLoginTime" column= "last_login_time" />
<result property= "userLongitude" column= "user_longitude" />
<result property= "userLatitude" column= "user_latitude" />
<result property= "loginType" column= "login_type" />
</resultMap>
<resultMap id= "userDTO" type= "ink.wgink.pojo.dtos.user.UserDTO" >
<id property= "userId" column= "user_id" />
<result property= "userUsername" column= "user_username" />
<result property= "userName" column= "user_name" />
<result property= "userPhone" column= "user_phone" />
<result property= "userEmail" column= "user_email" />
<result property= "userUKey" column= "user_ukey" />
<result property= "userAvatar" column= "user_avatar" />
<result property= "userType" column= "user_type" />
<result property= "userState" column= "user_state" />
<result property= "lastLoginAddress" column= "last_login_address" />
<result property= "lastLoginTime" column= "last_login_time" />
<result property= "userLongitude" column= "user_longitude" />
<result property= "userLatitude" column= "user_latitude" />
<result property= "departmentIds" column= "department_ids" />
<result property= "departmentNames" column= "department_names" />
<result property= "roleIds" column= "role_ids" />
<result property= "roleNames" column= "role_names" />
<result property= "positionIds" column= "position_ids" />
<result property= "positionNames" column= "position_names" />
<result property= "loginType" column= "login_type" />
<result property= "gmtCreate" column= "gmt_create" />
</resultMap>
2021-02-09 23:54:18 +08:00
<update id= "createTable" >
CREATE TABLE IF NOT EXISTS `sys_user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` char(36) NOT NULL,
`user_username` varchar(255) NOT NULL COMMENT '用户名',
`user_password` varchar(255) DEFAULT NULL COMMENT '密码',
`user_name` varchar(255) DEFAULT NULL COMMENT '姓名',
`user_phone` varchar(20) DEFAULT NULL COMMENT '电话',
`user_email` varchar(255) DEFAULT NULL COMMENT '邮箱',
`user_ukey` varchar(32) DEFAULT NULL COMMENT 'UKey',
`user_ukey_electronic_secret_key` text COMMENT '用户UKey电子秘钥',
`user_type` int(2) DEFAULT '2',
`user_state` int(2) DEFAULT '0' COMMENT '用户状态',
`user_avatar` char(36) DEFAULT NULL COMMENT '头像',
`user_longitude` varchar(255) DEFAULT '0' COMMENT '经度',
`user_latitude` varchar(255) DEFAULT '0' COMMENT '纬度',
`last_login_address` varchar(255) DEFAULT NULL COMMENT '最后登录地址',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`login_type` int(1) DEFAULT '1' COMMENT '登录类型',
`gmt_password_modified` date DEFAULT NULL COMMENT '密码修改时间',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`creator` char(36) DEFAULT NULL,
`gmt_create` datetime DEFAULT NULL,
`modifier` char(36) DEFAULT NULL,
`gmt_modified` datetime DEFAULT NULL,
`is_delete` int(2) DEFAULT '0',
PRIMARY KEY (`id`,`user_id`,`user_username`),
UNIQUE KEY `user_username` (`user_username`) USING BTREE,
KEY `user_id` (`user_id`) USING BTREE,
KEY `user_name` (`user_name`) USING BTREE,
KEY `user_id_2` (`user_id`,`user_username`,`user_name`) USING BTREE,
KEY `user_id_3` (`user_id`,`user_name`) USING BTREE,
KEY `user_id_4` (`user_id`,`user_name`,`user_avatar`) USING BTREE,
KEY `is_delete_idx` (`is_delete`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</update>
2021-01-28 12:13:15 +08:00
<!-- 保存用户 -->
<insert id= "save" parameterType= "map" flushCache= "true" >
INSERT INTO sys_user(
user_id,
user_username,
user_password,
user_name,
user_phone,
user_email,
user_type,
user_state,
user_avatar,
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
) VALUES(
#{userId},
#{userUsername},
#{userPassword},
#{userName},
#{userPhone},
#{userEmail},
#{userType},
#{userState},
#{userAvatar},
#{creator},
#{gmtCreate},
#{modifier},
#{gmtModified},
#{isDelete}
)
</insert>
<!-- 删除用户 -->
<update id= "remove" parameterType= "map" flushCache= "true" >
UPDATE
sys_user
SET
is_delete = 1,
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
user_id IN
<foreach collection= "userIds" index= "index" open= "(" separator= "," close= ")" >
#{userIds[${index}]}
</foreach>
</update>
<!-- 修改菜单 -->
<update id= "update" parameterType= "map" flushCache= "true" >
UPDATE
sys_user
SET
<if test= "userPassword != null and userPassword != ''" >
user_password = #{userPassword},
</if>
<if test= "userName != null and userName != ''" >
user_name = #{userName},
</if>
<if test= "userPhone != null and userPhone != ''" >
user_phone = #{userPhone},
</if>
<if test= "userEmail != null and userEmail != ''" >
user_email = #{userEmail},
</if>
<if test= "userType != null" >
user_type = #{userType},
</if>
<if test= "userState != null" >
user_state = #{userState},
</if>
<if test= "userAvatar != null and userAvatar != ''" >
user_avatar = #{userAvatar},
</if>
<if test= "lastLoginAddress != null and lastLoginAddress != ''" >
last_login_address = #{lastLoginAddress},
</if>
<if test= "lastLoginTime != null and lastLoginTime != ''" >
last_login_time = #{lastLoginTime},
</if>
<if test= "gmtPasswordModified != null and gmtPasswordModified != ''" >
gmt_password_modified = #{gmtPasswordModified},
</if>
<if test= "userUKey != null and userUKey != ''" >
user_ukey = #{userUKey},
</if>
<if test= "userUKeyElectronicSecretKey != null and userUKeyElectronicSecretKey != ''" >
user_ukey_electronic_secret_key = #{userUKeyElectronicSecretKey},
</if>
<if test= "loginType != null" >
login_type = #{loginType},
</if>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
user_id = #{userId}
</update>
<!-- 更新用户密码 -->
<update id= "updatePassword" parameterType= "map" flushCache= "true" >
UPDATE
sys_user
SET
user_password = #{userPassword}
WHERE
user_id = #{userId}
</update>
<!-- 更新用户名 -->
<update id= "updateUsername" parameterType= "map" flushCache= "true" >
UPDATE
sys_user
SET
user_username = #{userUsername}
WHERE
user_id = #{userId}
</update>
<!-- 获取用户 -->
<select id= "getPO" parameterType= "map" resultMap= "userPO" useCache= "true" >
SELECT
user_id,
user_password,
user_username,
user_name,
user_phone,
user_email,
user_ukey,
user_ukey_electronic_secret_key,
user_type,
user_state,
user_avatar,
user_longitude,
user_latitude,
last_login_address,
LEFT(last_login_time, 19) last_login_time,
login_type,
gmt_password_modified,
remarks,
LEFT(gmt_create, 19) gmt_create
FROM
sys_user
WHERE
is_delete = 0
<if test= "userId != null and userId != ''" >
AND
user_id = #{userId}
</if>
<if test= "userUsername != null and userUsername != ''" >
AND
user_username = #{userUsername}
</if>
<if test= "userUKey != null and userUKey != ''" >
AND
user_ukey = #{userUKey}
</if>
</select>
<!-- 获取用户 -->
<select id= "get" parameterType= "map" resultMap= "userDTO" useCache= "true" >
SELECT
user_id,
user_password,
user_username,
user_name,
user_phone,
user_email,
user_ukey,
user_ukey_electronic_secret_key,
user_type,
user_state,
user_avatar,
user_longitude,
user_latitude,
last_login_address,
LEFT(last_login_time, 19) last_login_time,
login_type,
gmt_password_modified,
remarks,
LEFT(gmt_create, 19) gmt_create
FROM
sys_user
WHERE
is_delete = 0
<if test= "userId != null and userId != ''" >
AND
user_id = #{userId}
</if>
<if test= "userUsername != null and userUsername != ''" >
AND
user_username = #{userUsername}
</if>
<if test= "userUKey != null and userUKey != ''" >
AND
user_ukey = #{userUKey}
</if>
</select>
<!-- 用户列表 -->
<select id= "list" parameterType= "map" resultMap= "userDTO" useCache= "true" >
SELECT
user_id,
user_password,
user_username,
user_name,
user_phone,
user_email,
user_ukey,
user_ukey_electronic_secret_key,
user_type,
user_state,
user_avatar,
user_longitude,
user_latitude,
last_login_address,
LEFT(last_login_time, 19) last_login_time,
login_type,
gmt_password_modified,
remarks,
LEFT(gmt_create, 19) gmt_create
FROM
sys_user
WHERE
is_delete = 0
AND
user_username != 'admin'
<if test= "userIds != null and userIds.size > 0" >
AND
user_id IN
<foreach collection= "userIds" index= "index" open= "(" separator= "," close= ")" >
#{userIds[${index}]}
</foreach>
</if>
2021-02-14 22:09:36 +08:00
<if test= "excludeUserIds != null and excludeUserIds.size > 0" >
AND
user_id NOT IN
<foreach collection= "excludeUserIds" index= "index" open= "(" separator= "," close= ")" >
#{excludeUserIds[${index}]}
</foreach>
</if>
2021-01-28 12:13:15 +08:00
<if test= "keywords != null and keywords != ''" >
AND (
user_username LIKE CONCAT('%', #{keywords}, '%')
OR
user_name LIKE CONCAT('%', #{keywords}, '%')
OR
user_phone LIKE CONCAT('%', #{keywords}, '%')
OR
user_email LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<choose >
<when test= "sort != null and (sort == 'userUsername' or sort == 'userName' or sort == 'userPhone' or sort == 'userEmail' or sort == 'userState' or sort == 'lastLoginAddress' or sort == 'lastLoginTime')" >
ORDER BY
<if test= "sort == 'userUsername'" >
user_username ${order}
</if>
<if test= "sort == 'userName'" >
user_name ${order}
</if>
<if test= "sort == 'userPhone'" >
user_phone ${order}
</if>
<if test= "sort == 'userEmail'" >
user_email ${order}
</if>
<if test= "sort == 'userState'" >
user_state ${order}
</if>
<if test= "sort == 'lastLoginAddress'" >
last_login_address ${order}
</if>
<if test= "sort == 'lastLoginTime'" >
last_login_time ${order}
</if>
</when>
</choose>
</select>
<!-- 统计用户数量 -->
<select id= "count" parameterType= "map" resultType= "java.lang.Integer" useCache= "true" >
SELECT
count(*)
FROM
sys_user
WHERE
is_delete = 0
AND
user_username != 'admin'
<if test= "startDay != null and startDay != ''" >
AND
LEFT(gmt_create, 10) <![CDATA[ >= ]]> #{startDay}
</if>
<if test= "endDay != null and endDay != ''" >
AND
LEFT(gmt_create, 10) <![CDATA[ <= ]]> #{endDay}
</if>
<if test= "today != null and today != ''" >
AND
LEFT(gmt_create, 10) = #{today}
</if>
<if test= "userType != null" >
AND
user_type = #{userType}
</if>
<if test= "userState != null" >
AND
user_state = #{userState}
</if>
<if test= "errorUserType != null" >
AND
(user_type <![CDATA[<>]]> 1 AND user_type <![CDATA[<>]]> 2 OR user_type IS NULL)
</if>
<if test= "loginType != null" >
AND
login_type = #{loginType}
</if>
<if test= "errorLoginType != null" >
AND
(login_type <![CDATA[<>]]> 1 AND login_type <![CDATA[<>]]> 2 AND login_type <![CDATA[<>]]> 3 OR login_type IS NULL)
</if>
</select>
</mapper>