From d3c4b23e03f45163797a54d377fef3b3a0787ce4 Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Fri, 19 Mar 2021 11:37:57 +0800 Subject: [PATCH] =?UTF-8?q?common=E5=A2=9E=E5=8A=A0seata=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdk/api/DefaultAttachmentClient.java | 4 +- .../attachment/sdk/vo/down/DownStream.java | 2 +- .../sdk/vo/upload/UploadStream.java | 2 +- uboot-common/pom.xml | 6 +++ .../BusinessExceptionHandlerAdvice.java | 48 ++++++++++++++----- 5 files changed, 45 insertions(+), 17 deletions(-) diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java index bd14b4b..2e26151 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/api/DefaultAttachmentClient.java @@ -197,7 +197,7 @@ public class DefaultAttachmentClient implements AttachmentClient { String res = documentCenterService.upload("ebtp-mall-cloud", businessId, fileConvertor.toMultipartFile(file)); - log.debug(res); + log.info("document center upload result: {}", res); return modelConvertor.toUploadObject(res); } @@ -215,7 +215,7 @@ public class DefaultAttachmentClient implements AttachmentClient { String res = documentCenterService.upload("ebtp-mall-cloud", businessId, fileConvertor.toMultipartFile(filename, array)); - log.debug(res); + log.info("document center upload result: {}", res); return modelConvertor.toUploadObject(res); } diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/down/DownStream.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/down/DownStream.java index df61c5b..ce2a52e 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/down/DownStream.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/down/DownStream.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class DownStream { - private Integer code; + private String code; private Boolean success; private String message; private DownStreamData data; diff --git a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/upload/UploadStream.java b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/upload/UploadStream.java index ca0b017..af3b7fc 100644 --- a/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/upload/UploadStream.java +++ b/mall-ebtp-cloud-attachment-sdk/src/main/java/com/chinaunicom/ebtp/mall/cloud/attachment/sdk/vo/upload/UploadStream.java @@ -7,7 +7,7 @@ import lombok.Data; @Data public class UploadStream { - private Integer code; + private String code; private Boolean success; private String message; private List data; diff --git a/uboot-common/pom.xml b/uboot-common/pom.xml index c109f01..31ddff0 100644 --- a/uboot-common/pom.xml +++ b/uboot-common/pom.xml @@ -49,6 +49,12 @@ com.chinaunicom.ebtp mall-ebtp-cloud-security-starter + + + com.chinaunicom.ebtp + mall-ebtp-cloud-seata-starter + true + diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvice.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvice.java index ea3313f..b81a9f1 100644 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvice.java +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvice.java @@ -1,18 +1,20 @@ package com.chinaunicom.mall.ebtp.common.exception.service; -import cn.hutool.core.convert.Convert; -import cn.hutool.core.exceptions.ExceptionUtil; -import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; -import com.chinaunicom.mall.ebtp.common.exception.entity.BusinessException; -import com.chinaunicom.mall.ebtp.common.util.JsonUtils; -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang3.StringUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.dao.DataAccessException; import org.springframework.dao.DuplicateKeyException; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.http.HttpStatus; +import org.springframework.transaction.TransactionSystemException; import org.springframework.validation.BindException; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; @@ -25,11 +27,16 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.exception.entity.BusinessException; +import com.chinaunicom.mall.ebtp.common.util.JsonUtils; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.exceptions.ExceptionUtil; +import io.seata.core.context.RootContext; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * 异常处理 @@ -245,6 +252,21 @@ public class BusinessExceptionHandlerAdvice { // body.put("path", request.getRequestURI()); return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常:" + exception.getMessage(), Convert.toStr(body)); } + + @ExceptionHandler({TransactionSystemException.class}) + @ResponseStatus(HttpStatus.BAD_REQUEST) + public BaseResponse handleTransactionSystemException(HttpServletRequest request, TransactionSystemException exception) { + log.info(ExceptionUtil.stacktraceToString(exception)); + if (((String)Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) { + String xid = RootContext.getXID(); + if (StringUtils.isNotEmpty(xid)) { + RootContext.unbind(); + log.debug("TransactionSystemException ----- suspending current transaction,xid = {}", xid); + } + } + + return BaseResponse.fail("系统繁忙,请重试", exception.getMessage()); + } /** * 参数异常