84:第七章:开发前台首页、作家个人展示页、粉丝等功能:5:前台首页展示最新热闻;

本文详细介绍了如何在Spring Boot API接口和文章服务中开发查询最新热闻的功能,包括Controller层的接口定义和Service层的方法实现。通过设置分页,确保首页仅展示最新5条新闻,并遵循了相关条件筛选(如非定时发布、未逻辑删除且状态审核通过)。

说明:

(1)本篇博客内容:前台首页展示最新热闻;

目录

一:本篇博客内容:

二:开发【查询最新热闻,接口】:Controller层;

1.在【api】接口工程的ArticlePortalControllerApi接口中,定义【查询最新热闻,接口】;

2.在【article】文章服务中的ArticlePortalController类中,去实现【查询最新热闻,接口】;

三:开发【查询最新热闻,接口】:Service层;

1.在【article】文章服务的ArticlePortalService接口中,定义一个查询最新热闻的方法;

2.在【article】文章服务的ArticlePortalServiceImpl类中,去实现查询最新热闻的方法;

四:效果;


一:本篇博客内容:


二:开发【查询最新热闻,接口】:Controller层;

1.在【api】接口工程的ArticlePortalControllerApi接口中,定义【查询最新热闻,接口】;

    /**
     * 前台门户端,查询最新热闻,接口;
     * @return
     */
    @ApiOperation(value = "前台门户端,查询最新热闻", notes = "前台门户端,查询最新热闻", httpMethod = "GET")
    @GetMapping("/hotList") //设置路由,这个是需要前后端约定好的;
    public GraceJSONResult hotList();

2.在【article】文章服务中的ArticlePortalController类中,去实现【查询最新热闻,接口】;

    /**
     * 前台门户端,查询最新热闻,接口;
     * @return
     */
    @Override
    public GraceJSONResult hotList() {
        List<Article> list = articlePortalService.queryHotList();
        return GraceJSONResult.ok(list);
    }

说明:

(1)Service部分的内容,在三部分中,有介绍; 


三:开发【查询最新热闻,接口】:Service层;

1.在【article】文章服务的ArticlePortalService接口中,定义一个查询最新热闻的方法;


    /**
     * 前台门户端,查询最新热闻;
     *
     * @return
     */
    public List<Article> queryHotList();

2.在【article】文章服务的ArticlePortalServiceImpl类中,去实现查询最新热闻的方法;

    /**
     * 前台门户端,查询最新热闻;
     *
     * @return
     */
    @Override
    public List<Article> queryHotList() {
        Example example = new Example(Article.class);
        Example.Criteria criteria = setDefaultArticleExample(example);

        // 通过设置分页,来达到只展示五条数据的目的;
        PageHelper.startPage(1,5);
        // 去查询
        List<Article> list = articleMapper.selectByExample(example);

        return list;
    }
    
    /**
     * 工具方法:前台显示文章的,一些基本的、默认的条件;
     * @return
     */
    private Example.Criteria setDefaultArticleExample(Example example) {
        // 1. 根据参数情况,构建查询条件;
        // 1.2 设置排序方式;其中的"publishTime",指的是Article类中的publishTime字段;对应于article表的publish_time字段;
        example.orderBy("publishTime").desc();
        // 1.3 给上面的查询实例,增加查询条件;
        Example.Criteria criteria = example.createCriteria();

        /**
         * 2.1(隐藏条件)在前台首页,查询的文章应该是即时发布的文章,即is_appoint是0的文章;(PS:前面我们做过,如果一
         * 个定时发布的文章到时间后,我们会修改其is_appoint为0)
         */
        criteria.andEqualTo("isAppoint", YesOrNo.NO.type);
        /**
         * 2.2(隐藏条件)在前台首页,查询的文章不能是逻辑删除的文章;即,is_delete=0的文章;
         */
        criteria.andEqualTo("isDelete", YesOrNo.NO.type);
        /**
         * 2.3(隐藏条件)在前台首页,查询的文章需要是状态是审核通过,即article_status=3的文章;
         */
        criteria.andEqualTo("articleStatus", ArticleReviewStatus.SUCCESS.type);

        return criteria;
    }

说明:

(1)我们把查询能够展示在前台的文章时,那些最基本的条件,抽成了一个方法; 


四:效果;

(1)先install一下整个项目;(2)记得使用SwitchHost开启虚拟域名映射;(3)使用Tomcat启动前端项目;(4)然后,启动后端项目; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值