You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
6.2 KiB
140 lines
6.2 KiB
<?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.example.web.mapper.UsersManagementsMapper">
|
|
|
|
<resultMap id="UsersManagementsResultMap" type="com.example.web.entity.UsersManagements">
|
|
<id property="id" column="id"/>
|
|
<result property="userId" column="userId"/>
|
|
<result property="managerId" column="managerId"/>
|
|
<result property="managercompany" column="managercompany"/>
|
|
<result property="managerdepartment" column="managerdepartment"/>
|
|
<result property="organization" column="organization"/>
|
|
<result property="role" column="role"/>
|
|
<result property="root" column="root"/>
|
|
<result property="created_at" column="created_at"/>
|
|
<result property="updated_at" column="updated_at"/>
|
|
<result property="userName" column="userName"/>
|
|
<result property="assistant" column="assistant"/>
|
|
</resultMap>
|
|
|
|
|
|
<!-- 在 UsersManagementsMapper.xml 中添加 -->
|
|
<select id="findByUserNameAndManagerId" parameterType="map" resultMap="UsersManagementsResultMap">
|
|
SELECT id, userId, managerId, managercompany, managerdepartment,
|
|
organization, role, root, created_at, updated_at, userName, assistant
|
|
FROM usermanagements
|
|
WHERE userName = #{userName} AND managerId = #{managerId}
|
|
</select>
|
|
|
|
|
|
<!-- 新增:支持部门查询 -->
|
|
<select id="findByDepartment" parameterType="string" resultMap="UsersManagementsResultMap">
|
|
SELECT id, userId, managerId, managercompany, managerdepartment,
|
|
organization, role, root, created_at, updated_at, userName, assistant
|
|
FROM usermanagements
|
|
WHERE managerdepartment = #{department}
|
|
</select>
|
|
|
|
<!-- 新增:组合条件查询 -->
|
|
<select id="findByConditions" parameterType="map" resultMap="UsersManagementsResultMap">
|
|
SELECT id, userId, managerId, managercompany, managerdepartment,
|
|
organization, role, root, created_at, updated_at, userName, assistant
|
|
FROM usermanagements
|
|
<where>
|
|
<if test="userName != null">AND userName = #{userName}</if>
|
|
<if test="department != null">AND managerdepartment = #{department}</if>
|
|
<if test="company != null">AND managercompany = #{company}</if>
|
|
<if test="role != null">AND role = #{role}</if>
|
|
</where>
|
|
ORDER BY created_at DESC
|
|
</select>
|
|
<!-- 根据用户ID查询负责人信息 -->
|
|
<select id="findByUserId" parameterType="string" resultMap="UsersManagementsResultMap">
|
|
SELECT id, userId, managerId, managercompany, managerdepartment,
|
|
organization, role, root, created_at, updated_at, userName, assistant
|
|
FROM usermanagements
|
|
WHERE userId = #{userId}
|
|
ORDER BY id DESC
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<!-- 插入负责人信息 -->
|
|
<insert id="insertUsersManagements" parameterType="com.example.web.entity.UsersManagements">
|
|
INSERT INTO usermanagements (
|
|
userId, managerId, managercompany, managerdepartment,
|
|
organization, role, root, created_at, updated_at,
|
|
userName, assistant
|
|
) VALUES (
|
|
#{userId}, #{managerId}, #{managercompany}, #{managerdepartment},
|
|
#{organization}, #{role}, #{root}, #{created_at}, #{updated_at},
|
|
#{userName}, #{assistant}
|
|
)
|
|
</insert>
|
|
|
|
<!-- 更新负责人信息 -->
|
|
<update id="updateUsersManagements" parameterType="com.example.web.entity.UsersManagements">
|
|
UPDATE usermanagements
|
|
SET managerId = #{managerId},
|
|
managercompany = #{managercompany},
|
|
managerdepartment = #{managerdepartment},
|
|
organization = #{organization},
|
|
role = #{role},
|
|
root = #{root},
|
|
updated_at = #{updated_at},
|
|
userName = #{userName},
|
|
assistant = #{assistant}
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<!-- 更新负责人信息的更新时间 -->
|
|
<update id="updateManagerUpdateTime">
|
|
UPDATE users_managements
|
|
SET updated_at = #{updatedAt}
|
|
WHERE user_id = #{userId}
|
|
</update>
|
|
|
|
<!-- 查询完整负责人信息 -->
|
|
<select id="findCompleteManagerInfoByUserId" resultType="com.example.web.entity.UsersManagements">
|
|
SELECT
|
|
manager_id,
|
|
managercompany,
|
|
managerdepartment,
|
|
organization,
|
|
role,
|
|
user_name,
|
|
assistant,
|
|
created_at,
|
|
updated_at
|
|
FROM users_managements
|
|
WHERE user_id = #{userId}
|
|
</select>
|
|
<select id="findByUserIdAndAuthInfo" resultMap="UsersManagementsResultMap">
|
|
SELECT * FROM usermanagements
|
|
WHERE userId = #{userId}
|
|
AND (managercompany = #{authInfo.managercompany} OR #{authInfo.managercompany} IS NULL)
|
|
AND (managerdepartment = #{authInfo.managerdepartment} OR #{authInfo.managerdepartment} IS NULL)
|
|
AND (organization = #{authInfo.organization} OR #{authInfo.organization} IS NULL)
|
|
AND (userName = #{authInfo.userName} OR #{authInfo.userName} IS NULL)
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<select id="findAuthorizedUserIds" resultType="string">
|
|
SELECT userId FROM usermanagements
|
|
WHERE (managercompany = #{authInfo.managercompany} OR #{authInfo.managercompany} IS NULL)
|
|
AND (managerdepartment = #{authInfo.managerdepartment} OR #{authInfo.managerdepartment} IS NULL)
|
|
AND (organization = #{authInfo.organization} OR #{authInfo.organization} IS NULL)
|
|
AND (userName = #{authInfo.userName} OR #{authInfo.userName} IS NULL)
|
|
</select>
|
|
|
|
<!-- 新增:批量查询用户负责人信息 -->
|
|
<select id="findByUserIds" resultMap="UsersManagementsResultMap">
|
|
SELECT id, userId, managerId, managercompany, managerdepartment,
|
|
organization, role, root, created_at, updated_at, userName, assistant
|
|
FROM usermanagements
|
|
WHERE userId IN
|
|
<foreach collection="userIds" item="userId" open="(" separator="," close=")">
|
|
#{userId}
|
|
</foreach>
|
|
</select>
|
|
</mapper>
|