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

时间:2022-10-24 14:00:55

????‍????作者:bug菌 

✏️博客:​​CSDN​​​、​​掘金​​等

????公众号:​​猿圈奇妙屋​

????特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

????版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系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") {
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菌[三连支持]哟。如果想获得更多的学习资源或者想和更多的技术爱好者一起交流,可以关注我的公众号『​​猿圈奇妙屋​​』,后台回复关键词领取学习资料、大厂面经、面试模板等海量资源,就等你来拿。

四、往期热文推荐????

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

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

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

五、文末????

​《springboot零基础入门教学》​​,都是我一手打下的*,持续更新中,希望能帮助到更多小伙伴们。

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

        最后送大家两句我很喜欢的话,与诸君共勉!


☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以开始。

????你能从现在开始改变,也可以一成不变;这件事,没有规矩可言,你可以活出最精彩的自己。


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

????如果文章对您有所帮助,就请留下您的吧!(#^.^#);

????如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

????如果对文章有任何疑问,还请文末留言或者加群吧【QQ交流群:708072830】;

????鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

????版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。