From cb0407e3021238fcd5e96f91b9f49c84e8192661 Mon Sep 17 00:00:00 2001 From: liangzhou <594755172@qq.com> Date: Fri, 1 Nov 2024 16:57:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=9F=E8=83=BD=EF=BC=9A?= =?UTF-8?q?=201.=20=E5=8A=A0=E5=85=A5=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wms/controller/UserController.java | 715 +++++++++++++++++- .../entity/app/request/PermissionQuery.java | 20 + .../com/wms/entity/app/request/RoleQuery.java | 20 + .../entity/app/request/RoleUpdateForm.java | 35 + .../entity/app/request/UserUpdateForm.java | 45 ++ .../java/com/wms/entity/app/vo/MenuVo.java | 39 + .../com/wms/entity/app/vo/PermissionVo.java | 20 + .../com/wms/entity/app/vo/RoleOption.java | 31 + .../java/com/wms/entity/app/vo/RoleVo.java | 31 + .../java/com/wms/entity/app/vo/UserVo.java | 59 ++ src/main/java/com/wms/entity/table/Menu.java | 2 +- .../java/com/wms/entity/table/Permission.java | 27 + src/main/java/com/wms/entity/table/Role.java | 22 + .../java/com/wms/mapper/PermissionMapper.java | 9 + src/main/java/com/wms/mapper/RoleMapper.java | 9 + .../com/wms/service/PermissionService.java | 7 + .../java/com/wms/service/RoleService.java | 10 + .../PermissionServiceImpl.java | 11 + .../serviceImplements/RoleServiceImpl.java | 11 + .../resources/mapper/PermissionMapper.xml | 5 + src/main/resources/mapper/RoleMapper.xml | 5 + 21 files changed, 1120 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/wms/entity/app/request/PermissionQuery.java create mode 100644 src/main/java/com/wms/entity/app/request/RoleQuery.java create mode 100644 src/main/java/com/wms/entity/app/request/RoleUpdateForm.java create mode 100644 src/main/java/com/wms/entity/app/request/UserUpdateForm.java create mode 100644 src/main/java/com/wms/entity/app/vo/MenuVo.java create mode 100644 src/main/java/com/wms/entity/app/vo/PermissionVo.java create mode 100644 src/main/java/com/wms/entity/app/vo/RoleOption.java create mode 100644 src/main/java/com/wms/entity/app/vo/RoleVo.java create mode 100644 src/main/java/com/wms/entity/app/vo/UserVo.java create mode 100644 src/main/java/com/wms/entity/table/Permission.java create mode 100644 src/main/java/com/wms/entity/table/Role.java create mode 100644 src/main/java/com/wms/mapper/PermissionMapper.java create mode 100644 src/main/java/com/wms/mapper/RoleMapper.java create mode 100644 src/main/java/com/wms/service/PermissionService.java create mode 100644 src/main/java/com/wms/service/RoleService.java create mode 100644 src/main/java/com/wms/service/serviceImplements/PermissionServiceImpl.java create mode 100644 src/main/java/com/wms/service/serviceImplements/RoleServiceImpl.java create mode 100644 src/main/resources/mapper/PermissionMapper.xml create mode 100644 src/main/resources/mapper/RoleMapper.xml diff --git a/src/main/java/com/wms/controller/UserController.java b/src/main/java/com/wms/controller/UserController.java index 5a6961e..89e9786 100644 --- a/src/main/java/com/wms/controller/UserController.java +++ b/src/main/java/com/wms/controller/UserController.java @@ -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 localUsers = userService.list(new LambdaQueryWrapper() .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 queryWrapper = new LambdaQueryWrapper() + .ge(User::getRoleId, userQuery.getRoleId()) + .orderByAsc(User::getRoleId, User::getUserId); + if (StringUtils.isNotEmpty(userQuery.getUserName())) { + queryWrapper.like(User::getUserName, userQuery.getUserName()); + } + Page page = userQuery.toMpPage(); + Page userPage = userService.page(page, queryWrapper); + PageDto 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 queryWrapper = new LambdaQueryWrapper() + .ge(Role::getRoleId, roleQuery.getRoleId()) + .orderByAsc(Role::getRoleId); + Page page = roleQuery.toMpPage(); + Page rolePage = roleService.page(page, queryWrapper); + PageDto 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 queryWrapper = new LambdaQueryWrapper() + .ge(Role::getRoleId, roleQuery.getRoleId()) + .orderByAsc(Role::getRoleId); + List roleList = roleService.list(queryWrapper); + List 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 permissionList = permissionService.list( + new LambdaQueryWrapper().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 menuIds = permissionList.stream().map(Permission::getMenuId).distinct().toList(); + // 查询所有的菜单 + List menuList = menuService.list( + new LambdaQueryWrapper().in(Menu::getMenuId, menuIds).orderByAsc(Menu::getMenuId) + ); + // 先添加一级菜单 + List 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 permissionListOfTarget = permissionService.list( + new LambdaQueryWrapper() + .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().set(Role::getRoleName, roleUpdateForm.getRole2Name()).eq(Role::getRoleId, roleUpdateForm.getRoleId2())); + } + // 获取所有的菜单信息 + List permissionList = permissionService.list( + new LambdaQueryWrapper().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 menuIds = permissionList.stream().map(Permission::getMenuId).distinct().toList(); + List updateMenuIds = roleUpdateForm.getMenuIds(); + for (String menuId : updateMenuIds) { + if (!menuIds.contains(menuId)) { + logger.error("设定的权限超过操作人员所拥有的权限。"); + // 返回错误 + rsp.setCode(ResponseCode.ERROR.getCode()); + rsp.setMessage("设定的权限超过操作人员所拥有的权限。"); + return convertJsonString(rsp); + } + } + // 查询所有的菜单 + List menuList = menuService.list( + new LambdaQueryWrapper().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().eq(Permission::getRoleId, roleUpdateForm.getRoleId2())); + // 添加权限 + List 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().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 permissionList = permissionService.list( + new LambdaQueryWrapper().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 menuIds = permissionList.stream().map(Permission::getMenuId).distinct().toList(); + List updateMenuIds = roleUpdateForm.getMenuIds(); + for (String menuId : updateMenuIds) { + if (!menuIds.contains(menuId)) { + logger.error("设定的权限超过操作人员所拥有的权限。"); + // 返回错误 + rsp.setCode(ResponseCode.ERROR.getCode()); + rsp.setMessage("设定的权限超过操作人员所拥有的权限。"); + return convertJsonString(rsp); + } + } + // 查询所有的菜单 + List menuList = menuService.list( + new LambdaQueryWrapper().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().eq(Permission::getRoleId, role.getRoleId())); + // 添加权限 + List 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().eq(Role::getRoleId, roleUpdateForm.getRoleId2())); + // 移除角色所有权限 + permissionService.remove(new LambdaQueryWrapper().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().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().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().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); + } } } diff --git a/src/main/java/com/wms/entity/app/request/PermissionQuery.java b/src/main/java/com/wms/entity/app/request/PermissionQuery.java new file mode 100644 index 0000000..5ca0815 --- /dev/null +++ b/src/main/java/com/wms/entity/app/request/PermissionQuery.java @@ -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; +} diff --git a/src/main/java/com/wms/entity/app/request/RoleQuery.java b/src/main/java/com/wms/entity/app/request/RoleQuery.java new file mode 100644 index 0000000..c98445a --- /dev/null +++ b/src/main/java/com/wms/entity/app/request/RoleQuery.java @@ -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; +} diff --git a/src/main/java/com/wms/entity/app/request/RoleUpdateForm.java b/src/main/java/com/wms/entity/app/request/RoleUpdateForm.java new file mode 100644 index 0000000..1e5624b --- /dev/null +++ b/src/main/java/com/wms/entity/app/request/RoleUpdateForm.java @@ -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 menuIds; +} diff --git a/src/main/java/com/wms/entity/app/request/UserUpdateForm.java b/src/main/java/com/wms/entity/app/request/UserUpdateForm.java new file mode 100644 index 0000000..16fe81d --- /dev/null +++ b/src/main/java/com/wms/entity/app/request/UserUpdateForm.java @@ -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; +} diff --git a/src/main/java/com/wms/entity/app/vo/MenuVo.java b/src/main/java/com/wms/entity/app/vo/MenuVo.java new file mode 100644 index 0000000..9f3950d --- /dev/null +++ b/src/main/java/com/wms/entity/app/vo/MenuVo.java @@ -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 children; + + /** + * 将菜单对象转换为菜单视图对象 + * @param menu 菜单对象 + * @return 菜单 + */ + public static MenuVo of(Menu menu) { + MenuVo menuVo = new MenuVo(); + menuVo.setId(menu.getMenuId()); + menuVo.setLabel(menu.getLabelName()); + + return menuVo; + } +} diff --git a/src/main/java/com/wms/entity/app/vo/PermissionVo.java b/src/main/java/com/wms/entity/app/vo/PermissionVo.java new file mode 100644 index 0000000..b7523c0 --- /dev/null +++ b/src/main/java/com/wms/entity/app/vo/PermissionVo.java @@ -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 menu; + /** + * 待查询角色的menuId列表 + */ + @JsonProperty("menuIds") + private List menuIds; +} diff --git a/src/main/java/com/wms/entity/app/vo/RoleOption.java b/src/main/java/com/wms/entity/app/vo/RoleOption.java new file mode 100644 index 0000000..aeb9085 --- /dev/null +++ b/src/main/java/com/wms/entity/app/vo/RoleOption.java @@ -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; + } +} diff --git a/src/main/java/com/wms/entity/app/vo/RoleVo.java b/src/main/java/com/wms/entity/app/vo/RoleVo.java new file mode 100644 index 0000000..6df181b --- /dev/null +++ b/src/main/java/com/wms/entity/app/vo/RoleVo.java @@ -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; + } +} diff --git a/src/main/java/com/wms/entity/app/vo/UserVo.java b/src/main/java/com/wms/entity/app/vo/UserVo.java new file mode 100644 index 0000000..f5c7fc5 --- /dev/null +++ b/src/main/java/com/wms/entity/app/vo/UserVo.java @@ -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; + } +} diff --git a/src/main/java/com/wms/entity/table/Menu.java b/src/main/java/com/wms/entity/table/Menu.java index 4a5f423..8a90175 100644 --- a/src/main/java/com/wms/entity/table/Menu.java +++ b/src/main/java/com/wms/entity/table/Menu.java @@ -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 diff --git a/src/main/java/com/wms/entity/table/Permission.java b/src/main/java/com/wms/entity/table/Permission.java new file mode 100644 index 0000000..2bed7d3 --- /dev/null +++ b/src/main/java/com/wms/entity/table/Permission.java @@ -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; +} diff --git a/src/main/java/com/wms/entity/table/Role.java b/src/main/java/com/wms/entity/table/Role.java new file mode 100644 index 0000000..03057cf --- /dev/null +++ b/src/main/java/com/wms/entity/table/Role.java @@ -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; +} diff --git a/src/main/java/com/wms/mapper/PermissionMapper.java b/src/main/java/com/wms/mapper/PermissionMapper.java new file mode 100644 index 0000000..46a9892 --- /dev/null +++ b/src/main/java/com/wms/mapper/PermissionMapper.java @@ -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 { +} diff --git a/src/main/java/com/wms/mapper/RoleMapper.java b/src/main/java/com/wms/mapper/RoleMapper.java new file mode 100644 index 0000000..8da002f --- /dev/null +++ b/src/main/java/com/wms/mapper/RoleMapper.java @@ -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 { +} diff --git a/src/main/java/com/wms/service/PermissionService.java b/src/main/java/com/wms/service/PermissionService.java new file mode 100644 index 0000000..8053b0e --- /dev/null +++ b/src/main/java/com/wms/service/PermissionService.java @@ -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 { +} diff --git a/src/main/java/com/wms/service/RoleService.java b/src/main/java/com/wms/service/RoleService.java new file mode 100644 index 0000000..99b4cbd --- /dev/null +++ b/src/main/java/com/wms/service/RoleService.java @@ -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 { +} diff --git a/src/main/java/com/wms/service/serviceImplements/PermissionServiceImpl.java b/src/main/java/com/wms/service/serviceImplements/PermissionServiceImpl.java new file mode 100644 index 0000000..83f01da --- /dev/null +++ b/src/main/java/com/wms/service/serviceImplements/PermissionServiceImpl.java @@ -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 implements PermissionService { +} diff --git a/src/main/java/com/wms/service/serviceImplements/RoleServiceImpl.java b/src/main/java/com/wms/service/serviceImplements/RoleServiceImpl.java new file mode 100644 index 0000000..2ab26f8 --- /dev/null +++ b/src/main/java/com/wms/service/serviceImplements/RoleServiceImpl.java @@ -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 implements RoleService { +} diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/PermissionMapper.xml new file mode 100644 index 0000000..f60b456 --- /dev/null +++ b/src/main/resources/mapper/PermissionMapper.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/RoleMapper.xml new file mode 100644 index 0000000..7b9ce7d --- /dev/null +++ b/src/main/resources/mapper/RoleMapper.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file