common增加seata异常处理

This commit is contained in:
ajaxfan
2021-03-19 11:37:57 +08:00
parent 22d4a3f6d7
commit d3c4b23e03
5 changed files with 45 additions and 17 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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<UploadStreamData> data;

View File

@ -49,6 +49,12 @@
<groupId>com.chinaunicom.ebtp</groupId>
<artifactId>mall-ebtp-cloud-security-starter</artifactId>
</dependency>
<dependency>
<groupId>com.chinaunicom.ebtp</groupId>
<artifactId>mall-ebtp-cloud-seata-starter</artifactId>
<optional>true</optional>
</dependency>
<!--普罗米修斯 -->
<dependency>

View File

@ -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<String> 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());
}
/**
* 参数异常