源码获取:俺的博客首页 "资源" 里下载!
项目介绍
springboot视频网站系统的设计与实现
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue + elementui
使用说明
项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入地址:
前台地址:http://localhost:8080/springbootrpj39/front/index.html
后台地址:http://localhost:8080/springbootrpj39/admin/dist/index.html
管理员 abo 密码 abo
用户:用户1 密码: 123456
注意项目文件路径中不能含有中文、空格、特殊字符等,否则图片会上传不成功。
用户管理控制层:
/**
* 用户控制器
*
*/
@RestController
@RequestMapping("/admin/user")
public class UserAdminController {
@Resource
private UserService userService;
@Value("${MD5Salt}")
private String salt; // md5加密盐
/**
* 根据ID查找用户
* @param userId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
User user = userService.findById(userId);
resultMap.put("errorNo", 0);
resultMap.put("data", user);
return resultMap;
}
/**
* 分页查询用户
* @param user
* @param registrationDates
* @param page
* @param limit
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(User user,
@RequestParam(value = "latelyLoginTimes", required = false) String latelyLoginTimes,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
String s_bregistrationDate = null; // 开始时间
String s_eregistrationDate = null; // 结束时间
if (StringUtil.isNotEmpty(latelyLoginTimes)) {
String[] strs = latelyLoginTimes.split(" - "); // 拆分时间段
s_bregistrationDate = strs[0];
s_eregistrationDate = strs[1];
}
List<User> userList = userService.list(user, s_bregistrationDate, s_eregistrationDate, page - 1, pageSize);
Long total = userService.getCount(user, s_bregistrationDate, s_eregistrationDate);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", userList);
resultMap.put("total", total);
return resultMap;
}
@RequestMapping("/delete")
public Map<String, Object> delete(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
userService.delete(userId);
resultMap.put("errorNo", 0);
return resultMap;
}
/**
* 取消关注
* @param request
* @param userId
* @return
*/
@RequestMapping("/removeFocusUser")
public ModelAndView removeFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/**
* 关注用户
* @param request
* @param userId
* @return
*/
@RequestMapping("/addFocusUser")
public ModelAndView addFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
@RequestMapping("/addFocusUser/{userId}")
public ModelAndView addFocusUser(@PathVariable(value = "userId", required = false) Integer userId,
HttpSession session) {
ModelAndView mav = new ModelAndView();
User user = (User) session.getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = new ArrayList<>();
if (userIds != null) {
tempList = Arrays.asList(userIds.split(","));
}
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId.toString());
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/**
* 取消收藏
* @param request
* @param userId
* @return
*/
@RequestMapping("/removeCollection")
public ModelAndView removeCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String artIds = user.getArticleIds();
List<String> tempList = Arrays.asList(artIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(artId);
String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
/**
* 收藏
* @param request
* @param userId
* @return
*/
@RequestMapping("/addCollection")
public ModelAndView addCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String artIds = user.getArticleIds();
List<String> tempList = Arrays.asList(artIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(artId);
String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
}
管理员控制层:
/**
* 管理员控制器
*
*/
@RestController
@RequestMapping("/admin")
public class AdminController {
@Value("${MD5Salt}")
private String salt; // md5加密盐
@Resource
private AdminService adminService;
@Resource
private UserService userService;
@Resource
private ArticleService articleService;
@Resource
private ClassifyService classifyService;
/**
* 后台管理员登录验证
* @param admin
* @param request
* @return
*/
@RequestMapping("/login")
public ModelAndView login(Admin admin, HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
HttpSession session = request.getSession();
try {
Admin resultUser = adminService.findByUserNameAndPassword(admin.getUserName(), admin.getPassword());
if (resultUser == null) {
mav.addObject("errorInfo", "用户名或者密码错误!");
mav.setViewName("/login");
} else {
session.setAttribute("adminUser", resultUser);
// 统计用户总数
Long userCount = userService.getCount();
// 统计今天注册
Long userRegCount = userService.getTodayRegistCount(new User(), "1", "1");
// 统计今日登录
Long userLogCount = userService.getCount(new User(), "1", "1");
// 统计笔记总数
Long artCount = articleService.getCount();
// 统计笔记分类
Long classCount = classifyService.getCount();
session.setAttribute("userCount", userCount);
session.setAttribute("userRegCount", userRegCount);
session.setAttribute("userLogCount", userLogCount);
session.setAttribute("artCount", artCount);
session.setAttribute("classCount", classCount);
mav.addObject("success", true);
mav.setViewName("/admin/index");
}
} catch (Exception e) { // 用户名密码错误
e.printStackTrace();
mav.addObject("admin", admin);
mav.addObject("errorInfo", "用户名或者密码错误!");
mav.setViewName("/login");
}
return mav;
}
/**
* 查看个人信息
*
* @return
*/
@RequestMapping("viewPerson")
public ModelAndView viewPerson(HttpServletRequest request) {
Admin admin = (Admin) request.getSession().getAttribute("adminUser");
ModelAndView mav = new ModelAndView();
Admin u = adminService.findById(admin.getAdminId());
mav.addObject("user", u);
mav.setViewName("/admin/adminViewPerson");
return mav;
}
/**
* 保存用户信息
*
* @param user
* @return
*/
@RequestMapping("/save")
public ModelAndView save(Admin user) {
ModelAndView mav = new ModelAndView();
adminService.save(user);
mav.setViewName("/admin/index");
return mav;
}
}
发布者管理控制层:
/**
* 博主控制器
*
*/
@RestController
@RequestMapping("/admin/blogger")
public class BloggerAdminController {
@Resource
private BloggerService bloggerService;
@Resource
private StartupRunner startupRunner;
/**
* 查找博主
* @param bloggerId
* @return
*/
@RequestMapping("/find")
public Map<String, Object> find() {
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", bloggerService.find());
return resultMap;
}
/**
* 添加或者修改博主
* @param blogger
* @return
*/
@RequestMapping("/save")
public Map<String, Object> save(Blogger blogger){
Map<String, Object> resultMap=new HashMap<String, Object>();
bloggerService.save(blogger);
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
}
公告管理控制层:
/**
* 公告控制器
*
*/
@RestController
@RequestMapping("/admin/notice")
public class NoticeAdminController {
@Resource
private NoticeService noticeService;
/**
* 分页查询公告
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", noticeService.list(page-1, pageSize));
resultMap.put("total", noticeService.getCount());
return resultMap;
}
/**
* 根据ID查找公告
* @param noticeId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer noticeId) {
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", noticeService.findById(noticeId));
return resultMap;
}
/**
* 添加或者修改公告
* @param notice
* @return
*/
@RequestMapping("/save")
public Map<String, Object> save(Notice notice){
Map<String, Object> resultMap=new HashMap<String, Object>();
notice.setPublishDate(new Date());
noticeService.save(notice);
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
return resultMap;
}
/**
* 批量删除公告
* @param ids
* @return
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value="noticeId")String ids){
Map<String, Object> resultMap=new HashMap<String, Object>();
String []idsStr=ids.split(",");
for(int i=0;i<idsStr.length;i++) {
noticeService.delete(Integer.parseInt(idsStr[i]));
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
return resultMap;
}
}
源码获取:俺的博客首页 "资源" 里下载!