<?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.bootdo.blog.dao.ContentDao">

    <select id="get" resultType="com.bootdo.blog.domain.ContentDO">
        select `cid`,
               `title`,
               `slug`,
               `created`,
               `modified`,
               `content`,
               `type`,
               `tags`,
               `categories`,
               `hits`,
               `comments_num`,
               `allow_comment`,
               `allow_ping`,
               `allow_feed`,
               `status`,
               `author`,
               `gtm_create`,
               `gtm_modified`
        from blog_content
        where cid = #{value}
    </select>

    <select id="list" resultType="com.bootdo.blog.domain.ContentDO">
        select
        `cid`,`title`,`slug`,`created`,`modified`,`type`,`tags`,`categories`,`hits`,`comments_num`,`allow_comment`,`allow_ping`,`allow_feed`,`status`,`author`,`gtm_create`,`gtm_modified`
        from blog_content
        <where>
            <if test="cid != null and cid != ''">and cid = #{cid}</if>
            <if test="title != null and title != ''">and title = #{title}</if>
            <if test="slug != null and slug != ''">and slug = #{slug}</if>
            <if test="created != null and created != ''">and created = #{created}</if>
            <if test="modified != null and modified != ''">and modified = #{modified}</if>
            <if test="content != null and content != ''">and content = #{content}</if>
            <if test="type != null and type != ''">and type = #{type}</if>
            <if test="tags != null and tags != ''">and tags = #{tags}</if>
            <if test="categories != null and categories != ''">and categories = #{categories}</if>
            <if test="hits != null and hits != ''">and hits = #{hits}</if>
            <if test="commentsNum != null and commentsNum != ''">and comments_num = #{commentsNum}</if>
            <if test="allowComment != null and allowComment != ''">and allow_comment = #{allowComment}</if>
            <if test="allowPing != null and allowPing != ''">and allow_ping = #{allowPing}</if>
            <if test="allowFeed != null and allowFeed != ''">and allow_feed = #{allowFeed}</if>
            <if test="status != null and status != ''">and status = #{status}</if>
            <if test="author != null and author != ''">and author = #{author}</if>
            <if test="gtmCreate != null and gtmCreate != ''">and gtm_create = #{gtmCreate}</if>
            <if test="gtmModified != null and gtmModified != ''">and gtm_modified = #{gtmModified}</if>
        </where>
        <choose>
            <when test="sort != null and sort.trim() != ''">
                order by ${sort} ${order}
            </when>
            <otherwise>
                order by cid desc
            </otherwise>
        </choose>
        <if test="offset != null and limit != null">
            limit ${offset}, ${limit}
        </if>
    </select>

<!--    门户 获取首页轮播图列表 根据已发布 且 更新时间倒序 取四条-->
    <select id="getCarousel" resultType="com.bootdo.portal.vo.IndexCarouselVO">
        SELECT
            `cid`,
            `title`,
            `slug`,
            `created`,
            `modified`,
            `type`,
            `tags`,
            `categories`,
            `hits`,
            `comments_num`,
            `allow_comment`,
            `allow_ping`,
            `allow_feed`,
            `status`,
            `author`,
            `gtm_create`,
            `gtm_modified`
        FROM
            blog_content
        WHERE
            categories = '轮播'
            AND status = 1
        ORDER BY
            gtm_modified DESC
            LIMIT 0, 4
    </select>

<!--    根据位置获取文章列表 取四条-->
    <select id="getArticleByTags" resultType="com.bootdo.portal.vo.IndexCarouselVO">
        SELECT
            `cid`,
            `title`,
            `slug`,
            `created`,
            `modified`,
            `type`,
            `tags`,
            `categories`,
            `hits`,
            `comments_num`,
            `allow_comment`,
            `allow_ping`,
            `allow_feed`,
            `status`,
            `author`,
            `gtm_create`,
            `gtm_modified`
        FROM
            blog_content
        <where>
            <if test="position != null and position == 0">and tags = '位置一'</if>
            <if test="position != null and position == 1">and tags = '位置二'</if>
            <if test="position != null and position == 2">and tags = '位置三'</if>
            <if test="position != null and position == 3">and tags = '位置四'</if>
            AND categories = '文章'
            AND status = 1
        </where>
        ORDER BY
            gtm_modified DESC
            LIMIT 0, 4
    </select>

    <!--    统计热门企业 前四-->
    <select id="getPopularEnterprise" resultType="com.bootdo.portal.vo.NameAndCountVO">
        SELECT
            a.REPORTER_UNIT AS NAME,
            COUNT( a.ID ) AS countNum
        FROM
            tf_data a,
            tf_unit b
        WHERE
            a.`REPORTER_UNIT` = b.`REPORTER_UNIT`
            AND a.`UNIT_PROVINCE` = b.`UNIT_PROVINCE`
            AND a.`UNIT_CITY` = b.`UNIT_CITY`
            AND a.`UNIT_OTHER` = b.`UNIT_OTHER`
            AND a.`DATA_INDUSTRY` = b.`DATA_INDUSTRY`
            AND a.`INDUSTRY_TYPE` = b.`INDUSTRY_TYPE`
            AND a.`UPLOAD_USERID` = b.`UPLOAD_USERID`
            AND a.DATA_STATUS = '3'
            AND a.DELETE_STATUS = 0
        GROUP BY
            a.REPORTER_UNIT
        ORDER BY
            countNum DESC
            LIMIT 0, 4
    </select>

