今日指数day8实战补充(上)
1.用户管理
1.多条件综合查询
1.1 多条件综合查询接口说明
1)原型效果

2)接口说明
功能描述:多条件综合查询用户分页信息,条件包含:分页信息 用户创建日期范围
服务路径:/api/users
服务方法:Post
请求参数格式:
{"pageNum":"1","pageSize":"20","username":"","nickName":"","startTime":"","endTime":""
}
响应数据格式:
{"code": 1,"data": {"totalRows": 12,"totalPages": 1,"pageNum": 1,"pageSize": 20,"size": 12,"rows": [{"id": 1237361915165020161,"username": "admin","password": "$2a$10$JqoiFCw4LUj184ghgynYp.4kW5BVeAZYjKqu7xEKceTaq7X3o4I4W","phone": "13888888888","realName": "小池","nickName": "超级管理员","email": "875267425@qq.com","status": 1,"sex": 1,"deleted": 1,"createId": null,"updateId": "1237361915165020161","createWhere": 1,"createTime": "2019-09-22T11:38:05.000+00:00","updateTime": "2020-04-07T10:08:52.000+00:00","createUserName": null,"updateUserName": "admin"},//.....]}
}
代码实现
1. 表现层
/*** 多条件综合查询*/@ApiOperation(value = "多条件综合查询")@PostMapping("/users")public R<UserRespVo> userManager(@RequestBody UserReqVo userReqVo){return UserService.userManager(userReqVo);}
2. 服务层
R<UserRespVo> userManager(UserReqVo userReqVo);
@Overridepublic R<UserRespVo> userManager(UserReqVo userReqVo) {// 获取分页数据Integer pageNum = Integer.parseInt(userReqVo.getPageNum());Integer pageSize = Integer.parseInt(userReqVo.getPageSize());// 获取查询条件String username = userReqVo.getUsername();String nickName = userReqVo.getNickName();String startTimeString = userReqVo.getStartTime();String endTimeString = userReqVo.getEndTime();Date startTime = null;Date endTime = null;if (!StringUtils.isBlank(startTimeString) && !StringUtils.isBlank(endTimeString)){startTime = DateTime.parse(startTimeString, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate();endTime = DateTime.parse(endTimeString, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate();}// 设置分页参数PageHelper.startPage(pageNum,pageSize);// 查询获得所有数据List<SysUser> allUser = sysUserMapper.getSUserByIf(username,nickName,startTime,endTime);// 分页处理PageInfo<SysUser> userInfo = new PageInfo<>(allUser);UserRespVo userRespVo = new UserRespVo(userInfo);return R.ok(userRespVo);}
3. Dao层
List<SysUser> getSUserByIf(@Param("username") String username, @Param("nickName") String nickName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
<select id="getSUserByIf" resultType="com.jixu.stock.pojo.entity.SysUser">SELECT *FROM sys_userWHERE 1=1<if test="username != null and username != ''">AND username like concat('%' , #{username} , '%')</if><if test="nickName != null and nickName != ''">AND nick_name like concat('%' , #{nickName} , '%')</if><if test="startTime != null">AND created_time >= #{startTime}</if><if test="endTime != null">AND created_time <= #{endTime}</if></select>
1.2 添加用户接口说明
1)原型效果

2)接口说明
功能描述:添加用户信息
服务路径:/api/user
服务方法:Post
请求参数格式:
{"username":"mike","password":"20","phone":"15367945613","email":"123@qwe.cn","nickName":"jane","realName":"kangkang","sex":"1","createWhere":"1","status":"1"
}
响应参数格式:
{"code": 1,"msg": "操作成功"
}
代码实现
1. 表现层
/*** 添加用户*/@ApiOperation(value = "添加用户")@PostMapping("/user")public R<UserRespVo> addUser(@RequestBody AddUserReqVo addUserReqVo, HttpServletRequest request){return UserService.addUser(addUserReqVo , request);}
2. 服务层
R<UserRespVo> addUser(AddUserReqVo addUserReqVo, HttpServletRequest request);
@Overridepublic R<UserRespVo> addUser(AddUserReqVo addUserReqVo, HttpServletRequest request) {// 校验用户数据是否正确if (addUserReqVo == null || StringUtils.isBlank(addUserReqVo.getUsername())|| StringUtils.isBlank(addUserReqVo.getPassword())|| StringUtils.isBlank(addUserReqVo.getPhone())|| StringUtils.isBlank(addUserReqVo.getEmail())|| StringUtils.isBlank(addUserReqVo.getNickName())){return R.error(ResponseCode.DATA_ERROR.getMessage());}// 对密码进行加密String password = addUserReqVo.getPassword();String encode = passwordEncoder.encode(password);// 获取createIDHttpSession session = request.getSession();Long userId = (Long) session.getAttribute("user_id");SysUser sysUser = new SysUser();BeanUtils.copyProperties(addUserReqVo,sysUser);sysUser.setPassword(encode);sysUser.setCreateId(userId);// 获取状态性别Integer status = Integer.valueOf(addUserReqVo.getStatus());Integer sex = Integer.valueOf(addUserReqVo.getSex());sysUser.setStatus(status);sysUser.setSex(sex);int insert = sysUserMapper.insert(sysUser);if (insert > 0){log.info("用户注册成功");}else {log.error("用户注册失败");return R.error(ResponseCode.ERROR.getMessage());}return R.ok("操作成功");}
3. Dao层
int insert(SysUser record);
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.jixu.stock.pojo.entity.SysUser" useGeneratedKeys="true">insert into sys_user( id,username,password,phone,real_name,nick_name,email,status,sex,deleted,create_id,update_id,create_where,create_time,update_time)values (#{id,jdbcType=BIGINT},#{username,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR},#{phone,jdbcType=VARCHAR},#{realName,jdbcType=VARCHAR},#{nickName,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},#{status,jdbcType=TINYINT},#{sex,jdbcType=TINYINT},#{deleted,jdbcType=TINYINT},#{createId,jdbcType=BIGINT},#{updateId,jdbcType=BIGINT},#{createWhere,jdbcType=TINYINT},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})</insert>
1.3 获取用户具有的角色信息接口说明
1)原型效果

2)接口说明
功能描述:获取用户具有的角色信息,以及所有角色信息
服务路径:/user/roles/{userId}
服务方法:Get
请求参数:String userId
响应参数格式:
{
"code": 1,
"data": {"ownRoleIds": [1237258113002901515],"allRole": [{"id": 1237258113002901512,"name": "超级管理员","description": "我是超级管理员","status": 1,"createTime": "2020-01-06T15:37:45.000+00:00","updateTime": "2021-12-09T23:08:02.000+00:00","deleted": 1},{"id": 1237258113002901513,"name": "标记用户角色测试","description": "标记用户角色测试","status": 1,"createTime": "2020-01-08T02:53:35.000+00:00","updateTime": "2021-12-28T10:16:21.000+00:00","deleted": 1},//..............]
}
}
代码实现
1. 表现层
/*** 获取用户具有的角色信息*/@ApiOperation(value = "获取用户具有的角色信息")@GetMapping("/user/roles/{userId}")public R<Map<String, Object>> getRole(@PathVariable String userId){return UserService.getRole(userId);}
2. 服务层
R<Map<String, Object>> getRole(String userId);
@Overridepublic R<Map<String, Object>> getRole(String userId) {Long id = Long.valueOf(userId);// 查询获得用户角色List<Long> userRoleList = sysUserRoleMapper.getRole(id);// 查询获得所有角色信息ArrayList<SysRole> allRoleList = sysRoleMapper.getAllRole();// 封装数据HashMap<String, Object> data = new HashMap<>();data.put("ownRoleIds" , userRoleList);data.put("allRole",allRoleList);return R.ok(data);}
3. Dao层
List<Long> getRole(@Param("id") Long id);
<select id="getRole" resultType="java.lang.Long">select role_id from sys_user_role where user_id = #{id};</select>
ArrayList<SysRole> getAllRole();
<select id="getAllRole" resultType="com.jixu.stock.pojo.entity.SysRole">select id,name,description,status,create_time,update_time,deletedfrom sys_role;</select>
相关文章:
今日指数day8实战补充(上)
1.用户管理 1.多条件综合查询 1.1 多条件综合查询接口说明 1)原型效果 2)接口说明 功能描述:多条件综合查询用户分页信息,条件包含:分页信息 用户创建日期范围 服务路径:/api/users 服务方法࿱…...
Python 之进阶语法:with...as...
1. Python with…as…是什么 Python 的 with…as… 语句,就像一个贴心的管家,负责照顾你的资源,让你不再担心忘记关闭文件、网络连接或数据库事务等。这个管家在你进入“房间”时自动打开门,离开时帮你把门关上,真的是…...
嵌入式硬件设计知识详解
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
计算机网络:物理层 —— 信道及其极限容量
文章目录 信道信道的极限容量信号失真失真类型产生信号失真的主要因素 奈式准则码元传输速率香农公式 信道 信道是指信息传输的通道或介质。在通信中,信道扮演着传输信息的媒介的角色,将发送方发送的信号传递给接收方。 信道可以是无线信道,…...
面向对象特性中 继承详解
目录 概念: 定义: 定义格式 继承关系和访问限定符 基类和派生类对象赋值转换: 继承中的作用域: 派生类的默认成员函数 继承与友元: 继承与静态成员: 复杂的菱形继承及菱形虚拟继承: 虚…...
C++ | Leetcode C++题解之第455题分发饼干
题目: 题解: class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int m g.size(), n s.size();int count 0;for (int i 0, j 0; i < …...
java版基于Spring Boot + Mybatis在线招投标|评标|竞标|单一采购|询价|邀标|在线开标|招标公告发布|评审专家|招投标采购系统源码
一、项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,…...
Anaconda的安装与环境设置
文章目录 一、Anaconda介绍二、Anaconda环境搭建1. 下载Anaconda(1)官网下载(2)清华大学镜像 2. 安装Anaconda3.配置环境变量4.检验conda是否安装成功5.更改镜像源6.若菜单栏没有conda prompt 三、虚拟环境1.创建、查看、删除虚拟环境2.激活、退出虚拟环境 四、CUDA、Pytorch、…...
使用FastAPI做人工智能后端服务器时,接口内的操作不是异步操作的解决方案
在做AI模型推理的接口时,这时候接口是非异步的,但是uvicorn运行FastAPI时就会出现阻塞所有请求。 这时候需要解决这个问题: api.py: import asyncio from fastapi import FastAPI from fastapi.responses import StreamingResp…...
Leetcode 3312. Sorted GCD Pair Queries
Leetcode 3312. Sorted GCD Pair Queries 1. 解题思路2. 代码实现 题目链接:3312. Sorted GCD Pair Queries 1. 解题思路 这一题的话坦率来说没有搞定,后来是找的大佬的代码抄了一下…… 整体来说这道题思路上还是比较暴力的,还是一个二重…...
用 Delphi 做了一个简单的 CMS
Delphi 代码上面花的时间最少。 前提是你要熟悉 Delphi 的 WebBroker 框架。不熟悉也没关系,5分钟就可以入门,10分钟就熟悉了。 CMS 就是个基于 WEB 的内容管理嘛。相当于一个简单的没有跟贴功能的 BBS。这样的东西,后边是数据库࿰…...
ASK, PSK, FSK, DPSK
ASK, PSK, FSK, DPSK详解: 这四种调制方式都是数字调制技术,用于将数字信号转换成适合在信道上传输的模拟信号。它们的主要区别在于如何用模拟信号的变化来表示数字信息。 1. ASK (Amplitude Shift Keying) 幅移键控: 原理: ASK 通过改变载波信号的幅…...
【Linux】认识Linux内核中进程级别的文件结构体【files_struct】&文件IO模型初步演示
前言 大家好吖,欢迎来到 YY 滴 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Linux》…...
[Offsec Lab] ICMP Monitorr-RCE+hping3权限提升
信息收集 IP AddressOpening Ports192.168.52.218TCP:22,80 $ nmap -p- 192.168.52.218 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 de:b5:23:89:bb:9f:d4:1…...
Studying-多线程学习Part4 - 异步并发——async future、packaged_task、promise
异步并发——async future packaged_task promise 1.async、future 是C11引入的一个函数模版,用于异步执行一个函数,并返回一个future对象,表示异步操作的结果。使用 async 可以方便地进行异步编程,避免了手动创建线程和管理线程…...
【Java基础】用Scanner类获取控制台输入
目录 Scanner类是什么导入并创建读取一个数读取字符串读取一行读取直到空白字符为止读取多个数直到^z读取一个字符 Scanner类是什么 在Java中,Scanner 是一个非常有用的类,用于从各种输入源(如键盘、文件或其他输入流)读取数据。…...
微服务seata解析部署使用全流程
官网地址: Seata 是什么? | Apache Seata 1、Seata术语 用来管理分布式事务,由阿里巴巴出品。 【1、TC (Transaction Coordinator) - 事务协调者】 用来维护事务的,包括主事务和分支事务。 【2、TM (Transaction Manager) - …...
Linux性能调优技巧
目录 前言1. CPU性能优化1.1 调整CPU调度策略1.2 合理分配多核处理 2. 内存性能优化2.1 调整内存分配策略2.2 缓存和分页优化 3. 磁盘I/O性能优化3.1 使用合适的I/O调度器3.2 磁盘分区和文件系统优化 4. 网络性能优化4.1 优化网络参数4.2 调整网络拥塞控制算法 5. 系统监控与优…...
python 实现sha1算法
sha1算法介绍 SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,由美国国家安全局(NSA)设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准…...
ejb-ref元素
ejb-ref 是用于在 Java EE (现在称为 Jakarta EE) 中引用 Enterprise JavaBeans (EJB) 的一个元素,主要用于定义和配置 SLEE (Service Logic Execution Environment) 组件中的 EJB 依赖关系。通过这个引用,SBB (Service Building Block) 可以轻松地访问和…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...
