温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
课题介绍
课题名称:基于微信小程序的影音点评系统
课题介绍:随着影视、综艺、动漫、音乐作品数量越来越多,用户需要一个轻量化平台浏览影音作品、查看评分、发布观后感、交流讨论。传统影音平台功能繁杂,APP 安装成本高。本系统采用微信小程序作为前端,后端使用 SpringBoot,用户不用下载 APP,微信直接打开即可使用。系统设置管理员、普通用户两类角色。用户可以浏览电影、剧集、动漫、音乐作品,查看作品详情、简介、封面、演员、发布时间,查看其他用户的点评、评分,支持点赞、收藏、评论,发布自己的点评打分;管理员负责影音作品分类管理、作品信息录入、审核用户点评、违规内容处理、用户管理、数据统计。系统实现影音作品管理、作品检索筛选、点评发布、评分、点赞收藏、评论回复、公告、热门推荐等功能,满足影音爱好者在线看片参考、交流点评的需求。
技术栈
后端:SpringBoot + MyBatis-Plus + MySQL + Redis
权限:JWT 令牌登录(微信授权登录)
前端:微信小程序(原生)
其他:ECharts 后台可视化、图片上传、Redis 缓存热门作品、点赞收藏计数
系统模块:微信授权登录模块、影音作品模块、分类模块、点评模块、点赞收藏模块、评论回复模块、公告模块、后台管理模块、统计模块。
系统分析
角色:系统管理员、普通用户
系统管理员:影音分类管理、影音作品新增 / 编辑 / 删除、查看所有用户点评、审核点评、删除违规评论、用户管理、查看平台数据(作品数量、点评数量、热门作品统计)、发布公告。
普通用户:微信一键授权登录、浏览影音作品、按分类 / 名称搜索影音、查看作品详情、查看评分和点评列表、对作品打分、发布文字点评、点赞点评、收藏作品、评论别人点评、查看我的收藏、我的点评、我的评论。
非功能性需求:用户必须微信授权才能发布点评、点赞、收藏;点评内容需要敏感词过滤,违规内容管理员可直接删除;一个用户对同一个影音作品只能发布一条点评;点赞支持取消点赞,收藏支持取消收藏;评分范围 1-5 分;热门作品根据点评数量、点赞数自动排序;图片上传限制大小;小程序端访问速度快,热门数据缓存;用户只能修改删除自己发布的点评;关键操作记录日志。
系统截图














文档

