需求9——通过一个小需求来体会service层的作用

昨天在完成了睿哥的需求验收之后,暂时没有其他任务,因此今天可能会比较有空闲时间。趁着这个机会,我打算把之前完成的一些需求进行总结,方便以后复习和参考。

在8月份的时候,我负责了一个需求,该需求的具体内容如下:在小程序中,关于作业标准的部分,目前知会干系人有权限开始工作内容,而我们的目标是限制知会干系人的权限,使其只能查看工作内容,只有执行干系人才能开始工作内容。

针对这个需求,我的解决思路如下:

  1. 后端部分

    • 首先,我需要找到对应"开始处理"按钮的后端接口。
    • 在该接口的service层中,我计划添加一个权限判断逻辑。
    • 具体来说,就是在service层中检查当前用户是否为执行干系人。如果不是执行干系人,则返回一个提示信息:"你不是执行干系人,无法开始任务"。
    • 通过这种方式,我们可以确保只有执行干系人才能在后端层面上开始任务。
  2. 前端部分

    • 前端方面,我需要定位到"开始处理"按钮的事件处理函数。
    • 在这个事件处理函数中,我计划添加一些逻辑来处理权限判断。
    • 虽然目前具体需要添加的内容还不完全清楚,但可以确定的是,需要在事件处理函数中增加相应的权限控制逻辑,以确保前端也能正确限制知会干系人的操作。

我希望通过这样的设计,确保只有执行干系人才能开始工作内容,而知会干系人只能查看相关信息。

首先,我们需要找到"开始处理"按钮对应的后端接口。进入这个接口的后端代码,从controller层开始查看。发现controller层主要负责返回VO(Value Object)等数据,并没有太多需要修改的地方。

因此,我们继续深入到service层。

在service层,我们发现这里的代码实现了"开始处理"按钮的内部逻辑。虽然代码量较大,但我们不需要理解所有细节,因为我们的目标是在逻辑开头添加一个权限判断。具体来说,我们需要判断当前用户是否为执行干系人。如果用户不是执行干系人,那么直接跳过后续代码逻辑,不允许其执行"开始处理"操作。

这个改动看起来非常简单。如果你看过我之前的一篇文章,可能会立刻想到可以使用AI来生成这部分代码。然而,这个需求是在8月份提出的,当时我还没有意识到AI的强大功能。我记得那时候是睿哥提醒我,说有一个类似按钮已经实现了权限校验,建议我直接复制那部分代码。

于是,我按照睿哥的建议,把那个按钮的权限校验代码原封不动地复制过来,这样后端的改动就完成了。

接下来,我们需要修改前端部分。

首先,我们需要找到"开始处理"按钮对应的代码。在前端代码中,最关键的部分是这个按钮的事件处理函数,这是我们需要修改的地方。我们的目标是,如果当前用户不是执行干系人,那么点击按钮后将显示提示信息:"你不是执行干系人,没有权限开始任务"。

我们可以参考一个已有的、相似功能的按钮来进行修改。我们可以仿照它的实现方式:

通过这种方式,我们可以在点击"开始处理"按钮时,首先检查当前用户的角色。如果用户不是执行干系人,则显示提示信息,并阻止后续操作。这样,前端部分的修改就完成了。

总结起来,前后端的改动如下:

  1. 后端部分

    • 在service层添加权限判断逻辑,确保只有执行干系人才能执行后续操作。
  2. 前端部分

    • 在"开始处理"按钮的事件处理函数中,添加角色判断逻辑,显示相应的提示信息。

通过前后端的共同修改,我们实现了对"开始处理"按钮的权限控制,确保只有执行干系人才能开始任务,而知会干系人只能查看相关信息。

相关推荐
火云洞红孩儿2 小时前
告别界面孤岛:PyMe如何用一站式流程重塑Python GUI开发?
开发语言·python
UXbot2 小时前
UI设计工具推荐合集
前端·人工智能·ui
码路星河2 小时前
基于 Vue + VueUse 的 WebSocket 优雅封装:打造高可用的全局连接管理方案
javascript·vue.js·websocket
叫我辉哥e12 小时前
新手进阶Python:办公看板集成ERP跨系统同步+自动备份+AI异常复盘
开发语言·人工智能·python
摘星编程2 小时前
React Native + OpenHarmony:Accelerometer计步器代码
javascript·react native·react.js
●VON2 小时前
0基础也能行!「Flutter 跨平台开发训练营」1月19日正式启动!
学习·flutter·von·openjiuwen
晚风吹长发3 小时前
初步了解Linux中的命名管道及简单应用和简单日志
linux·运维·服务器·开发语言·数据结构·c++·算法
敲敲了个代码3 小时前
如何优化批量图片上传?队列机制+分片处理+断点续传三连击!(附源码)
前端·javascript·学习·职场和发展·node.js
@AfeiyuO3 小时前
Vue 引入全局样式scss
前端·vue·scss
光影少年3 小时前
flex布局和grid布局区别,实现两边固定布局中间自适应
前端·css3·web·ai编程