当前位置: 首页 > news >正文

短链接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。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Socket网络通信流程
  • 昇思25天学习打卡营第6天|函数式自动微分
  • Docker安装遇到问题:curl: (7) Failed to connect to download.docker.com port 443: 拒绝连接
  • Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
  • Sql 导入到 Excel 工具
  • OpenFWI代码
  • 如何用qq邮箱注册outlook邮箱
  • 若依 / ruoyi-ui:执行yarn dev 报错 esnext.set.difference.v2.js in ./src/utils/index.js
  • 使用redis进行短信登录验证(验证码打印在控制台)
  • STM32的SPI接口详解
  • 【算法】代码随想录之数组(更新中)
  • Python学习笔记33:进阶篇(二十二)pygame的使用之image模块
  • 【笔记】在window上连接虚拟机中的redis
  • PTA - 编写函数计算圆面积
  • 垃圾回收器详解
  • (三)从jvm层面了解线程的启动和停止
  • Android开源项目规范总结
  • extract-text-webpack-plugin用法
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Mac转Windows的拯救指南
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Redis 懒删除(lazy free)简史
  • 多线程 start 和 run 方法到底有什么区别?
  • 机器学习学习笔记一
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前言-如何学习区块链
  • 使用agvtool更改app version/build
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 想使用 MongoDB ,你应该了解这8个方面!
  • gunicorn工作原理
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​人工智能书单(数学基础篇)
  • ​学习一下,什么是预包装食品?​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # Redis 入门到精通(一)数据类型(4)
  • # 数据结构
  • ###C语言程序设计-----C语言学习(3)#
  • #NOIP 2014# day.2 T2 寻找道路
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (52)只出现一次的数字III
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三)elasticsearch 源码之启动流程分析
  • (四)js前端开发中设计模式之工厂方法模式
  • (转)nsfocus-绿盟科技笔试题目
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .net FrameWork简介,数组,枚举
  • .NET NPOI导出Excel详解
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性