短链接day3

短链接分组模块

新增短链接分组

在新增之前,需要判断gid是否是唯一的。

    //检查gid是否已存在,保证gid唯一public boolean hasGid(String gid){LambdaQueryWrapper<GroupDO> queryWrapper = Wrappers.lambdaQuery(GroupDO.class).eq(GroupDO::getGid, gid).eq(GroupDO::getUsername, UserContext.getUsername());GroupDO hasGroupFlag=baseMapper.selectOne(queryWrapper);return hasGroupFlag==null;}
设置用户上下文

common/biz/user下和config下UserConfiguration

其中,@JSONField(name = "id")来设置userinfodto中的userid。

设置线程安全的TTL,实现跨线程的异步传输。

了解原理:ttl原理

@JSONField注解可以用在方法(method),属性(field)以及方法中的参数(parameter)上。JSONField中的name属性用来指定JSON串中key的名称。

修改短链接分组

在修改功能实现时,会出现请求成功了,但是数据库信息未更改,原因是token已经过期了,所以需要重新登录。在用户信息传输过滤器中filter需要将登录路径排除。(实际需要在网关配置)

 @Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;String requestURI=httpServletRequest.getRequestURI();if(!Objects.equals(requestURI,"/api/short-link/v1/user/login")){String username = httpServletRequest.getHeader("username");String token = httpServletRequest.getHeader("token");Object userInfoJsonStr = stringRedisTemplate.opsForHash().get("login_" + username, token);if(userInfoJsonStr!=null){UserInfoDTO userInfoDTO = JSON.parseObject(userInfoJsonStr.toString(), UserInfoDTO.class);UserContext.setUser(userInfoDTO);}}try {filterChain.doFilter(servletRequest, servletResponse);} finally {UserContext.removeUser();}}
删除短链接分组

删除一般用软删除,所以用update做。

设置delflag为1。

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

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

相关文章

在Windows中使用开源高性能编辑器Zed(持续更新)

简介 “Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It’s also open source.” “Zed是一款高性能的支持多人协作的代码编辑器&#xff0c;由Atom和Tree-sitter的创建者开发。它也是开源的。” Zed主打“高性能”&…

为什么选择开放式耳机?悠律凝声环开放式耳机体验

开放式耳机相对于其他传统耳机优势有以下几点&#xff1a; 配戴舒适性更好&#xff1a;由于开放式耳机的背面是开放的&#xff0c;空气可以自由流动&#xff0c;减少了耳朵的闷热感。长时间佩戴时更加舒适。&#xff0c;而传统入耳式耳机一般都是塞入耳道&#xff0c;久戴会胀…

Java中的 this 关键字是什么意思? this() 又是什么?

目录 问题问题一&#xff1a;什么是this关键字?问题二&#xff1a;什么是this()&#xff1f; 问题 问题一&#xff1a;什么是this关键字? 定义&#xff1a;this 代表当前对象。这个定义比较抽象&#xff0c;举例来回答。 思考一个问题&#xff1a;如果没有 this 会怎样&…

鸿蒙开发学习笔记2

一、class 类 类是用于 创建对象模版。同时类声明也会引入一个 新类型&#xff0c;可定义其 实例属性、方法 和 构造函数。 // 类名 首字母大写&#xff08;规范&#xff09; class 类名 {// 1、实例属性&#xff08;字段&#xff09;// 2、构造函数// 3、方法 }1、属性&…

IO练习网络爬虫获取

题目&#xff1a; 具体文字内容如下&#xff1a; 练习&#xff1a;制造假数据 需求&#xff1a;制造假数据是开发中的一项重要能力&#xff0c;从各个网站爬取数据是其中的一种方法。 获取姓氏示例及链接&#xff1a; 赵钱孙李 周吴郑王 链接&#xff1a;百家姓_诗词_百度汉…

如何追踪ping连接中的所有路由器的数量和IP

如何快速判断ping连接经过的路由器个数和IP&#xff1f; 方法一&#xff1a; ping命令会返回一个TTL&#xff0c;TTL&#xff08;Time To Live&#xff09;存活时间&#xff0c;一般初始值为64&#xff0c;每经过一个路由器就减一&#xff0c;当TTL为0时丢弃网络包&#xff0…

“Numpy数据分析与挖掘:高效学习重点技能“

目录 # 开篇 # 补充 zeros & ones eye 1. numpy数组的创建 1.1 array 1.2 range 1.3 arange 1.4 常见的数据类型 1.5 astype 1.6 random.random() & round 2. numpy数组计算和数组计算 2.1 reshape 2.2 shape 2.3 将一维数组变成多维数组 2.4 指定一维…

0010基于免疫遗传算法的配送中心选址

