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
共100个文件
java:86个
xml:8个
yaml:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 97 浏览量
2022-12-24
16:02:02
上传
评论
收藏 91KB ZIP 举报
温馨提示
基于SpringBoot+MyBatis的个人网盘管理系统源码+数据库+项目说明.zip 【项目实现功能】 用户登录用户批量分配 文件简单上传下载 文件标签 文件上传下载日志 文件范围共享 配合Nginx下载文件提高处理效率 更加高效的文件存储
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+MyBatis的个人网盘管理系统源码+数据库+项目说明.zip (100个子文件)
.gitignore 395B
SysUserController.java 6KB
FileServiceImpl.java 6KB
SysMenuController.java 6KB
SysUserServiceImpl.java 5KB
FileController.java 5KB
SysRoleController.java 4KB
SysMenuServiceImpl.java 4KB
LabelServiceImpl.java 4KB
Oauth2Filter.java 4KB
SysRoleServiceImpl.java 3KB
SysLoginController.java 3KB
LabelController.java 3KB
ShiroConfig.java 2KB
ShiroServiceImpl.java 2KB
Oauth2Realm.java 2KB
SysUserTokenServiceImpl.java 2KB
LocalFileOperation.java 2KB
FileService.java 2KB
SysCaptchaServiceImpl.java 2KB
SysUserEntity.java 2KB
SysUserRoleServiceImpl.java 2KB
Result.java 2KB
FileUtils.java 2KB
SysRoleMenuServiceImpl.java 2KB
FileOpLogServiceImpl.java 2KB
FileOpLogController.java 1KB
SysUserService.java 1KB
ValidatorUtils.java 1KB
LabelService.java 1KB
DiskOpAspect.java 1KB
GeneralException.java 1KB
TokenUtils.java 1KB
SysMenuService.java 1KB
SysMenuEntity.java 1KB
LabelFileMapper.java 1KB
FilterConfig.java 1KB
SysUserRoleService.java 1KB
HttpContextUtils.java 1KB
MyBatisPlusConfig.java 1KB
SysUserRoleMapper.java 1020B
SeanDiskApplicationTests.java 1018B
FileEntity.java 990B
KaptchaConfig.java 973B
SysRoleEntity.java 966B
SysRoleService.java 897B
LabelEntity.java 864B
SysRoleMenuService.java 861B
FileOpLogEntity.java 839B
ShiroService.java 819B
GlobalExceptionHandler.java 819B
FileOpLogService.java 815B
SysRoleMenuMapper.java 790B
FileUploadConfig.java 776B
SysUserMapper.java 768B
SysCaptchaService.java 768B
SysUserTokenEntity.java 761B
SysCaptchaEntity.java 708B
SysUserTokenService.java 702B
CrosConfig.java 680B
LabelVO.java 654B
AbstractController.java 632B
SysRoleMenuEntity.java 611B
SysUserRoleEntity.java 611B
LabelFileEntity.java 610B
Constant.java 594B
Assert.java 587B
LabelFileServiceImpl.java 536B
Oauth2Token.java 504B
SysUserTokenMapper.java 428B
FileOpLogMapper.java 425B
SysCaptchaMapper.java 420B
SysMenuMapper.java 408B
SysRoleMapper.java 402B
LocalFileComponentProperties.java 373B
DiskOpLog.java 356B
LabelMapper.java 349B
FileMapper.java 346B
SeanDiskApplication.java 334B
FileListParam.java 319B
LabelFileService.java 316B
PasswordForm.java 314B
SysLoginForm.java 273B
FileDetailVO.java 265B
LabelRenameParam.java 234B
UpdateGroup.java 175B
AddGroup.java 172B
项目说明.md 483B
sean_disk-init.sql 10KB
pom.xml 6KB
LabelFileMapper.xml 1KB
SysUserRoleMapper.xml 1KB
FileMapper.xml 902B
SysUserMapper.xml 818B
FileOpLogMapper.xml 786B
LabelMapper.xml 745B
SysRoleMenuMapper.xml 701B
application.yaml 925B
application-prod.yaml 522B
application-dev.yaml 515B
共 100 条
- 1
资源评论
- 布铃布铃272023-05-26感谢资源主的分享,这个资源对我来说很有用,内容描述详尽,值得借鉴。
onnx
- 粉丝: 9988
- 资源: 5626
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于flink的实时数仓详细文档+全部资料.zip
- 基于Flink的数据同步工具详细文档+全部资料.zip
- 基于Flink的数据流业务处理平台详细文档+全部资料.zip
- 基于flink的物流业务数据实时数仓建设详细文档+全部资料.zip
- 外卖时间数据,食品配送时间数据集,外卖影响因素数据集(千条数据)
- 基于flink的异构数据源同步详细文档+全部资料.zip
- 基于flink的营销系统详细文档+全部资料.zip
- 基于Flink对用户行为数据的实时分析详细文档+全部资料.zip
- 基于Flink分析用户行为详细文档+全部资料.zip
- 基于flink可以创建物理表的catalog详细文档+全部资料.zip
- 基于Flink流批一体数据处理快速集成开发框架、快速构建基于Java的Flink流批一体应用程序,实现异构数据库实时同步和ETL,还可以让Flink SQL变得
- 太和-圣德西实施—部门负责人以上宣贯培训大纲.doc
- 太和-圣德西实施—部门负责人非HR的HRM培训.pptx
- 太和-圣德西实施—宣贯培训大纲.docx
- 基于Flink流处理的动态实时亿级全端用户画像系统可视化界面详细文档+全部资料.zip
- 基于Flink全端用户画像商品推荐系统详细文档+全部资料.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功