OrganizationMapper.xml 4.5 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.OrganizationMapper">

    <sql id="whereForFindList">
        <if test="request.code!=null"> AND `CODE` LIKE CONCAT ('%',#{ request.code  },'%')</if>
        <if test="request.pId!=null"> AND `PID`  = #{ request.pId }</if>
        <if test="request.type!=null"> AND `TYPE` LIKE CONCAT ('%',#{ request.type  },'%')</if>
        <if test="request.name!=null"> AND `NAME` LIKE CONCAT ('%',#{ request.name  },'%')</if>
        <if test="request.description!=null"> AND `DESCRIPTION` LIKE CONCAT ('%',#{ request.description  },'%')</if>
    </sql>

    <sql id="whereForSearchList">
        AND
        (
            1=0
            OR `CODE` LIKE CONCAT ('%',#{  request.keyword  },'%')  
            OR `TYPE` LIKE CONCAT ('%',#{  request.keyword  },'%')  
            OR `NAME` LIKE CONCAT ('%',#{  request.keyword  },'%')  
            OR `DESCRIPTION` LIKE CONCAT ('%',#{  request.keyword  },'%')  
        )
    </sql>

    <select id="find" resultMap="organizationPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_ORGANIZATION`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <include refid="whereForFindList" />
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
        ORDER BY ID
    </select>

    <select id="findFather" resultMap="organizationPO">
        SELECT
        <include refid="entityColumnList"/>
        FROM
        `RW_ORGANIZATION`
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        AND PID IS NULL
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
        ORDER BY ID
    </select>

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

    <select id="findFatherCount" resultType="java.lang.Long">
        SELECT
        COUNT(1)
        FROM
        `RW_ORGANIZATION`
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        AND PID IS NULL
    </select>

    <select id="search" resultMap="organizationPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `RW_ORGANIZATION`
        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="findVolunteer" resultMap="volunteerPO">
        SELECT
        `CODE`,`NAME`,`DESCRIPTION`
        FROM
        `RW_VOLUNTEER`
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
    </select>

    <select id="searchCount" resultType="java.lang.Long">
        SELECT
           COUNT(1)
        FROM
            `RW_ORGANIZATION`
        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_ORGANIZATION`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` != #{id}
            AND `CODE` = #{code}
    </select>

    <update id="update">
        UPDATE
            `RW_ORGANIZATION`
        SET
            `PID`=#{ request.pid },
            `CODE`=#{ request.code },
            `TYPE`=#{ request.type },
            `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 }
            AND `ROW_VERSION` = #{ request.rowVersion }
    </update>


</mapper>