package jnpf.exception; import cn.dev33.satoken.exception.IdTokenInvalidException; import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.exception.NotPermissionException; import cn.dev33.satoken.exception.NotRoleException; import jnpf.base.ActionResult; import jnpf.base.ActionResultCode; import jnpf.util.JsonUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestControllerAdvice; import java.util.List; import java.util.Map; @Slf4j @RestController @RestControllerAdvice public class ResultException { @ResponseBody @ExceptionHandler(value = LoginException.class) public ActionResult loginException(LoginException e) { return ActionResult.fail(ActionResultCode.Fail.getCode(), e.getMessage()); } @ResponseBody @ExceptionHandler(value = ImportException.class) public ActionResult loginException(ImportException e) { return ActionResult.fail(ActionResultCode.Fail.getCode(), e.getMessage()); } @ResponseBody @ExceptionHandler(value = DataException.class) public ActionResult dataException(DataException e) { return ActionResult.fail(ActionResultCode.Fail.getCode(), e.getMessage()); } @ResponseBody @ExceptionHandler(value = RuntimeException.class) public ActionResult dataException(RuntimeException e) { return ActionResult.fail(ActionResultCode.Fail.getCode(), e.getMessage()); } @ResponseBody @ExceptionHandler(value = IllegalArgumentException.class) public ActionResult dataException(IllegalArgumentException e) { return ActionResult.fail(ActionResultCode.Fail.getCode(), e.getMessage()); } @ResponseBody @ExceptionHandler(value = WorkFlowException.class) public ActionResult workFlowException(WorkFlowException e) { if (e.getCode() == 200) { List> list = JsonUtil.getJsonToListMap(e.getMessage()); return ActionResult.success(list); } else { return ActionResult.fail(e.getMessage()); } } @ResponseBody @ExceptionHandler(value = WxErrorException.class) public ActionResult wxErrorException(WxErrorException e) { return ActionResult.fail(e.getError().getErrorCode(), "操作过于频繁"); } @ResponseBody @ExceptionHandler(NotPermissionException.class) public ActionResult handleNotPermissionException(NotPermissionException e) { return ActionResult.fail(ActionResultCode.Fail.getCode(), "没有访问权限,请联系管理员授权"); } @ResponseBody @ExceptionHandler(NotRoleException.class) public ActionResult handleNotRoleException(NotRoleException e) { return ActionResult.fail(ActionResultCode.ValidateError.getCode(), "没有访问权限,请联系管理员授权"); } @ResponseBody @ExceptionHandler(NotLoginException.class) public ActionResult handleNotLoginException(NotLoginException e) { return ActionResult.fail(ActionResultCode.SessionOverdue.getCode(), "认证失败,无法访问系统资源"); } @ResponseBody @ExceptionHandler(IdTokenInvalidException.class) public ActionResult handleIdTokenInvalidException(IdTokenInvalidException e) { return ActionResult.fail(ActionResultCode.SessionOverdue.getCode(), "无效内部认证,无法访问系统资源"); } }