From 032ed1de01a410ecfe0bfbe853c4b870f82e63d6 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Sat, 20 Jan 2024 21:31:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A0=E9=99=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=81=E6=B6=88=E6=81=AF=E5=88=A0=E9=99=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/InfoController.java | 2 +- .../oa/controllers/PermissionController.java | 8 +++ .../jsl/oa/controllers/ProjectController.java | 11 +++++ .../jsl/oa/controllers/RoleController.java | 3 +- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 4 ++ .../com/jsl/oa/mapper/PermissionMapper.java | 8 +-- .../java/com/jsl/oa/mapper/ProjectMapper.java | 13 ++--- .../com/jsl/oa/model/voData/UserEditVO.java | 49 ------------------- .../jsl/oa/services/PermissionService.java | 2 + .../com/jsl/oa/services/ProjectService.java | 2 + .../services/impl/PermissionServiceImpl.java | 14 ++++++ .../oa/services/impl/ProjectServiceImpl.java | 8 +++ .../jsl/oa/services/impl/UserServiceImpl.java | 31 ++++++++++-- src/main/java/com/jsl/oa/utils/ErrorCode.java | 1 + 14 files changed, 91 insertions(+), 65 deletions(-) delete mode 100644 src/main/java/com/jsl/oa/model/voData/UserEditVO.java diff --git a/src/main/java/com/jsl/oa/controllers/InfoController.java b/src/main/java/com/jsl/oa/controllers/InfoController.java index 89a9d01..d393964 100755 --- a/src/main/java/com/jsl/oa/controllers/InfoController.java +++ b/src/main/java/com/jsl/oa/controllers/InfoController.java @@ -75,7 +75,7 @@ public class InfoController { } @GetMapping("info/header-user/get") - public BaseResponse infoGetHeaderUser(@RequestParam(required = false) String order,@RequestParam(required = false) String orderBy,HttpServletRequest request){ + public BaseResponse infoGetHeaderUser(@RequestParam String order,@RequestParam String orderBy,HttpServletRequest request){ log.info("请求接口[GET]: /info/header-user/get"); return infoService.getHeaderUser(request,order,orderBy); } diff --git a/src/main/java/com/jsl/oa/controllers/PermissionController.java b/src/main/java/com/jsl/oa/controllers/PermissionController.java index 2bedc20..be7793a 100755 --- a/src/main/java/com/jsl/oa/controllers/PermissionController.java +++ b/src/main/java/com/jsl/oa/controllers/PermissionController.java @@ -49,4 +49,12 @@ public class PermissionController { } return permissionService.permissionEdit(permissionEditVo,request); } + + @DeleteMapping("/permission/delete") + public BaseResponse permissionDelete(@RequestParam Long pid,HttpServletRequest request){ + // 判断是否有参数错误 + if (pid == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } else return permissionService.permissionDelete(request,pid); + } } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 9dca341..2e2902e 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -112,4 +112,15 @@ public class ProjectController { } return projectService.projectAddUserForCutting(uid, pid); } + + @DeleteMapping("/project/delete") + public BaseResponse projectDelete(@RequestParam Long id){ + log.info("请求接口[Delete]: /project/delete"); + if(id == null){ + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectDelete(id); + } + + } diff --git a/src/main/java/com/jsl/oa/controllers/RoleController.java b/src/main/java/com/jsl/oa/controllers/RoleController.java index 73711cb..514de4a 100755 --- a/src/main/java/com/jsl/oa/controllers/RoleController.java +++ b/src/main/java/com/jsl/oa/controllers/RoleController.java @@ -11,6 +11,7 @@ import com.jsl.oa.utils.ResultUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -43,7 +44,7 @@ public class RoleController { * @return {@link BaseResponse} */ @GetMapping("/role/get") - public BaseResponse roleGet(HttpServletRequest request, @RequestParam(required = false) String id) { + public BaseResponse roleGet(HttpServletRequest request, @RequestParam @Nullable String id) { log.info("请求接口[GET]: /role/get"); return roleService.roleGet(request, id); } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 9112fc7..e37377f 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -99,4 +99,8 @@ public class ProjectDAO { }else return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); } + + public boolean projectDelete(Long id){ + return projectMapper.deleteProject(id); + } } diff --git a/src/main/java/com/jsl/oa/mapper/PermissionMapper.java b/src/main/java/com/jsl/oa/mapper/PermissionMapper.java index 312a198..0baa3c1 100644 --- a/src/main/java/com/jsl/oa/mapper/PermissionMapper.java +++ b/src/main/java/com/jsl/oa/mapper/PermissionMapper.java @@ -2,10 +2,7 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.doData.PermissionDO; import com.jsl.oa.model.doData.RolePermissionDO; -import org.apache.ibatis.annotations.Insert; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Select; -import org.apache.ibatis.annotations.Update; +import org.apache.ibatis.annotations.*; import java.util.List; @@ -32,4 +29,7 @@ public interface PermissionMapper { @Update("UPDATE organize_oa.oa_permissions SET pid = #{pid}, name = #{name}, code = #{code}, " + "type = #{type} WHERE id = #{id}") boolean updatePermission(PermissionDO permissionDO); + + @Delete("DELETE FROM organize_oa.oa_permissions where id=#{pid}") + boolean deletePermission(Long pid); } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 62a4d69..a86e102 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -4,10 +4,7 @@ import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.utils.BaseResponse; -import org.apache.ibatis.annotations.Insert; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Select; -import org.apache.ibatis.annotations.Update; +import org.apache.ibatis.annotations.*; import java.util.List; @@ -41,9 +38,13 @@ public interface ProjectMapper { @Update("UPDATE organize_oa.oa_config SET data = #{setProjectShow} WHERE value = 'project_show'") boolean setProjectShow(String setProjectShow); - @Select("select * from organize_oa.oa_project") + @Select("select * from organize_oa.oa_permissions") List get(); @Select("select * from organize_oa.oa_project where name=#{name}") - ProjectDO getByName(String name); + BaseResponse getByName(String name); + + @Delete("DELETE FROM organize_oa.oa_project where id=#{id}") + boolean deleteProject(Long id); + } diff --git a/src/main/java/com/jsl/oa/model/voData/UserEditVO.java b/src/main/java/com/jsl/oa/model/voData/UserEditVO.java deleted file mode 100644 index 0f00012..0000000 --- a/src/main/java/com/jsl/oa/model/voData/UserEditVO.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.jsl.oa.model.voData; - -import lombok.Data; - -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; - - -@Data -public class UserEditVO { - - @NotNull - private Long id; - - @NotNull - private String username; - - private String address; - - @Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", message = "电话格式错误") - private String phone; - - @Pattern(regexp = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", message = "邮箱格式错误") - private String email; - - @Min(value = 0, message = "保密:0,男:1,女:2") - @Max(value = 2, message = "保密:0,男:1,女:2") - private Short sex; - - private Short age; - private String signature; - private String avatar; - private String nickname; - private String description; - @NotNull - private Boolean enabled; - @NotNull - private Boolean isExpired; - @NotNull - private Boolean passwordExpired; - @NotNull - private Boolean recommend; - @NotNull - private Boolean isLocked; -} - - diff --git a/src/main/java/com/jsl/oa/services/PermissionService.java b/src/main/java/com/jsl/oa/services/PermissionService.java index 0e8ce23..89b3b80 100644 --- a/src/main/java/com/jsl/oa/services/PermissionService.java +++ b/src/main/java/com/jsl/oa/services/PermissionService.java @@ -14,4 +14,6 @@ public interface PermissionService { BaseResponse permissionGet(HttpServletRequest request); BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request); + + BaseResponse permissionDelete(HttpServletRequest request, Long pid); } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 96479bf..6f94975 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -27,4 +27,6 @@ public interface ProjectService { BaseResponse get(); BaseResponse getByName(String name); + + BaseResponse projectDelete(Long id); } diff --git a/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java index 3894787..8192795 100644 --- a/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/PermissionServiceImpl.java @@ -84,5 +84,19 @@ public class PermissionServiceImpl implements PermissionService { return ResultUtil.success(); } + @Override + public BaseResponse permissionDelete(HttpServletRequest request, Long pid) { + //检验用户权限是否为管理员 + if(!Processing.checkUserIsAdmin(request,roleMapper)){ + return ResultUtil.error(ErrorCode.NOT_ADMIN); + } + //删除权限 + if(!permissionMapper.deletePermission(pid)){ + return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); + } + + return ResultUtil.success(); + } + } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index cb3e5b4..dbc0310 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -172,5 +172,13 @@ public class ProjectServiceImpl implements ProjectService { return projectDAO.getByName(name); } + @Override + public BaseResponse projectDelete(Long id) { + if(!projectDAO.projectDelete(id)){ + return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); + } + return ResultUtil.success(); + } + } diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index bb275c8..a8d1b3f 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -2,13 +2,11 @@ package com.jsl.oa.services.impl; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.RoleMapper; +import com.jsl.oa.model.doData.RoleUserDO; import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.voData.*; import com.jsl.oa.services.UserService; -import com.jsl.oa.utils.BaseResponse; -import com.jsl.oa.utils.ErrorCode; -import com.jsl.oa.utils.Processing; -import com.jsl.oa.utils.ResultUtil; +import com.jsl.oa.utils.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -215,4 +213,29 @@ public class UserServiceImpl implements UserService { userProfileVo.setSex(Processing.getSex(userDO.getSex())); return ResultUtil.success(userProfileVo); } + + + /** + * @Description: 判断用户是否为管理员 + * @Date: 2024/1/18 + * @Param request: 请求头 + **/ + public BaseResponse isManager(HttpServletRequest request) { + //获取token + String originalAuthorization = request.getHeader("Authorization"); + String token = originalAuthorization.replace("Bearer ", ""); + //获取操作用户的权限 + RoleUserDO roleUserDO = userDAO.getRoleFromUser(JwtUtil.getUserId(token)); + //用户权限不为空 + if (roleUserDO == null) { + return ResultUtil.error(ErrorCode.USER_ROLE_NOT_EXIST); + } + //用户权限应为管理员 + if (!userDAO.isManagerByRoleId(roleUserDO.getRid())) { + return ResultUtil.error(ErrorCode.USER_ROLE_NOT_MANAGER); + } + return ResultUtil.success(); + } + + } diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index e5f63eb..a4fa9a0 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -29,6 +29,7 @@ public enum ErrorCode { ID_NOT_EXIST("IdNotExist", 40400, "ID不存在"), ROLE_NOT_FOUNDED("RoleNotFounded", 40401, "角色不存在"), ROLE_NAME_REPEAT("RoleNameRepeat", 40402, "角色名称重复"), + MESSAGE_ONLY_DELETE_BY_THEMSELVES("MessageOnlyDeleteByThenSelves",40500 ,"用户只能删除自己的消息" ), PERMISSION_NOT_EXIST("permissionNotExist",40501,"权限不存在"), DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"), DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"),