在线问题反馈模块实战(十六)​:实现查详情功能

举报
bug菌 发表于 2023/06/16 15:17:35 2023/06/16
【摘要】 我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

👨‍🎓作者:bug菌
✏️博客:CSDN掘金infoQ51CTO
🎉简介:CSDN/阿里云/华为云/51CTO 博客专家,博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者,全网粉丝合计10w+,硬核微信公众号猿圈奇妙屋」,欢迎你的加入!免费领取简历模板/学习资料/大厂面试真题/职业规划等海量资料。
..
✍️温馨提醒:本文字数:1999字, 阅读完需:约 6 分钟

        嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

        如果小伙伴们在批阅文章的过程中觉得文章对自己有帮助,请别吝啬手中的赞呀,大胆的把文章点亮👍,相信你点赞了好的文章,平台也会经常给你推荐高质量好文,您的点赞三连(收藏+关注+留言)就是对bug菌写文道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

       接下来的这几期,bug菌想跟大家分享一下自己昨天刚接到一个临时的需求,热乎着呢,想分享一下自己是如何面对临时需求并制定整个开发周期,其中包括从梳理业务到创建业务表再到实现业务逻辑形成闭环再到与前端对接,其中会穿插一些业务拓展及功能性拓展,这一条龙流程在线与大家一起见证,分享给刚入门的小伙伴,希望对你们有所帮助。

环境说明:idea2019.3 + springboot2.3.1.REALSE + mybati-plus3.2.0 + mysql5.6 + jdk1.8

       若小伙伴们在批阅文章的过程中觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️ 

二、正文🔥

        落花有意流水无情,今天的上海,又是淅淅沥沥的一天。今天我下班的有点晚,楼下长排队做了个核酸,可烦了,回到家,随便吃了点东西我就急急冲冲的坐在了电脑面前,怕没有时间把今天的文章给总结出来。于是乎我一打开看到有个读者私信,问我说怎么坚持写博客分享的,我给他回了一句,“遵从自己的内心意愿,想清楚自己要什么就行,有些事坚持是毫无意义的,而有些事是坚持就一定是有意思的,尽管它前期不能让你致富,也不能让你变得出名,但是凡是投资自己的行为,都是值得的。”不知道我这句回复,他是否能够理解,总之就是不要强迫自己去做任何事,这样 就会失去这件事的乐趣的。

        然后对于你们,有些读者而言,可能也是在坚持输出,虽然并没有收获多少粉丝 浏览 点赞,但是能坚持,就很了不起。

        回归正题,今天还是接着更新《问题反馈模块》,还剩几个接口没有总结成文章分享出来,所以趁着现在还不用上晚班,就赶紧把自己想做的事儿给干完, 毕竟一件事就要有始有终,等后期回想起来,就怕太晚。

        所以今天这期就给大家实现一个简单的业务需求,点击问题标题,弹框展示其选择的那条问题详细,也就是包括该条记录的有所数据进行返回,目前是不需要联表查询其他关联字段,因为在前期设计表结构时,就把一些关联字段做了冗余保存,所以对于目前的业务场景,我就不需要连表查询啦。

        废话不多说,咱们就开始这期的正文吧。

三、如何代码实现分页查询功能🔥

1️⃣定义Controller请求

        对于根据主键id查询单条记录,说实在的这接口逻辑非常的简单,为什么呢?mybatis就有封装其根据主键id查询的方法,直接使用即可,但是我这里还需要对删除状态的数据进行过滤,所以该方法我不能直接使用,还是得自己定义一个查询方法返回对象。 

具体定义接口请求如下: 

    /**
     * 反馈问题详情
     */
    @GetMapping("/detail")
    @ApiOperation(value = "问题反馈详情", notes = "根据id查询问题反馈详情")
    public ResultResponse<UserQuestionsEntity> detail(@ApiParam("要查询的这条数据id") @RequestParam("id") String id) {
        return new ResultResponse<>(userQuestionsService.getEntityById(id));
    }

2️⃣定义接口方法getEntityById

          直接定义好getEntityById接口方法,要实现的具体逻辑就是在实现类中具体重写即可。

UserQuestionsEntity getEntityById(String id);

3️⃣实现getEntityById方法

        该方法,其实业务逻辑就简单两个条件,条件1是根据主键id查询,条件2是按!status = 2,所以接下来, 我们还是直接使用mp提供的条件构造器,.eq() 与.ne()方法足够使用,但是对于!status = 2,我们也可以用.notIn()方法来代替,不单纯是固定一种方式来实现。

具体实现接口如下:

    @Override
    public UserQuestionsEntity getEntityById(String id) {

        LambdaQueryWrapper<UserQuestionsEntity> wrapper = new LambdaQueryWrapper<>();
        wrapper.notIn(UserQuestionsEntity::getStatus,2); //除去删除状态的不给查询外,其他的都可。
        wrapper.eq(UserQuestionsEntity::getId,id);

        return this.getOne(wrapper);
    }

        对于 .ne()方法使用,我也给大家演示一下。

wrapper.ne(UserQuestionsEntity::getStatus,2);

4️⃣接口测试

        接下来, 我们来测试一下我们上方写的接口,看看逻辑是否有问题,我们就直接通过swagger接口文档来测吧。我先传个status = 2的记录id进行查询,看看我们的条件是否都生效?

具体请看执行sql,是正确的。 

        接下来,我们具体传一个存在的id,看看数据是否能被查询出来?

非常OK!没啥毛病,你们写对了嘛。可以看一眼真实的sql执行语句。

==>  Preparing: SELECT id,question_content,creator_dept_name,creator_name,update_time,creator_account_id,create_by,in_page,create_time,update_by,question_type,file_paths,solve_content,status,solver FROM user_questions WHERE (status NOT IN (?) AND id = ?) 
==> Parameters: 2(Integer), 039fffdcf41fa1fe2ec962bb8277ffb6(String)
<==      Total: 1

5️⃣总结

        对于越简单的逻辑接口而言,我们都要百分百用心写。

... ...

        好啦,以上就是这期的所有内容啦,你们学废了么?如果对你有所帮助,还请不要忘记给bug菌[三连支持]哟。如果想获得更多的学习资源或者想和更多的技术爱好者一起交流,可以关注我的公众号『猿圈奇妙屋』,后台回复关键词领取学习资料、大厂面经、面试模板等海量资源,就等你来拿。

四、往期热文推荐🔥

        对于问题反馈模块实战开发,我完整的梳理了每一期的教学及链接地址,仅供参考:希望能对你们有所帮助。

        如上是整整二十期内容,每一期都是干货,对于一个模块的开发,如何一点一滴打造并测试部署上线,我再说一遍,这不是演习,是实战!是实战!是实战!

        若你们觉得只是需要了解其中某个知识点或者业务的话,也不反对,你就选择其中的几期进行学习就好,反正都已经完结啦;我只希望你们能有所收获,有所成长,也就不枉我苦心每天下班后给大家总结更新。

五、文末🔥

        如果还想要学习更多,小伙伴们直接订阅bug菌专门为大家创建的零基础入门Spring Boot专栏《滚雪球学Spring Boot》,从无到有,从零到一!以知识点+实例+项目的学习模式由浅入深对Spring Boot框架进行学习&使用。

       我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。