inleft
2022-08-31 aae48957ba971ed0a1bfbfa182701cd22bbe8694
snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/mapper/mapping/BlogArticleMapper.xml
@@ -2,4 +2,177 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.modular.blogarticle.mapper.BlogArticleMapper">
    <!-- 通用查询结果列 -->
    <sql id="Base_Column">
        id,title,article_file_id,article_file_type,
        article_type_id,introduce,cover_file_id,last_editor_date,publish_date,
        is_top,top_value,auth_status,auth_password,editor_status,
        separate_year,separate_month,separate_day,is_enable,update_date,create_date
    </sql>
    <sql id="Base_Column_List">
       a.id,
       a.title,
       a.article_file_type,
       a.article_type_id,
       a.introduce,
       a.cover_file_id,
       a.auth_status,
       a.last_editor_date,
       a.publish_date,
       a.is_top,
       a.editor_status,
       a.is_allowed_comment,
       a.jump_url as jumpURL,
       a.update_date,
       a.create_date,
       a.video_ids,
       a.picture_ids
    </sql>
    <!--首页通用的条件查询-->
    <sql id="queryListCondition">
        <trim prefix="WHERE" prefixOverrides="AND | OR">
            a.is_enable=1
            and a.editor_status=1
            and a.publish_date &lt; now()
            <choose>
                <when test="param.typeId != null">
                    AND a.article_type_id = #{param.typeId}
                    order by a.is_top desc,a.top_value asc , a.publish_date desc
                </when>
                <otherwise>
                    <!-- 首页不出现视频等文件类型-->
                    <if test="param.faceExcludeFile != null">
                        and a.article_file_type not in
                        <foreach collection="param.faceExcludeFile" item="obj" separator="," open="(" close=")">
                            #{obj}
                        </foreach>
                    </if>
                    order by a.is_top desc,a.top_value asc , a.update_date desc
                </otherwise>
            </choose>
        </trim>
    </sql>
    <!-- 首页查询-->
    <select id="searchList" resultType="vip.xiaonuo.modular.blogarticle.entity.BlogArticleVo">
        select
        <include refid="Base_Column_List"/>
        ,IF(a.cover_file_id is not null,CONCAT("/",f2.file_bucket,"/",f2.file_object_name),"") as coverFileURL
        ,t.type_name as articleTypeName
        from
        blog_article a
        inner join blog_article_type t
        on t.id =a.article_type_id
        <!-- 排除首页不查询的分类-->
        <if test="param.typeId == null">
            and t.is_show_face = 1
        </if>
        left join sys_file_info f2
        on f2.id=a.cover_file_id
        <include refid="queryListCondition"/>
        limit #{param.pageNo},#{param.pageSize}
    </select>
    <!-- 首页查询个数统计-->
    <select id="searchListCount" resultType="java.lang.Long">
        select
        count(0)
        from
        blog_article a
        <include refid="queryListCondition"/>
    </select>
    <!-- 月份归档统计-->
    <select id="searchMonthCount" resultType="vip.xiaonuo.modular.blogStatistics.vo.BlogArchiveDetailVo">
       SELECT
       separate_month AS `month`,
       count(1) AS `count`
        FROM
           blog_article
        WHERE
           (
              is_enable = 1
              AND editor_status = 1
              AND separate_year = #{separateYear}
              AND publish_date &lt; now()
           )
        GROUP BY
           separate_month
        ORDER BY  separate_month desc
    </select>
    <!-- 上下篇查询-->
    <select id="getAdjoiningRecord" resultType="vip.xiaonuo.modular.blogarticle.entity.BlogArticleVo">
        select
        a.id,
        a.title
        from
        blog_article a
        <include refid="queryListCondition"/>
        limit #{param.pageNo},#{param.pageSize}
    </select>
    <sql id="queryPlatformCondition">
        <trim prefix="WHERE" prefixOverrides="AND | OR">
            a.is_enable=1
            and a.editor_status=1
            and a.publish_date &lt; now()
            <if test="param.id != null">
                and a.id = #{param.id}
            </if>
            <if test="param.fileType != null">
                and a.article_file_type = #{param.fileType}
            </if>
            AND a.article_type_id in
            <foreach collection="param.typeIds" item="obj" separator="," open="(" close=")">
                #{obj}
            </foreach>
            order by a.is_top desc,a.top_value asc , a.publish_date desc
        </trim>
    </sql>
    <!--月台列表查询-->
    <select id="searchPlatformList" resultType="vip.xiaonuo.modular.blogarticle.entity.BlogArticleVo">
        select
        <include refid="Base_Column_List"/>
        ,IF(a.cover_file_id is not null,CONCAT("/",f2.file_bucket,"/",f2.file_object_name),"") as coverFileURL
        ,t.type_name as articleTypeName
        from
        blog_article a
        inner join blog_article_type t
        on t.id =a.article_type_id
        left join sys_file_info f2
        on f2.id=a.cover_file_id
        <include refid="queryPlatformCondition"/>
        limit #{param.pageNo},#{param.pageSize}
    </select>
    <select id="searchPlatformListCount" resultType="java.lang.Long">
        select
        count(0)
        from
        blog_article a
        <include refid="queryPlatformCondition"/>
    </select>
</mapper>