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

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

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

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

  1. 后端部分

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 后端部分

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于xml配置文件的Spring事务

在项目中对事务属性通常传播属性,回滚属性,隔离级别,超时属性都取默认值,只有只读属性会如下的配置: 什么意思:Service层你的类里的方法,以get,find,select等开头的方法是…

Robust多模态模型的开发

本文所涉及所有资源均在 传知代码平台 可获取。 目录 Robust 多模态模型:寻找遗失的模态! 一、研究背景 二、模型结构和代码 三、数据集介绍 六、性能展示 六、实现过程 七、运行过程 Robust 多模态模型:寻找遗失的模态! 近年来&a…

threejs-基础材质设置

一、介绍 主要内容:基础材质(贴图、高光、透明、环境、光照、环境遮蔽贴图) 主要属性: side: three.DoubleSide, //设置双面 color: 0xffffff, //颜色 map: texture, //纹理 transparent: true, // 透明度 aoMap: aoTexture, //ao贴图 aoMapIntensity: 1…

Linux下载安装MySQL8.4

这里写目录标题 一、准备工作查看系统环境查看系统架构卸载已安装的版本 二、下载MySQL安装包官网地址 三、安装过程上传到服务器目录解压缩,设置目录及权限配置my.cnf文件初始化数据库配置MySQL开放端口 一、准备工作 查看系统环境 确认Linux系统的版本和架构&am…

【js逆向学习】极志愿 javascript+python+rpc

JSRPC使用方式 逆向目标逆向过程逆向分析1、什么是 websocket2、websocket的原理3、总体过程3.1 环境说明3.2 python服务端代码3.3 python客户端代码 4、Sekiro-RPC4.1 执行方式4.2 客户端环境4.3 参数说明4.4 SK API4.5 python代码调试4.6 代码注入流程 逆向总结 逆向目标 网…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…

太速科技-607-基于FMC的12收和12发的光纤子卡

基于FMC的12收和12发的光纤子卡 一、板卡概述 本卡是一个FPGA夹层卡(FMC)模块,可提供高达2个CXP模块接口,提供12路收,12路发的光纤通道。每个通道支持10Gbps,通过Aurora协议,可以组成X4&#xff0…

LivePortrait:创新的肖像动画技术与深度伪造的预防措施

文章链接:https://arxiv.org/pdf/2407.03168 代码仓库:https://liveportrait.github.io 在数字媒体和娱乐领域,将静态肖像照片转换成动态视频是一个引人入胜的话题。最近,由快手科技的研究团队发表在arXiv上的一篇论文介绍了一种…

有千元以内的高性价比自动猫砂盆吗?双十一必看选购攻略!

对于经常外出的铲屎官来说,自动猫砂盆真的是一个必需品,不仅仅是上班出差,节假日旅游出行,小到外出逛街,大到五六天,自动猫砂盆都能完美解决猫屎残留在猫砂盆里无人照料的问题,毕竟猫屎放久了&a…

SpringBoot框架下旅游管理系统的创新设计与实现

第二章 相关技术简介 2.1 JAVA技术 本次系统开发采用的是面向对象的Java作为软件编程语言,Java表面上很像C,但是Java仅仅是继承了C的某些优点,程序员很少使用的C语言的特征在Java设计中去掉了。Java编程语言并没有什么结构,它把数…

Java | Leetcode Java题解之第461题汉明距离

题目: 题解: class Solution {public int hammingDistance(int x, int y) {int s x ^ y, ret 0;while (s ! 0) {s & s - 1;ret;}return ret;} }

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)) 广度优先搜索理论基础bfs与dfs的对比(思维导图)&…

音视频入门基础:FLV专题(12)——FFmpeg源码中,解析DOUBLE类型的ScriptDataValue的实现

一、引言 从《音视频入门基础:FLV专题(9)——Script Tag简介》中可以知道,根据《video_file_format_spec_v10_1.pdf》第80到81页,SCRIPTDATAVALUE类型由一个8位(1字节)的Type和一个ScriptDataV…

电影选票选座系统|影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)

电影院订票选座小程序 目录 基于微信小程序的电影院购票系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户功能实现 2、管理员功能实现 (1)影院信息管理 (2)电影信息管理 (3)已完成…

VUE 开发——Vue学习(二)

一、watch侦听器 作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 简单写法 <div id"app"><textarea v-model"words"></textarea></div><script>const app new Vue({el:#app,data: {words: },watch…

在北京能不能设计一款可以多屏展示的调度桌

在北京这座科技与创新并蓄的国际大都市&#xff0c;设计一款集高效、智能与多屏展示功能于一体的调度桌&#xff0c;不仅是一个技术挑战&#xff0c;更是对未来工作场景的一次深刻探索与重塑。那么&#xff0c;在北京能不能设计一款可以多屏展示的调度桌呢? 随着信息技术的飞速…

AI产品经理指南:我是谁,从哪来,到哪去|对谈字节AI产品负责人Vanessa,面试了100位AI产品经理后的心得总结

AI 正在改变各行各业&#xff0c;或许首当其冲受到影响的就包括离 AI 最近的一群人——产品经理。 Vanessa 在字节负责 AI 产品工作&#xff0c;我们从「面试了 100 位 AI 产品经理」的心得总结开始&#xff0c;聊了聊究竟什么是「AI 产品经理」&#xff1f;Vanessa资深的产品经…

QT元对象系统特性详细介绍(信号槽、类型信息、动态设置属性)(注释)

目录 一、元对象系统简介 二、信号和槽 三、类型信息 四、动态设置属性 一、元对象系统简介 QT中的元对象系统Q_OBJECT并不是C标准代码&#xff0c;因此在使用时需要QT的MOC&#xff08;元对象编译器&#xff09;进行预处理&#xff0c;MOC会在编译时期读取C代码中的特定宏…

java反序列化之CommonCollections6利⽤链的学习

一、源起 前文学习CC1链和URLDNS链的学习&#xff0c;同时学习过程中知道cc1受jdk版本的限制&#xff0c;故而进一步分析cc6链的利用过程&#xff0c;这个利用链不受jdk版本的限制&#xff0c;只要commons collections小于等于3.2.1&#xff0c;都存在这个漏洞。 ps&#xff1…

SpringBoot中间件Docker

Docker&#xff08;属于C/S架构软件&#xff09; 简介与概述 1.Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux …