【开源】基于JAVA语言的快乐贩卖馆管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 搞笑视频模块
    • 2.3 视频收藏模块
    • 2.4 视频评分模块
    • 2.5 视频交易模块
    • 2.6 视频好友模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 搞笑视频表
      • 3.2.2 视频收藏表
      • 3.2.3 视频评分表
      • 3.2.4 视频交易表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询搞笑视频
    • 5.2 加购搞笑视频
    • 5.3 搞笑视频打分
    • 5.4 搞笑视频收藏
    • 5.5 添加好友
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的快乐贩卖馆管理系统,包含了视频模块、视频收藏模块、视频打分模块、视频交友模块、视频购物车模块和视频订单模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,快乐贩卖馆管理系统基于角色的访问控制,给视频管理员、普通用户使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

随着互联网行业各种业务的兴起和发展,这一领域的市场竞争也日趋激烈。从视频网站的角度来看,主要的视频网站并未像许多人认为的那样在激烈的市场竞争中真正获利。相反,连续的损失是视频网站面临的最困难的问题。快乐贩卖馆系统是一套交易搞笑视频的系统,用户可以在其中自由交易搞笑视频。

快乐贩卖馆系统基于Java语言开发,采用前后端分离的技术架构,前端采用Vue.js,后端采用SpringBoot框架,采用MySQL数据库。

快乐贩卖馆系统的功能性需求主要包含数据中心模块、搞笑视频模块、视频收藏模块、视频评价模块、视频交易模块、视频好友模块这六大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下。

2.1 数据中心模块

数据中心模块包含了快乐贩卖馆系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是高校的组织架构,该模块适用于管理这些组织架构的部门层级和教师的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护快乐贩卖馆系统中的图片,如合同签订文件、合同照片等等。

2.2 搞笑视频模块

搞笑视频是快乐贩卖馆系统的核心,需要建立搞笑视频模块对其进行管理,搞笑视频的数据包括视频名称、视频介绍、视频价格、文件、排序值、备注、创建人、创建时间、更新人、更新时间,用户可以发布新的搞笑视频,管理员可以对用户发布的搞笑视频进行删除操作。

2.3 视频收藏模块

如果用户对某个视频非常满意,可以对其进行收藏,以便于后续快捷浏览,视频收藏的字段包括视频ID、视频名称、收藏时间、备注、创建人、创建时间、更新人、更新时间,用户可以对搞笑视频进行收藏操作,管理员可以查询用户的收藏数据。

2.4 视频评分模块

在快乐贩卖馆系统中,用户可以对搞笑视频进行评价,以此达到交互的效果,视频评分的数据包括视频ID、视频名称、视频文件、评分数值、创建人、创建时间、更新人、更新时间,用户可以对搞笑视频进行评分操作,管理员可以查询用户的评分数据。

2.5 视频交易模块

用户可以购买搞笑视频,购买需要消耗余额,余额来源自上传的搞笑视频,视频交易字段包括视频ID、视频名称、视频文件、付款状态、创建人、创建时间、更新人、更新时间,用户可以对搞笑视频进行下单、付款操作,管理员可以查询用户的交易数据。

2.6 视频好友模块

如果用户对视频的发布者很感兴趣,可以添加单向好友,方便留档,视频好友的字段包括所属人、好友ID、好友昵称、好友手机、创建人、创建时间、更新人、更新时间,用户可以添加搞笑视频的创作者,管理员可以查询用户添加的好友数据。

在这里插入图片描述


三、系统设计

3.1 用例设计

在这里插入图片描述

3.2 数据库设计

3.2.1 搞笑视频表

在这里插入图片描述

3.2.2 视频收藏表

在这里插入图片描述

3.2.3 视频评分表

在这里插入图片描述

3.2.4 视频交易表

在这里插入图片描述


四、系统展示

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


五、核心代码

