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














管理员截图:








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 {@Autowiredprivate 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();}
}
相关文章:
[N-133]基于springboot,vue小说网站
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本项…...
计算机网络:概述
0 学时安排及讨论题目 0.1讨论题目: CSMA/CD协议交换机基本原理ARP协议及其安全子网划分IP分片路由选择算法网络地址转换NATTCP连接建立和释放再论网络体系结构 0.2 本节主要内容 计算机网络在信息时代中的作用 互联网概述 互联网的组成 计算机网络在我国的发展 …...
服务号怎么升级订阅号
服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?首先我们要看一下服务号和订阅号的主要区别。1、服务号推送的消息没有折叠,消息出现在聊天列表中,会像收到消息一样有提醒。而订阅号推送的消息是折叠的,“订阅号…...
11.读取文件长度-fseek和ftell函数的使用
文章目录 简介1. 写入测试文件2. 读取文件长度 简介 主要讲使用fopen读取文件,配合使用fseek和ftell来读取文件长度。1. 写入测试文件 执行下方程序,使用fwrite函数写入40字节的数据,使其形成文件存入本地目录。#define _CRT_SECURE_NO_WARNI…...
视觉大模型DINOv2:自我监督学习的新领域
1 DINOv2 1.1 DINOv2特点 前段时间,Meta AI 高调发布了 Segment Anything(SAM),SAM 以交互式方式快速生成 Mask,并可以对从未训练过的图片进行精准分割,可以根据文字提示或使用者点击进而圈出图像中的特定…...
Java事务详解
一、事务的理解: 1、事务的特性: 1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 2) 一致性…...
el-table实现展开当前行时收起上一行的功能
<el-tableref"tableRef":data"tableData":expand-row-keys"expandRowKeys":row-key"handleRowKey" // 必须指定 row-keyexpand-change"handleExpandChange" // 当用户对某一行展开或者关闭的时候会触发该事件> <…...
Go的优雅退出
Go优雅退出/停机以前主要通过signal来实现,当然现在也是通过signal来实现,只是从go 1.16开始,新增了更加友好的API: func NotifyContext(parent context.Context, signals ...os.Signal) (ctx context.Context, stop context.CancelFunc) 该…...
【KVM-6】KVM/QEMU软件栈
前言 大家好,我是秋意零。 👿 简介 🏠 个人主页: 秋意零🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者🧑 个人介绍:在校期间参与众多云计算相关比赛&#x…...
硬件知识2
原理图的检查: 网络悬浮 单端网络 电源悬浮(电源和地) 重复的位号 网络短路(电源和地) AD里面双击messages里面的错误项会直接进入到原理图和PCB…...
【Java 进阶篇】JQuery DOM操作:通用属性操作的绝妙魔法
在前端的舞台上,JQuery犹如一位魔法师,为我们展现了操纵HTML元素的奇妙技巧。而在这个技巧的精妙组成中,通用属性操作是一门绝妙的魔法。在本篇博客中,我们将深入研究JQuery DOM操作中的通用属性操作,揭示这段魔法的神…...
在任何机器人上实施 ROS 导航堆栈的指南
文章目录 路径规划参考 路径规划 路径规划是导航的最终目标。这允许用户向机器人给出目标姿势,并让它在给定的环境中自主地从当前位置导航到目标位置。这是我们迄今为止所做的一切(地图绘制和本地化)的汇集点。ROS 导航堆栈已经为我们完成了…...
Android 中注解的使用
Android Support Library 从 19.1 版本开始引入了一个新的注解库,其中包含了很多的元注解,使用它们修饰我们的代码, 可以让我们提高程序的开发效率,让我们更早的发现问题。以及对代码施以规范,让代码更加有可读性。这篇…...
我国陆地遥感卫星发展现状与展望
一、引言 从20世纪90年代末至今,我国陆地遥感卫星事业历经二十多年,实现了从无到有、从小到大、从弱到强的跨越发展。随着高分辨率对地观测系统重大专项(高分专项)、《陆海观测卫星业务发展规划(2011—2020年ÿ…...
arcgis基础篇--实验
一、绘制带空洞的面要素 方法一:先绘制出一个面区域,然后在面上再绘制一个面区域代表面洞,两者位于同一个图层内,选中代表面洞的区域,选择【编辑器】-【裁剪】工具,将面裁剪出一个洞,随后删除代…...
【chatglm3】(3):在AutoDL上,使用4090显卡,部署ChatGLM3API服务,并微调AdvertiseGen数据集,完成微调并测试成功!附视频演示。
在AutoDL上,使用4090显卡,部署ChatGLM3API服务,并微调AdvertiseGen数据集,完成微调并测试成功! 其他chatgpt 和chatglm3 资料: https://blog.csdn.net/freewebsys/category_12270092.html 视频地址&#…...
python爬虫top250电影数据
之前看到的,我改了一下,多了很多东西 import requests from bs4 import BeautifulSoup from openpyxl import Workbook from openpyxl.styles import Font import redef extract_movie_info(info):# 使用正则表达式提取信息pattern re.compile(r导演:…...
STL简介+浅浅了解string——“C++”
各位CSDN的uu们好呀,终于到小雅兰的STL的学习了,下面,让我们进入CSTL的世界吧!!! 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的缺陷 7.为什么要学习string类 …...
wpf 和winform 的区别
WPF (Windows Presentation Foundation) 和 WinForms (Windows Forms) 是 Microsoft .NET 桌面应用程序开发中两种不同的技术框架,它们有一些重要的区别: 1. **UI 抽象层次结构:** - **WinForms:** 使用基于控件(Controls)的 …...
【Apifox】国产测试工具雄起
在开发过程中,我们总是避免不了进行接口的测试, 而相比手动敲测试代码,使用测试工具进行测试更为便捷,高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman,他还拥有一个非常nb的功能, 在接…...
嵌入式与单片机:核心概念与开发实战解析
1. 嵌入式与单片机:从概念到实战的全面解析作为一名在嵌入式领域摸爬滚打多年的工程师,我经常被问到这样一个问题:"单片机不就是嵌入式吗?"这个问题看似简单,却反映了初学者对这两个概念的普遍困惑。今天&am…...
BLDC无刷电机脉冲注入启动法及其保护功能与控制原理
BLDC 无刷电机 脉冲注入 启动法 启动过程持续插入正反向短时脉冲;定位准,启动速度快; Mcu:华大hc32f030; 功能:脉冲定位,脉冲注入,开环,速度环,电流环&#x…...
数据集成与 ETL 实践:从设计到优化
数据集成与 ETL 实践:从设计到优化 前言 作为一个在数据深渊里捞了十几年 Bug 的女码农,我深知数据集成和 ETL(Extract, Transform, Load)在企业数据管理中的重要性。随着数据量的爆炸式增长和数据来源的多样化,数据集…...
网络协议封神考点:TCP协议是如何保证可靠传输的?原理+流程图+硬核详解
网络协议封神考点:TCP协议是如何保证可靠传输的?原理流程图硬核详解一、前言二、基础定义:什么是TCP可靠传输?三、TCP保证可靠传输的6大核心机制(必考)3.1 机制1:面向连接(三次握手 …...
akdbdudhdhfvf
一、OpenAI 1.OpenAI是什么简单来说,OpenAI 大模型 是由美国人工智能公司 OpenAI 开发的一系列大型语言模型(LLMs) 。你可以把它们想象成拥有巨大“知识储备”和“学习能力”的超级大脑,它们被训练用来理解和生成人类语言…...
从‘电’到‘光’的魔法:拆解一个工业光纤转换模块,聊聊TTL电平隔离与长线传输的那些坑
从‘电’到‘光’的魔法:拆解一个工业光纤转换模块,聊聊TTL电平隔离与长线传输的那些坑 当你面对一台因电磁干扰频繁宕机的工业设备,或是需要跨越百米距离稳定传输控制信号时,光纤转换模块往往成为工程师的秘密武器。这次我们拿起…...
Linux内核中的高精度定时器:hrtimer机制详解
Linux内核中的高精度定时器:hrtimer机制详解 作为一名深耕操作系统和嵌入式开发的工程师,我对Linux内核中的高精度定时器(hrtimer)机制有着深入的理解。hrtimer提供了微秒甚至纳秒级的定时精度,是实时应用的关键基础设…...
第6章 数据类型转换-6.8 转换为集合
通过使用set()函数可以将字符串、列表或元组转换为可变集合。其语法格式如下: set([x]) 其中,参数x为可选参数,表示字符串、列表或元组,如果省略该参数,则该函数返回空集合。示例代码如下: # 资源包\Cod…...
深入理解 Firebase onSnapshot 的监听机制
前言 在现代 Web 应用开发中,Firebase Firestore 提供了强大的实时数据库功能,onSnapshot 监听器是其中一个关键特性。然而,如何正确地使用这个监听器来处理网络连接失败等特殊情况,往往是开发者需要深入理解的。今天我们将探讨 onSnapshot 的工作机制,并通过实例展示如何…...
Ryujinx模拟器终极指南:在PC上免费畅玩Switch游戏
Ryujinx模拟器终极指南:在PC上免费畅玩Switch游戏 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验《塞尔达传说:旷野之息》的震撼画面吗…...
