一个关于面经的网站开发全程记录--2

138 阅读2分钟

一个关于面经的网站开发全程记录--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到仓库即可

这次就到这,欢迎指正