package com.music.demo.controller;
import com.music.demo.entities.*;
import com.music.demo.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Controller
public class SongsController {
@Autowired
SongMapper songMapper;
@Autowired
SingerMapper singerMapper;
@Autowired
UserMapper userMapper;
@Autowired
LikeMapper likeMapper;
// 获取我的歌曲数据,并返回页面
@GetMapping("/user/songByu")
public String findSongByUsername(HttpSession session, Model model) {
String username = (String) session.getAttribute("loginUser");
if (username == null) {
return "redirect:/login";
}
List<Song> songList = songMapper.findSongByUsername(username);
List<Like> likes = likeMapper.findAllLikeByUsername(username);
User user = userMapper.findUsername(username);
user.setPicUrl("http://localhost:8080/upload/" + user.getPicUrl());
session.setAttribute("currentUser", user);
model.addAttribute("myList", songList);
model.addAttribute("likeList", likes);
return "user/mySongList";
}
// 删除歌曲
@GetMapping("/song/{id}")
public String deleteSong(@PathVariable("id") Integer songId, HttpSession session) {
String username = (String) session.getAttribute("loginUser");
// 删除所有我喜欢列表的该首歌
List<Like> likes = likeMapper.findBySongId(songId);
if (likes.size() > 0) {
for (Like like : likes) {
likeMapper.deleteLike(like.getLikeId());
}
}
// 删除这首歌的占用大小
Song song=songMapper.findSongBySongId(songId);
User u=userMapper.findUsername(username);
u.setUsedSize(u.getUsedSize()-song.getFileSize());
userMapper.updateUser(u);
songMapper.deleteSongById(songId);
int song_count=songMapper.findUsernameWithSongCount(username);
// 删了一首歌后,计算该用户的还剩多少歌曲,每5首一个等级
if (song_count > 0&&(song_count+1)%5==0) {
User user = userMapper.findUsername(username);
user.setRate(user.getRate() - 1);
userMapper.updateUser(user);
}
return "redirect:/user/songByu";
}
// 歌曲上传操作
@PostMapping(value = "/song/upload")
public String fileOprt(Song song, @RequestParam("file") MultipartFile file, @RequestParam("txtFile") MultipartFile txtFile, Map<String, Object> map) {
String fileName = "";
System.out.println("上传的信息:" + song.toString());
if (file.isEmpty()) {
map.put("songError", "没有上传音频'mp3'文件");
return "/user/uploadPage";
} else {
List<Song> oldSong = songMapper.findSongBySongName("%" + song.getSname() + "%");//查找该歌名的歌,模糊查询
//歌名和歌手相同
if (oldSong.size() > 0) {
for (Song s : oldSong) {
if (s.getSinger().getName().equals(song.getSinger().getName())) {
map.put("songError", "该文件已经存在了");
return "/user/uploadPage";
}
}
}
// 没有这首歌的情况
// 判断可用空间
System.out.println("文件的大小"+file.getSize());
User user = userMapper.findUsername(song.getUsername());
if (user.getUsedSize() == (user.getMaxSize() * 1024 * 1024)
|| file.getSize() > (user.getMaxSize() * 1024 * 1024 - user.getUsedSize())) {
map.put("songError", "该用户的歌曲的存储空间不足!");
return "/user/uploadPage";
}
song.setSname(song.getSinger().getName() + " - " + song.getSname());//歌手 - 歌名.mp3
String originName = file.getOriginalFilename();
String suffixName = originName.substring(originName.lastIndexOf("."));
fileName = "audio/" + song.getSname() + suffixName;
song.setFilePath(fileName);
UserController userController = new UserController();
userController.uploadFile(file, fileName);
if (!txtFile.isEmpty()) {
String txtOrigin=txtFile.getOriginalFilename();
String suffixName_txt = txtOrigin.substring(txtOrigin.lastIndexOf("."));
String txtName = "txt/" + song.getSinger().getName() + "-" + song.getSname() + suffixName_txt;
song.setTxtUrl(txtName);
userController.uploadFile(txtFile, txtName);
} else {
song.setTxtUrl("null");
}
// 获取当前的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
song.setSdate(df.format(new Date()));
// 歌手信息插入或获取singerId
Singer singer = singerMapper.findBySingerName(song.getSinger().getName());
if (singer != null) {
song.getSinger().setId(singer.getId());
} else {
singerMapper.insertSinger(song.getSinger().getName());
String singerName = song.getSinger().getName();
Singer singerId = singerMapper.findBySingerName(singerName);
song.getSinger().setId(singerId.getId());
}
song.setFileSize(file.getSize());
song.setZanCount(0);
song.setClickCount(0);
song.setThumbsDown(0);
songMapper.insertSong(song);
// 获取用户的歌曲数量,每5首,增加一个等级
User u = userMapper.findUsername(song.getUsername());
System.out.println("更新前使用过的大小:"+u.getUsedSize());
u.setUsedSize(u.getUsedSize()+file.getSize());
System.out.println("更新后:"+u.getUsedSize());
int songCount=songMapper.findUsernameWithSongCount(u.getUsername());
if (songCount%5==0&&songCount>5){
u.setRate(u.getRate()+1);
u.setMaxSize(u.getMaxSize()*2);
System.out.println("等级升一级后:"+u.getMaxSize());
}
userMapper.updateUser(u);
return "redirect:/user/songByu";
}
}
// 来到修改页面
@GetMapping("/song/upPage/{id}")
public String toUpdate(Model model, @PathVariable("id") Integer id) {
model.addAttribute("songById", songMapper.findSongBySongId(id));
return "user/uploadPage";
}
// 歌曲信息修改
@PutMapping("/song/upload")
public String fileUpdate(Song song, @RequestParam("file") MultipartFile file,HttpSession session) {
// 获取当前的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式;
song.setSdate(df.format(new Date()));
// 改变歌手
Singer singer = singerMapper.findBySingerName(song.getSinger().getName());
if (singer == null) {
singerMapper.insertSinger(song.getSinger().getName());
singer = singerMapper.findBySingerName(song.getSinger().getName());
}
song.getSinger().setId(singer.getId());
song.getSinger().setName(singer.getName());
String filePath = "audio/" + song.
没有合适的资源?快使用搜索试试~ 我知道了~
音乐网站管理系统(整个项目,无数据库)
共336个文件
xml:106个
jar:63个
html:42个
需积分: 33 69 下载量 170 浏览量
2018-09-28
11:46:02
上传
评论 16
收藏 19.55MB RAR 举报
温馨提示
主要内容是音乐网站管理系统,用户可以在网页上对歌曲进行上传、下载、播放;对喜欢的歌曲收藏到我喜欢列表、对歌曲进行点赞;对于不喜欢或者其他的原因可以对该歌曲进行踩;另外,用户可以在搜素框中查询歌曲、歌手或者曲风。用户可以随时修改自己的基本信息
资源推荐
资源详情
资源评论
收起资源包目录
音乐网站管理系统(整个项目,无数据库) (336个子文件)
SongsController.class 10KB
SongsController.class 10KB
StaticDataController.class 7KB
StaticDataController.class 7KB
UserController.class 6KB
UserController.class 6KB
ManagerController.class 6KB
ManagerController.class 6KB
OthersController.class 5KB
OthersController.class 5KB
ManDataController.class 3KB
ManDataController.class 3KB
Song.class 3KB
Song.class 3KB
User.class 2KB
User.class 2KB
SingerController.class 2KB
SingerController.class 2KB
Like.class 2KB
Like.class 2KB
SongMapper.class 1KB
SongMapper.class 1KB
DemoApplicationTests.class 1KB
PageForward.class 1KB
PageForward.class 1KB
DemoApplication.class 1KB
DemoApplication.class 1KB
Singer.class 1KB
Singer.class 1KB
MyConfiguration.class 1KB
MyConfiguration.class 1KB
SingerMapper.class 880B
SingerMapper.class 880B
LikeMapper.class 807B
LikeMapper.class 807B
MapperScanConfiguration.class 524B
MapperScanConfiguration.class 524B
UserMapper.class 430B
UserMapper.class 430B
mvnw.cmd 5KB
hotTop.css 3KB
hotTop.css 3KB
hotTop.css 3KB
topBar.css 3KB
topBar.css 3KB
topBar.css 3KB
login.css 2KB
login.css 2KB
login.css 2KB
mySongList.css 2KB
mySongList.css 2KB
mySongList.css 2KB
myInfoUpdate.css 2KB
myInfoUpdate.css 2KB
myInfoUpdate.css 2KB
show.css 2KB
show.css 2KB
show.css 2KB
index.css 2KB
index.css 2KB
index.css 2KB
singers.css 2KB
singers.css 2KB
singers.css 2KB
display.css 1KB
display.css 1KB
display.css 1KB
uploadPage.css 1001B
uploadPage.css 1001B
uploadPage.css 1001B
.gitignore 268B
manager_index.html 9KB
manager_index.html 9KB
manager_index.html 9KB
show.html 6KB
show.html 6KB
show.html 6KB
login.html 6KB
login.html 6KB
login.html 6KB
mySongList.html 5KB
mySongList.html 5KB
mySongList.html 5KB
bar.html 4KB
bar.html 4KB
bar.html 4KB
index.html 4KB
index.html 4KB
index.html 4KB
uploadPage.html 4KB
uploadPage.html 4KB
uploadPage.html 4KB
singer.html 3KB
singer.html 3KB
singer.html 3KB
display.html 3KB
display.html 3KB
display.html 3KB
myInfoUpdate.html 2KB
myInfoUpdate.html 2KB
共 336 条
- 1
- 2
- 3
- 4
资源评论
weixin_42189516
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 35 财务汇报部门历年薪酬统计图表.xlsx
- 39 财务工资发放表.xlsx
- 37 财务工资支出上半年年中总结报告.xlsx
- 38 财务分析工资年度开支表.xlsx
- 41 财务公司部门工资开支分析表.xlsx
- 40 财务分析部门工资支出图表.xlsx
- 42 部门员工工资统计表.xlsx
- 45 年度薪酬费用统计表.xlsx
- 44 人事薪酬管理台账.xlsx
- 48 工资对比分析报表模板.xls
- 47 可视化工资表自动统计1.xlsx
- 46 企业员工工资支出预算表.xlsx
- 43 工资收入对比分析表.xlsx
- 50 薪资分析图表.xlsx
- 49 薪酬数据统计分析报表excel模板.xlsx
- 年度公司薪酬调查分析方案(完整版).docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功