携手创作,共同成长!这是我参与「掘金日新计划 · 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实现
- 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);
}
验证结果
- 先查看数据库下的音乐信息
- 删除的音乐不存在
- 删除音乐存在
删除成功!
批量删除音乐
请求响应设计
请求:
{
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);
}
验证结果
- 删除成功
- 删除失败