5.1 查询搞笑视频

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询搞笑视频")
public Result<IPage<FunnyVideo>> getByPage(@ModelAttribute FunnyVideo funnyVideo ,@ModelAttribute PageVo page){QueryWrapper<FunnyVideo> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();if(!ZwzNullUtils.isNull(funnyVideo.getTitle())) {qw.like("title",funnyVideo.getTitle());}if(!ZwzNullUtils.isNull(funnyVideo.getContent())) {qw.like("content",funnyVideo.getContent());}IPage<FunnyVideo> data = iFunnyVideoService.page(PageUtil.initMpPage(page),qw);for (FunnyVideo vo : data.getRecords()) {// 好友状态QueryWrapper<FunnyOrder> orderQw = new QueryWrapper<>();orderQw.eq("video_id",vo.getId());orderQw.eq("user_id",currUser.getId());vo.setStatus1(iFunnyOrderService.count(orderQw));// 好友状态QueryWrapper<Friends> friQw = new QueryWrapper<>();friQw.eq("my_id",currUser.getId());friQw.eq("user_id",vo.getUserId());vo.setStatus2(iFriendsService.count(friQw));// 收藏状态QueryWrapper<FunnyCollect> fcQw = new QueryWrapper<>();fcQw.eq("video_id",vo.getId());fcQw.eq("user_id",currUser.getId());vo.setStatus3(iFunnyCollectService.count(fcQw));}return new ResultUtil<IPage<FunnyVideo>>().setData(data);
}

5.2 加购搞笑视频

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条搞笑视频订单")
public Result<FunnyOrder> addOne(@RequestParam String id){FunnyVideo v = iFunnyVideoService.getById(id);if(v == null) {return ResultUtil.error("视频不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<FunnyOrder> orderQw = new QueryWrapper<>();orderQw.eq("video_id",v.getId());orderQw.eq("user_id", currUser.getId());FunnyOrder order = iFunnyOrderService.getOne(orderQw);if(order != null) {if(Objects.equals("加购",order.getStatus1())) {return ResultUtil.error("您已加购,请下单");} else {return ResultUtil.error("您已购买,无需重复购买");}}FunnyOrder o = new FunnyOrder();o.setVideoId(v.getId());o.setTitle(v.getTitle());o.setContent(v.getContent());o.setFileUrl(v.getFileUrl());o.setPrice(v.getPrice());o.setUserId(currUser.getId());o.setUserName(currUser.getNickname());o.setStatus1("加购");o.setStatus2("未付款");iFunnyOrderService.saveOrUpdate(o);return ResultUtil.success();
}

5.3 搞笑视频打分

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条搞笑视频评分")
public Result<Object> addOne(@RequestParam String id,@RequestParam BigDecimal grade){FunnyVideo video = iFunnyVideoService.getById(id);if(video == null) {return ResultUtil.error("视频不存在");}User currUser = securityUtil.getCurrUser();FunnyGrade c = new FunnyGrade();c.setVideoId(video.getId());c.setTitle(video.getTitle());c.setContent(video.getContent());c.setFileUrl(video.getFileUrl());c.setUserId(currUser.getId());c.setUserName(currUser.getNickname());c.setGrade(grade);c.setTime(DateUtil.now());iFunnyGradeService.saveOrUpdate(c);return ResultUtil.success();
}

5.4 搞笑视频收藏

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条搞笑视频收藏")
public Result<Object> addOne(@RequestParam String id){FunnyVideo video = iFunnyVideoService.getById(id);if(video == null) {return ResultUtil.error("视频不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<FunnyCollect> qw = new QueryWrapper<>();qw.eq("video_id",video.getId());qw.eq("user_id",currUser.getId());if(iFunnyCollectService.count(qw) < 1L) {FunnyCollect c = new FunnyCollect();c.setVideoId(video.getId());c.setTitle(video.getTitle());c.setContent(video.getContent());c.setFileUrl(video.getFileUrl());c.setUserId(currUser.getId());c.setUserName(currUser.getNickname());c.setTime(DateUtil.now());iFunnyCollectService.saveOrUpdate(c);}return ResultUtil.success();
}

5.5 添加好友

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "添加单条好友")
public Result<Friends> addOne(@RequestParam String id){FunnyVideo v = iFunnyVideoService.getById(id);if(v == null) {return ResultUtil.error("视频不存在");}User currUser = securityUtil.getCurrUser();if(Objects.equals(v.getUserId(),currUser.getId())) {return ResultUtil.error("不能添加自己为好友!");}QueryWrapper<Friends> qw = new QueryWrapper<>();qw.eq("my_id", currUser.getId());qw.eq("user_id",v.getUserId());if(iFriendsService.count(qw) > 0L) {return ResultUtil.error("已添加,无需重复添加!");}User user = iUserService.getById(v.getUserId());if(user != null) {Friends f = new Friends();f.setMyId(currUser.getId());f.setUserId(user.getId());f.setUserName(user.getNickname());f.setMobile(user.getMobile());f.setAddTime(DateUtil.now());iFriendsService.saveOrUpdate(f);}return ResultUtil.success();
}

六、免责说明

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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412412.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习记录--归—化输入特征

归化 归化输入(normalizing inputs),对特征值进行一定的处理&#xff0c;可以加速神经网络训练速度 步骤 零均值化 通过x值更新让均值稳定在零附近&#xff0c;即为零均值化 归化方差 适当减小变量方差 解释 归化可以让原本狭长的数据图像变得规整&#xff0c;梯度下降的…

本周五上海见 第二届证券基金行业先进计算技术大会暨2024低时延技术创新实践论坛(上海站)即将召开

低时延技术是证券基金期货领域业务系统的核心技术&#xff0c;是打造极速交易系统领先优势的关键&#xff0c;也是证券基金行业关注的前沿技术热点。 1月19日下午&#xff0c;第二届证券基金行业先进计算技术大会暨2024低时延技术创新实践论坛&#xff08;上海站&#xff09;即…

【计算机组成与体系结构Ⅱ】虚拟存储器以及虚拟变换(实验)

实验7&#xff1a;虚拟存储器以及虚拟变换 一、实验目的 1&#xff1a;加深对虚拟存储器基本概念、基本组织结构以及基本工作原理的理解。 2&#xff1a;掌握页式、段式&#xff0c;段页式存储的原理以及地址变换的方法。 3&#xff1a;理解LRU与随机替换的基本思想。 二、…

清理docker 无用数据

df -h 查看 overlay 使用88% docker ps 我只要跑一个 把没有用的删除了去 让chatgpt 帮搞一搞 删除未使用的 Docker 镜像、容器、卷和网络&#xff0c;您可以按照以下步骤操作。请注意&#xff0c;在进行这些操作之前&#xff0c;确保您不再需要这些资源&#xff0c;因为删…

Spring | Spring框架最基本核心的jar包、Spring的入门程序、依赖注入

目录&#xff1a; 1.Spring框架最基本、最核心的jar包2.Spring的入门程序3.依赖注入3.1 依赖注入的概念3.2 依赖注入的实现方式 &#xff08;基于 属性 set方法 xml配置文件 的实现方式&#xff09; 1.Spring框架最基本、最核心的jar包 Spring是一个轻量级框架&#xff0c;Sp…

JS逆向实战案例2——某房地产token RSA加密

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、 反爬分析 url1&#xff1a;aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94a2I/c1Byb2plY3RJZD05MzBlMDQ0MmJjNjA0MTBkYTgzNzQ0MmQ…

【Ant Design of Vue】Modal.confirm无法关闭的bug

一、问题 在使用 Ant Design Vue 的 Modal.confirm 确认框时&#xff0c;出现了点击取消和确定后 Modal.confirm 确认框无法关闭的问题 二、代码 代码完全是 copy 的官网的代码&#xff0c;但是 copy 到本地后就会出现上述问题 <template><a-button click"sho…

玩转【Linux】--基本操作指令(二)

目录 一.指令的常见应用 1. 指令 "cd -" 2.指令"cd ~" 与指令"whoami" (1)指令"whoami" (2)指令"cd ~" 3.指令"alias " 4.指令"touch " 5.指令"mkdir -p" 6.指令"tree &q…

Linux/Networked

Enumeration nmap 网站更新之后有了一个引导模式&#xff0c;更利于学习了&#xff0c;之前看ippsec的视频&#xff0c;要不总是没有思路&#xff0c;现在出现的问题多了提示也更多了&#xff0c;还没有使用&#xff0c;一会用用再说 首先&#xff0c;第一个问题是“目标上正…

CNAS认可是什么?湖南长沙CNAS专业第三方软件检测机构有哪些?

CNAS是中国合格评定国家认可委员会(China National Accreditation Service for Conformity Assessment)的缩写&#xff0c;是专门负责评定和认可各类检验机构、实验室、认证机构和校验机构的国家认可机构。CNAS认可的好处在于&#xff0c;它证明了软件企业和软件产品具备严格的…

浅聊雷池社区版(WAF)的tengine

雷池社区版是一个开源的免费Web应用防火墙&#xff08;WAF&#xff09;&#xff0c;专为保护Web应用免受各种网络攻击而设计。基于强大的Tengine&#xff0c;雷池社区版提供了一系列先进的安全功能&#xff0c;适用于中小企业和个人用户。 Tengine的故事始于2011年&#xff0c;…

Nginx前后端分离部署springboot和vue项目

Nginx前后端分离部署springboot和vue项目&#xff0c;其实用的比较多&#xff0c;有的小伙伴对其原理和配置还一知半解&#xff0c;现在就科普一下&#xff1a; 1、准备后端项目 后端工程无论是微服务还是单体&#xff0c;一般最终都是jar启动&#xff0c;关键点就是把后端服…