PermissionMapper.xml 4.67 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.PermissionMapper">

    <sql id="whereForFindList">
    </sql>

    <sql id="whereForSearchList">
        AND
        (
            1=0
        )
    </sql>

    <select id="find" resultMap="permissionPO">
        SELECT
          RP.`ID`, `NAME`, `DESCRIPTION`, GROUP_CONCAT(RPL.STATION_ID SEPARATOR ",") AS  LINE_ID,GROUP_CONCAT(RPL.STATION_NAME SEPARATOR ",") AS LINE_NAME
        FROM
            `RW_PERMISSION` RP
        LEFT JOIN `RW_PERMISSION_STATION` RPL ON RP.ID = RPL.PERMISSION_ID
        WHERE
            RP.`IS_DELETED`=0
            AND RP.`TENANT_ID`=#{ passport.tenantId }
            AND RPL.`IS_DELETED`=0
            <if test="request.categoryIdList  != null and request.categoryIdList.size() > 0  ">
                AND RPL.STATION_ID IN
                <foreach collection="request.categoryIdList" item= "id" index ="index" open= "(" close =")" separator=",">
                    #{id}
                </foreach >
            </if>
            <if test="request.name !=null and request.name != ''">
                AND RP.NAME LIKE CONCAT ('%',#{  request.name  },'%')
            </if>
        GROUP BY RP.ID
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="findPermission" resultMap="permissionPO">
        SELECT
        <include refid="entityColumnList"/>
        FROM
        `RW_PERMISSION`
        WHERE
        `IS_DELETED`=0
        <if test="request.id !=null and request.id != ''">
            AND ID = #{request.id}
        </if>
    </select>

    <select id="findCount" resultType="java.lang.Long">
        SELECT
        COUNT(1) FROM (
            SELECT
            COUNT(1)
            FROM
            `RW_PERMISSION` RP
            LEFT JOIN `RW_PERMISSION_STATION` RPL ON RP.ID = RPL.PERMISSION_ID
            WHERE
            RP.`IS_DELETED`=0
            AND RP.`TENANT_ID`=#{ passport.tenantId }
            AND RPL.`IS_DELETED`=0
            <if test="request.categoryIdList  != null and request.categoryIdList.size() > 0  ">
                AND RPL.STATION_ID IN
                <foreach collection="request.categoryIdList" item= "id" index ="index" open= "(" close =")" separator=",">
                    #{id}
                </foreach >
            </if>
            <if test="request.name !=null and request.name != ''">
                AND RP.NAME LIKE CONCAT ('%',#{  request.name  },'%')
            </if>
            GROUP BY RP.ID)t
    </select>

    <select id="search" resultMap="permissionPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_PERMISSION`
        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(*)
        FROM
            `RW_PERMISSION`
        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(*)
        FROM
            `RW_PERMISSION`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` != #{id}
            AND `CODE` = #{code}
    </select>

    <update id="update">
        UPDATE
            `RW_PERMISSION`
        SET
            `NAME`=#{ request.name },
            `DESCRIPTION`=#{ request.description },
            `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 }
    </update>

    <select id="findPermissionByNameList" resultMap="permissionPO">
        SELECT
        <include refid="entityColumnList"/>
        FROM
        `RW_PERMISSION`
        WHERE
        `IS_DELETED`=0
        AND `NAME` in
        <foreach collection="list" item= "name" index ="index" open= "(" close =")" separator=",">
            #{name}
        </foreach >
        AND `TENANT_ID`=#{ passport.tenantId }
    </select>

</mapper>