当前位置: 首页 > news >正文

群控系统服务端开发模式-应用开发-个人资料

        群控系统服务端开发模式后端基础框架现在就差个人资料、及权限验证。下面开发个人资料。

一、获取个人信息

        1、添加路由

                在根目录下route文件夹下面app.php文件中添加如下代码:

Route::post('member/personal_data','permission.Member/personalData');// 获取个人信息接口

        2、添加控制层管理及对应方法

                在根目录下app文件夹下controller文件夹下permission文件夹中创建个人资料控制文件并命名为Member,代码如下:

<?php
/*** 个人信息控制-也就是登录者信息及角色对外方法* User: 龙哥·三年风水* Date: 2024/10/30* Time: 14:18*/
namespace app\controller\permission;
use app\controller\Base;
use app\model\param\Department as PDModel;
use app\model\param\Grade as PGModel;
use app\model\permission\Role as PRModel;
use app\model\param\System as PSModel;
use app\model\permission\Admin as PAModel;
use Other\Tree;
use Redis\Redis;
use app\model\permission\Menu as PMModel;
class Member extends Base
{/*** 获取个人信息* User: 龙哥·三年风水* Date: 2024/10/30* Time: 14:23* @ return \think\response\Json*/public function personalData(){$data = [];$data['username'] = $this->username;$data['avatar'] = $this->avatar;$data['email'] = $this->email;$data['realname'] = $this->realname;$data['ip'] = empty($this->ip) ? '' : $this->ip;$departmentTitle = PDModel::dataFind(['id' => $this->departmentId],'title',false);$data['department_title'] = empty($departmentTitle) ? '' : $departmentTitle;$gradeTitle = PGModel::dataFind(['id' => $this->gradeId],'title',false);$data['grade_title'] = empty($gradeTitle) ? '' : $gradeTitle;$data['rolename'] = PRModel::dataFind(['id' => $this->roleId],'rolename',false);$res = $this->getRoleMenu();$data['key'] = $res['key'];$data['butt'] = $res['butts'];return succ('操作成功',$data);}
}

二、获取登录者菜单

        1、添加路由

                在根目录下route文件夹下面app.php文件中添加如下代码:

Route::post('member/personal_menu','permission.Member/personalMenu');// 获取个人菜单接口

        2、添加方法

                在根目录下app文件夹下controller文件夹下permission文件夹下Member控制文件中添加获取个人菜单接口的方法,代码如下:

    /*** 登录者菜单权限* User: 龙哥·三年风水* Date: 2024/11/5* Time: 17:32* @ return \think\response\Json*/public function personalMenu(){$listMenu = unserialize(Redis::select(config('cache.stores.redis.cache_db'))->get('menu_list'.$this->userId));if($listMenu === false){if(count($this->rules) == 0)$this->setAuth();$listMenu = PMModel::getAll([['id', 'in', $this->rules], ['status', '=', 1], ['is_menu', '=', 1]], 'id,menuname,pid,title,path,component,icon,redirect,always_show,is_hidden,is_icon,is_cache','sort DESC,id DESC');if(empty($listMenu)) return err("该用户没有权限");$seconds = rand(60,120);Redis::select(config('cache.stores.redis.cache_db'))->setex('menu_list'.$this->userId,$seconds,serialize($listMenu));}$data['menu'] = Tree::list_to_tree($listMenu,0, 'id', 'pid', 'children');return succ('操作成功',$data);}

三、修改个人信息

        1、添加路由

                在根目录下route文件夹下面app.php文件中添加如下代码:

Route::post('member/update_personal','permission.Member/updatePersonal');// 修改个人信息接口

        2、添加方法

                在根目录下app文件夹下controller文件夹下permission文件夹下Member控制文件中添加编辑个人信息接口的方法,代码如下:

    /*** 修改个人资料* User: 龙哥·三年风水* Date: 2024/11/5* Time: 9:31*/public function updatePersonal(){$param = $this->request->param();$validate = new \app\validate\permission\UpdateAdmin;$param['id'] = $this->userId;if (!$validate->check($param)) return err($validate->getError());if(!empty($param['password'])){$securityPassword = PSModel::dataFind(['id' => 1],'security_password')['security_password'];$data['password'] = sha1($param['password'] . $securityPassword);}$data['username'] = $param['username'];$data['avatar'] = empty($param['avatar']) ? $this->avatar : $param['avatar'];$data['realname'] = $param['realname'];$data['email'] = $param['email'];PAModel::redisSave($data, $this->userId);return succ('操作成功',[]);}

