一个关于面经的网站开发全程记录--2
前提:返回结果自己封装了R类,用于返回数据,MP也自带了R类,我没有使用
1、搞定后台管理对用户信息的CRUD操作
controller层:
/**
* 用户管理
* 增 后台添加用户
* 删 单个删除用户信息(批量删除)
* 改 修改用户信息
* 查 查询全部用户(分页) 根据条件查询用户(分页)
*/
@ApiOperation(value = "批量删除")
@DeleteMapping(value = "deleteBatch")
public R deleteBacth(@RequestBody UserList userList){
if(userList.getIds().size() == 0)
return R.error();
boolean res = userService.deleteIds(userList);
if (res) {
return R.ok();
}else{
return R.error();
}
}
@ApiOperation(value = "后台添加用户")
@PostMapping(value = "addUser")
public R addUser(@RequestBody User user){
//TODO
userService.save(user);
return R.ok();
}
@ApiOperation(value = "删除单个用户")
@DeleteMapping(value = "{id}")
public R deleteBathUser(@PathVariable String id){
boolean res = userService.removeById(id);
if (res) {
return R.ok();
}else{
return R.error();
}
}
@ApiOperation(value = "分页的查询所有用户,根据username查询")
@PostMapping(value = "getAllUser/{current}/{limit}")
public R getAllUser(@PathVariable Long current, @PathVariable Long limit,
@RequestBody UserQuery userQuery){
//1、创建page对象,用于接查到的结果
Page<User> page = new Page<User>(current,limit);
//2、查询条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("username",userQuery.getUsername());
//3、使用service掉用page方法查数据
userService.page(page,wrapper);
//4、获取数据总个数
Long total = page.getTotal();
//5、获取数据集合
List<User> records = page.getRecords();
//6、创建map结合承载数据返回
Map map = new HashMap();
map.put("total",total);
map.put("records",records);
return R.ok().data(map);
}
servic层:
都是一些基本操作,直接使用MP自带的方法就能实现,批量删除功能也就是拆分了一下传进来的id
@Override
public boolean deleteIds(UserList userList) {
List<String> ids = userList.getIds();
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.in("id",ids);
int flag = baseMapper.delete(wrapper);
if(flag != 0)
return true;
else
return false;
}
2、搞定后台管理对面经的CRUD操作
注意:以前搞过一个超级简单的博客,当时是markdown编辑好的博客,直接用Mysql中的LongText存。这次的面经内容初步先这样存,后边看看有啥合适的技术再换(毕竟自己太菜,菜有菜的写法)。
/**
* 面经管理
* 管理员对面经的
* 增
* 删
* 改
* 查
*/
```
@ApiOperation(value = "查找面经,分页查询,带有条件的查询")
@PostMapping("pageAllExperWrapper/{current}/{limit}")
public R getAllExperWrapper(@PathVariable Long current,
@PathVariable Long limit,
@RequestBody AllExperQuery allExperQuery){
//1、创建page对象 用来接收所有的查询得到的数据
Page<AllExper> page = new Page<>(current,limit);
QueryWrapper<AllExper> wrapper = new QueryWrapper<>();
wrapper.like("article_name",allExperQuery.getArticleName());
//2、service调用分页方法page,传入page对象以及wrapper查询数据 查到的数据重新弄到pageEper对象中
allExperService.page(page,wrapper);
//3、总记录数
Long total = page.getTotal();
//4、数据集合 所有数据存储到records
List<AllExper> records = page.getRecords();
//5、创建map用来接收total和records
Map map = new HashMap<>();
map.put("total",total);
map.put("records",records);
//6、返回结果
return R.ok().data(map);
}
@ApiOperation(value = "面经修改")
@PostMapping("edit")
public R editExper(@RequestBody AllExper allExper){
boolean res = allExperService.editById(allExper);
if(res){
return R.ok();
}else{
return R.error();
}
}
//用来显示每个用户单独的个人面经信息时使用
@ApiOperation(value = "根据用户id查找面经,分页查询")
@GetMapping("pageExperById/{current}/{limit}/{id}")
public R getAllExperById(@PathVariable Long current, @PathVariable Long limit, @PathVariable String id){
//1、创建page对象 用来接收所有的查询得到的数据
Page<AllExper> pageExper = new Page<>(current,limit);
QueryWrapper<AllExper> wrapper = new QueryWrapper<>();
wrapper.eq("id",id);
//2、service调用分页方法page,传入page对象以及wrapper查询数据 查到的数据村弄到pageEper对象中
allExperService.page(pageExper,wrapper);
//3、总记录数
Long total = pageExper.getTotal();
//4、数据集合 所有数据存储到records
List<AllExper> records = pageExper.getRecords();
//5、创建map用来接收total和records
Map map = new HashMap<>();
map.put("total",total);
map.put("records",records);
//6、返回结果
return R.ok().data(map);
}
@ApiOperation(value = "发布面经")
@PostMapping(value = "pullExperence")
public R pullExperence(@RequestBody AllExper allExper){
//TODO
boolean res = allExperService.save(allExper);
if(res){
return R.ok();
}else{
return R.error().message("添加失败");
}
}
@ApiOperation(value = "根据面经删除id")
@DeleteMapping("{id}")
public R deleteExperById(@PathVariable String id){
boolean res = allExperService.removeById(id);
if(res){
return R.ok();
}else{
return R.error();
}
}
service层:压根没写,直接MP调用方法就能完成
讨论区以及用户权限先不进行编写 TODO
以上的这些接口都很简单很快就能写完,使用Swagger进行测试即可
测试完成后push到仓库即可
这次就到这,欢迎指正