免疫优化算法&#xff08;Immune Optimization Algorithm, IOA&#xff09;在物流配送中心选址中的应用是通过模拟免疫系统的进化过程来解决选址优化问题。物流配送中心选址问题涉及到如何在给定区域内选择最优的位置&#xff0c;以最大化服务覆盖并最小化运输成本。 免疫优化…

我的FPGA

1.安装quartus 2.更新usb blaster驱动 3.新建工程 1.随便找一个文件夹&#xff0c;里面新建demo文件夹&#xff0c;表示一个个工程 在demo文件夹里面&#xff0c;新建src&#xff08;源码&#xff09;&#xff0c;prj&#xff08;项目&#xff09;&#xff0c;doc&#xff…

HTTP代理的用途有哪些-okeyproxy

通過HTTP代理&#xff0c;客戶端可以間接訪問目標伺服器&#xff0c;從而實現多種功能。無論你是普通用戶還是技術大咖&#xff0c;HTTP代理都能帶來諸多便利和安全保障。本文將從多個角度詳細探討HTTP代理的用途。 HTTP代理的重要用途 1. 訪問控制和內容過濾 在企業和教育機…

什么是语音降噪?

当我们使用手机或者电脑进行语音通话时&#xff0c;有时候会听到背景噪音干扰&#xff0c;比如人声、电视声或者风扇声。这些噪音让我们的通话变得不清晰&#xff0c;影响了沟通效果。那么&#xff0c;有没有什么方法可以让我们的语音通话更清晰呢&#xff1f;这就要介绍一下语…

压缩感知2——算法模型

采集原理 其中Y就是压缩后的信号表示(M维)&#xff0c;Φ表示采集的测量矩阵&#xff0c;可以是一个随机矩阵&#xff0c;X代表原始的数字信号&#xff08;N维&#xff09;。 常见的测量矩阵——随机高斯矩阵 随机伯努利矩阵 稀疏随机矩阵等&#xff0c;矩阵需要满足与信号的稀…

spring xml实现bean对象(仅供自己参考)

对于spring xml来实现bean 具体代码&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaL…

修改ES索引名称

1 案例背景 将ES索引【my-index】修改为【my-index-v1】&#xff0c;方便添加索引别名 2 操作步骤 首先通过PUT请求将旧索引my-index设置为可写&#xff08;如果之前设置为不可写&#xff09; PUT /my-index/_settings {"settings": {"index.blocks.write&q…

AWS无服务器 应用程序开发—第十七章 Application Composer

Application Composer 是 AWS 提供的一种可视化工具,用于设计和构建无服务器应用程序。它通过拖放界面简化了无服务器架构的创建过程,使开发者能够更直观地设计和配置应用程序的各个组件。 主要功能 可视化设计 通过拖放界面,开发者可以轻松地添加和配置 AWS 资源,如 L…

2-29 基于matlab的CEEMD

基于matlab的CEEMD&#xff08;Complementary Ensemble Empirical Mode Decomposition&#xff0c;互补集合经验模态分解&#xff09;&#xff0c;先将数据精心ceemd分解&#xff0c;得到imf分量&#xff0c;然后通过相关系数帅选分量&#xff0c;在求出他们的样本熵的特征。用…

昇思训练营打卡第二十一天(DCGAN生成漫画头像)

DCGAN&#xff0c;即深度卷积生成对抗网络&#xff08;Deep Convolutional Generative Adversarial Network&#xff09;&#xff0c;是一种深度学习模型&#xff0c;由Ian Goodfellow等人在2014年提出。DCGAN在生成对抗网络&#xff08;GAN&#xff09;的基础上&#xff0c;引…

【CentOS】Linux命令之docker命令(持续更新)

删除所有容器 该命令将删除所有已停止的容器。你还可以使用其他状态值&#xff0c;例如created、restarting或dead docker container rm $(docker container ls -aqf statusexited)删除所有镜像 该命令将删除所有镜像&#xff0c;包括被使用的镜像。请注意&#xff0c;如果某…

【深度学习】第5章——卷积神经网络(CNN)

一、卷积神经网络 1.定义 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种专门用于处理具有网格状拓扑结构数据的深度学习模型&#xff0c;特别适用于图像和视频处理。CNN 通过局部连接和权重共享机制&#xff0c;有效地减少了参数数量&#x…

使用OpencvSharp实现人脸识别

在网上有很多关于这方面的博客&#xff0c;但是都没有说完整&#xff0c;按照他们的博客做下来代码都不能跑。所以我就自己写个博客补充一下 我这使用的.NET框架版本是 .NetFramework4.7.1 使用Nuget安装这两个程序包就够了&#xff0c;不需要其他的配置 一定要安装OpenCvSha…