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

从零到一构建短链接系统(八)

1.git上传远程仓库(现在才想起来)

git init

git add .

git commit -m "first commit"

git remote add origin OLiyscxm/shortlink

git push -u origin "master"

2.开发全局异常拦截器之后就可以简化UserController

拦截器可以替代为空判断

3.common目录下创建目录serialize,再创建类

public class PhoneDesensitizationSerializer extends JsonSerializer<String> {@Overridepublic void serialize(String phone, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)throws IOException {String phoneDesensitization = DesensitizedUtil.mobilePhone(phone);jsonGenerator.writeString(phoneDesensitization);}
}

4.UserRespDTO添加json序列化注释

5.resp目录下定义一个UserActualRespDTO类,这个类就不要json序列化注释了,再修改UserController,这时就可以选择是否查看真实用户手机号了

@RestController
@RequiredArgsConstructor
public class UserController {private final UserService userService;/*** * 根据用户名查询用户信息* */@GetMapping("/api/shortlink/v1/user/{username}")public Result<UserRespDTO> getUserByUsername(@PathVariable("username") String username) {return Results.success(userService.getUserByUsername(username));}@GetMapping("/api/shortlink/v1/actual/user/{username}")public Result<UserActualRespDTO> getActualUserByUsername(@PathVariable("username") String username) {return Results.success(BeanUtil.toBean(userService.getUserByUsername(username), UserActualRespDTO.class));}
}

6.新增查询用户名是否存在功能

UserService中添加

/**
* 查询用户名是否存在
* @param username 用户名
* @return 存在返回True,不存在返回False
*/Boolean hasUsername(String username);

UserServiceImpl中添加

@Override
public Boolean hasUsername(String username) {LambdaQueryWrapper<UserDO> queryWrapper = Wrappers.lambdaQuery(UserDO.class).eq(UserDO::getUsername, username);UserDO userDO = baseMapper.selectOne(queryWrapper);return userDO==null;
}

UserController中添加

/**
*查询用户名是否存在
*/@GetMapping("/api/shortlink/v1/user/has-username")
public Result<Boolean> hasUsername(@RequestParam("username") String username){return Results.success(userService.hasUsername(username));
}

7.data一栏OLi存在,返回false

http://www.lryc.cn/news/325783.html

相关文章:

  • 缺省和重载。引用——初识c++
  • java常用IO流功能——字符流和缓冲流概述
  • Python中模块的定义、用法
  • 【vscode 常用扩展插件】
  • Retelling|Facebook2
  • 读3dsr代码①测试
  • Vant Weapp小程序 van-uploader 文件上传点击无反应,删除无反应
  • 【力扣】55.跳跃游戏、45.跳跃游戏Ⅱ
  • 038—pandas 重采样线性插补
  • 智慧工地源码 数字孪生可视化大屏 工地管理平台系统源码 多端展示(PC端、手机端、平板端)
  • 深度学习Top10算法之深度神经网络DNN
  • 【智能算法】海马优化算法(SHO)原理及实现
  • AI大模型学习的伦理与社会影响
  • 记录些LangChain相关的知识
  • C语言例4-7:格式字符f的使用例子
  • [蓝桥杯 2019 省 A] 修改数组
  • Git基础(25):Cherry Pick合并指定commit id的提交
  • C语言结构体之位段
  • 2016年认证杯SPSSPRO杯数学建模D题(第二阶段)NBA是否有必要设立四分线全过程文档及程序
  • 登录校验解决方案JWT
  • Flutter开发进阶之瞧瞧BuildOwner
  • 大量免费工具使用(提供api接口)
  • 网络探测工具Nmap介绍
  • 20240319-2-机器学习基础面试题
  • 0202矩阵的运算-矩阵及其运算-线性代数
  • python中的__dict__
  • 数学分析复习:无穷乘积
  • 02 React 组件使用
  • 你就是上帝
  • Spring Cloud: openFegin使用