增加功能:
1. 加入权限管理
This commit is contained in:
parent
be2aee9cf8
commit
cb0407e302
|
|
@ -6,21 +6,25 @@ import com.alibaba.fastjson2.JSONObject;
|
|||
import com.auth0.jwt.JWT;
|
||||
import com.auth0.jwt.interfaces.DecodedJWT;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wms.annotation.MyLog;
|
||||
import com.wms.constants.WmsConstants;
|
||||
import com.wms.constants.enums.ResponseCode;
|
||||
import com.wms.entity.app.ResponseEntity;
|
||||
import com.wms.entity.app.dto.KateUser;
|
||||
import com.wms.entity.app.dto.MenuDto;
|
||||
import com.wms.entity.app.dto.PageDto;
|
||||
import com.wms.entity.app.dto.UserDto;
|
||||
import com.wms.entity.app.request.UserQuery;
|
||||
import com.wms.entity.app.vo.MenuEntity;
|
||||
import com.wms.entity.app.ResponseEntity;
|
||||
import com.wms.entity.app.vo.UserConfigEntity;
|
||||
import com.wms.entity.app.request.*;
|
||||
import com.wms.entity.app.vo.*;
|
||||
import com.wms.entity.table.Menu;
|
||||
import com.wms.entity.table.Permission;
|
||||
import com.wms.entity.table.Role;
|
||||
import com.wms.entity.table.User;
|
||||
import com.wms.service.MenuService;
|
||||
import com.wms.service.StandService;
|
||||
import com.wms.service.UserService;
|
||||
import com.wms.constants.WmsConstants;
|
||||
import com.wms.service.*;
|
||||
import com.wms.utils.HttpUtils;
|
||||
import com.wms.utils.MyPassword;
|
||||
import com.wms.utils.StringUtils;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -34,13 +38,17 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.wms.utils.StringUtils.convertJsonString;
|
||||
|
||||
/**
|
||||
* WMS用户控制类
|
||||
*
|
||||
* @author 梁州
|
||||
* @date 2023/2/14
|
||||
*/
|
||||
|
|
@ -66,9 +74,18 @@ public class UserController {
|
|||
* 站台服务
|
||||
*/
|
||||
private final StandService standService;
|
||||
/**
|
||||
* 角色服务
|
||||
*/
|
||||
private final RoleService roleService;
|
||||
/**
|
||||
* 权限服务
|
||||
*/
|
||||
private final PermissionService permissionService;
|
||||
|
||||
/**
|
||||
* 带密码登录
|
||||
*
|
||||
* @param userQuery 用户
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -118,6 +135,7 @@ public class UserController {
|
|||
|
||||
/**
|
||||
* 无密码登录
|
||||
*
|
||||
* @param userQuery 用户
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -167,6 +185,7 @@ public class UserController {
|
|||
|
||||
/**
|
||||
* 获得用户信息菜单
|
||||
*
|
||||
* @param codeInfo code信息
|
||||
* @return 结果
|
||||
*/
|
||||
|
|
@ -199,7 +218,7 @@ public class UserController {
|
|||
newUser.setUserName(kateUser.getName());
|
||||
List<User> localUsers = userService.list(new LambdaQueryWrapper<User>()
|
||||
.eq(User::getUserName, kateUser.getName()));
|
||||
if (localUsers.size() > 0) {// 本地存在
|
||||
if (!localUsers.isEmpty()) {// 本地存在
|
||||
newUser.setRoleId(localUsers.get(0).getRoleId());
|
||||
} else {
|
||||
if (kateUser.getGroups().contains("CXL-ASRS-Admin")) {// 普通用户
|
||||
|
|
@ -232,11 +251,12 @@ public class UserController {
|
|||
|
||||
/**
|
||||
* 构造用户信息(菜单、按钮等权限)
|
||||
*
|
||||
* @param currentUser 当前用户
|
||||
* @param ip ip地址
|
||||
* @param ip ip地址
|
||||
* @return 用户信息
|
||||
*/
|
||||
private UserConfigEntity generateUserInfo (UserDto currentUser, String ip) {
|
||||
private UserConfigEntity generateUserInfo(UserDto currentUser, String ip) {
|
||||
UserConfigEntity userConfigEntity = new UserConfigEntity();
|
||||
try {
|
||||
if (currentUser.getRoleId() == null) {
|
||||
|
|
@ -292,6 +312,677 @@ public class UserController {
|
|||
} catch (Exception e) {
|
||||
logger.error("构造用户信息失败,当前用户:{}", currentUser.getUserName());
|
||||
}
|
||||
return userConfigEntity;
|
||||
return userConfigEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户列表
|
||||
*
|
||||
* @param userQuery 查询参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/getUserList")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "获取用户列表", logMethod = "getUserList")
|
||||
public String getUserList(@RequestBody UserQuery userQuery) {
|
||||
logger.info("获取用户列表,请求用户名:{},登录ip:{}", userQuery.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (userQuery.getRoleId() == null || userQuery.getRoleId() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 查询roleId低于当前查询的roleId的用户
|
||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<User>()
|
||||
.ge(User::getRoleId, userQuery.getRoleId())
|
||||
.orderByAsc(User::getRoleId, User::getUserId);
|
||||
if (StringUtils.isNotEmpty(userQuery.getUserName())) {
|
||||
queryWrapper.like(User::getUserName, userQuery.getUserName());
|
||||
}
|
||||
Page<User> page = userQuery.toMpPage();
|
||||
Page<User> userPage = userService.page(page, queryWrapper);
|
||||
PageDto<UserVo> pageDto = PageDto.of(userPage, UserVo::of);
|
||||
// 返回成功
|
||||
logger.info("查询用户列表成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("查询用户列表成功。");
|
||||
// 返回用户数据
|
||||
rsp.setReturnData(pageDto);
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("查询用户列表失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("查询用户列表失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色列表
|
||||
*
|
||||
* @param roleQuery 查询参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/getRoleList")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "获取角色列表", logMethod = "getRoleList")
|
||||
public String getRoleList(@RequestBody RoleQuery roleQuery) {
|
||||
logger.info("获取角色列表,请求用户名:{},登录ip:{}", roleQuery.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (roleQuery.getRoleId() == null || roleQuery.getRoleId() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 查询roleId低于当前查询的roleId的用户
|
||||
LambdaQueryWrapper<Role> queryWrapper = new LambdaQueryWrapper<Role>()
|
||||
.ge(Role::getRoleId, roleQuery.getRoleId())
|
||||
.orderByAsc(Role::getRoleId);
|
||||
Page<Role> page = roleQuery.toMpPage();
|
||||
Page<Role> rolePage = roleService.page(page, queryWrapper);
|
||||
PageDto<RoleVo> pageDto = PageDto.of(rolePage, RoleVo::of);
|
||||
// 返回成功
|
||||
logger.info("查询角色列表成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("查询角色列表成功。");
|
||||
// 返回用户数据
|
||||
rsp.setReturnData(pageDto);
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("查询角色列表失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("查询角色列表失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色options
|
||||
*
|
||||
* @param roleQuery 查询参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/getRoleOptions")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "获取角色options", logMethod = "getRoleOptions")
|
||||
public String getRoleOptions(@RequestBody RoleQuery roleQuery) {
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (roleQuery.getRoleId() == null || roleQuery.getRoleId() != 1) {
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 查询roleId低于当前查询的roleId的用户
|
||||
LambdaQueryWrapper<Role> queryWrapper = new LambdaQueryWrapper<Role>()
|
||||
.ge(Role::getRoleId, roleQuery.getRoleId())
|
||||
.orderByAsc(Role::getRoleId);
|
||||
List<Role> roleList = roleService.list(queryWrapper);
|
||||
List<RoleOption> roleOptions = roleList.stream().map(RoleOption::of).toList();
|
||||
// 返回成功
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("查询角色列表成功。");
|
||||
// 返回用户数据
|
||||
rsp.setReturnData(roleOptions);
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("获取角色options失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("获取角色options。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取权限列表
|
||||
*
|
||||
* @param permissionQuery 查询参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/getPermissionList")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "获取权限列表", logMethod = "getPermissionList")
|
||||
public String getPermissionList(@RequestBody PermissionQuery permissionQuery) {
|
||||
logger.info("获取权限列表,请求用户名:{},登录ip:{}", permissionQuery.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (permissionQuery.getRoleId1() == null || permissionQuery.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 获取所有的菜单信息
|
||||
List<Permission> permissionList = permissionService.list(
|
||||
new LambdaQueryWrapper<Permission>().eq(Permission::getRoleId, permissionQuery.getRoleId1()).orderByAsc(Permission::getMenuId)
|
||||
);
|
||||
if (permissionList == null || permissionList.isEmpty()) {
|
||||
logger.error("操作人员的角色没有权限。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员的角色没有权限。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
List<String> menuIds = permissionList.stream().map(Permission::getMenuId).distinct().toList();
|
||||
// 查询所有的菜单
|
||||
List<Menu> menuList = menuService.list(
|
||||
new LambdaQueryWrapper<Menu>().in(Menu::getMenuId, menuIds).orderByAsc(Menu::getMenuId)
|
||||
);
|
||||
// 先添加一级菜单
|
||||
List<MenuVo> level1Menus = menuList.stream().filter(menu -> Objects.equals(menu.getParentId(), WmsConstants.ROOT_MENU_ID)).map(MenuVo::of).toList();
|
||||
// 添加二级菜单
|
||||
for (MenuVo level1Menu : level1Menus) {
|
||||
level1Menu.setChildren(menuList.stream().filter(menu -> Objects.equals(menu.getParentId(), level1Menu.getId())).map(MenuVo::of).toList());
|
||||
}
|
||||
PermissionVo permissionVo = new PermissionVo();
|
||||
permissionVo.setMenu(level1Menus);
|
||||
// 获取待查询角色所有菜单权限
|
||||
if (permissionQuery.getRoleId2() != null) {
|
||||
List<Permission> permissionListOfTarget = permissionService.list(
|
||||
new LambdaQueryWrapper<Permission>()
|
||||
.eq(Permission::getRoleId, permissionQuery.getRoleId2())
|
||||
.notIn(Permission::getMenuId, level1Menus.stream().map(MenuVo::getId).distinct().toList())
|
||||
.orderByAsc(Permission::getMenuId)
|
||||
);
|
||||
permissionVo.setMenuIds(permissionListOfTarget.stream().map(Permission::getMenuId).distinct().toList());
|
||||
} else {
|
||||
permissionVo.setMenuIds(new ArrayList<>());
|
||||
}
|
||||
|
||||
logger.info("查询权限列表成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("查询权限列表成功。");
|
||||
// 返回用户数据
|
||||
rsp.setReturnData(permissionVo);
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
// 返回其他异常
|
||||
logger.error("查询权限列表异常:{}", convertJsonString(e));
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("查询权限列表异常。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新角色信息
|
||||
*
|
||||
* @param roleUpdateForm 更新参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/updateRoleInfo")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "更新角色信息", logMethod = "updateRoleInfo")
|
||||
public String updateRoleInfo(@RequestBody RoleUpdateForm roleUpdateForm) {
|
||||
logger.info("更新角色信息,请求用户名:{},登录ip:{}", roleUpdateForm.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (roleUpdateForm.getRoleId1() == null || roleUpdateForm.getRoleId2() == null) {
|
||||
logger.error("请求操作的roleId和被操作的roleId必须输入。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("请求操作的roleId和被操作的roleId必须输入。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (roleUpdateForm.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 更新角色信息
|
||||
if (StringUtils.isNotEmpty(roleUpdateForm.getRole2Name())) {
|
||||
roleService.update(new LambdaUpdateWrapper<Role>().set(Role::getRoleName, roleUpdateForm.getRole2Name()).eq(Role::getRoleId, roleUpdateForm.getRoleId2()));
|
||||
}
|
||||
// 获取所有的菜单信息
|
||||
List<Permission> permissionList = permissionService.list(
|
||||
new LambdaQueryWrapper<Permission>().eq(Permission::getRoleId, roleUpdateForm.getRoleId1()).orderByAsc(Permission::getMenuId)
|
||||
);
|
||||
if (permissionList == null || permissionList.isEmpty()) {
|
||||
logger.error("操作人员的角色没有权限。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员的角色没有权限。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
List<String> menuIds = permissionList.stream().map(Permission::getMenuId).distinct().toList();
|
||||
List<String> updateMenuIds = roleUpdateForm.getMenuIds();
|
||||
for (String menuId : updateMenuIds) {
|
||||
if (!menuIds.contains(menuId)) {
|
||||
logger.error("设定的权限超过操作人员所拥有的权限。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("设定的权限超过操作人员所拥有的权限。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
// 查询所有的菜单
|
||||
List<Menu> menuList = menuService.list(
|
||||
new LambdaQueryWrapper<Menu>().in(Menu::getMenuId, updateMenuIds).orderByAsc(Menu::getMenuId)
|
||||
);
|
||||
for (Menu menu : menuList) {
|
||||
if (menu.getParentId() != null && !menu.getParentId().equals(WmsConstants.ROOT_MENU_ID) && !updateMenuIds.contains(menu.getParentId())) {
|
||||
updateMenuIds.add(menu.getParentId());
|
||||
}
|
||||
}
|
||||
// 移除角色所有权限
|
||||
permissionService.remove(new LambdaQueryWrapper<Permission>().eq(Permission::getRoleId, roleUpdateForm.getRoleId2()));
|
||||
// 添加权限
|
||||
List<Permission> updatePermissionList = new ArrayList<>();
|
||||
for (String menuId : updateMenuIds) {
|
||||
// 添加权限
|
||||
Permission permission = new Permission();
|
||||
permission.setRoleId(roleUpdateForm.getRoleId2());
|
||||
permission.setMenuId(menuId);
|
||||
updatePermissionList.add(permission);
|
||||
}
|
||||
if (permissionService.saveBatch(updatePermissionList)) {
|
||||
// 返回成功
|
||||
logger.info("更新角色信息成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("更新角色信息成功。");
|
||||
} else {
|
||||
// 返回失败
|
||||
logger.error("更新角色权限失败。");
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("更新角色权限失败。");
|
||||
}
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("更新角色信息失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("更新角色信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加角色信息
|
||||
*
|
||||
* @param roleUpdateForm 添加参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/addRoleInfo")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "添加角色信息", logMethod = "addRoleInfo")
|
||||
public String addRoleInfo(@RequestBody RoleUpdateForm roleUpdateForm) {
|
||||
logger.info("添加角色信息,请求用户名:{},登录ip:{}", roleUpdateForm.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (roleUpdateForm.getRoleId1() == null || roleUpdateForm.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 添加角色信息
|
||||
Role role = new Role();
|
||||
role.setRoleId(roleService.getOne(new LambdaQueryWrapper<Role>().select(Role::getRoleId).orderByDesc(Role::getRoleId).last("limit 1")).getRoleId() + 1);
|
||||
role.setRoleName(roleUpdateForm.getRole2Name());
|
||||
if (!roleService.save(role)) {
|
||||
// 添加失败
|
||||
logger.error("添加角色信息失败。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("添加角色信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 获取所有的菜单信息
|
||||
List<Permission> permissionList = permissionService.list(
|
||||
new LambdaQueryWrapper<Permission>().eq(Permission::getRoleId, roleUpdateForm.getRoleId1()).orderByAsc(Permission::getMenuId)
|
||||
);
|
||||
if (permissionList == null || permissionList.isEmpty()) {
|
||||
logger.error("操作人员的角色没有权限。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员的角色没有权限。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
List<String> menuIds = permissionList.stream().map(Permission::getMenuId).distinct().toList();
|
||||
List<String> updateMenuIds = roleUpdateForm.getMenuIds();
|
||||
for (String menuId : updateMenuIds) {
|
||||
if (!menuIds.contains(menuId)) {
|
||||
logger.error("设定的权限超过操作人员所拥有的权限。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("设定的权限超过操作人员所拥有的权限。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
// 查询所有的菜单
|
||||
List<Menu> menuList = menuService.list(
|
||||
new LambdaQueryWrapper<Menu>().in(Menu::getMenuId, updateMenuIds).orderByAsc(Menu::getMenuId)
|
||||
);
|
||||
for (Menu menu : menuList) {
|
||||
if (menu.getParentId() != null && !menu.getParentId().equals(WmsConstants.ROOT_MENU_ID) && !updateMenuIds.contains(menu.getParentId())) {
|
||||
updateMenuIds.add(menu.getParentId());
|
||||
}
|
||||
}
|
||||
// 移除角色所有权限
|
||||
permissionService.remove(new LambdaQueryWrapper<Permission>().eq(Permission::getRoleId, role.getRoleId()));
|
||||
// 添加权限
|
||||
List<Permission> updatePermissionList = new ArrayList<>();
|
||||
for (String menuId : updateMenuIds) {
|
||||
// 添加权限
|
||||
Permission permission = new Permission();
|
||||
permission.setRoleId(role.getRoleId());
|
||||
permission.setMenuId(menuId);
|
||||
updatePermissionList.add(permission);
|
||||
}
|
||||
if (permissionService.saveBatch(updatePermissionList)) {
|
||||
// 返回成功
|
||||
logger.info("添加角色信息成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("添加角色信息成功。");
|
||||
} else {
|
||||
// 返回失败
|
||||
logger.error("添加角色权限失败。");
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("添加角色权限失败。");
|
||||
}
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("添加角色信息失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("添加角色信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除角色信息
|
||||
*
|
||||
* @param roleUpdateForm 更新参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/deleteRoleInfo")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "删除角色信息", logMethod = "deleteRoleInfo")
|
||||
public String deleteRoleInfo(@RequestBody RoleUpdateForm roleUpdateForm) {
|
||||
logger.info("删除角色信息,请求用户名:{},登录ip:{}", roleUpdateForm.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (roleUpdateForm.getRoleId1() == null || roleUpdateForm.getRoleId2() == null) {
|
||||
logger.error("请求操作的roleId和被操作的roleId必须输入。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("请求操作的roleId和被操作的roleId必须输入。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (roleUpdateForm.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 删除角色信息
|
||||
roleService.remove(new LambdaQueryWrapper<Role>().eq(Role::getRoleId, roleUpdateForm.getRoleId2()));
|
||||
// 移除角色所有权限
|
||||
permissionService.remove(new LambdaQueryWrapper<Permission>().eq(Permission::getRoleId, roleUpdateForm.getRoleId2()));
|
||||
// 返回成功
|
||||
logger.info("删除角色信息成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("删除角色信息成功。");
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("删除角色信息失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("删除角色信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新用户信息
|
||||
*
|
||||
* @param userUpdateForm 更新参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/updateUserInfo")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "更新用户信息", logMethod = "updateUserInfo")
|
||||
public String updateUserInfo(@RequestBody UserUpdateForm userUpdateForm) {
|
||||
logger.info("更新用户信息,请求用户名:{},登录ip:{}", userUpdateForm.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (userUpdateForm.getRoleId1() == null || userUpdateForm.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (userUpdateForm.getUserIdUpdate() == null) {
|
||||
logger.error("缺少用户id。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("缺少用户id。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 更新用户信息
|
||||
User updateUser = userService.getById(userUpdateForm.getUserIdUpdate());
|
||||
if (updateUser == null) {
|
||||
logger.error("用户不存在。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("用户不存在。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(userUpdateForm.getUserNameUpdate())) {
|
||||
updateUser.setUserName(userUpdateForm.getUserNameUpdate());
|
||||
}
|
||||
if (StringUtils.isNotEmpty(userUpdateForm.getLoginAccountUpdate())) {
|
||||
updateUser.setLoginAccount(userUpdateForm.getLoginAccountUpdate());
|
||||
}
|
||||
if (userUpdateForm.getRoleIdUpdate() != null) {
|
||||
updateUser.setRoleId(userUpdateForm.getRoleIdUpdate());
|
||||
}
|
||||
updateUser.setUpdateTime(LocalDateTime.now());
|
||||
if (userService.updateById(updateUser)) {
|
||||
logger.info("更新用户信息成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("更新用户信息成功。");
|
||||
} else {
|
||||
logger.error("更新用户信息失败。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("更新用户信息失败。");
|
||||
}
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("更新用户信息失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("更新用户信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户信息
|
||||
*
|
||||
* @param userUpdateForm 添加参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/addUserInfo")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "添加用户信息", logMethod = "addUserInfo")
|
||||
public String addUserInfo(@RequestBody UserUpdateForm userUpdateForm) {
|
||||
logger.info("添加用户信息,请求用户名:{},登录ip:{}", userUpdateForm.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (userUpdateForm.getRoleId1() == null || userUpdateForm.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (StringUtils.isEmpty(userUpdateForm.getUserNameUpdate())) {
|
||||
logger.error("请输入用户名。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("请输入用户名。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (StringUtils.isEmpty(userUpdateForm.getLoginAccountUpdate())) {
|
||||
logger.error("请输入登录账号。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("请输入登录账号。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (userUpdateForm.getRoleIdUpdate() == null) {
|
||||
logger.error("请选择角色。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("请选择角色。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 判断loginAccount是否重复
|
||||
if (userService.exists(new LambdaQueryWrapper<User>().eq(User::getLoginAccount, userUpdateForm.getLoginAccountUpdate()))) {
|
||||
logger.error("登录账号重复。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("登录账号重复。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 添加角色信息
|
||||
User newUser = new User();
|
||||
newUser.setUserId(userService.getOne(new LambdaQueryWrapper<User>().select(User::getUserId).orderByDesc(User::getUserId).last("limit 1")).getUserId() + 1);
|
||||
newUser.setUserName(userUpdateForm.getUserNameUpdate());
|
||||
newUser.setLoginAccount(userUpdateForm.getLoginAccountUpdate());
|
||||
if (StringUtils.isEmpty(userUpdateForm.getLoginPasswordUpdate())) {
|
||||
newUser.setLoginPassword("");
|
||||
} else {
|
||||
newUser.setLoginPassword(MyPassword.encrypt(userUpdateForm.getLoginPasswordUpdate()));
|
||||
}
|
||||
newUser.setRoleId(userUpdateForm.getRoleIdUpdate());
|
||||
newUser.setAddTime(LocalDateTime.now());
|
||||
newUser.setUpdateTime(LocalDateTime.now());
|
||||
newUser.setAddUser(userUpdateForm.getUserName());
|
||||
if (userService.save(newUser)) {
|
||||
logger.info("添加用户信息成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("添加用户信息成功。");
|
||||
} else {
|
||||
logger.error("添加用户信息失败。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("添加用户信息失败。");
|
||||
}
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("添加用户信息失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("添加用户信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户信息
|
||||
*
|
||||
* @param userUpdateForm 删除参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/deleteUserInfo")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "删除用户信息", logMethod = "deleteUserInfo")
|
||||
public String deleteUserInfo(@RequestBody UserUpdateForm userUpdateForm) {
|
||||
logger.info("删除用户信息,请求用户名:{},登录ip:{}", userUpdateForm.getUserName(), HttpUtils.getIpAddr(servletRequest));
|
||||
// 创建响应信息
|
||||
ResponseEntity rsp = new ResponseEntity();
|
||||
try {
|
||||
if (userUpdateForm.getRoleId1() == null || userUpdateForm.getRoleId1() != 1) {
|
||||
logger.error("操作人员必须是管理员级别。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("操作人员必须是管理员级别。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
if (userUpdateForm.getUserIdUpdate() == null) {
|
||||
logger.error("缺少用户id。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("缺少用户id。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
// 删除用户信息
|
||||
if (userService.remove(new LambdaQueryWrapper<User>().eq(User::getUserId, userUpdateForm.getUserIdUpdate()))) {
|
||||
logger.info("删除用户信息成功。");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
rsp.setMessage("删除用户信息成功。");
|
||||
} else {
|
||||
logger.error("删除用户信息失败。");
|
||||
// 返回错误
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("删除用户信息失败。");
|
||||
}
|
||||
return convertJsonString(rsp);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.info("删除用户信息失败:{}", convertJsonString(e));
|
||||
// 返回其他异常
|
||||
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||
rsp.setMessage("删除用户信息失败。");
|
||||
return convertJsonString(rsp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package com.wms.entity.app.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class PermissionQuery extends PageQuery {
|
||||
/**
|
||||
* 角色id1
|
||||
*/
|
||||
@JsonProperty("roleId1")
|
||||
private Integer roleId1;
|
||||
/**
|
||||
* 角色id2
|
||||
*/
|
||||
@JsonProperty("roleId2")
|
||||
private Integer roleId2;
|
||||
}
|
||||
20
src/main/java/com/wms/entity/app/request/RoleQuery.java
Normal file
20
src/main/java/com/wms/entity/app/request/RoleQuery.java
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package com.wms.entity.app.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class RoleQuery extends PageQuery {
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@JsonProperty("roleId")
|
||||
private Integer roleId;
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@JsonProperty("roleName")
|
||||
private String roleName;
|
||||
}
|
||||
35
src/main/java/com/wms/entity/app/request/RoleUpdateForm.java
Normal file
35
src/main/java/com/wms/entity/app/request/RoleUpdateForm.java
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package com.wms.entity.app.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 更新角色信息 请求
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class RoleUpdateForm extends PageQuery {
|
||||
/**
|
||||
* 角色id1
|
||||
*/
|
||||
@JsonProperty("roleId1")
|
||||
private Integer roleId1;
|
||||
/**
|
||||
* 角色id2
|
||||
*/
|
||||
@JsonProperty("roleId2")
|
||||
private Integer roleId2;
|
||||
/**
|
||||
* 角色名2
|
||||
*/
|
||||
@JsonProperty("role2Name")
|
||||
private String role2Name;
|
||||
/**
|
||||
* 权限列表
|
||||
*/
|
||||
@JsonProperty("menuIds")
|
||||
private List<String> menuIds;
|
||||
}
|
||||
45
src/main/java/com/wms/entity/app/request/UserUpdateForm.java
Normal file
45
src/main/java/com/wms/entity/app/request/UserUpdateForm.java
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package com.wms.entity.app.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 更新角色信息 请求
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserUpdateForm extends PageQuery {
|
||||
/**
|
||||
* 角色id1
|
||||
*/
|
||||
@JsonProperty("roleId1")
|
||||
private Integer roleId1;
|
||||
/**
|
||||
* 角色id2
|
||||
*/
|
||||
@JsonProperty("roleIdUpdate")
|
||||
private Integer roleIdUpdate;
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@JsonProperty("userIdUpdate")
|
||||
private Integer userIdUpdate;
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
@JsonProperty("userNameUpdate")
|
||||
private String userNameUpdate;
|
||||
/**
|
||||
* 登录账号
|
||||
*/
|
||||
@JsonProperty("loginAccountUpdate")
|
||||
private String loginAccountUpdate;
|
||||
/**
|
||||
* 登录密码
|
||||
*/
|
||||
@JsonProperty("loginPasswordUpdate")
|
||||
private String loginPasswordUpdate;
|
||||
}
|
||||
39
src/main/java/com/wms/entity/app/vo/MenuVo.java
Normal file
39
src/main/java/com/wms/entity/app/vo/MenuVo.java
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.wms.entity.table.Menu;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MenuVo {
|
||||
/**
|
||||
* 菜单id
|
||||
*/
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@JsonProperty("label")
|
||||
private String label;
|
||||
/**
|
||||
* 子菜单
|
||||
*/
|
||||
@JsonProperty("children")
|
||||
private List<MenuVo> children;
|
||||
|
||||
/**
|
||||
* 将菜单对象转换为菜单视图对象
|
||||
* @param menu 菜单对象
|
||||
* @return 菜单
|
||||
*/
|
||||
public static MenuVo of(Menu menu) {
|
||||
MenuVo menuVo = new MenuVo();
|
||||
menuVo.setId(menu.getMenuId());
|
||||
menuVo.setLabel(menu.getLabelName());
|
||||
|
||||
return menuVo;
|
||||
}
|
||||
}
|
||||
20
src/main/java/com/wms/entity/app/vo/PermissionVo.java
Normal file
20
src/main/java/com/wms/entity/app/vo/PermissionVo.java
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PermissionVo {
|
||||
/**
|
||||
* 请求角色的所有menuId
|
||||
*/
|
||||
@JsonProperty("menu")
|
||||
private List<MenuVo> menu;
|
||||
/**
|
||||
* 待查询角色的menuId列表
|
||||
*/
|
||||
@JsonProperty("menuIds")
|
||||
private List<String> menuIds;
|
||||
}
|
||||
31
src/main/java/com/wms/entity/app/vo/RoleOption.java
Normal file
31
src/main/java/com/wms/entity/app/vo/RoleOption.java
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.wms.entity.table.Role;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RoleOption {
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
@JsonProperty("label")
|
||||
private String label;
|
||||
/**
|
||||
* 值
|
||||
*/
|
||||
@JsonProperty("value")
|
||||
private Integer value;
|
||||
|
||||
/**
|
||||
* 将角色对象转化为角色选项对象
|
||||
* @param role 角色
|
||||
* @return 结果
|
||||
*/
|
||||
public static RoleOption of(Role role) {
|
||||
RoleOption roleOption = new RoleOption();
|
||||
roleOption.setLabel(role.getRoleName());
|
||||
roleOption.setValue(role.getRoleId());
|
||||
return roleOption;
|
||||
}
|
||||
}
|
||||
31
src/main/java/com/wms/entity/app/vo/RoleVo.java
Normal file
31
src/main/java/com/wms/entity/app/vo/RoleVo.java
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.wms.entity.table.Role;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RoleVo {
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@JsonProperty("roleId")
|
||||
private Integer roleId;
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@JsonProperty("roleName")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 从数据库实体转换为前端显示
|
||||
* @param rolePo 数据库实体
|
||||
* @return excel对象
|
||||
*/
|
||||
public static RoleVo of(Role rolePo) {
|
||||
RoleVo roleVo = new RoleVo();
|
||||
roleVo.setRoleId(rolePo.getRoleId());
|
||||
roleVo.setRoleName(rolePo.getRoleName());
|
||||
return roleVo;
|
||||
}
|
||||
}
|
||||
59
src/main/java/com/wms/entity/app/vo/UserVo.java
Normal file
59
src/main/java/com/wms/entity/app/vo/UserVo.java
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.wms.entity.table.User;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class UserVo {
|
||||
/** 用户ID */
|
||||
@JsonProperty("userId")
|
||||
private Integer userId;
|
||||
/** 用户名 */
|
||||
@JsonProperty("userName")
|
||||
private String userName;
|
||||
/** 角色Id */
|
||||
@JsonProperty("roleId")
|
||||
private Integer roleId;
|
||||
/** 登录账户 */
|
||||
@JsonProperty("loginAccount")
|
||||
private String loginAccount;
|
||||
/** 登录密码 */
|
||||
@JsonProperty("loginPassword")
|
||||
private String loginPassword;
|
||||
/** 添加时间 */
|
||||
@JsonProperty("addTime")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime addTime;
|
||||
/** 更新时间 */
|
||||
@JsonProperty("updateTime")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
/** 添加用户名 */
|
||||
@JsonProperty("addUser")
|
||||
private String addUser;
|
||||
|
||||
/**
|
||||
* 从数据库实体转换为前端显示
|
||||
* @param userPo 数据库实体
|
||||
* @return excel对象
|
||||
*/
|
||||
public static UserVo of(User userPo) {
|
||||
UserVo userVo = new UserVo();
|
||||
userVo.setUserId(userPo.getUserId());
|
||||
userVo.setUserName(userPo.getUserName());
|
||||
userVo.setRoleId(userPo.getRoleId());
|
||||
userVo.setLoginAccount(userPo.getLoginAccount());
|
||||
userVo.setLoginPassword("*********");
|
||||
userVo.setAddTime(userPo.getAddTime());
|
||||
userVo.setUpdateTime(userPo.getUpdateTime());
|
||||
userVo.setAddUser(userPo.getAddUser());
|
||||
return userVo;
|
||||
}
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ import lombok.Data;
|
|||
* 菜单
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "tbl_app_menu", autoResultMap = true)
|
||||
@TableName(value = "tbl_sys_menu", autoResultMap = true)
|
||||
public class Menu {
|
||||
/**
|
||||
* 菜单Id
|
||||
|
|
|
|||
27
src/main/java/com/wms/entity/table/Permission.java
Normal file
27
src/main/java/com/wms/entity/table/Permission.java
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
package com.wms.entity.table;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName(value = "tbl_sys_permission", autoResultMap = true)
|
||||
public class Permission {
|
||||
/**
|
||||
* 权限id
|
||||
*/
|
||||
@TableId(value = "permission_id", type = IdType.AUTO)
|
||||
private Integer permissionId;
|
||||
/**
|
||||
* 菜单id
|
||||
*/
|
||||
@TableField("menu_id")
|
||||
private String menuId;
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@TableField("role_id")
|
||||
private Integer roleId;
|
||||
}
|
||||
22
src/main/java/com/wms/entity/table/Role.java
Normal file
22
src/main/java/com/wms/entity/table/Role.java
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
package com.wms.entity.table;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName(value = "tbl_sys_role", autoResultMap = true)
|
||||
public class Role {
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@TableId(value = "role_id", type = IdType.AUTO)
|
||||
private Integer roleId;
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@TableField("role_name")
|
||||
private String roleName;
|
||||
}
|
||||
9
src/main/java/com/wms/mapper/PermissionMapper.java
Normal file
9
src/main/java/com/wms/mapper/PermissionMapper.java
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
package com.wms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.wms.entity.table.Permission;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface PermissionMapper extends BaseMapper<Permission> {
|
||||
}
|
||||
9
src/main/java/com/wms/mapper/RoleMapper.java
Normal file
9
src/main/java/com/wms/mapper/RoleMapper.java
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
package com.wms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.wms.entity.table.Role;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface RoleMapper extends BaseMapper<Role> {
|
||||
}
|
||||
7
src/main/java/com/wms/service/PermissionService.java
Normal file
7
src/main/java/com/wms/service/PermissionService.java
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
package com.wms.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wms.entity.table.Permission;
|
||||
|
||||
public interface PermissionService extends IService<Permission> {
|
||||
}
|
||||
10
src/main/java/com/wms/service/RoleService.java
Normal file
10
src/main/java/com/wms/service/RoleService.java
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
package com.wms.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wms.entity.table.Role;
|
||||
|
||||
/**
|
||||
* 角色服务类
|
||||
*/
|
||||
public interface RoleService extends IService<Role> {
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.wms.service.serviceImplements;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wms.entity.table.Permission;
|
||||
import com.wms.mapper.PermissionMapper;
|
||||
import com.wms.service.PermissionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PermissionService {
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.wms.service.serviceImplements;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wms.entity.table.Role;
|
||||
import com.wms.mapper.RoleMapper;
|
||||
import com.wms.service.RoleService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
|
||||
}
|
||||
5
src/main/resources/mapper/PermissionMapper.xml
Normal file
5
src/main/resources/mapper/PermissionMapper.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wms.mapper.PermissionMapper">
|
||||
</mapper>
|
||||
5
src/main/resources/mapper/RoleMapper.xml
Normal file
5
src/main/resources/mapper/RoleMapper.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wms.mapper.RoleMapper">
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue
Block a user