在线问题反馈模块实战(十五)​:实现在线更新反馈状态功能

举报
bug菌 发表于 2023/06/16 15:15:02 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菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️ 

二、正文🔥

        说到这期,我是带着一丝感伤来总结的,为什么呢?因为更这个模块快要完结了,剩下的内容屈指可数,所以我很舍不得。但是总会有说告别的一天,只是这一期的结束,并不是说我以后都不更新了,所以没关系啦。

        对于这一整期的模块内容总结成一期一期的文章,很多小伙伴都会问我,我写它们的目的是为何,平台会给你稿费还是啥?其实没有,单纯是自己想写且乐意写。写文章,其实讲究很多的,也是一件不简单的事,坚持就更难了,所谓的难,难在你要花心思写文章,对于自己写的东西,你自己能理解这不行, 你还要用通俗易懂的文字描述清楚并且能让你们都能看懂,这才可以,要不然我贴几行代码,写几行文字就称一片文章了?这不是在写文章这是在自我写笔记。

        文章与笔记二者性质还是相差比较大的,所以就是得热衷它才行。相比以前的自己,下完班就是约三五好友一起开黑,打王者,吃鸡,然后每天都是如此,玩到十一二点就睡觉,第二天起早就三点一线式的去上班然后下班,其实这种生活真的很枯燥,如果不能在生活中找到乐子,生活就犹如一谭死水,所以我为什么不求回报的写文章,那是因为我能感受到我写它给我带来的乐趣,小伙伴的私聊感慨,文章的好评收藏,粉丝读者数的增加并且平台的激励,给予更多的文章曝光率,相比这些,那下班后的吃鸡王者就显得有些浪费时间的体现了。

        所以趁现在,如果你也跟以前的我很像,那就一起来,一起写文章。所谓众人拾材火焰高,如果你感兴趣,请速来与我取得联系,我们 一起下完班一起学习技术,一起总结文章,一起交流心得。只要你愿意,我就在前面等你,我个人微信,从我公众号[猿圈奇妙屋],可以获取,快来吧,我这里贴出来,文章会不让通过审核的。

        我也会帮助到有需要的大家, 把自己这几年的写作心得和盘托出,绝不保留,我只希望我能在这条路上遇到更多志同道合的挚友,仅此而已!

        而对于这一期,我要给带着大家一起要做的事是,实现在线更新反馈状态。场景:反馈人进行在线问题反馈,而后台不是第一时间就给与答复,我们肯定也要经过一定的商讨之后才能给与反馈,比如线上bug,得去定位,新增需求,优化问题等都需要时间进行线下处理实现,但是对于反馈人而言,我们要第一时间给予反馈,表示我们这边已在受理告知,所以这个需求就这么诞生了。

        所以,需求大家都了解清楚了?其实也简单,不难,所以我还是从接口请求定义开始说起咯,虽然我每一期都老调重弹,但是都避免不了会有新的小伙伴临时插入。

        那咱就废话不多说,直接干正事儿啦。

三、如何代码实现在线修改反馈状态功能🔥

1️⃣定义Controller请求

        定义一个接口请求,第一分析入参,第二定义请求方式,第三确定返回类型,第四创建接口方法,这按步骤来处理,就不会显得忙手忙脚。

        参数定位,应该就两个参数,参1:问题记录主键id。参2:更替后的反馈状态。比如:1:删除;2:已解决;3:不予解决;5:问题关闭。对于接口请求方式,直接GET即可。接下来,我们就直接来定义接口请求了啊。

代码如下:

    @GetMapping("/update-by-type")
    @SysLog(logType = LogTypeEnum.LOG_TYPE_DELETE)
    @ApiOperation(value = "根据type修改问题状态", notes = "根据type修改问题状态")
    public ResultResponse<Boolean> updateByType(@ApiParam("要删除的这条数据id") @RequestParam("id") String id,
                                                @ApiParam("操作类型,1:删除;2:已解决;3:不予解决;5:问题关闭") @RequestParam("type") Integer type) {
        return userQuestionsService.updateByType(id, type);
    }

        对于如上定义大家都没啥问题吧?有问题的要及时说出来哈。评论区或者私信我都可。 

2️⃣定义接口方法updateByType()

        对于定义该updateByType()接口,返回类型是个布尔值,这没啥疑问吧。

ResultResponse<Boolean> updateByType(String id, Integer type);

3️⃣实现updateByType()方法

        接下来就是实现该接口方法的核心逻辑了。唯一一点需要注意的就是,对于修改方法,如果Entity为空,也强行update,你们猜会发生什么?

    @Override
    public ResultResponse<Boolean> updateByType(String id, Integer type) {

        UserQuestionsEntity entity = this.getById(id);
        if (Objects.isNull(entity)) {
            return new ResultResponse<>(ErrorCodeEnum.DATA_NOT_EXIST);
        }
        entity.setStatus(type);

        return new ResultResponse<>(this.updateById(entity));
    }

        其实,准确来说,应该还要记录一下更新人,更新时间,所以这里我们就再补充一下,我们可以从token处获取当前登录人的登录信息,由于我是封装成了一个静态方法,所以这里我就直接获取,然后手动赋值即可.

SysUserEntity user = SpringServletContextUtils.getUser();

4️⃣接口测试

        接下来,我给大家演示一下,倘若指定一个不存在的id,然后将该查询出来的Entity通过update去执行,看看会发生什么?我就将该判空先注释掉。

         大家请看,是不是报错了,空指针吧。所以一般这种更新方法,你们都要多留个心眼,倘若Entity为null,执行update()方法肯定是会报错的。所以我把判空放开,直接返回自定义msg,这样就能有效杜绝更新报错了。大家请看:

         如下我是找了条存在的记录进行更新,试试。

         我来执行下接口,试试,看看该数据是否会被成功更新?

        很明显是执行成功了吧。我们再来执行一下,上述sql,验证一下。


        确实是更新成功了吧。

5️⃣总结

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

... ...

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

四、往期热文推荐🔥

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

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

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

五、文末🔥

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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