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

news2024/11/24 20:02:17

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);
    @Override
    public 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_user
        WHERE 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);
    @Override
    public 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);

        // 获取createID
        HttpSession 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);
    @Override
    public 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
                 ,deleted
        from sys_role;
    </select>

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

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

相关文章

Linux的Tomcat安装部署

1.下载jdk11 java11的官方URL 此时进入可能会有登录注册,挺简单的,注册登录就好 2.上传到Linux 3.解压 命令: tar -zxvf /root/linux.jdk/jdk-11.0.24_linux-x64_bin.tar.gz 4.移动解压文件夹到新建文件夹 新建文件夹: mkdir -p /export/server 移动命令: mv jdk-11.0…

联想服务器配置阵列、安装操作系统

文章目录 [toc]1.配置阵列2.制作启动盘3.安装系统 1.配置阵列 1.根据提示进入BIOS设置&#xff08;F1&#xff09; 2.系统设置 3.存储 4.第四步可以看到raid卡信息 5.Main Menu 6.Configuration Management 7.Create Virtual Drive 8.Select RAID Level raid5 9.Select Drives…

透明物体的投射和接收阴影

1、让透明度测试Shader投射阴影 &#xff08;1&#xff09;同样我们使用FallBack的形式投射阴影&#xff0c;但是需要注意的是&#xff0c;FallBack的内容为&#xff1a;Transparent / Cutout / VertexLit&#xff0c;该默认Shader中会把裁剪后的物体深度信息写入到 阴影映射纹…

降重秘籍:如何利用ChatGPT将重复率从45%降至10%以下?

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 重复率高达45%&#xff1f;很多人一查论文的重复率&#xff0c;瞬间想“完了&#xff0c;这次真的要重写了”。但其实不用这么绝望&#xff01;有了ChatGPT&#xff0c;降重真的没那么难。今天就教你几招&a…

VGG16模型实现MNIST图像分类

MNIST图像数据集 MNIST&#xff08;Modified National Institute of Standards and Technology&#xff09;是一个经典的机器学习数据集&#xff0c;常用于训练和测试图像处理和机器学习算法&#xff0c;特别是在数字识别领域。该数据集包含了大约 7 万张手写数字图片&#xf…

wsl环境下安装MySQL5.7

安装操作需root权限&#xff1a; 1-通过 sudo su - &#xff0c;切换到root用户。 2-在每一个命令前加上sudo&#xff0c;临时提升权限 1、下载apt仓库文件 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb 安装包是.deb的文件2、配置仓库&#xff0c;使…

MyBatis 批量插入方案

MyBatis 批量插入 MyBatis 插入数据的方法有几种&#xff1a; for 循环&#xff0c;每次都重新连接一次数据库&#xff0c;每次只插入一条数据。 在编写 sql 时用 for each 标签&#xff0c;建立一次数据库连接。 使用 MyBatis 的 batchInsert 方法。 下面是方法 1 和 2 的…

Linux防火墙-案例(一)filter表

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们经过上小章节讲了Linux的部分进阶命令&#xff0c;我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#x…

51单片机的水位检测系统【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块水位传感器继电器LED、按键和蜂鸣器等模块构成。适用于水位监测、水位控制、水位检测相似项目。 可实现功能: 1、LCD1602实时显示水位高度 2、水位传感器采集水位高度 3、按键可设置水位的下限 4、按键可手动加…

动手学大模型应用开发之大模型简介

动手学大模型应用开发之大模型简介 主要学习目标什么是大语言模型大模型的能力和特点涌现能力作为基座模型支持多元应用的能力支持对话作为统一入口的能力大模型特点 常见大模型ChatGpt通义千问 LangChainLangChain的核心模块 总结相关学习链接 主要学习目标 学习如何进行大模…

【AI知识点】激活函数(Activation Function)

激活函数&#xff08;Activation Function&#xff09; 是神经网络中的一个关键组件&#xff0c;负责将输入的线性组合转化为非线性输出。它赋予神经网络模型以复杂的表达能力&#xff0c;使其能够处理非线性问题&#xff0c;比如分类、图像识别和自然语言处理等任务。 1. 激活…

【redis-06】redis的stream流实现消息中间件

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

Spring Boot:医院管理的数字化转型

5系统详细实现 5.1 医生模块的实现 5.1.1 病床信息管理 医院管理系统的医生可以管理病床信息&#xff0c;可以对病床信息添加修改删除操作。具体界面的展示如图5.1所示。 图5.1 病床信息管理界面 5.1.2 药房信息管理 医生可以对药房信息进行添加&#xff0c;修改&#xff0c;…

今日指数day8实战补充用户管理模块(下)

ps : 由于前端将userId封装为BigInt类型 , 导致有精度损失, 传入的userId不正确 , 部分功能无法正确实现 , 但是代码已经完善 1.4 更新用户角色信息接口说明 1&#xff09;原型效果 2&#xff09;接口说明 功能描述&#xff1a;更新用户角色信息 服务路径&#xff1a;/user/…

基于FPGA的ov5640摄像头图像采集(二)

之前讲过ov5640摄像头图像采集&#xff0c;但是只包了的摄像头驱动与数据对齐两部分&#xff0c;但是由于摄像头输入的像素时钟与HDMI输出的驱动时钟并不相同&#xff0c;所有需要利用DDR3来将像素数据进行缓存再将像素数据从DDR3中读出&#xff0c;对DDR3的读写参考米联客的IP…

别再为日期时间头疼了!Python datetime模块助你高效搞定一切时间问题,让你的代码从此与时间赛跑,快人一步!

博客主页&#xff1a;长风清留扬-CSDN博客系列专栏&#xff1a;Python基础专栏每天更新大数据相关方面的技术&#xff0c;分享自己的实战工作经验和学习总结&#xff0c;尽量帮助大家解决更多问题和学习更多新知识&#xff0c;欢迎评论区分享自己的看法感谢大家点赞&#x1f44…

花半小时用豆包Marscode 和 Supabase免费部署了一个远程工作的导航站

以下是「 豆包MarsCode 体验官」优秀文章&#xff0c;作者谦哥。 &#x1f680; 项目地址&#xff1a;remotejobs.justidea.cn/ &#x1f680; 项目截图&#xff1a; 数据处理 感谢开源项目&#xff1a;https://github.com/remoteintech/remote-jobs 网站信息获取&#xff1…

MyBatis 操作数据库入门

目录 前言 1.创建springboot⼯程 2.数据准备 3.配置Mybatis数据库连接信息 4.编写SQL语句&#xff0c;进行测试 前言 什么是MyBatis? MyBatis是⼀款优秀的 持久层 框架&#xff0c;⽤于简化JDBC的开发 Mybatis操作数据库的入门步骤&#xff1a; 1.创建springboot⼯程 2.数…

SOMEIP_ETS_171: SD_Unicast_FindService

测试目的&#xff1a; 验证DUT能够响应Tester发送的多个单播FindService消息&#xff0c;并至少回复一个单播OfferService消息。 描述 本测试用例旨在确保DUT能够正确处理单播FindService消息请求&#xff0c;并为请求的服务提供至少一个单播OfferService消息作为响应。 测…

SpringBootWeb快速入门!详解如何创建一个简单的SpringBoot项目?

在现代Web开发中&#xff0c;SpringBoot以其简化的配置和快速的开发效率而受到广大开发者的青睐。本篇文章将带领你从零开始&#xff0c;搭建一个基于SpringBoot的简单Web应用~ 一、前提准备 想要创建一个SpringBoot项目&#xff0c;需要做如下准备&#xff1a; idea集成开发…