11. 实现业务功能--获取用户信息

news2024/9/23 15:25:05

目录

1. 实现 Controller

2. 单体测试

3. 修复返回值存在的缺陷

3.1 用户的隐私数据:密码的密文和盐不能显示

3.2 将值为 null 的字段可以进行过滤

3.3 时间的格式需要进行处理,如 yyyy-mmmm-ddd  HH:mm:ss

3.4 data 属性没有返回 

4. 实现前端页面


1. 实现 Controller

@ApiOperation("获取用户信息")
    @ResponseBody
    @GetMapping("/info")
    public AppResult<User> getUserInfo (HttpServletRequest request) {
        // 获取session对象
        HttpSession session = request.getSession(false);
        // 判断 session 是否有效
        if (session == null || session.getAttribute(AppConfig.SESSION_USER_KEY) == null) {
            return AppResult.failed("用户未登录");
        }
        // 退出成功响应
        User user = (User) session.getAttribute(AppConfig.SESSION_USER_KEY);
        return AppResult.success(user);
    }

2. 单体测试

先进行登录: 

 获取信息:

3. 修复返回值存在的缺陷

我们可以看到在返回的结果存在的问题:

3.1 用户的隐私数据:密码的密文和盐不能显示

        在 JSON 序列化的时候把相应的字段排除掉。 在对应的字段加上如下图所示的注解:

 重新运行后,可以看到已经成功将隐私字段进行了排除显示:

3.2 将值为 null 的字段可以进行过滤

添加以下配置: 

重新运行后: 

3.3 时间的格式需要进行处理,如 yyyy-mmmm-ddd  HH:mm:ss

添加以下配置:  

重新运行后: 

3.4 data 属性没有返回 

但是此时由于设置了不为 null 时才参与 JSON 初始化,导致了 data 属性没有返回:

 通过添加注解: @JsonInclude(JsonInclude.Include.ALWAYS) 可以解决上述问题。

测试:

4. 实现前端页面

    //========================= 获取用户信息 =======================
    // 成功后,手动设置用户信息
    // $('#index_nav_avatar').css('background-image', 'url(' + user.avatarUrl + ')');
    $.ajax({
      type : 'GET',
      url : 'user/info',
      // 成功回调
      success : function(respData) {
          // ⽤状态码判断是否成功
            if (respData.code == 0) {
              // 成功
              // 获取用户信息
              let user = respData.data;
              // 设置用户头像的默认值
              if(!user.avatarUrl){
                user.avatarUrl = avatarUrl;
              }
              // 设置用户头像
              $('#index_nav_avatar').css('background-image', 'url(' + user.avatarUrl + ')');
              // 设置昵称
              $('#index_nav_nickname').html(user.nickname);
              // 设置用户组
              let subName = user.isAdmin == 1 ? '管理员' : '普通用户';
              $('#index_nav_name_sub').html(subName);
            } else {
            // 失败
            $.toast({
              heading : '警告',
              text : respData.message,
              icon : 'Warning'
            });
           }
          },
          // 失败(HTTP)
          error: function() {
            $.toast({
              heading : '错误',
              text : '出错了,请联系管理员',
              icon : 'error'
            });
          }

    });

最终的运行结果如图所示: 


有关获取用户的信息的实现就到此结束~

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

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

相关文章

低代码平台全套源码,支持二次开发

低代码开发平台&#xff1a;只需要编写简单的配置文件即可构建企业级应用程序。 一、低代码PaaS平台可以在云端开发、部署、运行低代码应用程序。使用独立数据库模型&#xff0c;基于Kubernetes云原生技术&#xff0c;每个租户均可拥有一套独立的存储、数据库、代码和命名空间&…

光栅化之扫描填充三角形

重心坐标计算 重心坐标比较简单&#xff0c;取最大包围合再计算点是否在三角形内就行&#xff0c;再根据重心坐标返回的alpha,beta,gamma三个权重值计算 uv映射和depth深度缓冲值&#xff0c;因为是求的重心坐标&#xff0c;感觉效果比插值的要好一点。 求重心坐标 barycentr…

Qt 编译使用Bit7z库接口调用7z.dll、7-Zip.dll解压压缩常用Zip、ISO9660、Wim、Esd、7z等格式文件(一)

bit7z一个c静态库&#xff0c;为7-zip共享库提供了一个干净简单的接口 使用CMAKE重新编译github上的bit7z库&#xff0c;用来解压/预览iso9660&#xff0c;WIm&#xff0c;Zip,Rar等常用的压缩文件格式。z-zip库支持大多数压缩文件格式 导读 编译bit7z(C版本)使用mscv 2017编译…

C# 把dll打包到exe文件,真的可以 。文件批量转了ANSI编码

在 C# 中&#xff0c;将 DLL 文件打包到 EXE 文件中可以使用 ILRepack 工具。ILRepack 是一个开源的工具&#xff0c;可以合并多个 DLL 文件并将它们嵌入到一个 EXE 文件中&#xff0c;从而实现将 DLL 打包到 EXE 的功能。 以下是使用 ILRepack 工具打包 DLL 到 EXE 的步骤&…

CSDN今日热榜词云图

文章目录 C云原生人工智能和Python前沿技术软件工程后端javajavascriptphp区块链大数据移动开发嵌入式开发工具数据结构与算法微软技术测试游戏网络运维 C C果然还是应试语言&#xff0c;真题的占比竟然这么大。C之所以没出现&#xff0c;很有可能是在做词云的时候把加号当作非…

多人联机对战游戏赛道,你准备好了吗?

