|
<
视频演示:
springboot+vue音乐网站
择要:
收集手艺和计较机的开展,网友们对收集的请求也日趋少下,平居正在网上听话用一年夜堆下载硬件下载下去也要办理,又占空间,比如那盛行歌直,下载了听了又要删很没有便利·而收集音乐库的完成改动了那一情况。它本人便是一个数字音乐交互,用户经由过程它但是便利快速、宁静天完成国最年夜的音乐搜刮查找歌直,并能及时试听,将本人喜欢的歌直参与珍藏,为用户创立一个自在、自立、宁静的天下局域网。音乐恰是正在如许的需供条件下应运而死。给人们的一样平常糊口带去了极年夜的兴趣,让人们正在忙碌怠倦的事情以后能够停止戚忙·基于此种近况,正在充实阐发了该止业的市场远景,调研了用户需供以后,设想了该音乐。
盛行音乐之以是被称为“盛行”,缘故原由之一,是她有着传播的时效性·尽年夜部门盛行歌直能够一夜成名·可是从人们脑筋里消逝得也很快,畴前极力抢购的唱片大要没有暂以后便被置之不理,人们逃逐的永久是差别于以往的“新”星。可是互联网的呈现,一圆而由于传播速率进步而加重了这类时效性,另外一圆而却又操纵其有限的收集襟怀使那些盛行音乐具有了必然的耐久性。假如那两圆里恰是人们所需求的,那末,那些皆该当回功于音乐·做为音乐的收集载体,音乐正在创做、传播、浏览方法等圆而对盛行音乐的开展皆发生了史无前例的影响:
1)电脑收集手艺的开展令人们经由过程音乐打仗到了更多的盛行音乐。
2)网平易近数目的激删使更多的人们经由过程音乐打仗到了盛行音乐。
3)音乐为盛行音乐创做供给了更多的便当。
4)音乐刺激了盛行音乐的传播。
5)音乐使盛行音乐的浏览方法发作了改动。
6)音乐不单刺激了盛行音乐的传播,且也刺激了电子数码产物的频仍更新换代。
次要设想:
功用设想:
用户端:登录注册功用、尾页歌直歌单疑息检察、搜刮、听歌、歌直的各项设置、批评、和我的音乐等。
办理员端: 登录、图形树状图数据检察、用户办理、歌单办理、歌脚办理、歌直编纂、评价等。
次要手艺:
Springboot+SpringMvc+mybatis+lombok+cache+阻拦器+Jquery+html+VUE+Node.js等
功用截图:
用户端尾页:
登录注册:
歌单疑息:用户尾页能够按照歌单疑息停止搜刮歌直
歌脚疑息:用户尾页能够按照歌脚疑息停止搜刮歌直
我的音乐:
批评面赞:
办理员端:
尾页:
用户办理:
歌脚办理:
歌单办理:
部门代码:
- @RestController
- @Controller
- public class ConsumerController {
- @Autowired
- private ConsumerServiceImpl consumerService;
- @Configuration
- public class MyPicConfig implements WebMvcConfigurer {
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- String os = System.getProperty("os.name");
- if (os.toLowerCase().startsWith("win")) { // windos体系
- registry.addResourceHandler("/img/avatorImages/**")
- .addResourceLocations("file:" + Constants.RESOURCE_WIN_PATH + "\\img\\avatorImages\");
- } else { // MAC、Linux体系
- registry.addResourceHandler("/img/avatorImages/**")
- .addResourceLocations("file:" + Constants.RESOURCE_MAC_PATH + "/img/avatorImages/");
- }
- }
- }
- // 增加用户
- @ResponseBody
- @RequestMapping(value = "/user/add", method = RequestMethod.POST)
- public Object addUser(HttpServletRequest req){
- JSONObject jsonObject = new JSONObject();
- String username = req.getParameter("username").trim();
- String password = req.getParameter("password").trim();
- String sex = req.getParameter("sex").trim();
- String phone_num = req.getParameter("phone_num").trim();
- String email = req.getParameter("email").trim();
- String birth = req.getParameter("birth").trim();
- String introduction = req.getParameter("introduction").trim();
- String location = req.getParameter("location").trim();
- String avator = req.getParameter("avator").trim();
- if (username.equals("") || username == null){
- jsonObject.put("code", 0);
- jsonObject.put("msg", "用户名或暗码毛病");
- return jsonObject;
- }
- Consumer consumer = new Consumer();
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- Date myBirth = new Date();
- try {
- myBirth = dateFormat.parse(birth);
- } catch (Exception e){
- e.printStackTrace();
- }
- consumer.setUsername(username);
- consumer.setPassword(password);
- consumer.setSex(new Byte(sex));
- if (phone_num == "") {
- consumer.setPhoneNum(null);
- } else{
- consumer.setPhoneNum(phone_num);
- }
- if (email == "") {
- consumer.setEmail(null);
- } else{
- consumer.setEmail(email);
- }
- consumer.setBirth(myBirth);
- consumer.setIntroduction(introduction);
- consumer.setLocation(location);
- consumer.setAvator(avator);
- consumer.setCreateTime(new Date());
- consumer.setUpdateTime(new Date());
- boolean res = consumerService.addUser(consumer);
- if (res) {
- jsonObject.put("code", 1);
- jsonObject.put("msg", "注册胜利");
- return jsonObject;
- } else {
- jsonObject.put("code", 0);
- jsonObject.put("msg", "注册失利");
- return jsonObject;
- }
- }
- // 判定能否登录胜利
- @ResponseBody
- @RequestMapping(value = "/user/login/status", method = RequestMethod.POST)
- public Object loginStatus(HttpServletRequest req, HttpSession session){
- JSONObject jsonObject = new JSONObject();
- String username = req.getParameter("username");
- String password = req.getParameter("password");
- // System.out.println(username+" "+password);
- boolean res = consumerService.veritypasswd(username, password);
- if (res){
- jsonObject.put("code", 1);
- jsonObject.put("msg", "登录胜利");
- jsonObject.put("userMsg", consumerService.loginStatus(username));
- session.setAttribute("username", username);
- return jsonObject;
- }else {
- jsonObject.put("code", 0);
- jsonObject.put("msg", "用户名或暗码毛病");
- return jsonObject;
- }
- }
- // 返回一切用户
- @RequestMapping(value = "/user", method = RequestMethod.GET)
- public Object allUser(){
- return consumerService.allUser();
- }
- // 返回指定ID的用户
- @RequestMapping(value = "/user/detail", method = RequestMethod.GET)
- public Object userOfId(HttpServletRequest req){
- String id = req.getParameter("id");
- return consumerService.userOfId(Integer.parseInt(id));
- }
- // 删除用户
- @RequestMapping(value = "/user/delete", method = RequestMethod.GET)
- public Object deleteUser(HttpServletRequest req){
- String id = req.getParameter("id");
- return consumerService.deleteUser(Integer.parseInt(id));
- }
- // 更新用户疑息
- @ResponseBody
- @RequestMapping(value = "/user/update", method = RequestMethod.POST)
- public Object updateUserMsg(HttpServletRequest req){
- JSONObject jsonObject = new JSONObject();
- String id = req.getParameter("id").trim();
- String username = req.getParameter("username").trim();
- String password = req.getParameter("password").trim();
- String sex = req.getParameter("sex").trim();
- String phone_num = req.getParameter("phone_num").trim();
- String email = req.getParameter("email").trim();
- String birth = req.getParameter("birth").trim();
- String introduction = req.getParameter("introduction").trim();
- String location = req.getParameter("location").trim();
- // String avator = req.getParameter("avator").trim();
- // System.out.println(username+" "+password+" "+sex+" "+phone_num+" "+email+" "+birth+" "+introduction+" "+location);
- if (username.equals("") || username == null){
- jsonObject.put("code", 0);
- jsonObject.put("msg", "用户名或暗码毛病");
- return jsonObject;
- }
- Consumer consumer = new Consumer();
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- Date myBirth = new Date();
- try {
- myBirth = dateFormat.parse(birth);
- }catch (Exception e){
- e.printStackTrace();
- }
- consumer.setId(Integer.parseInt(id));
- consumer.setUsername(username);
- consumer.setPassword(password);
- consumer.setSex(new Byte(sex));
- consumer.setPhoneNum(phone_num);
- consumer.setEmail(email);
- consumer.setBirth(myBirth);
- consumer.setIntroduction(introduction);
- consumer.setLocation(location);
- // consumer.setAvator(avator);
- consumer.setUpdateTime(new Date());
- boolean res = consumerService.updateUserMsg(consumer);
- if (res){
- jsonObject.put("code", 1);
- jsonObject.put("msg", "修正胜利");
- return jsonObject;
- }else {
- jsonObject.put("code", 0);
- jsonObject.put("msg", "修正失利");
- return jsonObject;
- }
- }
- // 更新用户头像
- @ResponseBody
- @RequestMapping(value = "/user/avatar/update", method = RequestMethod.POST)
- public Object updateUserPic(@RequestParam("file") MultipartFile avatorFile, @RequestParam("id")int id){
- JSONObject jsonObject = new JSONObject();
- if (avatorFile.isEmpty()) {
- jsonObject.put("code", 0);
- jsonObject.put("msg", "文件上传失利!");
- return jsonObject;
- }
- String fileName = System.currentTimeMillis()+avatorFile.getOriginalFilename();
- String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "img" + System.getProperty("file.separator") + "avatorImages" ;
- File file1 = new File(filePath);
- if (!file1.exists()){
- file1.mkdir();
- }
- File dest = new File(filePath + System.getProperty("file.separator") + fileName);
- String storeAvatorPath = "/img/avatorImages/"+fileName;
- try {
- avatorFile.transferTo(dest);
- Consumer consumer = new Consumer();
- consumer.setId(id);
- consumer.setAvator(storeAvatorPath);
- boolean res = consumerService.updateUserAvator(consumer);
- if (res){
- jsonObject.put("code", 1);
- jsonObject.put("avator", storeAvatorPath);
- jsonObject.put("msg", "上传胜利");
- return jsonObject;
- }else {
- jsonObject.put("code", 0);
- jsonObject.put("msg", "上传失利");
- return jsonObject;
- }
- }catch (IOException e){
- jsonObject.put("code", 0);
- jsonObject.put("msg", "上传失利"+e.getMessage());
- return jsonObject;
- }finally {
- return jsonObject;
- }
- }
复造代码 数据库设想:
数据库接纳mysql5版本、满意数据库设想三范式。编码接纳utf8 -- UTF-8 Unicode、排序划定规矩接纳utf8_general_ci
用户表:
- CREATE TABLE `consumer` (
- `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
- `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
- `password` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
- `sex` tinyint(4) NULL DEFAULT NULL ,
- `phone_num` char(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `email` char(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `birth` datetime NULL DEFAULT NULL ,
- `introduction` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `location` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `avator` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `create_time` datetime NOT NULL ,
- `update_time` datetime NOT NULL ,
- PRIMARY KEY (`id`),
- UNIQUE INDEX `username_UNIQUE` (`username`) USING BTREE ,
- UNIQUE INDEX `phone_num_UNIQUE` (`phone_num`) USING BTREE ,
- UNIQUE INDEX `email_UNIQUE` (`email`) USING BTREE
- )
- ENGINE=InnoDB
- DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
- AUTO_INCREMENT=30
- ROW_FORMAT=COMPACT
- ;
复造代码 批评表:
- CREATE TABLE `comment` (
- `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
- `user_id` int(10) UNSIGNED NOT NULL ,
- `song_id` int(10) UNSIGNED NULL DEFAULT NULL ,
- `song_list_id` int(10) UNSIGNED NULL DEFAULT NULL ,
- `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `create_time` datetime NULL DEFAULT NULL ,
- `type` tinyint(4) NOT NULL ,
- `up` int(10) UNSIGNED NOT NULL DEFAULT 0 ,
- PRIMARY KEY (`id`)
- )
- ENGINE=InnoDB
- DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
- AUTO_INCREMENT=59
- ROW_FORMAT=COMPACT
- ;
复造代码 珍藏表:
- CREATE TABLE `collect` (
- `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
- `user_id` int(10) UNSIGNED NOT NULL ,
- `type` tinyint(4) NOT NULL ,
- `song_id` int(10) UNSIGNED NULL DEFAULT NULL ,
- `song_list_id` int(10) UNSIGNED NULL DEFAULT NULL ,
- `create_time` datetime NOT NULL ,
- PRIMARY KEY (`id`)
- )
- ENGINE=InnoDB
- DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
- AUTO_INCREMENT=54
- ROW_FORMAT=COMPACT
- ;
复造代码 歌脚歌直表:
- CREATE TABLE `singer` (
- `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
- `name` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
- `sex` tinyint(4) NULL DEFAULT NULL ,
- `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `birth` datetime NULL DEFAULT NULL ,
- `location` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `introduction` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- PRIMARY KEY (`id`)
- )
- ENGINE=InnoDB
- DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
- AUTO_INCREMENT=46
- ROW_FORMAT=COMPACT
- ;
复造代码 歌腕表:
- CREATE TABLE `song` (
- `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
- `singer_id` int(10) UNSIGNED NOT NULL ,
- `name` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
- `introduction` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `create_time` datetime NOT NULL COMMENT '刊行工夫' ,
- `update_time` datetime NOT NULL ,
- `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
- `lyric` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
- `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
- PRIMARY KEY (`id`)
- )
- ENGINE=InnoDB
- DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
- AUTO_INCREMENT=115
- ROW_FORMAT=COMPACT
- ;
复造代码 往前出色分享:
基于java ssm springboot+VUE疫情防疫体系体系前后端别离设想战完成
基于java springboot+mybatis电影卖票网站办理体系前台+背景设想战完成
基于java ssm springboot+mybatis酒庄内乱部办理体系设想战完成
基于JAVA springboot+mybatis聪慧糊口分享仄台设想战完成
基于Java springboot+vue+redis前后端别离家具商乡仄台体系设想战完成
基于JAVA SSM springboot完成的抗疫物资疑息办理体系设想战完成
基于java ssm springboot完成选课保举交换仄台体系设想战完成
基于JAVA springboot+mybatis 电商书乡仄台体系设想战完成
基于java springboot+mybatis爱游参观仄台前台+背景设想完成
基于java SSM springboot景区止李存放办理体系设想战完成
基于java springboot的图书办理体系设想战完成
基于jsp+mysql+mybatis+Spring boot俭朴门生成就疑息办理体系
基于java ssm springboot密斯电商仄台体系设想战完成
基于Java+jsp+servlet的养老院办理体系设想战完成
基于jsp+mysql的JSP正在线生果贩卖商乡体系设想完成
基于JavaWeb SSM mybatis 门生疑息办理体系设想战完成
基于javaweb(springboot+mybatis)网上酒类商乡项目设想战完成
基于jsp+mysql+Spring的SSM正在线蛋糕商乡贩卖网站项目设想战完成
基于java SSM的衡宇租赁体系设想战完成
基于javaweb SSM邮件支收疑息体系设想战完成和文档
基于JavaWEB SSM SpringBoot婚纱影楼拍照预定网站设想战完成
基于jsp+mysql+Spring的SpringBoot雇用网站项目设想战完成
基于java web jsp+servlet门生宿舍办理体系
基于jsp+mysql+Spring+mybatis的SSM汽车保险理赚办理体系设想战完成
项目总结:
整体来讲那个项目功用相比较旧比较俭朴优良的、合适初教者做为课程设想战毕业设想参考
别的需求其他毕设项目大概利剑嫖java进修材料包罗《JVM、Netty、Mysql、Mybatis、Redis、Dubbo、Nginx、设想形式》等10G材料礼包、能够看我主页或公疑专主皆止
挨卡Java项目更新 29 / 100天
各人能够面赞、珍藏、存眷、批评我啦 、
免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作! |
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
|