分页请求查询
req
用户查询请求
req/UserQueryReq
@Data
@ToString(callSuper = true) //要加上callSuper = true,否则extends不生效
public class UserQueryReq extends PageReq{
private String name;
private Integer age;
}
用户保存请求
req/UserSaveReq
@Data
@ToString
public class UserSaveReq {
private Integer id;
@NotNull(message = "【name】不能为空")
private String name;
@NotNull(message = "【age】不能为空")
private Integer age;
}
用户更新请求
req/UserSaveReq
@Data
public class UserUpdateReq {
@NotNull(message = "【id】不能为空")
private Integer id;
private String name;
private Integer age;
}
分页请求
req/PageReq
@Data
public class PageReq {
@NotNull(message = "【页码】不能为空")
private Integer page;
@NotNull(message = "【每页条数】不能为空")
@Max(value = 100, message = "【每页条数】不能超过100")
private Integer size;
}
resp
公共响应
resp/CommonResp
public class CommonResp<T> {
/**
* 业务上的成功或失败
*/
private boolean success = true;
/**
* 返回信息
*/
private String message;
/**
* 返回泛型数据,自定义类型
*/
private T content;
public CommonResp() {
}
public CommonResp(boolean success, String message, T content) {
this.success = success;
this.message = message;
this.content = content;
}
public CommonResp(T content) {
this.content = content;
}
public boolean getSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getContent() {
return content;
}
public void setContent(T content) {
this.content = content;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("CommonResp{");
sb.append("success=").append(success);
sb.append(", message='").append(message).append('\'');
sb.append(", content=").append(content);
sb.append('}');
return sb.toString();
}
}
分页响应
resp/PageResp
public class PageResp<T> implements Serializable {
/**
* 总条数
*/
private Long total;
/**
* 当前页的列表
*/
private List<T> list;
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
@Override
public String toString() {
return "PageResp{" +
"total=" + total +
", list=" + list +
'}';
}
}
controller
@RestController
@RequestMapping("user")
@Slf4j
public class UserController {
@Resource
private UserService userService;
@GetMapping("/query-list")
public CommonResp<PageResp<UserQueryResp>> queryList(@Valid @RequestBody UserQueryReq req) {
PageResp<UserQueryResp> list = userService.queryList(req);
return new CommonResp<>(list);
}
@PostMapping("/save")
public CommonResp<Object> save(@Valid @RequestBody UserSaveReq req) {
userService.save(req);
return new CommonResp<>();
}
@PutMapping("/update")
public CommonResp<Object> update(@Valid @RequestBody UserUpdateReq user) {
userService.update(user);
return new CommonResp<>();
}
@DeleteMapping("/delete/{id}")
public CommonResp<Object> update(@PathVariable Integer id) {
userService.delete(id);
return new CommonResp<>();
}
}
service
@Service
@Slf4j
public class UserService {
@Resource
private UserMapper userMapper;
public PageResp<UserQueryResp> queryList(UserQueryReq req) {
UserExample userExample = new UserExample();
UserExample.Criteria criteria = userExample.createCriteria();
if (ObjUtil.isNotNull(req.getName())) {
criteria.andNameEqualTo(req.getName());
}
log.info("查询页码:{}", req.getPage());
log.info("每页条数:{}", req.getSize());
PageHelper.startPage(req.getPage(), req.getSize());
List<User> userList = userMapper.selectByExample(userExample);
PageInfo<User> pageInfo = new PageInfo<>(userList);
log.info("总行数:{}", pageInfo.getTotal());
log.info("总页数:{}", pageInfo.getPages());
List<UserQueryResp> list = BeanUtil.copyToList(userList, UserQueryResp.class);
PageResp<UserQueryResp> pageResp = new PageResp<>();
pageResp.setTotal(pageInfo.getTotal());
pageResp.setList(list);
return pageResp;
}
public void save(UserSaveReq req){
User user = BeanUtil.copyProperties(req,User.class);
user.setName(req.getName());
user.setAge(req.getAge());
userMapper.insert(user);
}
public void update(UserUpdateReq req) {
User user = BeanUtil.copyProperties(req,User.class);
user.setId(req.getId());
if(ObjUtil.isNotNull(userMapper.selectByPrimaryKey(req.getId()))){
user.setName(req.getName());
user.setAge(req.getAge());
userMapper.updateByPrimaryKeySelective(user);
}
}
public void delete(Integer id) {
userMapper.deleteByPrimaryKey(id);
}
}