用户日益增长的精神需求和社交娱乐需要&#xff0c;让联机对战的需求与日剧增。 硬件和网络技术的高速发展&#xff0c;也使得联机游戏的体验越来越好。 可以看到&#xff0c;越来越多的联机对战游戏登上游戏榜单。 联机对战已逐渐成为主流&#xff0c;无论在哪个游戏榜单&…

二,MySQL数据库主从复制的介绍及搭建(收藏)

一&#xff0c;介绍概述 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中&#xff0c;然后在从库上对这些日志重新执行&#xff08;也叫重做&#xff09;&#xff0c;从而使得从库和主库的数据保持同步。 DDL&#xff1a;数据定义语言&#xff0c;用…

HRS--人力资源系统(Springboot+vue)--打基础升级--(二)写个主菜单导航界面

1. 华为OD机考题 答案 2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09; 2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; 2. 面试题 一手真实java面试题&#xff1a;2023年各大公司java面试真题汇总--…

计算机 数进制转换;存储MB与带宽Mbps

参考&#xff1a;https://zhuanlan.zhihu.com/p/459817484 1、计算机 数进制转换 1&#xff09;与十进制相关的转换 2&#xff09;与二进制相关的转换 二进制是Binary&#xff0c;简写为B&#xff1b;八进制是Octal&#xff0c;简写为O&#xff1b;十进制是Decimal&#xff…

117页数字化转型与产业互联网发展趋势及机会分析报告PPT

导读&#xff1a;原文《》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 喜欢文章&#xff0c;您可以点赞评论转发本文&#xff0c;了解更多内容请私信&#xff1a;方…

Ubuntu16.04-ros-kinetic环境搭建笔记=1=

tips&#xff1a;搬运资料&#xff0c;留个记录 安装Ubuntu Ubuntu官网下载地址 安装 虚拟机安装Ubuntu 最好断网安装Ubuntu&#xff0c;可以节约时间 Ubuntu基础设置 Ubuntu换国内源 换成清华源 sudo apt upgradeVMwareTool安装 把这个压缩包拖到桌面&#xff0c;否则只读…

PyTorch翻译官网教程-TEXT CLASSIFICATION WITH THE TORCHTEXT LIBRARY

官网链接 Text classification with the torchtext library — PyTorch Tutorials 2.0.1cu117 documentation 使用torchtext库进行文本分类 在本教程中&#xff0c;我们将展示如何使用torchtext库来构建用于文本分类分析的数据集。 使用迭代器访问原始数据构建数据处理管道…

JAVA基础知识(四)——面向对象(上)

面向对象&#xff08;上&#xff09; 一、面向对象的概念1.1 何谓“面向对象”的编程思想1.2 面向过程(POP)与面向对象(OOP)1.3 面向对象的思想概述 二、类和对象2.1 面向对象的思想概述 三、对象的创建和使用3.1 设计类以及类和对象的使用3.2 类和对象 四、类的成员之一&#…

leetcode 125.验证回文串

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;https://leetcode.cn/problems/valid-palindrome/ 思路&#xff1a; 这道题只判断字符串中的字母与数字是否是回文。虽然小写大写字母可以互相转换&#xff0c;但是里面是含有数字字符的&#xff0c;所以先统一&#xff…

solr快速上手:聚合分组查询|嵌套分组指南(十二)

0. 引言 solr作为搜索引擎经常用于各类查询场景&#xff0c;我们之前讲解了solr的查询语法&#xff0c;而除了普通的查询语法&#xff0c;有时我们还需要实现聚合查询来统计一些指标&#xff0c;所以今天我们接着来查看solr的聚合查询语法 1. 常用聚合查询语法 以下演示我们…

虚幻官方项目《CropOut》技术解析 之 程序化岛屿生成器(IslandGenerator)

开个新坑详细分析一下虚幻官方发布的《CropOut》&#xff0c;文章会同步发布到我在知乎|CSDN的专栏里 文章目录 概要Create Island几何体生成部分随机种子Step 1Step 2Step 3Step 4Step 5Step 6 岛屿材质部分动态为草地设置颜色 程序设计的小技巧其它Platform Switch函数 概要 …

Python接口自动化测试实战教程

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中&#xff0c;我们…

TEE OS中使用secure timer

我们知道Arm的架构设计中&#xff0c;timer这一块是有缺陷的&#xff1a;Timer的TVAL功能不能同时给EL3和S-EL1使用&#xff0c;这是硬件的设计。在ATF和TEE OS的代码中&#xff0c;只能有一处使用&#xff0c;并且也需要设计者实现提前约定好。 好在大多数的TEE OS 都不会去使…

Amazon CloudFront 部署小指南(六)- Lambda@Edge 基础与诊断

内容简介 本文适用于希望使用 Amazon CloudFront LambdaEdge 提升 Amazon CloudFront 边缘计算能力的用户&#xff0c;旨在帮助您更好的进行 CloudFront LambdaEdge 的开发、调试、测试、部署等工作。 首先我们会对 CloudFront LambdaEdge 做个简单的介绍&#xff0c;然后分七个…

干货|工作中要使用Git,看这篇文章就够了

本文将从 Git 入门到进阶、由浅入深&#xff0c;从常用命令、分支管理、提交规范、vim 基本操作、进阶命令、冲突预防、冲突处理等多方面展开&#xff0c;足以轻松应对工作中遇到的各种疑难杂症&#xff0c;如果觉得有所帮助&#xff0c;还望看官高抬贵手给个赞呗&#xff0c;感…