首页 > 其他分享 >Vue+SpringBoot打造音乐平台

Vue+SpringBoot打造音乐平台

时间:2024-03-16 17:59:10浏览次数:25  
标签:Vue SpringBoot mo 音乐 getId music currUser 打造 id

``

在这里插入图片描述


目录


一、摘要

1.1 项目介绍

基于微信小程序+JAVA+Vue+SpringBoot+MySQL的音乐平台,包含了音乐档案模块、音乐收藏模块、音乐订单模块,支持PC后台和微信小程序用户端使用,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,基于微信小程序的音乐平台基于角色的访问控制,给音乐管理员、音乐用户角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="SVF1IkGu-1697965941399" src="https://player.bilibili.com/player.html?aid=319664684"></iframe>


二、功能模块

随着当今世界网络和计算机的飞速发展以及智能手机的普及,人们的生活从过去的必须使用计算机进行工作、娱乐、信息获取转变为通过使用更加便利的移动设备去代替。小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。在微信作为不可或缺的工具当下,微信小程序作为内置于微信内的功能平台,能够给绝大多数人带来对于他们自己而言更简易方便的使用感受及体验。

同时,在如今的时代背景下,音乐对于大多数人来说亦是不可或缺的元素。从商场、超市、餐厅等等舒缓的背景音乐包括现在可以说是如日中天的抖音也是结合了音乐与短视频,由此可见音乐的覆盖面,将音乐与微信小程序相结合,相信是一种有可能性的研究内容。

  1. 前台功能可含包用户登录注册、搜索、播放按钮、收藏列表等。
  2. 后台功能用户管理、音乐上传、付费管理等。
  3. 网站前台要求导航清晰、图文并茂、风格统一,后台要求功能完善、操作便捷。
  4. 系统代码规范、运行稳定、安全性高,无明显BUG。

三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询单首音乐

@RequestMapping(value = "/getOne", method = RequestMethod.GET)
@ApiOperation(value = "查询单首音乐")
public Result<Music> get(@RequestParam String id){
    User currUser = securityUtil.getCurrUser();
    Music music = iMusicService.getById(id);
    if(music == null) {
        return ResultUtil.error("音乐不存在");
    }
    // 收藏
    QueryWrapper<MusicCollect> mc = new QueryWrapper<>();
    mc.eq("music_id",music.getId());
    mc.eq("user_id",currUser.getId());
    music.setCollectFlag(iMusicCollectService.count(mc));
    // 下单
    QueryWrapper<MusicOrder> mo = new QueryWrapper<>();
    mo.eq("music_id",music.getId());
    mo.eq("user_id",currUser.getId());
    music.setOrderFlag(iMusicOrderService.count(mo));
    return new ResultUtil<Music>().setData(music);
}

4.2 新增音乐

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增音乐")
public Result<Music> insert(Music music){
    iMusicService.saveOrUpdate(music);
    return new ResultUtil<Music>().setData(music);
}

4.3 新增音乐订单

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条音乐订单")
public Result<MusicOrder> addOne(@RequestParam String id){
    Music music = iMusicService.getById(id);
    if(music == null) {
        return ResultUtil.error("音乐不存在");
    }
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<MusicOrder> moQw = new QueryWrapper<>();
    moQw.eq("music_id",music.getId());
    moQw.eq("user_id",currUser.getId());
    if(iMusicOrderService.count(moQw) < 1L) {
        MusicOrder mo = new MusicOrder();
        mo.setMusicId(music.getId());
        mo.setTitle(music.getTitle());
        mo.setOwner(music.getOwner());
        mo.setFileUrl(music.getFileUrl());
        mo.setPrice(music.getPrice());
        mo.setStatus("未付款");
        mo.setUserId(currUser.getId());
        mo.setUserName(currUser.getNickname());
        iMusicOrderService.saveOrUpdate(mo);
    }
    return ResultUtil.success();
}

4.4 查询音乐订单

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询音乐订单")
public Result<IPage<MusicOrder>> getByPage(@ModelAttribute MusicOrder musicOrder ,@ModelAttribute PageVo page){
    QueryWrapper<MusicOrder> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<User> userQw = new QueryWrapper<>();
    userQw.eq("id",currUser.getId());
    userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
    if(iUserService.count(userQw) < 1L) {
        qw.eq("user_id",currUser.getId());
    }
    if(!ZwzNullUtils.isNull(musicOrder.getTitle())) {
        qw.like("title",musicOrder.getTitle());
    }
    if(!ZwzNullUtils.isNull(musicOrder.getUserName())) {
        qw.like("user_name",musicOrder.getUserName());
    }
    IPage<MusicOrder> data = iMusicOrderService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<MusicOrder>>().setData(data);
}

