IDEA+spring boot+activiti+shiro+layui+Mysql权限管理系统
- 一、系统介绍
- 1.环境配置
- 二、系统展示
- 1. 管理员登录
- 2.主页
- 3.用户管理
- 4.部门管理
- 5. 菜单管理
- 6. 角色管理
- 7. 字典管理
- 8.定时任务
- 9.操作日志
- 10.生成管理
- 三、部分代码
- UserMapper.java
- UserController.java
- User.java
- 四、其他
- 获取源码
一、系统介绍
本系统实现了权限管理系统,管理端实现了管理员登录、 主页、用户管理、部门管理、菜单管理、角色管理、字典管理、定时任务、操作日志、生成管理
1.环境配置
JDK版本:1.8
Mysql:5.7
二、系统展示
1. 管理员登录
登录用户名密码:admin 123456
2.主页
3.用户管理
4.部门管理
5. 菜单管理
6. 角色管理
7. 字典管理
8.定时任务
9.操作日志
10.生成管理
三、部分代码
UserMapper.java
package com.kalvin.kvf.modules.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kalvin.kvf.modules.sys.entity.User;
import com.kalvin.kvf.modules.sys.vo.UserQueryVO;
import java.util.List;
/**
* <p>
* 用户表 Mapper 接口
* </p>
*/
public interface UserMapper extends BaseMapper<User> {
/**
* 查询用户列表
* @param queryVO 查询参数
* @return
*/
List<User> selectUserList(UserQueryVO queryVO, Page page);
}
UserController.java
package com.kalvin.kvf.modules.sys.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kalvin.kvf.common.controller.BaseController;
import com.kalvin.kvf.common.dto.R;
import com.kalvin.kvf.common.utils.CryptionKit;
import com.kalvin.kvf.common.utils.ShiroKit;
import com.kalvin.kvf.modules.sys.dto.UserEditDTO;
import com.kalvin.kvf.modules.sys.dto.UserRoleGroupDTO;
import com.kalvin.kvf.modules.sys.entity.Dept;
import com.kalvin.kvf.modules.sys.entity.User;
import com.kalvin.kvf.modules.sys.service.IDeptService;
import com.kalvin.kvf.modules.sys.service.IUserRoleService;
import com.kalvin.kvf.modules.sys.service.IUserService;
import com.kalvin.kvf.modules.sys.vo.UserQueryVO;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
/**
* <p>
* 用户表 前端控制器
* </p>
*
*/
@RestController
@RequestMapping("sys/user")
public class UserController extends BaseController {
@Autowired
private IUserService userService;
@Autowired
private IDeptService deptService;
@Autowired
private IUserRoleService userRoleService;
@RequiresPermissions("sys:user:index")
@GetMapping("index")
public ModelAndView index() {
return new ModelAndView("sys/user");
}
@GetMapping(value = "edit")
public ModelAndView edit(Long id) {
ModelAndView mv = new ModelAndView("sys/user_edit");
UserEditDTO userEditDTO = new UserEditDTO();
UserRoleGroupDTO userRoleGroupDTO = new UserRoleGroupDTO();
if (id != null) {
User user = userService.getById(id);
Dept dept = deptService.getById(user.getDeptId());
userRoleGroupDTO = userRoleService.getUserRoleGroupDTOByUserId(id);
BeanUtil.copyProperties(user, userEditDTO);
userEditDTO.setDeptName(dept == null ? "" : dept.getName());
}
userEditDTO.setUserRole(userRoleGroupDTO);
mv.addObject("editInfo", userEditDTO);
return mv;
}
@GetMapping(value = "info")
public ModelAndView info() {
ModelAndView mv = new ModelAndView("sys/user_info");
User user = userService.getById(ShiroKit.getUserId());
mv.addObject("user", user);
return mv;
}
@GetMapping(value = "password")
public ModelAndView password() {
return new ModelAndView("sys/user_pwd");
}
@GetMapping(value = "list/data")
public R listData(UserQueryVO queryVO) {
Page<User> page = userService.listUserPage(queryVO);
return R.ok(page);
}
@RequiresPermissions("sys:user:add")
@Transactional
@PostMapping(value = "add")
public R add(User user, @RequestParam("roleIds") List<Long> roleIds) {
user.setDeptId(user.getDeptId() == null ? 0 : user.getDeptId());
// 生成用户初始密码并加密
user.setPassword(CryptionKit.genUserPwd());
userService.saveOrUpdate(user);
userRoleService.saveOrUpdateBatchUserRole(roleIds, user.getId());
return R.ok();
}
@RequiresPermissions("sys:user:edit")
@Transactional
@PostMapping(value = "edit")
public R edit(User user, @RequestParam("roleIds") List<Long> roleIds) {
user.setDeptId(user.getDeptId() == null ? 0 : user.getDeptId());
userService.updateById(user);
userRoleService.saveOrUpdateBatchUserRole(roleIds, user.getId());
return R.ok();
}
@PostMapping(value = "updateInfo")
public R updateInfo(User user) {
userService.updateById(user);
return R.ok();
}
@RequiresPermissions("sys:user:del")
@PostMapping(value = "remove/{id}")
public R remove(@PathVariable Long id) {
userService.removeById(id);
return R.ok();
}
@RequiresPermissions("sys:user:del")
@PostMapping(value = "removeBatch")
public R removeBatch(@RequestParam("ids") List<Long> ids) {
userService.removeByIds(ids);
return R.ok();
}
/**
* 管理员重置某个用户密码
* @param id 用户ID
* @return
*/
@RequiresPermissions("sys:user:reset")
@PostMapping(value = "{id}/resetPwd")
public R resetPwd(@PathVariable Long id) {
userService.updateUserPassword(id, CryptionKit.genUserPwd());
return R.ok();
}
/**
* 用户修改密码
* @param oldPassword 旧密码
* @param password 新密码
* @return
*/
@PostMapping(value = "changePwd")
public R changePwd(String oldPassword, String password) {
if (StrUtil.isBlank(oldPassword) && StrUtil.isBlank(password)) {
return R.fail("修改失败,非法的参数");
}
// 用户修改密码
User user = userService.getById(ShiroKit.getUserId());
oldPassword = CryptionKit.genUserPwd(oldPassword);
if (user.getPassword().equals(oldPassword)) {
password = CryptionKit.genUserPwd(password);
if (user.getPassword().equals(password)) {
return R.fail("新密码不能与旧密码相同");
}
} else {
return R.fail("旧密码不正确");
}
userService.updateUserPassword(ShiroKit.getUserId(), password);
return R.ok();
}
}
User.java
package com.kalvin.kvf.modules.sys.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kalvin.kvf.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* <p>
* 用户表
* </p>
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_user")
public class User extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 归属部门
*/
private Long deptId;
/**
* 登录名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 姓名
*/
private String realname;
/**
* 性别。0:未知;1:男;2:女
*/
private Integer sex;
/**
* 手机号码
*/
private String phone;
/**
* 固定电话
*/
private String tel;
/**
* 邮箱
*/
private String email;
/**
* 用户头像
*/
private String avatar;
/**
* 职务名称
*/
private String jobTitle;
/**
* 用户状态。0:正常;1:禁用
*/
private Integer status;
/**
* 排序。值越小越靠前
*/
private Integer sort;
/**
* 删除标识。0:未删除;1:已删除
*/
private Integer delFlag;
/**
* 创建人
*/
private Long createBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建时间
*/
private Date createTime;
}