基于springboot,vue企业网盘系统
开发工具:IDEA
服务器:Tomcat9.0, jdk1.8
项目构建:maven
数据库:mysql5.7
系统分前后台,采用前后端分离
前端技术:vue+elementUI等框架实现
服务端技术:springboot+jpa
项目功能描述:
1.登录、注册、首页
2.用户管理:添加用户、修改用户、删除用户、查询用户、分配角色等功能
3.权限管理:
(1)角色列表:添加、修改、删除、分配权限
(2)权限列表
4.文件管理
(1)文件上传
(2)文件列表:分享文件、详情、下载文件、删除文件
5.个人中心:修改个人信息和修改密码
6.退出登录
package com.kcqnly.application.controller;import cn.hutool.core.util.StrUtil;
import com.kcqnly.application.common.Result;
import com.kcqnly.application.entity.Role;
import com.kcqnly.application.entity.User;
import com.kcqnly.application.model.UserInfo;
import com.kcqnly.application.model.UserList;
import com.kcqnly.application.model.UserParam;
import com.kcqnly.application.service.RoleService;
import com.kcqnly.application.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.Date;
import java.util.List;@RestController
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RoleService roleService;@Autowiredprivate BCryptPasswordEncoder bCryptPasswordEncoder;@PreAuthorize("hasAuthority('用户列表')")@GetMapping("/users")public Result getUserList(String query, int pageNum, int pageSize) {if (StrUtil.isEmpty(query) || StrUtil.isBlank(query)) {List<UserParam> userParams = new ArrayList<>();List<User> userList = userService.findAll(pageNum - 1, pageSize);for (User user : userList) {userParams.add(new UserParam(user));}UserList res = new UserList(userService.getTotal(), pageNum, userParams);return Result.ok("获取用户列表成功", res);} else {List<UserParam> userParams = new ArrayList<>();List<User> userList = userService.findByUsernameLike(query);for (User user : userList) {userParams.add(new UserParam(user));}UserList res = new UserList(userParams.size(), pageNum, userParams);return Result.ok("查询成功", res);}}// @PreAuthorize("hasAuthority('添加用户')")@PostMapping("/users")public Result addUser(@RequestBody User user) {if (userService.findByUsername(user.getUsername()) != null) {return Result.error("用户名已存在");}String rawPassword = user.getPassword();user.setState(true);user.setRole(roleService.findById(1));user.setPassword(new BCryptPasswordEncoder().encode(rawPassword));user.setUseSize(0f);user.setSurplusSize(user.getMaxSize());user.setCreateTime(new Date());user.setUpdateTime(new Date());userService.save(user);return Result.ok("添加成功", new UserParam(user));}@PreAuthorize("hasAuthority('设置用户状态')")@PostMapping("/users/{id}/state/{state}")public Result changeState(@PathVariable("id") int id, @PathVariable("state") boolean state) {UserParam userParam = new UserParam(userService.updateState(id, state));return Result.ok("更新成功", userParam);}/*** 编辑用户信息时,弹框内的用户数据**/@PreAuthorize("hasAuthority('用户列表')")@GetMapping("/users/{id}")public Result search(@PathVariable("id") int id) {User user =userService.findById(id);if (user!=null) {UserParam userParam = new UserParam(user);return Result.ok("搜索成功", userParam);}return Result.error("用户id不存在");}@PreAuthorize("hasAuthority('删除用户')")@DeleteMapping("/users/{id}")public Result deleteUser(@PathVariable("id") int id) {userService.deleteById(id);return Result.ok("删除成功", null);}@PreAuthorize("hasAuthority('获取用户详情')")@PutMapping("/users/{id}")public Result changeInformation(@PathVariable("id") int id, @RequestBody UserParam req) {UserParam userParam = new UserParam(userService.updateInformation(id, req.getMobile(), req.getEmail(),req.getMaxSize()));return Result.ok("更新成功", userParam);}@PreAuthorize("hasAuthority('分配用户角色')")@PutMapping("/users/{id}/role")public Result changeRole(@PathVariable("id") int id, @RequestBody Role role) {UserParam userParam = new UserParam(userService.updateRole(id, role.getId()));return Result.ok("成功", userParam);}/*** 用户个人设置**/@GetMapping("/users/info")public Result getCurrentUser(Authentication authentication) {User user = (User) authentication.getPrincipal();UserInfo userInfo = new UserInfo(user);return Result.ok(userInfo);}@PostMapping("/users/checkPass")public Result checkPassword(Authentication authentication, String password) {User user = (User) authentication.getPrincipal();if (bCryptPasswordEncoder.matches(password, user.getPassword())) {return Result.ok(null);} else {return Result.error("原密码错误");}}@PostMapping("/users/updatePassword")public Result updatePassword(Authentication authentication,String password){User user = (User) authentication.getPrincipal();user.setPassword(bCryptPasswordEncoder.encode(password));userService.save(user);return Result.ok("更新密码成功",null);}
}
package com.kcqnly.application.controller;import cn.hutool.core.util.StrUtil; import com.kcqnly.application.common.GoFastDfsApi; import com.kcqnly.application.common.Result; import com.kcqnly.application.utils.FileUtil; import com.kcqnly.application.utils.SecurityUtil; import com.kcqnly.application.utils.UploadUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;@RestController public class UploadController {@Value("${upload.temp.path}")private String tempPath;@Value("${fileServer.url}")private String serverUrl;@Value("fileServer.showUrl")private String showUrl;@PostMapping("/file/upload/")@PreAuthorize("hasAuthority('文件列表')")public Result moreFileUpload(@RequestBody MultipartFile file, String path) {String scene = path;if (file.isEmpty()) {return Result.error("请选择文件");}//判断是否超过剩余空间if (!FileUtil.isUpload(file.getSize())){return Result.error("文件超出剩余空间");}if (path.contains("/")) {scene = path.substring(0, path.lastIndexOf("/"));}//加上用户名前缀,区分是哪个用户的path= SecurityUtil.getLoginUsername()+"/"+path;//path="img/壁纸" scene="img"return UploadUtil.upload(tempPath, serverUrl + GoFastDfsApi.UPLOAD, path, scene, file, showUrl);} }
基于springboot,vue企业网盘系统相关推荐
- 基于springboot+vue的食疗系统
基于springboot+vue的食疗系统 ✌全网粉丝20W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,博客之星.掘金/华为云/阿里云/InfoQ等平台优质作者.专注 ...
- 基于springboot+vue的ERP系统
一.项目简介 基于springboot+vue的ERP系统,用这个项目二开过,里面逻辑有一丢丢混乱,bug也是有的,但是不影响整体功能 二.实现功能 支持零售管理.采购管理.销售管理 支持财务管理.报 ...
- 基于springboot+Vue的设备监控系统
一.项目简介 基于springboot+Vue的设备监控系统 二.实现功能 支持数据采集服务以及数据采集的自动化处理 支持数据监控的可视化 支持统计报表的流程化 支持表单的引擎 支持监控指标配置化 支 ...
- 基于SpringBoot+Vue在线考试系统【web端+小程序端】【附带源码】
最近和不少大佬聊天,有的技术很牛,有的赚很多,有的已经是高管,有的有自己的公司. 通过聊天,我发现成功人的优点基本相同: 能吃苦,执行力强,自律性强. 喝了不少酒后,酒后吐真言,成功的人都不容易,说这 ...
- 基于SpringBoot+Vue的房屋租赁系统、租房平台
今天介绍一个SpringBoot+Vue的房屋租赁系统. 主要功能 租房网站页 后台管理页面 用户登录注册功能 普通用户申请成为房东的功能 房东用户上传个人房源功能 管理员通过后台页面管理所有用户账号 ...
- java项目:基于springboot+vue在线考试系统1013
项目描述 springboot+vue在线考试系统: 使用目前较为流行的框架spring boot,前端部分采用了vue,项目的业务流程相对简单,该项目主要功能包括学生管理,教师管理,题库管理,成绩查 ...
- 网盘系统|基于SpringBoot的网盘系统的设计与实现
作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...
- 基于springboot在线网盘系统
基于springboot+jpa+MySQL实现的在线网盘文件分享系统,其功能跟百度网盘非常类似,普通用户可以注册登录,注册后默认分配1G的空间大小,登录进去后可以新建文件夹.上传各种类型的文件.文件 ...
- 基于springboot+vue的商城系统(电商平台)(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者.CSDN博客专家.公司架构师.全网粉丝5万+.专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等).简历模 ...
最新文章
- 基于K8S构建企业级Jenkins CI/CD平台实战(二) 之 kubernetes-plugin 插件使用
- _RecordsetPtr使用方法
- Visual studio 2010 sp1中文版正式版无法安装Silverlight5_Tools rc1 的解决办法
- Ubuntu 下安装 nfs
- Deep Learning 中文翻译
- WINCE下的MINGW交叉编译环境下内存崩溃地址的查找方法。
- Dcmtk在PACS开发中的应用(基础篇) 第一章 与影像设备互连 作者 冷家锋
- POJ-1001 求高精度幂
- 龙蜥操作系统(Anolis OS)正式登陆阿里云公共云
- 测试工程师必备技能之缺陷分析
- Loadrunner脚本录制执行
- html标签对应的英文原文,[转载]片尾字幕中英文对照
- android支付宝sdk流程,支付宝SDK
- HTML奥运五环的实现
- 网页转换成电脑exe软件简单办法
- 文件名变乱码. 不知道怎么找回呢
- 统计单词的数量----Python
- Python - 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线
- python+selenium实现网易邮箱登陆
- [教程] 米4终极救黑砖教程 有用