基于SpringBoot的online_music_player(删除音乐模块)

66 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情 

删除音乐模块

删除单个音乐

请求响应设计

请求:
{
    post
    /music/delete
    id
}
响应:
{
    status:0,
    message:"删除成功"
    data:true
}

代码实现

这里的删除操作需要分成2步

  • 将服务器下的文件进行删除
  • 将数据库中的文件信息删除

所以我们需要先查询到该id的音乐信息,再进行删除!

  • Mapper接口

    /**
         * 通过音乐id删除音乐!
         * @param id
         * @return
         */
        int deleteById(int id);
    ​
        /**
         * 通过id获取到音乐信息
         * @param id
         * @return
         */
        Music getMusicById(int id);
    
  • Mapper实现

image-20220801145400887

  • Controller层代码实现
 //删除单个音乐
    @RequestMapping("/delete")
    public ResponseBodyMessage<Boolean> deleteMusic(@RequestParam Integer id){
        //1.首先找到该音乐信息
        Music music = musicMapper.getMusicById(id);
        if(music==null){//音乐不存在
            //未找到该音乐
            return new ResponseBodyMessage<>(-1,"需要删除的音乐不存在",false);
        }
        //2.进行音乐删除
        //2.1 删除服务器下的音乐文件
            //找到服务器下该音乐文件路径
            File file = new File(SAVE_PATH+File.separator+music.getTitle()+".mp3");
            if(file==null){//服务器下不存在该文件
                return new ResponseBodyMessage<>(-1,"删除失败,服务器下未找到该文件信息",false);
            }
            //删除
            file.delete();
        //2.2 删除数据库下的音乐信息
       int ret = musicMapper.deleteById(id);
       if(ret!=1){//数据库删除失败
           return new ResponseBodyMessage<>(-1,"数据库信息删除失败",false);
       }
       return new ResponseBodyMessage<>(0,"删除成功!",true);
    }

验证结果

  • 先查看数据库下的音乐信息

image-20220801145648988

  • 删除的音乐不存在

image-20220801145605376

  • 删除音乐存在

image-20220801145741138

image-20220801145811018

删除成功!

批量删除音乐

请求响应设计

请求:
{
    post
    /music/deleteAll
    id[]
}
响应:
{
    status:0
    message:"删除成功"
    data:true
}

代码实现

我们只需要在删除单个音乐的基础上进行代码的修改即可!

直接增加Controller层代码即可!

 //批量删除音乐
    @RequestMapping("/deleteAll")
    public ResponseBodyMessage<Boolean> deleteMusicAll(@RequestParam(value = "id[]") List<Integer> ids){
        String message = null;
        for (Integer id:ids) {
            //1.首先找到该音乐信息
            Music music = musicMapper.getMusicById(id);
            if(music==null){//音乐不存在
                //未找到该音乐
                //保存这个音乐id信息
                message += id+" ";
                continue;
                //return new ResponseBodyMessage<>(-1,"需要删除的音乐不存在",false);
            }
            //2.进行音乐删除
            //2.1 删除服务器下的音乐文件
            //找到服务器下该音乐文件路径
            File file = new File(SAVE_PATH+File.separator+music.getTitle()+".mp3");
            System.out.println("musicPath:"+file.getPath());
            if(file==null){//服务器下不存在该文件
                //保存这个id信息
                 message += id + "";
                 continue;
                //return new ResponseBodyMessage<>(-1,"删除失败,服务器下未找到该文件信息",false);
            }
            //删除
            if(!file.delete()){
                //删除失败
                message += id + "";
                continue;
                //return new ResponseBodyMessage<>(-1,"服务器删除失败",false);
            }
            //2.2 删除数据库下的音乐信息
            int ret = musicMapper.deleteById(id);
            if(ret!=1){//数据库删除失败
                message += id+" ";
                continue;
                //return new ResponseBodyMessage<>(-1,"数据库信息删除失败",false);
            }
        }
        if(message==null){
            return new ResponseBodyMessage<>(0,"删除成功!",true);   
        }
        //部分删除失败
        return new ResponseBodyMessage<>(0,"id:" + message+" 删除失败!",true);
    }

验证结果

  • 删除成功

image-20220801160935061

image-20220801161039645

  • 删除失败

image-20220801161253586