package cn.edu.tyut.sea2.seandisk.module.sys.controller;
import cn.edu.tyut.sea2.seandisk.common.utils.Constant;
import cn.edu.tyut.sea2.seandisk.common.utils.Result;
import cn.edu.tyut.sea2.seandisk.common.validation.Assert;
import cn.edu.tyut.sea2.seandisk.common.validation.ValidatorUtils;
import cn.edu.tyut.sea2.seandisk.common.validation.group.AddGroup;
import cn.edu.tyut.sea2.seandisk.common.validation.group.UpdateGroup;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.crypto.hash.Sha256Hash;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.*;
import cn.edu.tyut.sea2.seandisk.module.sys.entity.SysUserEntity;
import cn.edu.tyut.sea2.seandisk.module.sys.form.PasswordForm;
import cn.edu.tyut.sea2.seandisk.module.sys.service.SysUserRoleService;
import cn.edu.tyut.sea2.seandisk.module.sys.service.SysUserService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 用户Controller
* @author :klenkiven
* @date :2021/7/13 15:21
*/
@RestController
@RequestMapping("/sys/user")
@AllArgsConstructor
public class SysUserController extends AbstractController {
private final SysUserService sysUserService;
private final SysUserRoleService sysUserRoleService;
/**
* 获取登录的用户信息
*/
@GetMapping("/info")
public Result<?> info(){
SysUserEntity user = new SysUserEntity();
user.setUserId(getUserId());
user.setUsername(getUser().getUsername());
user.setUid(getUser().getUid());
return Result.ok(user);
}
/**
* 修改密码
* TODO 需要系统日志
*/
@PostMapping("/password")
public Result<?> password(@RequestBody PasswordForm form) {
Assert.isBlank(form.getNewPassword(), "新密码不为能空");
//sha256加密
String password = new Sha256Hash(form.getPassword(), getUser().getSalt()).toHex();
//sha256加密
String newPassword = new Sha256Hash(form.getNewPassword(), getUser().getSalt()).toHex();
//更新密码
boolean flag = sysUserService.updatePassword(getUserId(), password, newPassword);
if(!flag){
return Result.fail().message("原密码不正确");
}
return Result.ok();
}
/**
* 选择用户列表
*/
@GetMapping("/select")
@RequiresPermissions("sys:user:select")
public Result<List<JSONObject>> select() {
List<Long> userIdList = sysUserRoleService.listUserIdByRoleName("员工");
List<SysUserEntity> sysUserEntities = sysUserService.listByIds(userIdList);
List<JSONObject> result = new ArrayList<>();
if (sysUserEntities == null) {
return Result.fail(result).message("尚未创建员工");
}
for(SysUserEntity user: sysUserEntities) {
JSONObject item = new JSONObject();
// 参与会的人员选择上不包含自己
if (getUserId().equals(user.getUserId())) {
continue;
}
item.put("name", user.getName());
item.put("uid", user.getUid());
result.add(item);
}
return Result.ok(result);
}
/**
* 所有用户列表
*/
@GetMapping("/list/{current}/{limit}")
@RequiresPermissions("sys:user:list")
public Result<?> list(@PathVariable("current") Integer current,
@PathVariable("limit") Integer limit,
@RequestParam Map<String, Object> params){
String username = (String)params.get("username");
// 创建Page对象,传递当前页,每页记录数
Page<SysUserEntity> page = new Page<>(current, limit);
QueryWrapper<SysUserEntity> query = new QueryWrapper<>();
query.like(!StringUtils.isBlank(username),"username", params.get("username"));
//只有超级管理员,才能查看所有管理员列表
if(getUserId() != Constant.ADMIN){
query.eq("create_user_id", getUserId());
}
Page<SysUserEntity> result = sysUserService.page(page, query);
return Result.ok(result);
}
/**
* 用户信息
*/
@GetMapping("/info/{userId}")
@RequiresPermissions("sys:user:info")
public Result<?> info(@PathVariable("userId") Long userId){
SysUserEntity user = sysUserService.getById(userId);
//获取用户所属的角色列表
List<Long> roleIdList = sysUserRoleService.listRoleIdByUserId(userId);
user.setRoleIdList(roleIdList);
return Result.ok(user);
}
/**
* 保存用户
*/
@PostMapping("/save")
@RequiresPermissions("sys:user:save")
public Result<?> save(@RequestBody SysUserEntity user){
ValidatorUtils.validateEntity(user, AddGroup.class);
try {
user.setCreateUserId(getUserId());
sysUserService.saveUser(user);
} catch (DuplicateKeyException e) {
return Result.fail().message("工号或者用户名重复");
}
return Result.ok();
}
/**
* 修改用户
*/
@PostMapping("/update")
@RequiresPermissions("sys:user:update")
public Result<?> update(@RequestBody SysUserEntity user){
ValidatorUtils.validateEntity(user, UpdateGroup.class);
user.setCreateUserId(getUserId());
sysUserService.update(user);
return Result.ok();
}
/**
* 删除用户
*/
@PostMapping("/delete")
@RequiresPermissions("sys:user:delete")
public Result<?> delete(@RequestBody Long[] userIds){
if(ArrayUtils.contains(userIds, 1L)){
return Result.fail().message("系统管理员不能删除");
}
if(ArrayUtils.contains(userIds, getUserId())){
return Result.fail().message("当前用户不能删除");
}
sysUserService.deleteBatch(userIds);
return Result.ok();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip
共99个文件
java:86个
xml:8个
yaml:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 155 浏览量
2023-10-18
09:47:50
上传
评论 1
收藏 91KB ZIP 举报
温馨提示
【资源介绍】 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip 【备注】 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
毕设新项目-基于SpringBoot与MyBatis的网盘管理系统源码(含数据库及使用说明).zip (99个子文件)
sql
sean_disk-init.sql 10KB
项目说明.md 483B
pom.xml 6KB
src
test
java
cn
edu
tyut
sea2
seandisk
SeanDiskApplicationTests.java 1018B
main
resources
application-dev.yaml 515B
mapper
disk
FileMapper.xml 902B
FileOpLogMapper.xml 786B
LabelFileMapper.xml 1KB
LabelMapper.xml 745B
sys
SysUserRoleMapper.xml 1KB
SysUserMapper.xml 818B
SysRoleMenuMapper.xml 701B
application-prod.yaml 522B
application.yaml 925B
java
cn
edu
tyut
sea2
seandisk
SeanDiskApplication.java 334B
module
disk
mapper
LabelFileMapper.java 1KB
FileMapper.java 346B
FileOpLogMapper.java 425B
LabelMapper.java 349B
annotation
DiskOpLog.java 356B
aspect
DiskOpAspect.java 1KB
controller
FileOpLogController.java 1KB
FileController.java 5KB
LabelController.java 3KB
component
LocalFileOperation.java 2KB
service
LabelService.java 1KB
LabelFileService.java 316B
FileOpLogService.java 815B
impl
FileServiceImpl.java 6KB
FileOpLogServiceImpl.java 2KB
LabelFileServiceImpl.java 536B
LabelServiceImpl.java 4KB
FileService.java 2KB
entity
FileEntity.java 990B
LabelFileEntity.java 610B
LabelEntity.java 864B
FileOpLogEntity.java 839B
vo
FileListParam.java 319B
LabelVO.java 654B
FileDetailVO.java 265B
LabelRenameParam.java 234B
sys
mapper
SysMenuMapper.java 408B
SysUserRoleMapper.java 1020B
SysCaptchaMapper.java 420B
SysRoleMapper.java 402B
SysUserMapper.java 768B
SysRoleMenuMapper.java 790B
SysUserTokenMapper.java 428B
controller
SysLoginController.java 3KB
SysUserController.java 6KB
SysMenuController.java 6KB
SysRoleController.java 4KB
AbstractController.java 632B
service
SysMenuService.java 1KB
SysRoleMenuService.java 861B
SysCaptchaService.java 768B
ShiroService.java 819B
SysUserTokenService.java 702B
SysUserRoleService.java 1KB
impl
SysUserServiceImpl.java 5KB
ShiroServiceImpl.java 2KB
SysRoleMenuServiceImpl.java 2KB
SysUserRoleServiceImpl.java 2KB
SysRoleServiceImpl.java 3KB
SysMenuServiceImpl.java 4KB
SysCaptchaServiceImpl.java 2KB
SysUserTokenServiceImpl.java 2KB
SysUserService.java 1KB
SysRoleService.java 897B
oauth2
Oauth2Token.java 504B
Oauth2Filter.java 4KB
Oauth2Realm.java 2KB
entity
SysRoleMenuEntity.java 611B
SysUserRoleEntity.java 611B
SysUserEntity.java 2KB
SysCaptchaEntity.java 708B
SysUserTokenEntity.java 761B
SysMenuEntity.java 1KB
SysRoleEntity.java 966B
form
SysLoginForm.java 273B
PasswordForm.java 314B
common
utils
Result.java 2KB
TokenUtils.java 1KB
HttpContextUtils.java 1KB
Constant.java 594B
FileUtils.java 2KB
exception
GeneralException.java 1KB
GlobalExceptionHandler.java 819B
validation
group
AddGroup.java 172B
UpdateGroup.java 175B
ValidatorUtils.java 1KB
Assert.java 587B
config
ShiroConfig.java 2KB
LocalFileComponentProperties.java 373B
KaptchaConfig.java 973B
MyBatisPlusConfig.java 1KB
FileUploadConfig.java 776B
FilterConfig.java 1KB
CrosConfig.java 680B
共 99 条
- 1
资源评论
- m0_751013232024-06-05资源内容总结的很到位,内容详实,很受用,学到了~
- m0_748523222024-02-25资源很实用,内容详细,值得借鉴的内容很多,感谢分享。manylinux2024-05-29不客气,对您有用就好!
manylinux
- 粉丝: 4537
- 资源: 2485
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】智慧社区门户网站后台管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区新闻资讯管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区共享资源管理后台(源代码+论文+PPT模板).zip
- 基于 Unet++ 网络模型对【植物叶片病害区域】图像分割python项目【包含数据集、完整代码等】
- 【java毕业设计】智慧社区在线影院管理后台(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区会员管理系统(含文件上传下载)(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区公告管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区视频内容管理平台(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区管理员权限设置系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区留言回复管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区密码重置系统(后台管理)(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区登录日志管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区新闻发布与审核系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区智慧影院影片管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区智慧影院评论与评分系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区智慧影院票务管理系统(源代码+论文+PPT模板).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功