今日指数day8实战补充(上)

news/2024/10/8 1:38:42/

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 &lt;= #{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>

http://www.ppmy.cn/news/1535937.html

相关文章

华为OD机试 - 冠亚军排名(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

六.应用层

目录 ​编辑 4.11 DHCP 6.1应用层的概述 6.2网络应用模型 CS P2P 6.3DNS 域名 www是什么&#xff0c;http是什么&#xff0c;到底什么区别&#xff1f; DNS出现及演化 DNS概括 DNS域名解析过程 6.4FTP FTP客户/服务器 FTP工作原理 FTP传输模式 6.5电子邮件 电…

微服务JMeter解析部署使用全流程

目录 1、介绍 2、下载 3、运行 4、设置简体中文版 5、开始测试 1、添加线程组 2、添加监听器 3、添加请求 先.测试userController里的查询方法 6、查看结果 1、查看结果树 2、汇总报告 3、聚合报告 7、JMeter报错 1、介绍 Apache JMeter 是 Apache 组织基于 Java…

Python知识点:如何使用Kafka与Python进行流数据处理

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Kafka与Python进行流数据处理 Apache Kafka是一个流行的分布式流处理平…

实验 | 使用本地大模型从论文PDF中提取结构化信息

非结构文本、图片、视频等数据是待挖掘的数据矿藏&#xff0c; 在经管、社科等研究领域中谁拥有了_从非结构提取结构化信息的能力_&#xff0c;谁就拥有科研上的数据优势。正则表达式是一种强大的文档解析工具&#xff0c;但它们常常难以应对现实世界文档的复杂性和多变性。而随…

【CSS】水平垂直居中

给父盒子设置属性 flex display: flex;写在父元素上这就是定义了一个伸缩容器justify-content&#xff1a;center 设置主轴对齐方式为居中&#xff0c;默认是横轴。子元素居中。align-items&#xff1a;center 设置纵轴对齐方式为居中&#xff0c;默认是纵轴。子元素居中。 给…

qt_c++_xml存这种复杂类型

demo&#xff0c;迅雷链接。或者我主页上传的资源 链接&#xff1a;https://pan.xunlei.com/s/VO8bIvYFfhmcrwF-7wmcPW1SA1?pwdnrp4# 复制这段内容后打开手机迅雷App&#xff0c;查看更方便 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include…

智能手表(Smart Watch)项目

文章目录 前言一、智能手表&#xff08;Smart Watch&#xff09;简介二、系统组成三、软件框架四、IAP_F411 App4.1 MDK工程结构4.2 设计思路 五、Smart Watch App5.1 MDK工程结构5.2 片上外设5.3 板载驱动BSP5.4 硬件访问机制-HWDataAccess5.4.1 LVGL仿真和MDK工程的互相移植5…