SubtaskMapper.xml 4.6 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.task.dal.SubtaskMapper">

    <sql id="whereForFindList">
        <if test="request.tenantId!=null"> AND `TENANT_ID` =#{ request.tenantId }</if>
        <if test="request.taskId!=null"> AND `TASK_ID` =#{ request.taskId }</if>
    </sql>

    <sql id="whereForSearchList">
           (
           )
    </sql>

    <select id="find" resultMap="subtaskPO">
        SELECT * FROM
        (
            SELECT
                <include refid="entityColumnList"/>
            FROM
                `TSK_SUBTASK`
            WHERE
                `IS_DELETED`=0
                AND `TENANT_ID`=#{ passport.tenantId }
                <include refid="whereForFindList" />
        ) AS T

        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

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

    <select id="search" resultMap="subtaskPO">
        SELECT * FROM
        (
            SELECT
                <include refid="entityColumnList"/>
            FROM
                `TSK_SUBTASK`
            WHERE
                `IS_DELETED`=0
                AND `TENANT_ID`=#{ passport.tenantId }
                <if test="request.keyword !=null">
                      AND <include refid="whereForSearchList" />
                </if>

        ) AS T
        <if test="request.pageSize !=0">
            LIMIT #{ request.beginItemIndex }, #{ request.pageSize }
        </if>
    </select>

    <select id="searchCount"   resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `TSK_SUBTASK`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND <include refid="whereForSearchList" />
    </select>

    <select id="existByCode" resultType="java.lang.Long">
        SELECT
            COUNT(*)
        FROM
            `TSK_SUBTASK`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND  `ID` != #{id}
            AND `CODE` = #{code}
    </select>


    <update id="update">
        UPDATE
            `TSK_SUBTASK`
        SET
        `TASK_ID`=#{ request.taskId },
        `NAME`=#{ request.name },
        `IS_DONE`=#{ request.isDone },
        `DO_TIME`=#{ request.doTime },
        `DO_USER_ID`=#{ request.doUserId },
        `DO_USER_NAME`=#{ request.doUserName },
        `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="doneByTaskId">
        UPDATE
            `TSK_SUBTASK`
        SET
        `IS_DONE`=#{ request.isDone },
        `DO_TIME`=#{ request.doTime },
        `DO_USER_ID`=#{ request.doUserId },
        `DO_USER_NAME`=#{ request.doUserName },
        `LAST_UPDATED_BY`=#{ passport.userId }
        ,`LAST_UPDATE_TIME`=SYSDATE()
        ,`ROW_VERSION`=`ROW_VERSION`+1
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `TASK_ID` = #{ request.taskId }
    </update>


    <update id="done">
        UPDATE
        `TSK_SUBTASK`
        SET
        `IS_DONE`=#{ request.isDone },
        `DO_USER_ID`=#{ request.doUserId },
        `DO_USER_NAME`=#{ request.doUserName },
        `DO_TIME`=#{ request.doTime },
        `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="deleteByTaskId">
        UPDATE
        `TSK_SUBTASK`
        SET
        `IS_DELETED` = 1
        ,`LAST_UPDATED_BY`=#{ passport.userId }
        ,`LAST_UPDATE_TIME`=SYSDATE()
        WHERE
        `IS_DELETED`=0
        AND `TENANT_ID`=#{ passport.tenantId }
        AND `TASK_ID` IN
        <foreach collection="taskIds" item= "taskId" index ="index" open= "(" close =")" separator=",">
            #{taskId}
        </foreach >
    </update>


</mapper>