4.5 新增音乐收藏

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条音乐收藏")
public Result<Object> addOne(@RequestParam String id){
    Music music = iMusicService.getById(id);
    if(music == null) {
        return ResultUtil.error("音乐不存在");
    }
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<MusicCollect> mcQw = new QueryWrapper<>();
    mcQw.eq("music_id",music.getId());
    mcQw.eq("user_id",currUser.getId());
    if(iMusicCollectService.count(mcQw) < 1L) {
        MusicCollect mc = new MusicCollect();
        mc.setMusicId(music.getId());
        mc.setTitle(music.getTitle());
        mc.setOwner(music.getOwner());
        mc.setFileUrl(music.getFileUrl());
        mc.setUserId(currUser.getId());
        mc.setUserName(currUser.getNickname());
        iMusicCollectService.saveOrUpdate(mc);
    }
    return ResultUtil.success();
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

标签:Vue,SpringBoot,mo,音乐,getId,music,currUser,打造,id
From: https://blog.csdn.net/javamyfriend/article/details/136766745

相关文章

  • (java毕业设计源码)基于java(springboot)校园求职招聘系统
    基于java(springboot)校园求职招聘系统项目获取请看文章最底下官网校园求职招聘管理系统,是基于java编程语言,mysql数据库,springboot+vue框架进行开发,本系统分为学生,企业,管理员三个角色,本系统适合作为java毕业设计和java课程设计源码下载进行参考学习。一.技术环境JDK......
  • 第一个Vue3程序
     上一个作品是Vue2的代码,这个是Vue3,引入时候不一样<!DOCTYPEhtml><html><head><title>Vue.js示例</title><!--引入Vue.js--><scriptsrc="https://unpkg.com/vue@3/dist/vue.global.js"></script></head>......
  • 说说如何在Vue项目中应用TypeScript?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、前言与link类似在VUE项目中应用typescript,我们需要引入一个库vue-property-decorator,其是基于vue-class-component库而来,这个库vue官方推出的一个支持使用class方式来开发vue单文件组件的库主要的功能如下:......
  • springboot配置https
    先提条件:一台服务器并配置了宝塔安装了openSSL一、生成ssl文件1.在java环境变量的bin目录下生成.p12的证书,在生成途中只需要记住生成时的密码,其余的可要可不要keytool-genkey-aliastomcat-storetypePKCS12-keyalgRSA-keysize2048-keystorekeystore.p12-v......
  • 基于Java+SpringBoot的开放实验室管理系统子系统毕业设计(源码+论文)
    作者主页:Java程序员老张主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。收藏点赞不迷路 关注作者有好处文末获取源码技术选型【后端】:Java【框架】:SpringBoot【前端】:vue【JDK版本】:JDK1.8【服......
  • Nginx部署vue项目刷新返回空白页问题
    这个问题很有可能是因为VueRouter的模式和Nginx配置之间的冲突导致的。当你在Vue应用中使用VueRouter的`history`模式时,URL会变成美观的形式,就像`http://mywebsite/myroute`,而不是`http://mywebsite/#/myroute`。这种模式下,当你尝试通过直接访问`http://mywebsite......
  • Vue3-03_组件基础_上
    单页面应用程序什么是单页面应用程序单页面应用程序(英文名:SinglePageApplication)简称SPA,顾名思义,指的是一个Web网站中只有唯一的一个HTML页面,所有的功能与交互都在这唯一的一个页面内完成。单页面应用程序的特点单页面应用程序将所有的功能局限于一个web页面中,仅在......
  • 基于springboot的房屋租赁系统
    基于springboot的房屋租赁系统文章目录基于springboot的房屋租赁系统引言功能演示视频开发环境系统功能介绍功能对照表功能截图编程框架SpringBoot框架SSM框架vue框架示例代码数据库操作示例源码获取引言博主介绍:✌专注于Java技术领域和学生毕业项目实战,欢......
  • SpringBoot - [00] 注解大全
      @SpringBootApplication这个注解用于标识一个SpringBoot应用的主类。它整合了@Configuration,@EnableAutoConfiguration,@ComponentScan。@SpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.......
  • 如何在vue的style标签中使用js?
    这是面试的时候遇到的一个面试题,当时没回答上来。。。var()-CSS:层叠样式表|MDN自定义属性(--*):CSS变量-CSS:层叠样式表|MDN我们先了解一下cssvar()函数以及css自定义属性通过var函数和自定义属性可以复用某些css样式,例如::root{--main-bg-color:pink;}b......