一、基础增删改查功能
1. 添加队伍
@PostMapping("/add")
public BaseResponse<Boolean> addTeam(@RequestBody Team team) {
if (team == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
boolean result = teamService.save(team);
if (!result) {
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "添加失败");
}
return ResultUtils.success(result);
}
2. 删除队伍
@PostMapping("/delete")
public BaseResponse<Boolean> deleteTeamById(long id) {
if (id <= 0) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
boolean result = teamService.removeById(id);
if (!result) {
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "删除失败");
}
return ResultUtils.success(result);
}
3. 修改 / 更新队伍信息
@PostMapping("/update")
public BaseResponse<Boolean> updateTeam(@RequestBody Team team) {
if (team == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
boolean result = teamService.updateById(team);
if (!result) {
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "更新失败");
}
return ResultUtils.success(result);
}
4. 查找队伍
@GetMapping("/get")
public BaseResponse<Team> getTeamById(long teamId) {
if (teamId <= 0) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
Team team = teamService.getById(teamId);
if (team == null) {
throw new BusinessException(ErrorCode.NULL_ERROR);
}
return ResultUtils.success(team);
}
二、列表查询
1. 封装请求包装类
package com.example.usercenter.model.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.example.usercenter.common.PageRequest;
import lombok.Data;
/**
* @author 乐小鑫
* @version 1.0
* @Date 2024-01-22-20:14
*/
@Data
public class TeamQuery extends PageRequest {
private static final long serialVersionUID = -8434935321943948180L;
/**
* id
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 队伍名称
*/
private String name;
/**
* 最大人数
*/
private Integer maxNum;
/**
* 用户id
*/
private Long userId;
/**
* 0 - 公开,1 - 私有,2 - 加密
*/
private Integer status;
}
2. 创建查询构造器
3. 执行列表查询
@GetMapping("/list")
public BaseResponse<List<Team>> listTeams(TeamQuery teamQuery) {
if (teamQuery == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
Team team = new Team();
BeanUtils.copyProperties(teamQuery, team);
QueryWrapper<Team> queryWrapper = new QueryWrapper<>();
List<Team> teamList = teamService.list(queryWrapper);
return ResultUtils.success(teamList);
}
三、分页查询
1. 通用分页查询请求参数
package com.example.usercenter.common;
import lombok.Data;
import java.io.Serializable;
/**
* 通用分页查询参数
* @author 乐小鑫
* @version 1.0
* @Date 2024-01-22-20:16
*/
@Data
public class PageRequest implements Serializable {
private static final long serialVersionUID = 1395844225639844641L;
/**
* 页面大小
*/
private int pageSize = 10;
/**
* 当前页数
*/
private int pageNum = 1;
}
2. 创建查询构造器
3. 执行分页查询
@GetMapping("/list/page")
public BaseResponse<Page<Team>> listTeamsByPage(TeamQuery teamQuery) {
if (teamQuery == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
Page<Team> page = new Page<>(teamQuery.getPageNum(),teamQuery.getPageSize());
QueryWrapper<Team> queryWrapper = new QueryWrapper<>();
Page<Team> resultPage = teamService.page(page, queryWrapper);
return ResultUtils.success(resultPage);
}
四、请求参数包装类和包装类
1. 为什么需要请求参数包装类?文章来源:https://www.toymoban.com/news/detail-817979.html
- 请求参数名称 / 类型和实体类型不一致
- 有一些参数用不到,如果要生成接口文档,会增加理解成本
- 多个实体类映射到一个对象的场景
2. 为什么需要(响应数据)包装类?文章来源地址https://www.toymoban.com/news/detail-817979.html
- 有些数据需要隐藏,不能返回给前端(封装 VO 类)
- 有些字段某些方法不关心
到了这里,关于浪花 - 组队功能后端开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!