相关文章:

群控系统服务端开发模式-应用开发-个人资料

群控系统服务端开发模式后端基础框架现在就差个人资料、及权限验证。下面开发个人资料。 一、获取个人信息 1、添加路由 在根目录下route文件夹下面app.php文件中添加如下代码&#xff1a; Route::post(member/personal_data,permission.Member/personalData);// 获取个人信息…...

openssl生成加密,公钥实现非对称加密

私钥用于加密&#xff0c;公钥用于解密 私钥用于颁发token&#xff0c;公钥用于验证token&#xff0c;公钥不能颁发token 私钥和公钥是一对&#xff0c;不能单独使用&#xff0c;利用私钥生成公钥&#xff0c;利用公钥进行解密 使用openssl来生成一对私钥和公钥&#xff1a;ope…...

[CKS] K8S Admission Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于Admission。 Whats Admission Kubernetes Admission是Kubernetes集群中一种机制&#xff0c;用于控制和修改集群中的资源对象。它允许您在Kubernetes资源被创建、更新或删除之前&#xff0c;对资源…...

前端学习Day13 CSS盒子的定位(固定定位篇“附练习”)

一、固定定位 固定定位 &#xff08;position:fixed&#xff09;其实是绝对定位的子类别&#xff0c;一个设置了 position:fixed 的元素是相对于视窗固定的&#xff0c;就算页面文档发生了滚动&#xff0c;它也会一直待在相同的地方。 ⚠️&#xff1a;固定定位会脱离文档流。…...

Tomcat 启动卡住,日志显示 At least one JAR was scanned for TLDs yet contained no TLDs.

现象 Tomcat 启动后&#xff0c;控制台输出卡在了&#xff1a; At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JA…...

计算机网络:网络层 —— 移动 IP 技术

文章目录 IPv6IPv6 的诞生背景主要优势IPv6引进的主要变化 IPv6数据报的基本首部IPv6数据报首部与IPv4数据报首部的对比 IPv6数据报的拓展首部IPv6地址IPv6地址空间大小IPv6地址的表示方法 IPv6地址的分类从IPv4向IPv6过渡使用双协议栈使用隧道技术 网际控制报文协议 ICMPv6ICM…...

useCrudSchemas

摘要&#xff1a; useCrudSchemas 不是一个标准的JavaScript或数据库操作库函数&#xff0c;也不是一个广泛认知的术语。它可能是某个特定项目或应用程序中定义的一个自定义函数或方法&#xff0c;用于简化CRUD&#xff08;创建、读取、更新、删除&#xff09;操作。 在Web开发…...

SpringBoot3集成Junit5

目录 1. 确保项目中包含相关依赖2. 配置JUnit 53. 编写测试类4、Junit5 新增特性4.1 注解4.2 断言4.3 嵌套测试4.4 总结 在Spring Boot 3中集成JUnit 5的步骤相对简单。以下是你可以按照的步骤&#xff1a; 1. 确保项目中包含相关依赖 首先&#xff0c;确保你的pom.xml文件中…...

【EMNLP2024】阿里云人工智能平台 PAI 多篇论文入选 EMNLP2024

近期&#xff0c;阿里云人工智能平台 PAI 的多篇论文在 EMNLP2024 上入选。论文成果是阿里云与华南理工大学金连文教授团队、复旦大学王鹏教授团队共同研发。EMNLP 是人工智能自然语言处理领域的顶级国际会议&#xff0c;聚焦于自然语言处理技术在各个应用场景的学术研究&#…...

Spark的Shuffle过程

一、Shuffle 的作用是什么&#xff1f; Shuffle 操作可以理解为将集群中各个节点上的数据进行重新整理和分类的过程。这一概念源自 Hadoop 的 MapReduce 模型&#xff0c;Shuffle 是连接 Map 阶段和 Reduce 阶段的关键环节。在分布式计算中&#xff0c;每个计算节点通常只处理任…...