<!--    统计热门行业 前四-->
    <select id="getPopularIndustry" resultType="com.bootdo.portal.vo.NameAndCountVO">
        SELECT
            a.INDUSTRY_TYPE AS NAME,
            COUNT( a.ID ) AS countNum
        FROM
            tf_data a,
            tf_unit b
        WHERE
            a.`REPORTER_UNIT` = b.`REPORTER_UNIT`
            AND a.`UNIT_PROVINCE` = b.`UNIT_PROVINCE`
            AND a.`UNIT_CITY` = b.`UNIT_CITY`
            AND a.`UNIT_OTHER` = b.`UNIT_OTHER`
            AND a.`DATA_INDUSTRY` = b.`DATA_INDUSTRY`
            AND a.`INDUSTRY_TYPE` = b.`INDUSTRY_TYPE`
            AND a.`UPLOAD_USERID` = b.`UPLOAD_USERID`
            AND a.DATA_STATUS = '3'
            AND a.DELETE_STATUS = 0
        GROUP BY
            a.INDUSTRY_TYPE
        ORDER BY
            countNum DESC
            LIMIT 0, 4
    </select>


<select id="portalPoliciesRegulations" resultType="com.bootdo.portal.vo.PoliciesAndRegulationsVO">
        SELECT
            `cid`,
            `title`,
            `slug`,
            `created`,
            `modified`,
            `type`,
            `tags`,
            `categories`,
            `hits`,
            `comments_num`,
            `allow_comment`,
            `allow_ping`,
            `allow_feed`,
            `status`,
            `author`,
            `gtm_create`,
            `gtm_modified`
        FROM
            blog_content
        <where>
            <if test="title != null and title != ''">and title = #{title}</if>
            AND categories = '文章'
            AND status = 1
        </where>
        ORDER BY
            gtm_modified DESC
        <if test="offset != null and limit != null">
            limit #{offset}, #{limit}
        </if>
    </select>

    <select id="portalPoliciesRegulationsCount" resultType="long">
        SELECT
            count(cid)
        FROM
            blog_content
        <where>
            <if test="title != null and title != ''">and title = #{title}</if>
            AND categories = '文章'
            AND status = 1
        </where>
    </select>


    <select id="count" resultType="int">
        select count(*) from blog_content
        <where>
            <if test="cid != null and cid != ''">and cid = #{cid}</if>
            <if test="title != null and title != ''">and title = #{title}</if>
            <if test="slug != null and slug != ''">and slug = #{slug}</if>
            <if test="created != null and created != ''">and created = #{created}</if>
            <if test="modified != null and modified != ''">and modified = #{modified}</if>
            <if test="content != null and content != ''">and content = #{content}</if>
            <if test="type != null and type != ''">and type = #{type}</if>
            <if test="tags != null and tags != ''">and tags = #{tags}</if>
            <if test="categories != null and categories != ''">and categories = #{categories}</if>
            <if test="hits != null and hits != ''">and hits = #{hits}</if>
            <if test="commentsNum != null and commentsNum != ''">and comments_num = #{commentsNum}</if>
            <if test="allowComment != null and allowComment != ''">and allow_comment = #{allowComment}</if>
            <if test="allowPing != null and allowPing != ''">and allow_ping = #{allowPing}</if>
            <if test="allowFeed != null and allowFeed != ''">and allow_feed = #{allowFeed}</if>
            <if test="status != null and status != ''">and status = #{status}</if>
            <if test="author != null and author != ''">and author = #{author}</if>
            <if test="gtmCreate != null and gtmCreate != ''">and gtm_create = #{gtmCreate}</if>
            <if test="gtmModified != null and gtmModified != ''">and gtm_modified = #{gtmModified}</if>
        </where>
    </select>

    <insert id="save" parameterType="com.bootdo.blog.domain.ContentDO" useGeneratedKeys="true" keyProperty="cid">
        insert into blog_content
        (`title`,
         `slug`,
         `created`,
         `modified`,
         `content`,
         `type`,
         `tags`,
         `categories`,
         `hits`,
         `comments_num`,
         `allow_comment`,
         `allow_ping`,
         `allow_feed`,
         `status`,
         `author`,
         `gtm_create`,
         `gtm_modified`)
        values (#{title},
                #{slug},
                #{created},
                #{modified},
                #{content},
                #{type},
                #{tags},
                #{categories},
                #{hits},
                #{commentsNum},
                #{allowComment},
                #{allowPing},
                #{allowFeed},
                #{status},
                #{author},
                #{gtmCreate},
                #{gtmModified})
    </insert>

    <update id="update" parameterType="com.bootdo.blog.domain.ContentDO">
        update blog_content
        <set>
            <if test="title != null">`title` = #{title},</if>
            <if test="slug != null">`slug` = #{slug},</if>
            <if test="created != null">`created` = #{created},</if>
            <if test="modified != null">`modified` = #{modified},</if>
            <if test="content != null">`content` = #{content},</if>
            <if test="type != null">`type` = #{type},</if>
            <if test="tags != null">`tags` = #{tags},</if>
            <if test="categories != null">`categories` = #{categories},</if>
            <if test="hits != null">`hits` = #{hits},</if>
            <if test="commentsNum != null">`comments_num` = #{commentsNum},</if>
            <if test="allowComment != null">`allow_comment` = #{allowComment},</if>
            <if test="allowPing != null">`allow_ping` = #{allowPing},</if>
            <if test="allowFeed != null">`allow_feed` = #{allowFeed},</if>
            <if test="status != null">`status` = #{status},</if>
            <if test="author != null">`author` = #{author},</if>
            <if test="gtmCreate != null">`gtm_create` = #{gtmCreate},</if>
            <if test="gtmModified != null">`gtm_modified` = #{gtmModified}</if>
        </set>
        where cid = #{cid}
    </update>

    <delete id="remove">
        delete
        from blog_content
        where cid = #{value}
    </delete>

    <delete id="batchRemove">
        delete from blog_content where cid in
        <foreach item="cid" collection="array" open="(" separator="," close=")">
            #{cid}
        </foreach>
    </delete>

</mapper>