[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.公告管理:发布公告、编辑、查询、删除

用户截图:

管理员截图:

java 复制代码
package com.wpy.controller;


import com.wpy.annotation.SysLogs;
import com.wpy.dto.SysNoticeDto;
import com.wpy.entity.SysNotice;
import com.wpy.entity.SysUser;
import com.wpy.enums.CodeMsgEnums;
import com.wpy.exception.RequestException;
import com.wpy.service.SysNoticeService;
import com.wpy.utils.RequestUtils;
import com.wpy.utils.ResponseResult;
import com.wpy.utils.ShiroUtils;
import com.wpy.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/sysNotice")
public class SysNoticeController {

    @Autowired
    private SysNoticeService sysNoticeService;

    @PostMapping("/notice")
    @SysLogs("新增或修改公告")
    public ResponseResult addOrEditNotice(HttpServletRequest request, @RequestBody SysNotice sysNotice){
        SysUser sysUser = ShiroUtils.getSysUser(request);
        if(StringUtils.isEmpty(sysNotice.getId())){
            //为空是新增
            sysNoticeService.addNotice(sysUser,sysNotice);
        }else {
            //不为空是修改
            sysNoticeService.editNotice(sysUser,sysNotice);
        }
        return ResponseResult.success();
    }

    @GetMapping("/list")
    @SysLogs("公告列表")
    public ResponseResult getList(HttpServletRequest request,SysNoticeDto sysNoticeDto){
        SysUser sysUser = RequestUtils.getSysUser(request);
        return ResponseResult.success(this.sysNoticeService.getList(sysNoticeDto));
    }

    @DeleteMapping("/notice")
    @SysLogs("删除公告")
    public ResponseResult deleteNotice(@RequestParam("ids") List<String> ids){
        this.sysNoticeService.deleteNotice(ids);
        return ResponseResult.success();
    }

    @PostMapping("/openOrClose")
    @SysLogs("打开公告")
    public ResponseResult openOrClose(@RequestBody SysNoticeDto sysNoticeDto){
        if(StringUtils.isEmpty(sysNoticeDto.getId())){
            throw RequestException.fail(CodeMsgEnums.ID_IS_EMPTY.getMsg());
        }
        if(StringUtils.isBlank(sysNoticeDto.getIsOpen())){
            throw RequestException.fail("状态不能为空");
        }
        if(sysNoticeDto.getIsOpen()){
            sysNoticeService.openNotice(sysNoticeDto.getId());
        }else{
            sysNoticeService.closeNotice(sysNoticeDto.getId());
        }
        return ResponseResult.success();
    }
}
相关推荐
SoleMotive.36 分钟前
redis和mysql有什么区别,以及redis和mysql都有什么缺点,以及什么地方redis不如mysql?
数据库·redis·mysql
聪明努力的积极向上43 分钟前
【MYSQL】IN查询优化
数据库·mysql
梁萌1 小时前
MySQL主从数据同步实战
数据库·mysql
嘻哈baby1 小时前
MySQL主从复制与读写分离实战指南
数据库·mysql·adb
q_19132846951 小时前
基于SpringBoot2+Vue2的装修报价网站
java·vue.js·spring boot·mysql·计算机毕业设计·演示文稿
Neolnfra2 小时前
SMB、FTP、MySQL... 配置不当,即是漏洞
linux·数据库·mysql·安全·网络安全·系统安全·安全架构
风月歌3 小时前
小程序项目之驾校报名小程序源代码(java+vue+小程序+mysql)
java·vue.js·mysql·小程序·毕业设计·源码
dllxhcjla3 小时前
MySQL单表
数据库·mysql
心动啊1213 小时前
MySQL在python中的使用——连接方式及对对象的调用
数据库·mysql
Chloeis Syntax3 小时前
MySQL初阶学习日记(6)--- 索引
数据库·学习·mysql