From fb79ed8eed290ba8d3e731caaee5a7ca2ef57f50 Mon Sep 17 00:00:00 2001 From: XiaoHH <1431984546@qq.com> Date: Thu, 6 Jul 2023 19:02:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BC=82=E5=B8=B8=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PassengerVerificationServiceImpl.java | 13 ++++++--- .../web/advice/CommonControllerAdvice.java | 13 +++++++++ .../web/exception/RemoteInvokeException.java | 29 +++++++++++++++++++ .../impl/PassengerUserServiceImpl.java | 8 ++++- 4 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 common/common-web/src/main/java/com/greateme/web/exception/RemoteInvokeException.java diff --git a/api/api-passenger/src/main/java/com/greateme/passenger/service/impl/PassengerVerificationServiceImpl.java b/api/api-passenger/src/main/java/com/greateme/passenger/service/impl/PassengerVerificationServiceImpl.java index a8c9a12..94aee12 100644 --- a/api/api-passenger/src/main/java/com/greateme/passenger/service/impl/PassengerVerificationServiceImpl.java +++ b/api/api-passenger/src/main/java/com/greateme/passenger/service/impl/PassengerVerificationServiceImpl.java @@ -9,6 +9,7 @@ import com.greateme.verification.entity.dto.PassengerVerificationCodeDTO; import com.greateme.verification.entity.vo.CheckPhoneVerificationCodeVO; import com.greateme.verification.entity.vo.PassengerVerificationCodeVO; import com.greateme.verification.feign.VerificationCodeRemote; +import com.greateme.web.exception.RemoteInvokeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -59,8 +60,10 @@ public class PassengerVerificationServiceImpl implements PassengerVerificationSe log.info("成功生成验证码:{},验证码的token为:{}", passengerVerificationCode.getVerificationCode(), passengerVerificationCode.getVerificationToken()); return passengerVerificationCode.getVerificationToken(); } + } else { + log.error("获取验证码的时候发生了错误,错误码:{},错误信息:{}", passengerVerificationCodeEntity.getCode(), passengerVerificationCodeEntity.getMessage()); + throw new RemoteInvokeException("远程调用生成验证码时发生异常,异常消息:" + passengerVerificationCodeEntity.getMessage()); } - log.error("获取验证码的时候发生了错误,错误码:{},错误信息:{}", passengerVerificationCodeEntity.getCode(), passengerVerificationCodeEntity.getMessage()); return null; } @@ -76,9 +79,10 @@ public class PassengerVerificationServiceImpl implements PassengerVerificationSe ResponseEntity checkResult = verificationCodeRemote.checkPhoneVerificationCode(passengerVerificationCode); if (HttpStatus.SUCCESS.getCode() == checkResult.getCode()) { return checkResult.getData(); + } else { + log.error("判断验证码是否正确的是否发生了错误,错误码:{},错误信息:{}", checkResult.getCode(), checkResult.getMessage()); + throw new RemoteInvokeException("判断短信验证码时远程服务调用失败"); } - log.error("判断验证码是否正确的是否发生了错误,错误码:{},错误信息:{}", checkResult.getCode(), checkResult.getMessage()); - return null; } /** @@ -92,7 +96,8 @@ public class PassengerVerificationServiceImpl implements PassengerVerificationSe ResponseEntity loginOrRegisterResult = this.passengerUserRemote.loginOrRegister(passengerVerificationCode); if (HttpStatus.SUCCESS.getCode() == loginOrRegisterResult.getCode()) { return loginOrRegisterResult.getData(); + } else { + throw new RemoteInvokeException("登陆或注册时远程调用失败,失败消息:" + loginOrRegisterResult.getMessage()); } - return null; } } diff --git a/common/common-web/src/main/java/com/greateme/web/advice/CommonControllerAdvice.java b/common/common-web/src/main/java/com/greateme/web/advice/CommonControllerAdvice.java index 7a28d40..ada7439 100644 --- a/common/common-web/src/main/java/com/greateme/web/advice/CommonControllerAdvice.java +++ b/common/common-web/src/main/java/com/greateme/web/advice/CommonControllerAdvice.java @@ -1,6 +1,7 @@ package com.greateme.web.advice; import com.greateme.entity.respose.ResponseEntity; +import com.greateme.web.exception.RemoteInvokeException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -26,6 +27,18 @@ public class CommonControllerAdvice { */ private static final Logger log = LoggerFactory.getLogger(CommonControllerAdvice.class); + /** + * 处理远程调用错误 + * + * @param e 异常对象 + * @return 返回给前端的内容 + */ + @ExceptionHandler(RemoteInvokeException.class) + public ResponseEntity handleRemoteInvokeException(RemoteInvokeException e) { + log.error("远程请求时候发生错误", e); + return ResponseEntity.error(e.getMessage()); + } + /** * 所有异常的公共捕获类,兜底的方法 * diff --git a/common/common-web/src/main/java/com/greateme/web/exception/RemoteInvokeException.java b/common/common-web/src/main/java/com/greateme/web/exception/RemoteInvokeException.java new file mode 100644 index 0000000..c81a980 --- /dev/null +++ b/common/common-web/src/main/java/com/greateme/web/exception/RemoteInvokeException.java @@ -0,0 +1,29 @@ +package com.greateme.web.exception; + +/** + *

+ * 远程调用异常 + *

+ * + * @author XiaoHH + * @version 1.0.0 + * @date 2023-07-06 星期四 18:41:13 + * @file RemoteInvokeException.java + */ +public class RemoteInvokeException extends RuntimeException { + + /** + * 不带消息的远程调用异常,将使用默认消息 + */ + public RemoteInvokeException() { + super("远程调用失败"); + } + + /** + * 带消息的远程调用失败 + * @param message 消息内容 + */ + public RemoteInvokeException(String message) { + super(message); + } +} diff --git a/service/service-passenger-user/src/main/java/com/greateme/passenger/service/impl/PassengerUserServiceImpl.java b/service/service-passenger-user/src/main/java/com/greateme/passenger/service/impl/PassengerUserServiceImpl.java index 412cbbd..57c71bd 100644 --- a/service/service-passenger-user/src/main/java/com/greateme/passenger/service/impl/PassengerUserServiceImpl.java +++ b/service/service-passenger-user/src/main/java/com/greateme/passenger/service/impl/PassengerUserServiceImpl.java @@ -6,6 +6,8 @@ import com.greateme.passenger.service.PassengerUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.sql.SQLException; + /** *

* 乘客用户的业务处理类 @@ -37,6 +39,10 @@ public class PassengerUserServiceImpl implements PassengerUserService { // 没有这个用户,先创建一个 passengerUser = new PassengerUser().setPassengerPhone(passengerPhone).setPassengerGender((byte) 0); // 如果创建成功则返回新创建的用户,否则返回null - return this.passengerUserMapper.insertPassengerUser(passengerUser) > 0 ? this.passengerUserMapper.selectPassengerUserById(passengerUser.getId()) : null; + if (this.passengerUserMapper.insertPassengerUser(passengerUser) > 0) { + return this.passengerUserMapper.selectPassengerUserById(passengerUser.getId()); + } else { + throw new RuntimeException("操作数据库时出现异常"); + } } }