Java+Swing可视化图像处理软件

JavaSwing可视化图像处理软件 一、系统介绍二、功能展示1.图片裁剪2.图片缩放3.图片旋转4.图像灰度处理5.图像变形6.图像扭曲7.图像移动 三、系统实现1.ImageProcessing.java 四、其它1.其他系统实现2.获取源码 一、系统介绍 该系统实现了图片裁剪、缩放、旋转、图像灰度处理、…...

RDD转换算子:【mapValues、mapPartitions】

文章目录 1、mapValues算子功能语法举例 2、mapPartitions算子功能语法举例 1、mapValues算子 功能 针对二元组KV类型的RDD&#xff0c;对RDD中每个元素的Value进行map处理&#xff0c;结果放入一个新的RDD中 语法 def mapValues(self: RDD[Tuple[K,V]], f: (V) -> U) -…...

数组和指针的复杂关系

C语言中指针和数组的关系似乎很“纠结”&#xff0c;让人爱恨交织。本文试图帮助读者理清它们之间的复杂关系&#xff01; 数组名的理解 数组元素在内存中是连续存放的&#xff0c;在C语言中&#xff0c;数组名有特殊的含义&#xff0c;它表示数组首元素的地址。因此&#xf…...

Linux系统I/O调优实例

文章目录 一 、资源限制二、测试硬盘速度&#xff1a; 一 、资源限制 限制用户资源配置文件&#xff1a;/etc/security/limits.conf [rootxuegod63 ~]# vim /etc/security/limits.conf 每行的格式&#xff1a; 用户名/用户组名 类型(软限制/硬限制) 选项 值 通常我们在服务器…...

记录Ubuntu OS的异常

PS: 参加过408改卷的ZJU ghsongzju.edu.cn 开启嘲讽: 你们知道408有多简单吗&#xff0c;操作系统真实水平自己知道就行&#xff5e;&#xff5e; dmesg dmesg 是一个用于显示内核环形缓冲区消息的命令&#xff0c;主要用于查看系统启动时的消息、驱动程序加载信息、硬件错误…...

Vue 3 单元测试与E2E测试

在Vue 3应用的开发过程中&#xff0c;测试是一个至关重要的环节。它不仅能够确保代码的正确性&#xff0c;还能在后续的代码重构和升级过程中提供安全保障。本文将深入探讨Vue 3的单元测试&#xff08;Unit Testing&#xff09;和端到端测试&#xff08;End-to-End Testing, E2…...

猫用空气净化器哪个牌子好?求除毛好、噪音小的宠物空气净化器!

换毛季家里孩子不省心&#xff0c;疯狂掉落的猫毛和空气中乱飞的浮毛可把我折磨死了。每天下班都要抽出时间来清理&#xff0c;不然这个家就不能要了。猫毛靠我自己可以打扫&#xff0c;浮毛还得借助宠物空气净化器这种专业工具。所以我最近着手做功课&#xff0c;打算入手一台…...

第十九课 Vue组件中的方法

Vue组件中的方法 组件中的方法拓展与实例对象中的方法拓展类似 <div id"app"><test></test> </div> <script>Vue.component(test, {template: <input type"button" value"这是个按钮组件" click"fun()…...

【JavaScript】V8,Nodejs 与浏览器

V8 V8 是一个 JavaScript engine&#xff0c;负责编译并执行 JavaScript 源代码&#xff0c;处理对象的内存分配&#xff0c;并对不再需要的对象进行垃圾收集。 V8 包含两个主要组件&#xff1a; Memory Heap&#xff1a;负责存储分配。 Call Stack&#xff1a;代码执行时&am…...

内存马浅析

之前在jianshu上写了很多博客&#xff0c;但是安全相关的最近很多都被锁了。所以准备陆陆续续转到csdn来。内存马前几年一直是个很热门的漏洞攻击手段&#xff0c;因为相对于落地的木马&#xff0c;无文件攻击的内存马隐蔽性、持久性更强&#xff0c;适用的漏洞场景也更多。 J…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...