cjl
2025-01-06 8490eb11583ffdc586436f165860de5cfc39f915
screen-api/src/main/resources/mapper/UserMapper.xml
@@ -2,41 +2,52 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.UserMapper">
        <!-- 通用查询映射结果 -->
        <resultMap id="BaseResultMap" type="com.moral.api.entity.User">
                    <id column="id" property="id" />
                    <result column="is_admin" property="isAdmin" />
                    <result column="account" property="account" />
                    <result column="password" property="password" />
                    <result column="user_name" property="userName" />
                    <result column="organization_id" property="organizationId" />
                    <result column="email" property="email" />
                    <result column="mobile" property="mobile" />
                    <result column="wechat" property="wechat" />
                    <result column="create_time" property="createTime" />
                    <result column="update_time" property="updateTime" />
                    <result column="expire_time" property="expireTime" />
                    <result column="is_delete" property="isDelete" />
        </resultMap>
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.User">
        <id column="id" property="id"/>
        <result column="is_admin" property="isAdmin"/>
        <result column="account" property="account"/>
        <result column="password" property="password"/>
        <result column="user_name" property="userName"/>
        <result column="organization_id" property="organizationId"/>
        <result column="email" property="email"/>
        <result column="mobile" property="mobile"/>
        <result column="wechat" property="wechat"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="expire_time" property="expireTime"/>
        <result column="is_delete" property="isDelete"/>
        <result column="unit_id" property="unitId"/>
    </resultMap>
    <select id="selectUserGroup" resultType="com.moral.api.entity.Group">
        SELECT g.*
        FROM `group` g,`user_group` ug
        WHERE ug.user_id = #{userId}
        AND ug.group_id = g.id
        AND g.is_delete = 0
        AND ug.is_delete = 0
    <resultMap id="userInfoMap" type="com.moral.api.pojo.bo.UserBO" extends="BaseResultMap">
        <!--用户组织-->
        <association property="organization" javaType="com.moral.api.entity.Organization">
            <result column="id" property="id" jdbcType="INTEGER"/>
            <result column="name" property="name" jdbcType="VARCHAR"/>
            <result column="location_level_code" property="locationLevelCode"/>
            <result column="org_expire_time" property="expireTime"/>
        </association>
        <!--用户组-->
        <association property="group" javaType="com.moral.api.entity.Group">
            <id column="group_id" property="id" jdbcType="INTEGER"/>
            <result column="group_name" property="groupName" jdbcType="VARCHAR"/>
        </association>
    </resultMap>
    <!--查询用户信息,包含组织,角色-->
    <select id="selectUserInfo" resultMap="userInfoMap">
      SELECT u.id, u.account, u.password, u.user_name, u.email, u.mobile, u.wechat ,u.organization_id, u.expire_time, u.is_delete,u.is_Admin,
      o.name, o.location_level_code, o.expire_time org_expire_time,
      a.id group_id , a.group_name,u.unit_id
      FROM `user` u
      LEFT JOIN
            (SELECT ug.user_id,g.id,g.group_name FROM `user_group` ug ,`group` g WHERE ug.group_id=g.id   AND g.is_delete = 0
            AND ug.is_delete = '0') a
        ON a.user_id=u.id
      LEFT JOIN `organization` o ON o.id=u.organization_id
      WHERE u.account = #{account}
        AND u.is_delete = '0'
    </select>
    <select id="selectUserMenu" resultType="com.moral.api.entity.Menu">
        SELECT DISTINCT m.*
        FROM `user_group` ug,`group_menu` gm,`menu` m
        WHERE ug.user_id = #{userId}
        and ug.group_id = gm.group_id
        and gm.menu_id = m.id
        and ug.is_delete = 0
        and gm.is_delete = 0
        and m.is_delete = 0
        ORDER  by m.`order`
    </select>
</mapper>