260 lines
8.8 KiB
XML
260 lines
8.8 KiB
XML
|
|
<?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="com.veve_plus.root.mapper.UserMapper">
|
||
|
|
<resultMap id="userResultMap" type="com.veve_plus.root.dto.user.UserResponse">
|
||
|
|
<id property="userId" column="user_id" />
|
||
|
|
<result property="deptId" column="dept_id" />
|
||
|
|
<result property="deptName" column="dept_name" />
|
||
|
|
<result property="managerId" column="manager_id" />
|
||
|
|
<result property="managerName" column="manager_name" />
|
||
|
|
<result property="username" column="username" />
|
||
|
|
<result property="firstName" column="first_name" />
|
||
|
|
<result property="lastName" column="last_name" />
|
||
|
|
<result property="gender" column="gender" />
|
||
|
|
<result property="phone" column="phone" />
|
||
|
|
<result property="email" column="email" />
|
||
|
|
<result property="contractNo" column="contract_no" />
|
||
|
|
<result property="contractDate" column="contract_date" />
|
||
|
|
<result property="identityNo" column="identity_no" />
|
||
|
|
<result property="issuedDate" column="issued_date" />
|
||
|
|
<result property="issuedPlace" column="issued_place" />
|
||
|
|
<result property="taxCode" column="tax_code" />
|
||
|
|
<result property="avatarName" column="avatar_name" />
|
||
|
|
<result property="avatarPath" column="avatar_path" />
|
||
|
|
<result property="password" column="password" />
|
||
|
|
<result property="isAdmin" column="is_admin" />
|
||
|
|
<result property="isManager" column="is_manager" />
|
||
|
|
<result property="isLocked" column="is_locked" />
|
||
|
|
<result property="isExpired" column="is_expired" />
|
||
|
|
<result property="isCredentialExpired" column="is_credential_expired" />
|
||
|
|
<result property="status" column="status" />
|
||
|
|
<result property="level" column="level" />
|
||
|
|
<result property="bank" column="bank" />
|
||
|
|
<result property="bankAccount" column="bank_account" />
|
||
|
|
<result property="createdBy" column="created_by" />
|
||
|
|
<result property="updatedBy" column="updated_by" />
|
||
|
|
<result property="pwdResetTime" column="pwd_reset_time" />
|
||
|
|
<result property="createdTime" column="created_time" />
|
||
|
|
<result property="updatedTime" column="updated_time" />
|
||
|
|
<result property="roleIds" column="role_ids" />
|
||
|
|
</resultMap>
|
||
|
|
<select id="findByEmail" resultType="com.veve_plus.root.dto.auth.LoginDto">
|
||
|
|
SELECT email
|
||
|
|
, password
|
||
|
|
, status
|
||
|
|
FROM tb_user
|
||
|
|
WHERE email = #{email}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="findUserInfoByEmail" resultType="com.veve_plus.root.entity.User">
|
||
|
|
SELECT user_id as userId
|
||
|
|
, dept_id as deptId
|
||
|
|
, username
|
||
|
|
, first_name as firstName
|
||
|
|
, last_name as lastName
|
||
|
|
, gender
|
||
|
|
, phone
|
||
|
|
, email
|
||
|
|
FROM tb_user
|
||
|
|
WHERE email = #{email}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="findAllUsersByCondition" resultMap="userResultMap">
|
||
|
|
SELECT a.*,
|
||
|
|
CONCAT(c.first_name,' ',c.last_name) as manager_name,
|
||
|
|
b.name as dept_name,
|
||
|
|
(
|
||
|
|
SELECT GROUP_CONCAT(d.role_id) FROM tb_users_roles d WHERE a.user_id = d.user_id
|
||
|
|
) AS role_ids,
|
||
|
|
(
|
||
|
|
SELECT GROUP_CONCAT(f.name) FROM tb_role f LEFT JOIN tb_users_roles g ON f.role_id = g.role_id WHERE a.user_id = g.user_id
|
||
|
|
) AS roleNames,
|
||
|
|
e.code_name as levelName,
|
||
|
|
f.code_name as classificationName
|
||
|
|
FROM tb_user a
|
||
|
|
LEFT JOIN tb_dept b on a.dept_id = b.dept_id
|
||
|
|
LEFT JOIN tb_user c on b.manager_id = c.user_id
|
||
|
|
LEFT JOIN tb_code e on a.`level` = e.code_id AND e.group_id = '9'
|
||
|
|
LEFT JOIN tb_code f on a.`classification` = f.code_id AND f.group_id = '10'
|
||
|
|
<where>
|
||
|
|
<if test="keyword != null and keyword != ''">
|
||
|
|
AND ( a.username LIKE concat('%',#{keyword},'%')
|
||
|
|
OR a.first_name LIKE concat('%',#{keyword},'%')
|
||
|
|
OR a.last_name LIKE concat('%',#{keyword},'%')
|
||
|
|
OR a.email LIKE concat('%',#{keyword},'%')
|
||
|
|
OR a.phone LIKE concat('%',#{keyword},'%')
|
||
|
|
OR CONCAT(c.first_name,' ',c.last_name) LIKE concat('%',#{keyword},'%')
|
||
|
|
)
|
||
|
|
</if>
|
||
|
|
<if test="classification != null and !classification.isEmpty()">
|
||
|
|
AND f.code_id IN
|
||
|
|
<foreach item="id" collection="classification.split(',')" open="(" separator="," close=")">
|
||
|
|
#{id}
|
||
|
|
</foreach>
|
||
|
|
</if>
|
||
|
|
<if test="deptId != null and !deptId.isEmpty()">
|
||
|
|
AND b.dept_id IN
|
||
|
|
<foreach item="id" collection="deptId.split(',')" open="(" separator="," close=")">
|
||
|
|
#{id}
|
||
|
|
</foreach>
|
||
|
|
</if>
|
||
|
|
<if test="level != null and !level.isEmpty()">
|
||
|
|
AND e.code_id IN
|
||
|
|
<foreach item="id" collection="level.split(',')" open="(" separator="," close=")">
|
||
|
|
#{id}
|
||
|
|
</foreach>
|
||
|
|
</if>
|
||
|
|
<if test="status != null">
|
||
|
|
AND a.status = #{status}
|
||
|
|
</if>
|
||
|
|
</where>
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<insert id="insert" parameterType="com.veve_plus.root.dto.user.UserDto" useGeneratedKeys="true" keyProperty="userId" >
|
||
|
|
INSERT INTO tb_user (
|
||
|
|
user_id,
|
||
|
|
dept_id,
|
||
|
|
username,
|
||
|
|
first_name,
|
||
|
|
last_name,
|
||
|
|
gender,
|
||
|
|
phone,
|
||
|
|
email,
|
||
|
|
contract_no,
|
||
|
|
contract_date,
|
||
|
|
identity_no,
|
||
|
|
issued_date,
|
||
|
|
issued_place,
|
||
|
|
tax_code,
|
||
|
|
avatar_name,
|
||
|
|
avatar_path,
|
||
|
|
password,
|
||
|
|
download_password,
|
||
|
|
is_admin,
|
||
|
|
is_manager,
|
||
|
|
is_locked,
|
||
|
|
is_expired,
|
||
|
|
is_credential_expired,
|
||
|
|
status,
|
||
|
|
level,
|
||
|
|
bank,
|
||
|
|
bank_account,
|
||
|
|
classification,
|
||
|
|
created_by,
|
||
|
|
updated_by,
|
||
|
|
pwd_reset_time,
|
||
|
|
created_time,
|
||
|
|
updated_time
|
||
|
|
)
|
||
|
|
VALUES (
|
||
|
|
#{userId},
|
||
|
|
#{deptId},
|
||
|
|
#{username},
|
||
|
|
#{firstName},
|
||
|
|
#{lastName},
|
||
|
|
#{gender},
|
||
|
|
#{phone},
|
||
|
|
#{email},
|
||
|
|
#{contractNo},
|
||
|
|
#{contractDate},
|
||
|
|
#{identityNo},
|
||
|
|
#{issuedDate},
|
||
|
|
#{issuedPlace},
|
||
|
|
#{taxCode},
|
||
|
|
#{avatarName},
|
||
|
|
#{avatarPath},
|
||
|
|
#{password},
|
||
|
|
SHA2(#{downloadPassword}, '512'),
|
||
|
|
#{isAdmin},
|
||
|
|
#{isManager},
|
||
|
|
#{isLocked},
|
||
|
|
#{isExpired},
|
||
|
|
#{isCredentialExpired},
|
||
|
|
#{status},
|
||
|
|
#{level},
|
||
|
|
#{bank},
|
||
|
|
#{bankAccount},
|
||
|
|
#{classification},
|
||
|
|
#{createdBy},
|
||
|
|
#{updatedBy},
|
||
|
|
#{pwdResetTime},
|
||
|
|
SYSDATE(),
|
||
|
|
SYSDATE()
|
||
|
|
)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertRole" parameterType="com.veve_plus.root.dto.user.UserRole">
|
||
|
|
INSERT INTO tb_users_roles (
|
||
|
|
user_id,
|
||
|
|
role_id,
|
||
|
|
created_by,
|
||
|
|
updated_by,
|
||
|
|
created_time,
|
||
|
|
updated_time
|
||
|
|
) VALUES (
|
||
|
|
#{userId},
|
||
|
|
#{roleId},
|
||
|
|
#{createdBy},
|
||
|
|
#{updatedBy},
|
||
|
|
SYSDATE(),
|
||
|
|
SYSDATE()
|
||
|
|
)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<update id="update" parameterType="com.veve_plus.root.dto.user.UserDto">
|
||
|
|
UPDATE tb_user
|
||
|
|
SET
|
||
|
|
dept_id = #{deptId},
|
||
|
|
username = #{username},
|
||
|
|
first_name = #{firstName},
|
||
|
|
last_name = #{lastName},
|
||
|
|
gender = #{gender},
|
||
|
|
phone = #{phone},
|
||
|
|
<!--email = #{email},-->
|
||
|
|
contract_no = #{contractNo},
|
||
|
|
contract_date = #{contractDate},
|
||
|
|
identity_no = #{identityNo},
|
||
|
|
issued_date = #{issuedDate},
|
||
|
|
issued_place = #{issuedPlace},
|
||
|
|
tax_code = #{taxCode},
|
||
|
|
is_manager = #{isManager},
|
||
|
|
classification = #{classification},
|
||
|
|
status = #{status},
|
||
|
|
level = #{level},
|
||
|
|
bank = #{bank},
|
||
|
|
bank_account = #{bankAccount},
|
||
|
|
updated_by = #{updatedBy},
|
||
|
|
updated_time = SYSDATE()
|
||
|
|
WHERE user_id = #{userId}
|
||
|
|
</update>
|
||
|
|
|
||
|
|
<delete id="deleteRolesByUserId">
|
||
|
|
DELETE FROM tb_users_roles WHERE user_id = #{userId}
|
||
|
|
</delete>
|
||
|
|
|
||
|
|
<select id="getInfoUserById" resultType="com.veve_plus.root.dto.user.UserResponse">
|
||
|
|
SELECT
|
||
|
|
user_id as userId,
|
||
|
|
dept_id as deptId,
|
||
|
|
username,
|
||
|
|
first_name as firstName,
|
||
|
|
last_name as lastName,
|
||
|
|
gender,
|
||
|
|
phone,
|
||
|
|
email,
|
||
|
|
classification,
|
||
|
|
contract_no as contractNo,
|
||
|
|
contract_date as contractDate,
|
||
|
|
identity_no as identityNo,
|
||
|
|
issued_date as issuedDate,
|
||
|
|
issued_place as issuedPlace,
|
||
|
|
tax_code as taxCode,
|
||
|
|
avatar_name as avatarName,
|
||
|
|
avatar_path as avatarPath,
|
||
|
|
e.code_name as levelName
|
||
|
|
FROM tb_user
|
||
|
|
LEFT JOIN tb_code e on tb_user.level = e.code_id
|
||
|
|
WHERE user_id = #{userId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
</mapper>
|