From fdb66ce505d8b5ecb9ae7fc79c54435df9819f33 Mon Sep 17 00:00:00 2001 From: kanade <3136520963@qq.com> Date: Tue, 14 Jun 2022 10:22:57 +0800 Subject: [PATCH] =?UTF-8?q?RuntimeException=20=E6=94=B9=E6=88=90=20BizExce?= =?UTF-8?q?ption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxApp/UserJurisdictionController.java | 4 ++- .../controller/wxApp/UserRoleController.java | 6 +++-- .../com/zh/project0512/model/UserMenus.java | 2 ++ .../zh/project0512/model/UserOperation.java | 2 ++ .../UserJurisdictionServiceImpl.java | 21 ++++++++------- .../serviceImpl/UserRoleServiceImpl.java | 4 ++- .../zh/project0512/utils/BizException.java | 26 +++++++++++++++++++ .../zh/project0512/utils/PropertyUtils.java | 5 ++-- .../utils/RestExceptionHandler.java | 15 +++++++++++ .../zh/project0512/utils/result/Result.java | 3 +++ 10 files changed, 72 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/zh/project0512/utils/BizException.java diff --git a/src/main/java/com/zh/project0512/controller/wxApp/UserJurisdictionController.java b/src/main/java/com/zh/project0512/controller/wxApp/UserJurisdictionController.java index 14f6efa..c0c81b3 100644 --- a/src/main/java/com/zh/project0512/controller/wxApp/UserJurisdictionController.java +++ b/src/main/java/com/zh/project0512/controller/wxApp/UserJurisdictionController.java @@ -4,6 +4,8 @@ import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO; import com.zh.project0512.model.dto.UserJurisdictionFBIDTO; import com.zh.project0512.model.vo.UserJurisdictionFBRIVo; import com.zh.project0512.service.IUserJurisdictionService; +import com.zh.project0512.utils.BizException; +import com.zh.project0512.utils.result.HttpStatusEnum; import com.zh.project0512.utils.result.Result; import com.zh.project0512.utils.result.ResultList; import io.swagger.v3.oas.annotations.tags.Tag; @@ -36,7 +38,7 @@ public class UserJurisdictionController { if (userJurisdictionService.operationRoleJurisdiction(operationRoleJurisdictionDTO)){ return Result.success("操作角色权限","操作成功"); }else { - throw new RuntimeException("操作失败"); + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"操作失败"); } } diff --git a/src/main/java/com/zh/project0512/controller/wxApp/UserRoleController.java b/src/main/java/com/zh/project0512/controller/wxApp/UserRoleController.java index c8c0384..b76c67f 100644 --- a/src/main/java/com/zh/project0512/controller/wxApp/UserRoleController.java +++ b/src/main/java/com/zh/project0512/controller/wxApp/UserRoleController.java @@ -6,6 +6,8 @@ import com.zh.project0512.model.dto.UserRoleListDTO; import com.zh.project0512.model.dto.UserRoleUpdateDTO; import com.zh.project0512.model.vo.UserRoleListVo; import com.zh.project0512.service.IUserRoleService; +import com.zh.project0512.utils.BizException; +import com.zh.project0512.utils.result.HttpStatusEnum; import com.zh.project0512.utils.result.Result; import com.zh.project0512.utils.result.ResultPageInfo; import io.swagger.v3.oas.annotations.tags.Tag; @@ -48,7 +50,7 @@ public class UserRoleController { if (userRoleService.insert(userRoleInsertDTO)){ return Result.success("添加用户角色","操作成功"); }else { - throw new RuntimeException("添加失败"); + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"添加失败"); } } @@ -62,7 +64,7 @@ public class UserRoleController { if (userRoleService.update(userRoleUpdateDTO)){ return Result.success("修改用户角色","操作成功"); }else { - throw new RuntimeException("修改失败"); + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"修改失败"); } } diff --git a/src/main/java/com/zh/project0512/model/UserMenus.java b/src/main/java/com/zh/project0512/model/UserMenus.java index 3c980cd..6aba68f 100644 --- a/src/main/java/com/zh/project0512/model/UserMenus.java +++ b/src/main/java/com/zh/project0512/model/UserMenus.java @@ -3,6 +3,7 @@ package com.zh.project0512.model; 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.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -15,6 +16,7 @@ import java.io.Serializable; @Data @NoArgsConstructor @AllArgsConstructor +@TableName("userMenus") public class UserMenus implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/zh/project0512/model/UserOperation.java b/src/main/java/com/zh/project0512/model/UserOperation.java index c172562..c519ef1 100644 --- a/src/main/java/com/zh/project0512/model/UserOperation.java +++ b/src/main/java/com/zh/project0512/model/UserOperation.java @@ -3,6 +3,7 @@ package com.zh.project0512.model; 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.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -15,6 +16,7 @@ import java.io.Serializable; @Data @NoArgsConstructor @AllArgsConstructor +@TableName("userOperation") public class UserOperation implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/zh/project0512/serviceImpl/UserJurisdictionServiceImpl.java b/src/main/java/com/zh/project0512/serviceImpl/UserJurisdictionServiceImpl.java index c8a4139..9db36d1 100644 --- a/src/main/java/com/zh/project0512/serviceImpl/UserJurisdictionServiceImpl.java +++ b/src/main/java/com/zh/project0512/serviceImpl/UserJurisdictionServiceImpl.java @@ -1,20 +1,16 @@ package com.zh.project0512.serviceImpl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.zh.project0512.mapper.UserJurisdictionMapper; -import com.zh.project0512.mapper.UserMenusMapper; -import com.zh.project0512.mapper.UserOperationMapper; -import com.zh.project0512.mapper.UserRoleJurisdictionMapper; -import com.zh.project0512.model.UserJurisdiction; -import com.zh.project0512.model.UserMenus; -import com.zh.project0512.model.UserOperation; -import com.zh.project0512.model.UserRoleJurisdiction; +import com.zh.project0512.mapper.*; +import com.zh.project0512.model.*; import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO; import com.zh.project0512.model.dto.UserJurisdictionFBIDTO; import com.zh.project0512.model.vo.UserJurisdictionFBRIOperationVo; import com.zh.project0512.model.vo.UserJurisdictionFBRIVo; import com.zh.project0512.service.IUserJurisdictionService; +import com.zh.project0512.utils.BizException; import com.zh.project0512.utils.PropertyUtils; +import com.zh.project0512.utils.result.HttpStatusEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +28,8 @@ public class UserJurisdictionServiceImpl implements IUserJurisdictionService { UserOperationMapper userOperationMapper; @Resource UserJurisdictionMapper userJurisdictionMapper; + @Resource + UserRoleMapper userRoleMapper; @Override @Transactional @@ -57,6 +55,11 @@ public class UserJurisdictionServiceImpl implements IUserJurisdictionService { @Override public List findByRoleId(UserJurisdictionFBIDTO userJurisdictionFBIDTO) { + UserRole userRole = userRoleMapper.selectById(userJurisdictionFBIDTO.getRoleId()); + if (userRole == null){ + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"记录不存在"); + } + ArrayList userJurisdictionFBRIVos = new ArrayList<>(); //查询所有菜单 @@ -78,7 +81,7 @@ public class UserJurisdictionServiceImpl implements IUserJurisdictionService { UserOperation userOperation = userOperationMapper.selectById(userJurisdiction.getOperationId()); if (userOperation != null){ UserJurisdictionFBRIOperationVo operationVo = new UserJurisdictionFBRIOperationVo(); - PropertyUtils.copyProperties(userJurisdiction,operationVo); + PropertyUtils.copyProperties(userOperation,operationVo); operationVo.setCheck(false);//默认为未选中 //查询该操作是否选中,如果选中则菜单也被选中 QueryWrapper queryWrapper5 = new QueryWrapper<>(); diff --git a/src/main/java/com/zh/project0512/serviceImpl/UserRoleServiceImpl.java b/src/main/java/com/zh/project0512/serviceImpl/UserRoleServiceImpl.java index 4eff51c..064cbb8 100644 --- a/src/main/java/com/zh/project0512/serviceImpl/UserRoleServiceImpl.java +++ b/src/main/java/com/zh/project0512/serviceImpl/UserRoleServiceImpl.java @@ -12,8 +12,10 @@ import com.zh.project0512.model.dto.UserRoleUpdateDTO; import com.zh.project0512.model.vo.UserPointsRecordListVo; import com.zh.project0512.model.vo.UserRoleListVo; import com.zh.project0512.service.IUserRoleService; +import com.zh.project0512.utils.BizException; import com.zh.project0512.utils.PropertyUtils; import com.zh.project0512.utils.page.PageInfo; +import com.zh.project0512.utils.result.HttpStatusEnum; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -61,7 +63,7 @@ public class UserRoleServiceImpl implements IUserRoleService { public boolean update(UserRoleUpdateDTO userRoleUpdateDTO) { UserRole userRole = userRoleMapper.selectById(userRoleUpdateDTO.getId()); if (userRole == null){ - throw new RuntimeException("记录不存在"); + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"记录不存在"); } userRole.setName(userRoleUpdateDTO.getName()); diff --git a/src/main/java/com/zh/project0512/utils/BizException.java b/src/main/java/com/zh/project0512/utils/BizException.java new file mode 100644 index 0000000..8db4d4c --- /dev/null +++ b/src/main/java/com/zh/project0512/utils/BizException.java @@ -0,0 +1,26 @@ +package com.zh.project0512.utils; + +import com.zh.project0512.utils.result.HttpStatusEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class BizException extends RuntimeException{ + private static final long serialVersionUID = 1L; + + private Integer code; + private String message; + + public BizException(HttpStatusEnum httpStatusEnum) { + this.code = httpStatusEnum.code(); + this.message = httpStatusEnum.reasonPhraseCN(); + } + + public BizException(HttpStatusEnum httpStatusEnum, String message) { + this.code = httpStatusEnum.code(); + this.message = message; + } +} diff --git a/src/main/java/com/zh/project0512/utils/PropertyUtils.java b/src/main/java/com/zh/project0512/utils/PropertyUtils.java index 79e8857..318cd78 100644 --- a/src/main/java/com/zh/project0512/utils/PropertyUtils.java +++ b/src/main/java/com/zh/project0512/utils/PropertyUtils.java @@ -46,7 +46,7 @@ public class PropertyUtils { } } } catch (Exception e) { - throw new RuntimeException("PropertyUtils 属性转换错误"); + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误"); // throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误"); } @@ -89,8 +89,7 @@ public class PropertyUtils { } } } catch (Exception e) { - throw new RuntimeException("PropertyUtils 属性转换错误"); -// throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误"); + throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"PropertyUtils 属性转换错误"); } } diff --git a/src/main/java/com/zh/project0512/utils/RestExceptionHandler.java b/src/main/java/com/zh/project0512/utils/RestExceptionHandler.java index bb691f0..15681db 100644 --- a/src/main/java/com/zh/project0512/utils/RestExceptionHandler.java +++ b/src/main/java/com/zh/project0512/utils/RestExceptionHandler.java @@ -9,8 +9,10 @@ import org.springframework.validation.BindException; import org.springframework.validation.ObjectError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice; +import javax.servlet.http.HttpServletRequest; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.ValidationException; @@ -58,4 +60,17 @@ public class RestExceptionHandler { } return new ResponseEntity<>(result,HttpStatus.BAD_REQUEST); } + + /** + * 处理自定义的业务异常 + * @param req 请求 + * @param e 异常 + * @return + */ + @ExceptionHandler(value = BizException.class) + @ResponseBody + public Result bizExceptionHandler(HttpServletRequest req, BizException e){ +// log.error("发生业务异常!原因是:{}",e.getMessage()); + return Result.fail(e.getCode(),e.getMessage()); + } } diff --git a/src/main/java/com/zh/project0512/utils/result/Result.java b/src/main/java/com/zh/project0512/utils/result/Result.java index 3d515ce..cfda21c 100644 --- a/src/main/java/com/zh/project0512/utils/result/Result.java +++ b/src/main/java/com/zh/project0512/utils/result/Result.java @@ -81,4 +81,7 @@ public class Result { return new Result(false, httpStatusEnum.code(), msg); } + public static Result fail(int code, String msg) { + return new Result(false, code, msg); + } }