longz
2026-07-13 5882ba8863d77fdcc168b176c3ffb30e8a20556a
backend/src/main/java/com/sinata/appointment/common/GlobalExceptionHandler.java
@@ -35,16 +35,27 @@
    
    @ExceptionHandler(SaTokenException.class)
    public Result<Void> handleSaToken(SaTokenException e) {
        log.error("satoken error", e);
        if (e instanceof NotPermissionException){
            log.warn("satoken forbidden: {}", safeMessage(e));
            return ResultUtil.error(HttpBizCode.FORBIDDEN, "无权限访问");
        }
        if (e instanceof NotLoginException notLogin
                && NotLoginException.KICK_OUT.equals(notLogin.getType())) {
            log.warn("satoken unauthorized: type={} message={}", notLogin.getType(), safeMessage(e));
            return ResultUtil.error(HttpBizCode.UNAUTHORIZED, "账号已被禁用,请重新登录");
        }
        if (e instanceof NotLoginException notLogin) {
            log.warn("satoken unauthorized: type={} message={}", notLogin.getType(), safeMessage(e));
        return ResultUtil.error(HttpBizCode.UNAUTHORIZED, "账号信息已过期,请重新登录");
    }
        log.warn("satoken error: {} message={}", e.getClass().getSimpleName(), safeMessage(e));
        return ResultUtil.error(HttpBizCode.UNAUTHORIZED, "账号信息已过期,请重新登录");
    }
    private String safeMessage(Exception e) {
        String message = e.getMessage();
        return message == null || message.isBlank() ? "-" : message;
    }
    @ExceptionHandler(Exception.class)
    public Result<Void> handleOther(Exception e) {