前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在线问题反馈模块实战(十五)​:实现在线更新反馈状态功能

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

作者头像
bug菌
发布2023-05-27 15:47:07
3510
发布2023-05-27 15:47:07
举报
文章被收录于专栏:《项目实战教学》

👨‍🎓作者:bug菌 ✏️博客:​​CSDN​​​、​​掘金​​等 💌公众号:​​猿圈奇妙屋​​ 🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。 🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

一、概述🔥

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

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

二、正文🔥

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

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

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

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

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

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

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

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

1️⃣定义Controller请求

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

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

代码如下:

代码语言:javascript
复制
@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") {
        return

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

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

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

代码语言:javascript
复制
ResultResponse<Boolean> updateByType(String id, Integer type);

3️⃣实现updateByType()方法

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

代码语言:javascript
复制
@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处获取当前登录人的登录信息,由于我是封装成了一个静态方法,所以这里我就直接获取,然后手动赋值即可.

代码语言:javascript
复制
SysUserEntity user =

4️⃣接口测试

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

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

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

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

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

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

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

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

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

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

​确实是更新成功了吧。

5️⃣总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述🔥
  • 二、正文🔥
  • 三、如何代码实现在线修改反馈状态功能🔥
    • 1️⃣定义Controller请求
      • 2️⃣定义接口方法updateByType()
        • 3️⃣实现updateByType()方法
          • 4️⃣接口测试
            • 5️⃣总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档