开发工具: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企业网盘系统相关推荐

  1. 基于springboot+vue的食疗系统

    基于springboot+vue的食疗系统 ✌全网粉丝20W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,博客之星.掘金/华为云/阿里云/InfoQ等平台优质作者.专注 ...

  2. 基于springboot+vue的ERP系统

    一.项目简介 基于springboot+vue的ERP系统,用这个项目二开过,里面逻辑有一丢丢混乱,bug也是有的,但是不影响整体功能 二.实现功能 支持零售管理.采购管理.销售管理 支持财务管理.报 ...

  3. 基于springboot+Vue的设备监控系统

    一.项目简介 基于springboot+Vue的设备监控系统 二.实现功能 支持数据采集服务以及数据采集的自动化处理 支持数据监控的可视化 支持统计报表的流程化 支持表单的引擎 支持监控指标配置化 支 ...

  4. 基于SpringBoot+Vue在线考试系统【web端+小程序端】【附带源码】

    最近和不少大佬聊天,有的技术很牛,有的赚很多,有的已经是高管,有的有自己的公司. 通过聊天,我发现成功人的优点基本相同: 能吃苦,执行力强,自律性强. 喝了不少酒后,酒后吐真言,成功的人都不容易,说这 ...

  5. 基于SpringBoot+Vue的房屋租赁系统、租房平台

    今天介绍一个SpringBoot+Vue的房屋租赁系统. 主要功能 租房网站页 后台管理页面 用户登录注册功能 普通用户申请成为房东的功能 房东用户上传个人房源功能 管理员通过后台页面管理所有用户账号 ...

  6. java项目:基于springboot+vue在线考试系统1013

    项目描述 springboot+vue在线考试系统: 使用目前较为流行的框架spring boot,前端部分采用了vue,项目的业务流程相对简单,该项目主要功能包括学生管理,教师管理,题库管理,成绩查 ...

  7. 网盘系统|基于SpringBoot的网盘系统的设计与实现

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  8. 基于springboot在线网盘系统

    基于springboot+jpa+MySQL实现的在线网盘文件分享系统,其功能跟百度网盘非常类似,普通用户可以注册登录,注册后默认分配1G的空间大小,登录进去后可以新建文件夹.上传各种类型的文件.文件 ...

  9. 基于springboot+vue的商城系统(电商平台)(前后端分离)

    博主主页:猫头鹰源码 博主简介:Java领域优质创作者.CSDN博客专家.公司架构师.全网粉丝5万+.专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等).简历模 ...

最新文章

  1. 基于K8S构建企业级Jenkins CI/CD平台实战(二) 之 kubernetes-plugin 插件使用
  2. _RecordsetPtr使用方法
  3. Visual studio 2010 sp1中文版正式版无法安装Silverlight5_Tools rc1 的解决办法
  4. Ubuntu 下安装 nfs
  5. Deep Learning 中文翻译
  6. WINCE下的MINGW交叉编译环境下内存崩溃地址的查找方法。
  7. Dcmtk在PACS开发中的应用(基础篇) 第一章 与影像设备互连 作者 冷家锋
  8. POJ-1001 求高精度幂
  9. 龙蜥操作系统(Anolis OS)正式登陆阿里云公共云
  10. 测试工程师必备技能之缺陷分析
  11. Loadrunner脚本录制执行
  12. html标签对应的英文原文,[转载]片尾字幕中英文对照
  13. android支付宝sdk流程,支付宝SDK
  14. HTML奥运五环的实现
  15. 网页转换成电脑exe软件简单办法
  16. 文件名变乱码. 不知道怎么找回呢
  17. 统计单词的数量----Python
  18. Python - 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线
  19. python+selenium实现网易邮箱登陆
  20. [教程] 米4终极救黑砖教程 有用

热门文章

  1. java wirter_Java FileWriter类 - Java 教程 - 自强学堂
  2. 区块链将在元宇宙旅游中发挥哪些价值?
  3. 带你使用vue为女朋友编写一个旋转相册
  4. 【ODX介绍】-2-如何手动编辑PDX文件以及PDX结构介绍
  5. TCP的三次握手与四次挥手详解
  6. ABA问题基础及解决
  7. 义乌个体户注册流程有哪些
  8. 单轴线圈有效匝数为定子每相绕组匝数的sqrt(3/2)倍----《现代电机控制技术》
  9. 一键获取主图设计模板的工具平台
  10. 游戏音乐与影视音乐的区别