作者主页:编程指南针
作者简介:Java领域优质创作者、多年架构师设计经验、腾讯课堂常驻讲师
主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助
文末获取源码
项目编号:BS-PT-098
前言:
随着国家的发展,网络的普及,以及IT行业的高薪就职,导致越来越多的人进入IT行业,分一杯羹,但是由于众多的人数,肯定会存在技术参差不齐的现象,在书写代码上出现了错误,有问题解决不出来时,不知道找谁询问。因此IT社区平台应景而生,不同的IT大神,小白,都可以发布帖子,对帖子进行客观、实在的评价,不同的观点,不同的思想,能够碰发出不一样的火花。本系统的设计目的主要是为了方便同学们在论坛上进行沟通,与网友进行思维碰撞。方便大家在学习生活上有疑难的时候可以询问他人。
本社区平台属于前后端分离的项目,前台包含了首页、文章模块、论贴模块、搜索模块、视频模块、排行模块、筛选模块、个人中心模块(个人资料、我的文章、我的视频、我的帖子、消息通知、收藏、关注、评论、粉丝),后台包含了首页、论贴管理模块、视频管理模块、论贴类型模块、文章管理模块,用户管理,文章标签管理,日志管理。其中每个主模块中又包含多个子模块。
一,项目简介
本社区平台提供了两个可使用的角色:用户、管理员。本平台包含了前台系统和后台管理系统两个系统,前台系统供用户使用,而后台管理系统则供管理员使用。前台系统分为登录注册模块、首页、文章模块、论贴模块、搜索模块、视频模块、排行模块、筛选模块、个人中心模块;后台系统分为首页、论贴管理模块、视频管理模块、论贴类型模块、文章管理模块,用户管理,文章标签管理,日志管理等。
1.前台系统
文章模块:用户可以查看自己感兴趣的文章,可以对文章点赞,收藏,转发,评论等。
论贴模块:用户对其他用户提出的问题进行回答讨论,该模块没限制,用户可以自行发言。
搜索模块:用户可以在前台系统中输入相关信息进行全局查询。
视频模块:用户可以发布教学视频,知识视频等。
排行模块:对论贴类型进行各种排行,评分,点击量,收藏量等等。
个人中心模块:包含各种子模块:个人资料、我的文章、我的视频、我的帖子、消息通知、收藏、关注、评论、粉丝、私信等。
2.后台系统
论贴管理:管理员可以对论贴进行审核,驳回操作。
文章管理:管理员对文章,转发,评论进行管理。
论贴类型模块:管理员对论贴的种类进行管理操作。
用户管理模块:管理员对用户进行认证。
文章标签维护:管理员对前台显示的文章标签进行禁用启动编辑等操作。
日志管理:记录用户的各种操作。
本系统的具体功能分析如下:
- 前台系统模块功能
表3-1 前台系统模块描述
功能名称 |
功能描述 |
文章模块 |
该模块中主要功能包括查看文章详情,发布文章,对文章进行评论,转发文章,对文章点赞。发布文章时选择文章标签然后进行发布。 |
搜索模块 |
通过输入关键字进行模糊查询,查询的范围包含论贴类型,论贴,文章,视频,用户。一输多查。 |
论贴模块 |
发布帖子,通过选择不同的帖子类型进行发布不同的帖子,有面试贴,技术贴,内推贴等等。进入某个帖子专区,可以查看全部属于该专区的帖子,以及属于该专区的视频。 |
排行模块 |
排行中包含评分排行,点击量排行,收藏量排行等功能。 |
视频模块 |
主要功能有发布视频,观看视频,和类型表关联。可以在专区中查看该专区所属的视频。 |
个人中心模块 |
该模块中的功能有:个人资料的修改查看、个人论贴、个人视频、个人文章、个人转发、个人消息(系统消息、动态消息、评论消息、私信消息)、个人收藏、个人评论、个人关注、个人粉丝等若干个功能。 |
2.后台系统模块功能
表3-2 后台系统模块描述
模块名称 |
功能描述 |
文章管理模块 |
原创文章,转发文章,评论进行删除,重写发布操作。 |
用户管理模块 |
对用户进行认证,查询,删除操作。 |
论贴管理模块 |
该模块功能对用户发布的帖子进行审核,驳回操作。 |
视频管理模块 |
该模块的主要功能是对用户发布的视频进行审核,驳回等操作。 |
文章标签维护模块 |
对标签的禁用启用,编辑,彻底删除,查询,添加等操作 |
日志管理模块 |
查询用户的日志,删除日志。 |
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
后台开发:Springboot+Mybatis-plus
前台开发:VUE
三,系统展示
5.1 登录注册界面的实现
登录界面如图5-1,用户输入用户名和密码进行账号的登录。
注册界面如图5-2,用户输入邮箱等信息,通过服务端发送验证码到用户邮箱中,将验证码同时存入redis缓存中,用户填写验证码以及其他相关信息,将输入的验证码与redis中的验证码进行比对,一致则注册成功。
图5-1 登录主页面
图5-2 注册主页面
5.2文章模块的实现
文章模块界面如图5-3,5-4,该模块具体包含文章列表,文章详情,文章转发,用户发布文章,以及对文章进行的点赞,评论操作都在该模块中进行,展示文章列表,发布文章,文章详情是对文章表的增,删,查操作,另外只有用户本人可以对自己发布的文章进行删除,编辑权限,其他用户无次类权限,所有该功能的实现同时需要用户表的关联,评论需要与评论表关联。
图5-3 文章列表展示页面
图5-4 文章详情页面
5.3搜索模块的实现
检索模块界面如图5-5,用户输入关键词,通过模糊查询,包含多条查询语句,对论贴类型,论贴,文章,视频,用户的模糊查询,前端查询函数同时执行多条查询sql语句,使其达到目的。
图5-5 检索模块界面
5.4 论贴模块的实现
论贴界面如图5-6、5-7。通过对论贴表,用户表进行查询显示全部帖子,及其详细内容,用户登录后才能发布帖子,实现帖子的发布是对论贴表的增操作,内容包含文字和图片,用户发布的帖子数据库表state默认为0,需要管理员审核,当管理员审核通过后,state变为1,才算正在的发布,其他用户才能看见。
图5-6 论贴页面实现
图5-7 发布论贴实现
5.5 排行模块的实现
排行模块如图5-8,该模块通过对数据库话题标(论贴类型表)进行查询,分别对评分,点击量,收藏量进行排序,通过sql语句查询出前10条数据返回页面,进行页面渲染。
图5-8 排行列表实现
5.6 视频模块的实现
视频模块如图5-9、5-10,该模块通过阿里云第三方视频点播服务来完成,通过获取阿里云oss的endpoint,keyid,keysecret,bucketname进行绑定,获取第三方api来实现具体的功能。用户发布视频后,同样需要管理员来审核。
图5-9 视频列表实现
图5-10 视频播放实现
5.7 个人中心模块的实现
个人中心模块如图5-11、5-12,该模块是用户最重要的模块,里面包含了许多子模块,该模块游客无法访问,只有当用户登录后才能显示,前端判断用户是否登录来实现,表格样式通过用户id来对相应各表的查询显示操作,收藏,私信,消息通知,个人信息都在里面显示,同时可以进行相应的操作。
图5-11 个人中心页面
图5-12 我的文章页面
5.8 文章管理模块实现
文章管理模块如图5-13、5-14,该模块主要是对文章表、评论表进行sql操作,文章显示,逻辑删除,重新发布等操作,包括转发的文章,同时也包括评论语句。该模块是对文章表,评论表的基本sql语句操作。
图5-13文章管理列表页面
图5-14 文章评论管理页面
四,核心代码展示
public Result item(@RequestParam(defaultValue = "0L", name = "userId") Long userId, @RequestParam("thatId") Long thatId) {
// 保存收藏、关注、粉丝、动态、转发、评论、消息数
int collectionCount = collectionService.count(new QueryWrapper().eq("user_id", thatId));
int attentionCount = attentionService.count(new QueryWrapper().eq("this_id", thatId));
int fansCount = attentionService.count(new QueryWrapper().eq("that_id", thatId));
int essayCount = essayService.count(new QueryWrapper().eq("user_id", thatId));
int forwardCount = forwardService.count(new QueryWrapper().eq("user_id", thatId));
int commentCount = commentService.count(new QueryWrapper().eq("user_id", thatId));
int messageCount = messageService.count(new QueryWrapper().eq("this_id", thatId));
int newsCount = newsService.count(new QueryWrapper().eq("user_id", thatId).eq("zt", MapUtil.YFB));
int videoCount = videoService.count(new QueryWrapper
try {
//accessKeyId, accessKeySecret
//fileName:上传文件原始名称
String fileName = file.getOriginalFilename();
//title:上传之后显示名称
String title = fileName.substring(0, fileName.lastIndexOf("."));
//inputStream:上传文件输入流
InputStream inputStream = file.getInputStream();
UploadStreamRequest request = new UploadStreamRequest(ConstantProperties.ACCESS_KEY_ID, ConstantProperties.ACCESS_KEY_SECRET, title, fileName, inputStream);
UploadVideoImpl uploader = new UploadVideoImpl();
UploadStreamResponse response = uploader.uploadStream(request);
String videoId;
if (response.isSuccess()) {
videoId = response.getVideoId();
} else {
//如果设置回调URL无效,不影响视频上传,可以返回VideoId同时会返回错误码。
// 其他情况上传失败时,VideoId为空,此时需要根据返回错误码分析具体错误原因
videoId = response.getVideoId();
}
return videoId;
} catch (Exception e) {
e.printStackTrace();
return null;
}
package com.superb.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.superb.common.MapUtil;
import com.superb.entity.Message;
import com.superb.entity.News;
import com.superb.entity.Record;
import com.superb.entity.Video;
import com.superb.service.MessageService;
import com.superb.service.OssService;
import com.superb.service.RecordAdminService;
import com.superb.service.VideoService;
import com.superb.util.Result;
import com.superb.util.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
/**
*
* 前端控制器
*
*
*/
@RestController
@RequestMapping("/video")
public class VideoController {
@Autowired
private OssService ossService;
@Autowired
private VideoService videoService;
/**
* 视频列表 已发布
* @param current
* @param size
* @return
*/
@GetMapping("/list")
public Result list(@RequestParam(defaultValue = "1", name = "current") Integer current,
@RequestParam(defaultValue = "10", name = "size") Integer size){
Page
五,项目总结
首先是论文的摘要部分,对整个项目进行了初步的了解,然后第一部分绪论,对项目的背景和目的内容出发,书写项目的开发目的,第二部分,系统项目所使用的相关技术的介绍,第三部分对系统分析,可行性,需求进行深入分析,第四部分则是系统的具体设计,从架构到功能到数据库,每个模块的具体设计思路,流程等,第五部分是对系统的运行页面功能,和核心代码的具体实现思路的撰写,最后就是总结致谢等。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net