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

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

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

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

  1. 后端部分

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 后端部分

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

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

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

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20162 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
爱吃苹果的日记本2 天前
离散数学第六课
学习·离散数学