UserMapper.xml 10.8 KB
<?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.xiniunet.service.railway.dal.UserMapper">

    <sql id="whereForFindList">
        <if test="request.userIdList  != null and request.userIdList.size() > 0  ">
            AND `ID` in
            <foreach collection="request.userIdList" item="id" index="index" open="(" close=")" separator=",">
                #{id}
            </foreach>
        </if>
    </sql>

    <sql id="whereForSearchList">
        AND
        (
            1=0
        )
    </sql>
    <select id="findRank" resultMap="railwayPartyBranchRankNumberPO">
        SELECT
        ru.ESCORT_TIME ,
        su.ACCOUNT ATTRIBUTE,
        IFNULL(su.`NAME`, "") NAME
        FROM
        `RW_USER` ru
        LEFT JOIN backend.sys_user su ON su.ID = ru.ID
        WHERE
        ru.`IS_DELETED`=0
        AND ru.`TENANT_ID` = #{ passport.tenantId }
        ORDER BY
        ru.ESCORT_TIME DESC
        LIMIT 0, 100
    </select>
    <select id="find" resultMap="userPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_USER`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <include refid="whereForFindList" />
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findCount" resultType="java.lang.Long">
        SELECT
           COUNT(1)
        FROM
            `RW_USER`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <include refid="whereForFindList" />
    </select>

    <select id="findUserList" resultMap="userListPO">
        SELECT su.ID,su.ACCOUNT,su.`NAME`,ru.IS_PARTY_MEMBER,rc.`NAME` AS COMPANY_NAME FROM backend.sys_user su
        LEFT JOIN rw_user ru ON ru.ID = su.ID
        LEFT JOIN rw_company rc ON rc.ID = ru.COMPANY_ID
        WHERE
        su.IS_DELETED = 0
        AND su.TENANT_ID = #{ passport.tenantId }
        <if test="request.account !=null &amp;&amp; request.account != ''">
            AND su.ACCOUNT = #{request.account}
        </if>
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findUserRoleList" resultMap="userRolePO">
        SELECT
        su.ID,
        su.ACCOUNT,
        su.`NAME`,
        rp.ID AS PERMISSION_ID,
        rp.`NAME` AS ROLE_NAME
        FROM
        backend.sys_user su
        LEFT JOIN rw_user ru ON ru.ID = su.ID
        LEFT JOIN rw_permission rp ON rp.ID = ru.PERMISSION_ID
        WHERE
        su.IS_DELETED = 0
        AND su.TENANT_ID = #{ passport.tenantId }
        <if test="request.account !=null &amp;&amp; request.account != ''">
            AND su.ACCOUNT LIKE CONCAT(CONCAT('%', #{ request.account }), '%')
        </if>
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findUserRoleCount" resultType="java.lang.Long">
        SELECT
        COUNT(1)
        FROM
        backend.sys_user su
        LEFT JOIN rw_user ru ON ru.ID = su.ID
        LEFT JOIN rw_permission rp ON rp.ID = ru.PERMISSION_ID
        WHERE
        su.IS_DELETED = 0
        AND su.TENANT_ID = #{ passport.tenantId }
        <if test="request.account !=null &amp;&amp; request.account != ''">
            AND su.ACCOUNT LIKE CONCAT(CONCAT('%', #{ request.account }), '%')
        </if>
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="getInfomationByAccount" resultMap="userPO">
        SELECT
            rau.USERNAME,
            emp.`CODE`,
            rc.id COMPANY_ID,
            emp.COPANY_CODE,
            emp.COMPANY_NAME
        FROM
            railway.rw_app_user rau
        LEFT JOIN railway.rw_employee emp ON rau.EMP_NO = emp.`CODE`
        LEFT JOIN railway.rw_company rc ON emp.COPANY_CODE = rc.`CODE`
        LEFT JOIN backend.sys_user su ON su.ACCOUNT = rau.USERNAME
        WHERE
            su.IS_DELETED = 0
        AND su.TENANT_ID = #{ passport.tenantId }
        AND su.ACCOUNT = #{ account };
    </select>
    <select id="search" resultMap="userPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_USER`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <if test="request.keyword !=null">
                <include refid="whereForSearchList" />
            </if>
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="searchCount" resultType="java.lang.Long">
        SELECT
           COUNT(1)
        FROM
            `RW_USER`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <if test="request.keyword !=null">
                <include refid="whereForSearchList" />
            </if>
    </select>

    <select id="existByCode" resultType="java.lang.Long">
        SELECT
           COUNT(1)
        FROM
            `RW_USER`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` != #{id}
            AND `CODE` = #{code}
    </select>
    <select id="searchUserCount" resultType="java.lang.Long">
        SELECT
        COUNT(1)
        FROM
        backend.sys_user
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        <if test="request.account !=null &amp;&amp; request.account != ''">
        AND ACCOUNT = #{request.account}
        </if>
    </select>
    <select id="searchUserCountPwd" resultType="java.lang.Long">
        SELECT
        COUNT(1)
        FROM
        backend.sys_user
        WHERE
        `IS_DELETED`=0
        <if test="request.account !=null &amp;&amp; request.account != ''">
            AND ACCOUNT = #{request.account}
        </if>
    </select>
    <select id="getCompanyInfo" resultMap="companyPO">
        SELECT rc.ID,rc.NAME FROM rw_employee re
        INNER JOIN rw_company rc ON  re.COPANY_CODE = rc.CODE
        WHERE re.CODE = #{userCode}
        AND re.`TENANT_ID`=#{ passport.tenantId }
    </select>

    <select id="findUserRoleById" resultMap="userRolePO">
        SELECT
        su.ID,
        su.ACCOUNT,
        su.`NAME`,
        rp.ID AS PERMISSION_ID,
        rp.`NAME` AS ROLE_NAME,
        ru.`ROW_VERSION`
        FROM
        backend.sys_user su
        LEFT JOIN rw_user ru ON ru.ID = su.ID
        LEFT JOIN rw_permission rp ON rp.ID = ru.PERMISSION_ID
        WHERE
        su.`IS_DELETED` = 0
        AND su.`ID` = #{ request.id}
        AND su.`TENANT_ID`=#{ passport.tenantId }
    </select>

    <update id="update">
        UPDATE
            `RW_USER`
        SET
        <if test="request.isPartyMember!=null">
            `IS_PARTY_MEMBER`=#{ request.isPartyMember },
        </if>
        <if test="request.politicalStatus!=null">
            `POLITICAL_STATUS`=#{ request.politicalStatus },
        </if>
        <if test="request.partyId!=null">
            `PARTY_ID`=#{ request.partyId },
        </if>
        <if test="request.companyId!=null">
            `COMPANY_ID`=#{ request.companyId },
        </if>
        <if test="request.gender!=null">
            `GENDER`=#{ request.gender },
        </if>
        <if test="request.age!=null">
            `AGE`=#{ request.age },
        </if>
        <if test="request.education!=null">
            `EDUCATION`=#{ request.education },
        </if>
        <if test="request.occupation!=null">
            `OCCUPATION`=#{ request.occupation },
        </if>
        <if test="request.escortCount!=null">
            ESCORT_COUNT=#{ request.escortCount },
        </if>
        <if test="request.escortTime!=null">
            ESCORT_TIME=#{ request.escortTime },
        </if>
        <if test="request.isEmployee!=null">
            IS_EMPLOYEE=#{ request.isEmployee },
        </if>
        <if test="request.employeeNumber!=null">
            EMPLOYEE_NUMBER= #{ request.employeeNumber },
        </if>
        <if test="request.volunteerId!=null">
            VOLUNTEER_ID= #{ request.volunteerId },
        </if>
        <if test="request.isWeekStatus!=null">
            IS_WEEK_STATUS= #{ request.isWeekStatus },
        </if>
        <if test="request.weekEscortCount!=null">
            WEEK_ESCORT_COUNT= #{ request.weekEscortCount },
        </if>
        <if test="request.weekEscortTime!=null">
            WEEK_ESCORT_TIME= #{ request.weekEscortTime },
        </if>
        <if test="request.isMonthStatus!=null">
            IS_MONTH_STATUS= #{ request.isMonthStatus },
        </if>
        <if test="request.monthEscortCount!=null">
            MONTH_ESCORT_COUNT= #{ request.monthEscortCount },
        </if>
        <if test="request.monthEscortTime!=null">
            MONTH_ESCORT_TIME= #{ request.monthEscortTime },
        </if>
            `LAST_UPDATED_BY`=#{ passport.userId },
            `LAST_UPDATE_TIME`=SYSDATE(),
            `ROW_VERSION`=#{ request.rowVersion }+1
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` = #{ request.id }
            AND `ROW_VERSION` = #{ request.rowVersion }
    </update>

    <update id="updatePermission">
        UPDATE
        `RW_USER`
        SET
        <if test="request.permissionId!=null">
            `PERMISSION_ID`=#{ request.permissionId },
        </if>
        `LAST_UPDATED_BY`=#{ passport.userId },
        `LAST_UPDATE_TIME`=SYSDATE(),
        `ROW_VERSION`=#{ request.rowVersion }+1
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        AND `ID` = #{ request.id }
        AND `ROW_VERSION` = #{ request.rowVersion }
    </update>

    <select id="getByAccountList" resultMap="userPO">
        SELECT
        ru.*,su.ACCOUNT
        FROM
        backend.sys_user su
        LEFT JOIN rw_user ru ON ru.ID = su.ID
        LEFT JOIN rw_permission rp ON rp.ID = ru.PERMISSION_ID
        WHERE
        su.`IS_DELETED` = 0
        AND su.`ACCOUNT` in
        <foreach collection="list" item= "account" index ="index" open= "(" close =")" separator=",">
            #{account}
        </foreach >
        AND su.`TENANT_ID`=#{ passport.tenantId }
    </select>

    <select id="getUserPermissionStation" resultMap="stationPO">
        SELECT IFNULL(rps.STATION_ID,"") STATION_ID,IFNULL(rps.STATION_NAME,"") STATION_NAME FROM rw_user ru
        LEFT JOIN rw_permission_station rps ON ru.PERMISSION_ID = rps.PERMISSION_ID
        WHERE
        ru.`IS_DELETED` = 0
        AND rps.`IS_DELETED` = 0
        AND ru.`ID` = #{userId}
        AND ru.`TENANT_ID`=#{ passport.tenantId }
        AND rps.`TENANT_ID`=#{ passport.tenantId }
    </select>

</mapper>