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

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

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

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

  1. 后端部分:

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 后端部分:

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

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

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

相关推荐
小羊没烦恼!3 分钟前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
will_net4 分钟前
apollo 站点部署&C#接入
开发语言·c#·apollo
幼儿园蛋小黄26 分钟前
从 STM32N647 的 AI 部署入门嵌入式:一条可落地的学习路线
人工智能·stm32·学习
晗夜未央42 分钟前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
熊猫钓鱼>_>1 小时前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
锋行天下1 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
努力努力再努力wz1 小时前
【Lua 入门系列】Lua 函数深入理解:函数对象、多返回值、可变参数、闭包、递归与尾调用优化
开发语言·lua
jktantan1 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
计算机魔术师2 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
飞浪纪元[FWC–FE]2 小时前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt