AnnouncementMapperAuto.xml 7.28 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.announcement.dal.AnnouncementMapper">

    <resultMap id="announcementPO" type="com.xiniunet.announcement.po.AnnouncementPO">
        
        <id column="ID" jdbcType="NUMERIC" property="id"/>
        <result column="TENANT_ID" jdbcType="NUMERIC" property="tenantId"/>
        <result column="TITLE" jdbcType="VARCHAR" property="title"/>
        <result column="CONTENT" jdbcType="VARCHAR" property="content"/>
        <result column="OWNER_USER_ID" jdbcType="NUMERIC" property="ownerUserId"/>
        <result column="OWNER_USER_NAME" jdbcType="VARCHAR" property="ownerUserName"/>
        <result column="ANNOUNCEMENT_TIME" jdbcType="TIMESTAMP" property="announcementTime"/>
        <result column="UN_CONFIRM_COUNT" jdbcType="INTEGER" property="unConfirmUserCount"/>
        <result column="IS_CONFIRM" jdbcType="TINYINT" property="isConfirm"/>
        <result column="IS_CANCEL" jdbcType="TINYINT" property="isCancel"/>
        <result column="IS_REVOKE" jdbcType="TINYINT" property="isRevoke"/>
        <result column="REVOKE_USER_ID" jdbcType="NUMERIC" property="revokeUserId"/>
        <result column="REVOKE_USER_NAME" jdbcType="VARCHAR" property="revokeUserName"/>
        <result column="REVOKE_REASON" jdbcType="VARCHAR" property="revokeReason"/>
        <result column="REVOKE_TIME" jdbcType="TIMESTAMP" property="revokeTime"/>
        <result column="IS_ALL_CONFIRM" jdbcType="TINYINT" property="isAllConfirm"/>
        <result column="ROW_VERSION" jdbcType="NUMERIC" property="rowVersion"/>
        <result column="IS_DELETED" jdbcType="TINYINT" property="isDeleted"/>
        <result column="CREATED_BY" jdbcType="NUMERIC" property="createdBy"/>
        <result column="CREATION_TIME" jdbcType="TIMESTAMP" property="creationTime"/>
        <result column="LAST_UPDATED_BY" jdbcType="NUMERIC" property="lastUpdatedBy"/>
        <result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
    </resultMap>

    <sql id="entityColumnList">
         `ID`, `TENANT_ID`, `TITLE`, `CONTENT`, `OWNER_USER_ID`, `OWNER_USER_NAME`, `ANNOUNCEMENT_TIME`,  `IS_REVOKE`, `REVOKE_USER_ID`, `REVOKE_USER_NAME`, `REVOKE_REASON`, `REVOKE_TIME`, `IS_ALL_CONFIRM`,
         `ROW_VERSION`,`IS_DELETED`,`CREATED_BY`,`CREATION_TIME`,`LAST_UPDATED_BY`,`LAST_UPDATE_TIME`
    </sql>
    <sql id="entityByUserColumnList">
        ta.`ID`, ta.`TENANT_ID`, ta.`TITLE`, ta.`CONTENT`, ta.`OWNER_USER_ID`, ta.`OWNER_USER_NAME`, ta.`ANNOUNCEMENT_TIME`,  ta.`IS_REVOKE`, ta.`REVOKE_USER_ID`, ta.`REVOKE_USER_NAME`, ta.`REVOKE_REASON`, ta.`REVOKE_TIME`, ta.`IS_ALL_CONFIRM`,
        ta.`ROW_VERSION`,ta.`IS_DELETED`,ta.`CREATED_BY`,ta.`CREATION_TIME`,ta.`LAST_UPDATED_BY`,ta.`LAST_UPDATE_TIME`,IFNULL(cta.UN_CONFIRM_COUNT,0) UN_CONFIRM_COUNT
    </sql>
    <insert id="insert">
        INSERT INTO
            `TRX_ANNOUNCEMENT`
            (
            <include refid="entityColumnList" />
            )
        VALUES
        (
        #{ announcement.id },
        #{ passport.tenantId },
        #{ announcement.title },
        #{ announcement.content },
        #{ announcement.ownerUserId },
        #{ announcement.ownerUserName },
        #{ announcement.announcementTime },
        #{ announcement.isRevoke },
        #{ announcement.revokeUserId },
        #{ announcement.revokeUserName },
        #{ announcement.revokeReason },
        #{ announcement.revokeTime },
        #{ announcement.isAllConfirm },
        0,0,#{ passport.userId },sysdate(),null,null
        )
    </insert>

    <insert id="insertBatch">
        INSERT INTO
            `TRX_ANNOUNCEMENT`
            (
            <include refid="entityColumnList" />
            )
        VALUES
        <foreach collection="list" item= "announcement" index ="index" separator=",">
            (
            #{ announcement.id },
            #{ passport.tenantId },
            #{ announcement.title },
            #{ announcement.content },
            #{ announcement.ownerUserId },
            #{ announcement.ownerUserName },
            #{ announcement.announcementTime },
            #{ announcement.isRevoke },
            #{ announcement.revokeUserId },
            #{ announcement.revokeUserName },
            #{ announcement.revokeReason },
            #{ announcement.revokeTime },
            #{ announcement.isAllConfirm },
            0,0,#{ passport.userId },sysdate(),null,null
            )
        </foreach >
    </insert>


    <update id="delete">
        UPDATE
            `TRX_ANNOUNCEMENT`
        SET
            `IS_DELETED` = 1
            ,`LAST_UPDATED_BY`=#{ passport.userId }
            ,`LAST_UPDATE_TIME`=SYSDATE()
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` = #{id}
    </update>

    <update id= "deleteBatch">
        UPDATE
            `TRX_ANNOUNCEMENT`
        SET
            `IS_DELETED` = 1
            ,`LAST_UPDATED_BY`=#{ passport.userId }
            ,`LAST_UPDATE_TIME`=SYSDATE()
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
            AND `ID` in
        <foreach collection="list" item= "id" index ="index" open= "(" close =")" separator=",">
            #{id}
        </foreach >
    </update >


    <select id="getById" resultMap="announcementPO">
        SELECT
            <include refid="entityColumnList" />
        FROM
            `TRX_ANNOUNCEMENT`
        WHERE
            `IS_DELETED` = 0
            AND `ID` = #{id}
            AND `TENANT_ID`=#{ passport.tenantId }
    </select>

    <select id="getInfoById" resultMap="announcementPO">
        SELECT
        <include refid="entityByUserColumnList" />,tau.IS_CANCEL,tau.IS_CONFIRM
		FROM
		`TRX_ANNOUNCEMENT` ta
		LEFT JOIN trx_announcement_user tau
		ON ta.ID = tau.ANNOUNCEMENT_ID and tau.IS_DELETED = 0 and tau.`TENANT_ID`=#{ passport.tenantId }
		LEFT JOIN (
          SELECT ANNOUNCEMENT_ID,IS_DELETED,TENANT_ID,count(1) UN_CONFIRM_COUNT from trx_announcement_user where IS_CONFIRM = 0 GROUP BY ANNOUNCEMENT_ID
        ) cta
		ON cta.ANNOUNCEMENT_ID = ta.ID and cta.IS_DELETED = 0 and cta.`TENANT_ID`=#{ passport.tenantId }
		WHERE
		ta.`IS_DELETED` = 0
		AND ta.`ID` =#{id}
		AND ta.`TENANT_ID`=#{ passport.tenantId }
		AND tau.USER_ID =#{ passport.userId }
    </select>
    <select id="getListByIds" resultMap="announcementPO">
        SELECT
            <include refid="entityColumnList" />
        FROM
            `TRX_ANNOUNCEMENT`
        WHERE
        `IS_DELETED` = 0
        AND `ID` in
        <foreach collection="list" item= "id" index ="index" open= "(" close =")" separator=",">
            #{id}
        </foreach >
        
            AND `TENANT_ID`=#{ passport.tenantId }
    </select>

    <select id="getAllList" resultMap="announcementPO">
        SELECT
            <include refid="entityColumnList" />
        FROM
            `TRX_ANNOUNCEMENT`
        WHERE
            `IS_DELETED`=0
            AND `TENANT_ID`=#{ passport.tenantId }
    </select>

    <select id="existById"  resultType="java.lang.Long">
        SELECT
            COUNT(1)
        FROM
            `TRX_ANNOUNCEMENT`
        WHERE
            `IS_DELETED`=0
            AND `ID`=#{id}
            AND `TENANT_ID`=#{ passport.tenantId }
    </select>
</mapper>