<?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.zcloud.mapper.datasource.video.VideoManagerMapper">

    <!--表名 -->
    <sql id="tableName">
        BUS_VIDEOMANAGER
    </sql>

    <!--数据字典表名 -->
    <sql id="dicTableName">
        SYS_DICTIONARIES
    </sql>

    <!-- 字段 -->
    <sql id="Field">
        f
        .
        CORPINFO_ID
        ,
		f.VIDEONAME,
		f.VIDEOURL,
		f.OPDATE,
		f.OPUSER,
		f.ISDELETE,
		f.ISSHOW,
		f.GBS_NUM,
		f.VIDEOMANAGER_ID,
		f.PLS_ID,
		f.lon,
		f.lat,
		f.alt,
		f.CODE
    </sql>

    <!-- 字段用于新增 -->
    <sql id="Field2">
        CORPINFO_ID
        ,
		VIDEONAME,
		VIDEOURL,
		OPDATE,
		OPUSER,
		ISDELETE,
		ISSHOW,
		VIDEOMANAGER_ID,
		PLS_ID,
		lon,
		lat,
		alt,
		CODE
    </sql>

    <!-- 字段值 -->
    <sql id="FieldValue">
        #{CORPINFO_ID},
        #{VIDEONAME},
        #{VIDEOURL},
        #{OPDATE},
        #{OPUSER},
        #{ISDELETE},
        #{ISSHOW},
        #{VIDEOMANAGER_ID},
        #{PLS_ID},
        #{lon},
        #{lat},
        #{alt},
        #{CODE}
    </sql>

    <!-- 新增-->
    <insert id="save" parameterType="pd">
        insert into
        <include refid="tableName"></include>
        (
        <include refid="Field2"></include>
        ) values (
        <include refid="FieldValue"></include>
        )
    </insert>

    <!-- 删除-->
    <delete id="delete" parameterType="pd">
        update
        <include refid="tableName"></include>
        set
        ISDELETE = '1'
        where
        VIDEOMANAGER_ID = #{VIDEOMANAGER_ID}
    </delete>

    <!-- 修改 -->
    <update id="edit" parameterType="pd">
        update
        <include refid="tableName"></include>
        set
        <if test="CORPINFO_ID != null and CORPINFO_ID != ''"><!-- 关键词检索 -->
            CORPINFO_ID = #{CORPINFO_ID},
        </if>
        <if test="VIDEONAME != null and VIDEONAME != ''"><!-- 关键词检索 -->
            VIDEONAME = #{VIDEONAME},
        </if>
        <if test="VIDEOURL != null and VIDEOURL != ''"><!-- 关键词检索 -->
            VIDEOURL = #{VIDEOURL},
        </if>
        <if test="ISSHOW != null and ISSHOW != ''"><!-- 关键词检索 -->
            ISSHOW = #{ISSHOW},
        </if>
        <if test="CODE != null and CODE != ''"><!-- 关键词检索 -->
            CODE = #{CODE},
        </if>
        <if test="lon != null and lon != ''"><!-- 关键词检索 -->
            lon = #{lon},
        </if>
        <if test="lat != null and lat != ''"><!-- 关键词检索 -->
            lat = #{lat},
        </if>
        <if test="alt != null and alt != ''"><!-- 关键词检索 -->
            alt = #{alt},
        </if>
        VIDEOMANAGER_ID = VIDEOMANAGER_ID
        where
        VIDEOMANAGER_ID = #{VIDEOMANAGER_ID}
    </update>

    <!-- 修改 -->
    <update id="editPls" parameterType="pd">
        update
        <include refid="tableName"></include>
        set
        PLS_ID = #{PLS_ID}
        where
        VIDEOMANAGER_ID = #{VIDEOMANAGER_ID}
    </update>

    <update id="editIsShowBycorpinfoid" parameterType="pd">
        update
        <include refid="tableName"></include>
        set ISSHOW= #{ISSHOW}
        where
        CORPINFO_ID = #{CORPINFO_ID}
    </update>
    <update id="editIsShow" parameterType="pd">
        update
        <include refid="tableName"></include>
        set ISSHOW= #{ISSHOW}
        where
        VIDEOMANAGER_ID = #{VIDEOMANAGER_ID}
    </update>
    <!-- 通过ID获取数据 -->
    <select id="findById" parameterType="pd" resultType="pd">
        select
        <include refid="Field"></include>
        from
        <include refid="tableName"></include>
        f
        where
        f.VIDEOMANAGER_ID = #{VIDEOMANAGER_ID} and
        f.ISDELETE = '0'
        <if test="CORPINFO_ID != null and CORPINFO_ID != ''"><!-- 关键词检索 -->
            and f.CORPINFO_ID=#{CORPINFO_ID}
        </if>
        <!--		<if test="ISSHOW != null and ISSHOW != ''">&lt;!&ndash; 关键词检索 &ndash;&gt;-->
        <!--			and f.ISSHOW=#{ISSHOW}-->
        <!--		</if>-->
    </select>

    <!-- 列表 -->
    <select id="datalistPage" parameterType="page" resultType="pd">
        select
        <include refid="Field"></include>,
        c.CORP_NAME
        from
        <include refid="tableName"></include>
        f left join bus_CORP_INFO c on f.CORPINFO_ID=c.CORPINFO_ID
        where f.ISDELETE = '0'
        <if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''"><!-- 关键词检索 -->
            and f.CORPINFO_ID=#{pd.CORPINFO_ID}
        </if>
		<if test="pd.OUTSOURCED_ID != null and pd.OUTSOURCED_ID != ''"><!-- 关键词检索 -->
			and f.OUTSOURCED_ID=#{pd.OUTSOURCED_ID}
		</if>
        <if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
            and
            (
            VIDEONAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
            <!--	根据需求自己加检索条件
             or
            字段2 LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
        -->
            )
        </if>
        order by f.ISSHOW desc
    </select>

    <!-- 列表(全部) -->
    <select id="listAll" parameterType="pd" resultType="pd">
        select
        <include refid="Field"></include>
        from
        <include refid="tableName"></include>
        f
        where f.ISDELETE = '0'
        <if test="CORPINFO_ID != null and CORPINFO_ID != ''"><!-- 关键词检索 -->
            and f.CORPINFO_ID=#{CORPINFO_ID}
        </if>
        <if test="ISSHOW != null and ISSHOW != ''"><!-- 关键词检索 -->
            and f.ISSHOW=#{ISSHOW}
        </if>
    </select>
    <select id="findByCode" parameterType="pd" resultType="pd">
        SELECT
            f.*,
            e.CHECK_NO
        FROM
            bus_videomanager f
                LEFT JOIN bus_eightwork_videomanager e ON f.VIDEOMANAGER_ID = e.VIDEOMANAGER_ID
                AND e.ISDELETE = 0
        where
        f.CODE=#{CODE}
    </select>
    <select id="getCameraAlarmCount" resultType="com.zcloud.entity.PageData">
        SELECT COUNT(1) count,
	a.ISTRUE type
        FROM
            bus_aiwarning a
        WHERE
            a.ISDELETE = 0
          AND a.CORPINFO_ID = #{CORPINFO_ID}
        GROUP BY
            a.ISTRUE
    </select>
    <select id="getCameraAlarmTypeCount" resultType="com.zcloud.entity.PageData">
        SELECT ROUND((COUNT(a.TYPE) / (SELECT COUNT(*)
                                       FROM bus_aiwarning
                                       WHERE CORPINFO_ID =
                                             #{CORPINFO_ID}
                                         AND ISDELETE = 0)) * 100, 2) AS PERCENTAGE,
               a.TYPE
        FROM bus_aiwarning a
        WHERE a.ISDELETE = 0
          AND a.CORPINFO_ID = #{CORPINFO_ID}
        GROUP BY a.TYPE;
    </select>
    <select id="getCameraAlarmTimeCount" resultType="com.zcloud.entity.PageData">
        <foreach item="item" index="index" collection="generateTimeArray" separator="UNION">
            SELECT
            count( 1 ) MONTH_COUNT,
            #{item.month} MONTH
            FROM
            bus_aiwarning a
            WHERE
            a.ISDELETE = 0
            AND a.CORPINFO_ID = #{CORPINFO_ID}
            AND WARNING_TIME BETWEEN #{item.dateBegin}
            AND #{item.dateEnd}
        </foreach>
    </select>
    <select id="getCameraTopToShow" resultType="com.zcloud.entity.PageData">
        select * from bus_videomanager where ISSHOW = 1 and CORPINFO_ID = #{CORPINFO_ID} and ISDELETE = 0
    </select>

    <!-- 批量删除 -->
    <delete id="deleteAll" parameterType="String">
        update
        <include refid="tableName"></include>
        set
        ISDELETE = '1'
        where
        VIDEOMANAGER_ID in
        <foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>
    <!-- 修改 -->
    <update id="editZhiding" parameterType="pd">
        UPDATE bus_videomanager
        SET ISSHOW = (CASE WHEN VIDEOMANAGER_ID = #{VIDEOMANAGER_ID} THEN 1 ELSE 0 END)
        where CORPINFO_ID = #{CORPINFO_ID}
    </update>

	<!-- 列表 -->
	<select id="dataApplistPage" parameterType="page" resultType="pd">
		select
		<include refid="Field"></include>
		from
		<include refid="tableName"></include> f
		where f.ISDELETE = '0'
		<if test="pd.OUTSOURCED_ID != null and pd.OUTSOURCED_ID != ''"><!-- 关键词检索 -->
			and f.OUTSOURCED_ID=#{pd.OUTSOURCED_ID}
		</if>
		<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
			and
			(
			f.VIDEONAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
			)
		</if>
	</select>
    <select id="getVideoPassWordByCorp" resultType="com.zcloud.entity.PageData">
        select * from video_password where CORPINFO_ID = #{CORPINFO_ID}
    </select>

    <update id="updateAiByOUTSOURCED_ID" parameterType="pd">
		update
		<include refid="tableName"></include>
		set
		PLATFORMVIDEOMANAGEMENT_ID = null,
		VIDEO_RESOURCES_ID = null
		where
		OUTSOURCED_ID = #{OUTSOURCED_ID}
	</update>
    <update id="setVideoPassWord">
        INSERT INTO video_password ( CORPINFO_ID, PASSWORD,CREATOR,CREATTIME,OPERATOR,OPERATTIME )
        VALUES ( #{CORPINFO_ID}, #{PASSWORD},#{CREATOR},#{CREATTIME},#{OPERATOR},#{OPERATTIME} )
            ON DUPLICATE KEY UPDATE PASSWORD = VALUES(PASSWORD), OPERATOR = VALUES(OPERATOR),OPERATTIME = VALUES(OPERATTIME)
    </update>
</mapper>
