N-133基于springboot,vue小说网站

开发工具:IDEA

服务器:Tomcat9.0, jdk1.8

项目构建:maven

数据库:mysql5.7

系统分前后台,项目采用前后端分离

前端技术:vue+elementUI

服务端技术:springboot+mybatis-plus

本项目分为管理员与普通用户两种角色

一、用户功能:

1.登录、注册、退出登录

2.首页、搜索、阅读小说,添加书签、添加收藏、取消收藏

3.我的书架:新建文件夹、下载全部、我要上传、搜素小说

4.我的上传:查看、编辑、删除、下载、发布小说

5.我的书签:查询、编辑、删除

6.阅读历史:查询、删除

7.个人信息:修改个人信息

8.个人动态:显示所有个人发布的动态信息

9.安全管理:修改邮箱和修改密码

二、管理员功能:

1.用户管理:查询、删除、详情、禁用

2.动态管理:查询、删除

3.小说管理:上传小说、查看详情、下载小说、编辑、删除

4.小说审核:通过、驳回、禁用

5.书签管理:查询、按进度查看,编辑、删除

6.收藏管理:查询、删除

7.管理员设置:修改密码,添加管理员

8.公告管理:发布公告、编辑、查询、删除

用户截图:

N-133基于springboot,vue小说网站_第1张图片

N-133基于springboot,vue小说网站_第2张图片 

N-133基于springboot,vue小说网站_第3张图片

N-133基于springboot,vue小说网站_第4张图片

N-133基于springboot,vue小说网站_第5张图片

N-133基于springboot,vue小说网站_第6张图片

N-133基于springboot,vue小说网站_第7张图片 

N-133基于springboot,vue小说网站_第8张图片

N-133基于springboot,vue小说网站_第9张图片N-133基于springboot,vue小说网站_第10张图片N-133基于springboot,vue小说网站_第11张图片N-133基于springboot,vue小说网站_第12张图片 

管理员截图:

N-133基于springboot,vue小说网站_第13张图片

N-133基于springboot,vue小说网站_第14张图片

N-133基于springboot,vue小说网站_第15张图片 

N-133基于springboot,vue小说网站_第16张图片

N-133基于springboot,vue小说网站_第17张图片N-133基于springboot,vue小说网站_第18张图片N-133基于springboot,vue小说网站_第19张图片N-133基于springboot,vue小说网站_第20张图片 

package com.wpy.controller;


import com.wpy.annotation.SysLogs;
import com.wpy.dto.DownloadDto;
import com.wpy.dto.NovelDto;
import com.wpy.dto.NovelUploadDto;
import com.wpy.entity.Novel;
import com.wpy.entity.SysUser;
import com.wpy.enums.CodeMsgEnums;
import com.wpy.exception.RequestException;
import com.wpy.service.NovelService;
import com.wpy.utils.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.List;

/**
 * 

* 小说数据表 前端控制器 *

*/ @RestController @RequestMapping("/novel") @Slf4j public class NovelController { @Autowired private NovelService novelService; @PostMapping("/upload") @SysLogs("小说上传") public ResponseResult uploadNovel(HttpServletRequest request,NovelUploadDto novelUploadDto){ try{ if(novelUploadDto.getNovelFiles().length==0){ throw RequestException.fail("文件不能为空"); } SysUser sysUser = ShiroUtils.getSysUser(request); novelService.uploadNovel(sysUser,novelUploadDto); return ResponseResult.success(); }catch (Exception e){ log.error(e.getMessage(),e); return ResponseResult.error(); } } @PostMapping("/updateNovel") @SysLogs("小说修改") public ResponseResult updateNovel(HttpServletRequest request,NovelUploadDto novelUploadDto){ if(StringUtils.isEmpty(novelUploadDto.getId())){ throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg()); } try{ SysUser sysUser = ShiroUtils.getSysUser(request); novelService.updateNovel(sysUser,novelUploadDto); return ResponseResult.success(); }catch (Exception e){ log.error(e.getMessage(),e); return ResponseResult.error(); } } @GetMapping("/list") @SysLogs("小说列表") public ResponseResult getNovelList(HttpServletRequest request,NovelDto novelDto){ SysUser sysUser = RequestUtils.getSysUser(request); return ResponseResult.success(novelService.getNovelList(sysUser,novelDto)); } @GetMapping("/novelInfo") @SysLogs("获取小说信息") public ResponseResult getNovelInfo(HttpServletRequest request,@RequestParam("id")String id,@RequestParam("isClick")Boolean isClick){ if(StringUtils.isEmpty(id)){ throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg()); } SysUser sysUser = RequestUtils.getSysUser(request); return ResponseResult.success(novelService.getNovelInfo(sysUser,id,isClick)); } @DeleteMapping("/deleteNovel") @SysLogs("删除小说") public ResponseResult deleteNovel(@RequestParam("ids")List ids){ if(CollectionUtils.isEmpty(ids)){ throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg()); } novelService.deleteNovel(ids); return ResponseResult.success(); } @GetMapping("/download") @SysLogs("下载小说") public void downloadNovel(HttpServletRequest request, HttpServletResponse response, @RequestParam("params") String params){ try { SysUser sysUser = ShiroUtils.getSysUser(request); String param = URLDecoder.decode(params, "UTF-8"); DownloadDto downloadDto = JsonUtils.jsonStrToObject(param, DownloadDto.class); this.novelService.downloadNovel(request,response,downloadDto,sysUser); } catch (UnsupportedEncodingException e) { throw RequestException.fail("参数错误"); } } @PostMapping("/public") @SysLogs("发布小说") public ResponseResult publicNovel(HttpServletRequest request,@RequestBody NovelDto novelDto){ if(StringUtils.isEmpty(novelDto.getId())&&CollectionUtils.isEmpty(novelDto.getIds())){ throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg()); } SysUser sysUser = ShiroUtils.getSysUser(request); this.novelService.publicNovel(sysUser,novelDto); return ResponseResult.success(); } @PostMapping("/cancelPublic") @SysLogs("取消发布") public ResponseResult cancelPublic(HttpServletRequest request,@RequestBody NovelDto novelDto){ if(StringUtils.isEmpty(novelDto.getId())&&CollectionUtils.isEmpty(novelDto.getIds())){ throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg()); } SysUser sysUser = ShiroUtils.getSysUser(request); this.novelService.cancelPublic(sysUser,novelDto); return ResponseResult.success(); } @PostMapping("/audit") @SysLogs("审核小说") public ResponseResult auditNovel(HttpServletRequest request,@RequestBody NovelDto novelDto){ if(StringUtils.isEmpty(novelDto.getId())&&CollectionUtils.isEmpty(novelDto.getIds())){ throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg()); } SysUser sysUser = ShiroUtils.getSysUser(request); this.novelService.auditNovel(sysUser,novelDto); return ResponseResult.success(); } }

你可能感兴趣的:(springboot,vue,毕设,springboot小说,vue,elementUI,前后端分离,mybatis-plus,mysql)