TaskUserMapper.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.task.dal.TaskUserMapper">

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

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

    <select id="find" resultMap="taskUserPO">
        SELECT
            <include refid="entityColumnList"/>
        FROM
            `TSK_TASK_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
            `TSK_TASK_USER`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            <include refid="whereForFindList" />
    </select>

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

    <update id="update">
        UPDATE
            `TSK_TASK_USER`
        SET
        <if test="request.isTop!=null">
            `IS_TOP`=#{ request.isTop },
        </if>
        <if test="request.topIndex!=null">
            `TOP_INDEX`=#{ request.topIndex },
        </if>
        <if test="request.taskId!=null">
            `TASK_ID`=#{ request.taskId },
        </if>
        <if test="request.taskName!=null and request.taskName!=''">
            `TASK_NAME`=#{ request.taskName },
        </if>
        <if test="request.userId!=null ">
            `USER_ID`=#{ request.userId },
        </if>
        <if test="request.userName!=null and request.userName!=''">
            `USER_NAME`=#{ request.userName },
        </if>
        <if test="request.userRole!=null and request.userRole!=''">
            `USER_ROLE`=#{ request.userRole },
        </if>
        <if test="request.historyCount!=null ">
            `HISTORY_COUNT`=#{ request.historyCount },
        </if>
        <if test="request.commentCount!=null ">
            `COMMENT_COUNT`=#{ request.commentCount },
        </if>
        <if test="request.lastDynamicTime!=null ">
            `LAST_DYNAMIC_TIME`=#{ request.lastDynamicTime },
        </if>
        <if test="request.isTimeAlarm!=null ">
        `IS_TIME_ALARM`=#{ request.isTimeAlarm },
        </if>
        <if test="request.alarmTime!=null ">
        `ALARM_TIME`=#{ request.alarmTime },
        </if>
        <if test="request.isDynamicNotification!=null ">
        `IS_DYNAMIC_NOTIFICATION`=#{ request.isDynamicNotification },
        </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="updateCount">
        UPDATE
        `TSK_TASK_USER`
        SET

        <if test="request.historyCount!=null ">
            `HISTORY_COUNT`=#{ request.historyCount },
        </if>
        <if test="request.commentCount!=null ">
            `COMMENT_COUNT`=#{ request.commentCount },
        </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="updateBatch">
        UPDATE
            `TSK_TASK_USER`
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="`TASK_ID` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.taskId}
                </foreach>
            </trim>
            <trim prefix="`TASK_NAME` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.taskName}
                </foreach>
            </trim>
            <trim prefix="`USER_ID` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.userId}
                </foreach>
            </trim>
            <trim prefix="`USER_NAME` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.userName}
                </foreach>
            </trim>
            <trim prefix="`HISTORY_COUNT` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.historyCount}
                </foreach>
            </trim>
            <trim prefix="`COMMENT_COUNT` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.commentCount}
                </foreach>
            </trim>
            <trim prefix="`LAST_DYNAMIC_TIME` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{item.lastDynamicTime}
                </foreach>
            </trim>
            <trim prefix="`LAST_UPDATED_BY` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{passport.userId}
                </foreach>
            </trim>
            <trim prefix="`LAST_UPDATE_TIME` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN SYSDATE()
                </foreach>
            </trim>
            <trim prefix="`ROW_VERSION` = case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    WHEN (
                    `IS_DELETED`=0
                    AND `TENANT_ID`=#{ passport.tenantId }
                    AND `ID` = #{ item.id }
                    AND `ROW_VERSION` = #{ item.rowVersion }
                    )
                    THEN #{ item.rowVersion } + 1
                </foreach>
            </trim>
        </trim>
        WHERE
        <foreach collection="list" separator="or" item="item" index="index">
            (
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` = #{ item.id }
            AND `ROW_VERSION` = #{ item.rowVersion }
            )
        </foreach>
    </update>


    <update id="deleteByTaskId">
        UPDATE
        `TSK_TASK_USER`
        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>
    <update id="top">
        UPDATE
        `TSK_TASK_USER`
        SET
        <if test="request.isTop!=null">
            `IS_TOP`=#{ request.isTop },
        </if>
        <if test="request.topIndex!=null">
            `TOP_INDEX`=#{ request.topIndex },
        </if>
        `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>