系统设计
核心数据表:user 用户表、category 分类表、media 影音作品表、review 点评表、like 点赞表、collect 收藏表、comment 评论表、notice 公告表。
业务流程:用户微信授权登录 → 浏览 / 搜索影音作品 → 查看作品详情和点评 → 发布点评打分 / 点赞收藏 / 评论回复;管理员后台录入影音、审核管理点评、处理违规内容。
核心代码
@RestController
@RequestMapping("/media")
public class MediaController {
@Resource
private IMediaService mediaService;
@Resource
private IReviewService reviewService;
@Resource
private ILikeService likeService;
@Resource
private ICollectService collectService;
// 获取影音作品列表,支持分类筛选、搜索
@GetMapping("/list")
public Result list(@RequestParam(required = false) Long categoryId,
@RequestParam(required = false) String name,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "8") Integer pageSize) {
Page<Media> page = mediaService.getMediaPage(categoryId, name, pageNum, pageSize);
return Result.success(page);
}
// 发布点评,一个用户一个作品只能一条点评
@PostMapping("/review/add")
public Result addReview(@RequestBody ReviewDTO dto) {
if(dto.getMediaId() == null){
return Result.fail("影音作品id不能为空");
}
if(dto.getUserId() == null){
return Result.fail("用户未登录");
}
if(dto.getScore() == null || dto.getScore() < 1 || dto.getScore() > 5){
return Result.fail("评分必须在1~5分之间");
}
if(dto.getContent() == null || dto.getContent().trim().isEmpty()){
return Result.fail("点评内容不能为空");
}
boolean exist = reviewService.checkUserReview(dto.getUserId(), dto.getMediaId());
if(exist){
return Result.fail("您已经对该作品发布过点评,不可重复发布");
}
ReviewVO vo = reviewService.saveReview(dto);
return Result.success("点评发布成功", vo);
}
// 点赞/取消点赞点评
@PostMapping("/like/toggle")
public Result toggleLike(@RequestParam Long reviewId, @RequestParam Long userId) {
if(reviewId == null || userId == null){
return Result.fail("参数缺失");
}
boolean isLike = likeService.toggleLike(reviewId, userId);
return Result.success(isLike ? "点赞成功" : "取消点赞成功");
}
// 收藏/取消收藏影音
@PostMapping("/collect/toggle")
public Result toggleCollect(@RequestParam Long mediaId, @RequestParam Long userId) {
if(mediaId == null || userId == null){
return Result.fail("参数缺失");
}
boolean isCollect = collectService.toggleCollect(mediaId, userId);
return Result.success(isCollect ? "收藏成功" : "取消收藏成功");
}
// 获取作品的点评列表
@GetMapping("/review/list")
public Result getReviewList(@RequestParam Long mediaId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "5") Integer pageSize) {
Page<ReviewVO> page = reviewService.getReviewByMediaId(mediaId, pageNum, pageSize);
return Result.success(page);
}
}
系统测试
表格
| 测试编号 | 测试模块 | 测试目的 | 输入数据 | 预期结果 | 实测结果 | 是否通过 |
|---|---|---|---|---|---|---|
| TC01 | 微信授权登录 | 小程序登录 | 微信授权 | 获取用户信息,生成 token | 登录成功 | 通过 |
| TC02 | 影音分类 | 管理员新增分类 | 分类名称:电影 | 分类保存成功 | 新增成功 | 通过 |
| TC03 | 新增影音作品 | 管理员录入作品 | 名称、封面、简介、类型、评分 | 作品入库,小程序可查看 | 录入成功 | 通过 |
| TC04 | 搜索影音 | 模糊搜索 | 搜索关键词:流浪地球 | 匹配相关作品展示 | 搜索正常 | 通过 |
| TC05 | 发布点评校验 | 评分 0 分 | 评分 0,内容正常 | 提示评分 1~5 分,拦截 | 拦截成功 | 通过 |
| TC06 | 点评内容为空 | 内容为空提交 | 评分 4,内容空 | 提示点评不能为空 | 拦截成功 | 通过 |
| TC07 | 重复点评 | 同一用户同一作品二次点评 | 已经点评过的作品 | 提示不可重复点评 | 拦截成功 | 通过 |
| TC08 | 点赞点评 | 点击点赞 | 点评 id、用户 id | 点赞数 + 1,可再次点击取消 | 点赞正常 | 通过 |
| TC09 | 收藏作品 | 收藏影音 | 作品 id、用户 id | 收藏成功,我的收藏可查看 | 收藏正常 | 通过 |
| TC10 | 评论点评 | 提交评论 | 点评 id、评论内容 | 评论保存,展示在点评下方 | 评论成功 | 通过 |
| TC11 | 管理员审核点评 | 违规点评 | 违规文字点评 | 管理员删除,前端不可见 | 删除成功 | 通过 |
| TC12 | 我的点评 | 查看自己发布的点评 | 登录用户 | 只展示本人点评列表 | 数据隔离 | 通过 |
| TC13 | 热门推荐 | 按热度排序 | 点评多、点赞高的作品 | 排在首页热门位置 | 排序正常 | 通过 |
| TC14 | 公告查看 | 用户查看公告 | 管理员发布公告 | 小程序首页展示公告 | 展示正常 | 通过 |
总结
本影音点评系统采用 SpringBoot 后端 + 微信小程序前端,分为管理员、普通用户两个角色,实现微信授权登录、影音分类管理、影音作品录入与检索、用户点评打分、点赞、收藏、评论回复、点评审核、违规内容管理、公告发布、热门作品推荐等功能。解决传统影音点评平台需要安装 APP、轻量化交流不方便的问题,用户打开微信小程序就可以查作品、看评价、发表观后感。系统限制一个用户对同一作品只能点评一次,评分区间固定,支持点赞收藏切换,管理员后台可以审核管控不良点评,保证平台内容规范。经过测试,微信登录、影音管理、点评发布、点赞收藏、评论、审核等功能稳定运行,适合影视、动漫、音乐爱好者交流使用。后续可以拓展视频预告播放、作品标签、私信、关注用户、点评回复通知、推荐算法等功能。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2502_92291565/article/details/170350030




