Compare commits

...

2 Commits

Author SHA1 Message Date
xiangZr-hhh
eb2caee36a Merge remote-tracking branch 'origin/master' 2024-01-20 21:41:40 +08:00
xiangZr-hhh
032ed1de01 权限删除接口、消息删除接口 2024-01-20 21:31:01 +08:00
14 changed files with 91 additions and 65 deletions

View File

@ -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);
}

View File

@ -57,4 +57,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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -104,4 +104,8 @@ public class ProjectDAO {
log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法");
return projectMapper.getByName(name);
}
public boolean projectDelete(Long id){
return projectMapper.deleteProject(id);
}
}

View File

@ -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);
}

View File

@ -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<ProjectDO> 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);
}

View File

@ -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;
}

View File

@ -14,4 +14,6 @@ public interface PermissionService {
BaseResponse permissionGet(HttpServletRequest request);
BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request);
BaseResponse permissionDelete(HttpServletRequest request, Long pid);
}

View File

@ -27,4 +27,6 @@ public interface ProjectService {
BaseResponse get();
BaseResponse getByName(String name);
BaseResponse projectDelete(Long id);
}

View File

@ -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();
}
}

View File

@ -185,5 +185,13 @@ public class ProjectServiceImpl implements ProjectService {
return ResultUtil.success(projectDAO.getByName(name));
}
@Override
public BaseResponse projectDelete(Long id) {
if(!projectDAO.projectDelete(id)){
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
}
return ResultUtil.success();
}
}

View File

@ -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();
}
}

View File

@ -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, "数据库更新错误"),