尚硅谷智慧校园 —— 5、学生管理功能实现

目录

1、回显搜索条件中的班级选项

1.1、在 controller 添加方法

2、查询学生信息(分页带条件)

2.1、在 service 及其实现类添加方法

2.2、在 controller 添加方法

3、异步图片上传处理头像

3.1、在 controller 添加方法

4、添加和修改学生信息

4.1、在 controller 添加方法

5、学生的删除和批量删除

5.1、在 controller 添加方法


查看学生信息之前,首先要获取所有的班级信息,用来条件查询

1、回显搜索条件中的班级选项

1.1、在 controller 添加方法

ClazzControlle

    /**
     * 查询所有班级信息
     * @return
     */
    @ApiOperation("查询所有班级信息")
    @GetMapping("/getClazzs")
    public Result getClazzs(){
        List<Clazz> clazzList = clazzService.list();
        return Result.ok(clazzList);
    }

2、查询学生信息(分页带条件)

2.1、在 service 及其实现类添加方法

StudentService

    /**
     * 查询学生信息(分页带条件)
     * @param page
     * @param student 分页查询的条件
     * @return
     */
    IPage<Student> getStudentByOpr(Page<Student> page, Student student);

StudentServiceImpl

    /**
     * 查询学生信息(分页带条件)
     * @param page
     * @param student 分页查询的条件
     * @return
     */
    @Override
    public IPage<Student> getStudentByOpr(Page<Student> page, Student student) {
        QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
 
        // 若分页的查询条件不为空,则添加条件
        String name = student.getName();
        if(!StringUtils.isEmpty(name)){
            queryWrapper.like("name", name);
        }
        String clazzName = student.getClazzName();
        if(!StringUtils.isEmpty(clazzName)){
            queryWrapper.eq("clazz_name", clazzName);
        }
        queryWrapper.orderByDesc("id");
        Page<Student> studentPage = baseMapper.selectPage(page, queryWrapper);
        return studentPage;
    }

2.2、在 controller 添加方法

StudentController 

/**
 * @Author zhang
 * @Date 2022/4/18 - 16:11
 * @Version 1.0
 */
@RestController
@RequestMapping("/sms/studentController")
public class StudentController {
 
    @Autowired
    private StudentService studentService;
 
    /**
     * 查询学生信息(分页带条件)
     * 请求路径:/sms/studentController/getStudentByOpr/{pageNo}/{pageSize}?name=xxx&clazzName=xxx
     * @param pageNo 分页查询的页码
     * @param pageSize 分页查询每页的数据量
     * @param student 分页查询的条件
     * @return
     */
    @ApiOperation("查询学生信息(分页带条件)")
    @GetMapping("/getStudentByOpr/{pageNo}/{pageSize}")
    public Result getStudentByOpr(
            @ApiParam("分页查询的页码") @PathVariable("pageNo") Integer pageNo,
            @ApiParam("分页查询每页的数据量") @PathVariable("pageSize") Integer pageSize,
            // 使用Student对象接收name和clazzName参数
            @ApiParam("分页查询的条件") Student student
    ){
        Page<Student> page = new Page<>(pageNo, pageSize);
        IPage<Student> studentIPage = studentService.getStudentByOpr(page, student);
        return Result.ok(studentIPage);
    }
 
}

3、异步图片上传处理头像

Request URL:  /sms/system/headerImgUpload
Request Method: POST

先将图片保存,再将图片路径与其他信息保存到数据库 

3.1、在 controller 添加方法

SystemController

    /**
     * 文件上传统一入口
     * @param multipartFile 上传的头像文件
     * @return
     */
    @ApiOperation("文件上传统一入口")
    @PostMapping("/headerImgUpload")
    public Result headerImgUpload(
            // 接收图片
            @ApiParam("上传的头像文件") @RequestPart("multipartFile") MultipartFile multipartFile
            ){
        // 生成文件名
        String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
        String originalFilename = multipartFile.getOriginalFilename();
        int index = originalFilename.lastIndexOf(".");
        String newFileName = uuid.concat(originalFilename.substring(index));
 
        // 保存文件 将文件发送到第三方/独立的图片服务器上,这里保存到本机
        String portraitPath = "E:/idea/myzhxy/target/classes/public/upload".concat(newFileName);
        try {
            multipartFile.transferTo(new File(portraitPath)); // 将图片传输到指定位置
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        // 响应图片路径
        String path = "upload/".concat(newFileName);
        return Result.ok(path);
    }

4、添加和修改学生信息

4.1、在 controller 添加方法


Request URL: /sms/studentController/addOrUpdateStudent
Request Method: POST

如果添加学生信息,需要设置密码,后端将密码处理成密文,如果修改学生信息,无法进行密码的修改

StudentController
 

    /**
     * 添加或修改学生信息
     * @param student 添加或修改的学生的JSON格式的信息
     * @return
     */
    @ApiOperation("添加或修改学生信息")
    @PostMapping("/addOrUpdateStudent")
    public Result addOrUpdateStudent(
            @ApiParam("添加或修改的学生的JSON格式的信息") @RequestBody Student student
    ){
        // 若id为空,则为添加学生信息,需要将密码转为密文
        Integer id = student.getId();
        if(null == id || 0 == id){
            student.setPassword(MD5.encrypt(student.getPassword()));
        }
 
        studentService.saveOrUpdate(student);
        return Result.ok();
    }

5、学生的删除和批量删除

Request URL: http://localhost:8080/sms/studentController/delStudentById
Request Method: DELETE

请求参数是要删除的学生的 ID 的 JSON 数组

5.1、在 controller 添加方法

StudentController 

    /**
     * 删除或批量删除学生信息
     * @param ids 要删除的学生ID的JSON数组
     * @return
     */
    @ApiOperation("删除或批量删除学生信息")
    @DeleteMapping("/delStudentById")
    public Result delStudentById(
            @ApiParam("要删除的学生ID的JSON数组") @RequestBody List<Integer> ids
    ) {
        studentService.removeByIds(ids);
        return Result.ok();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值