diff --git a/coolstore-partner-service/coolstore-partner-service.iml b/coolstore-partner-service/coolstore-partner-service.iml
index 8b2bb5d5c..a2ae95c30 100644
--- a/coolstore-partner-service/coolstore-partner-service.iml
+++ b/coolstore-partner-service/coolstore-partner-service.iml
@@ -168,5 +168,7 @@
+
+
\ No newline at end of file
diff --git a/coolstore-partner-service/pom.xml b/coolstore-partner-service/pom.xml
index 3b9d0f66a..eea141c69 100644
--- a/coolstore-partner-service/pom.xml
+++ b/coolstore-partner-service/pom.xml
@@ -72,6 +72,14 @@
com.aliyun
ocr20191230
+
+ org.aspectj
+ aspectjrt
+
+
+ org.aspectj
+ aspectjweaver
+
\ No newline at end of file
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java
new file mode 100644
index 000000000..1f1cc1c27
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java
@@ -0,0 +1,66 @@
+package com.cool.store.mq;
+
+
+import com.aliyun.openservices.ons.api.Constants;
+import com.aliyun.openservices.ons.api.Message;
+import com.cool.store.constants.CommonConstants;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 切面处理类,操作日志异常日志记录处理
+ * @author jiangjixiang
+ */
+@Aspect
+@Component
+@Slf4j
+public class RocketMqLogAspect {
+
+
+ /**
+ * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
+ */
+ @Pointcut(value = "execution(public * com.cool.store.mq.consumer.listener..*.consume(..))")
+ public void rocketMqMdc() {
+ }
+
+ /**
+ * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+ *
+ * @param joinPoint 切入点
+ * @param keys 返回结果
+ */
+ @Before(value = "rocketMqMdc()")
+ public void mqBeforeLog(JoinPoint joinPoint) {
+ try {
+ Object[] args = joinPoint.getArgs();
+ Message message = (Message)args[0];
+ String traceId = message.getMsgID() + Constants.TOPIC_PARTITION_SEPARATOR + message.getReconsumeTimes();
+ Map context = MDC.getCopyOfContextMap();
+ if(Objects.isNull(context)){
+ MDC.put(CommonConstants.REQUEST_ID, traceId);
+ }
+ } catch (IllegalArgumentException e) {
+ log.info("MDC mqBeforeLog", e);
+ }
+ }
+
+
+ @AfterReturning(value = "rocketMqMdc()")
+ public void doAfterReturning(JoinPoint joinPoint){
+ try {
+ MDC.clear();
+ } catch (Exception e) {
+ log.info("MDC doAfterReturning", e);
+ }
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java
index f8a02ab6d..0a7bf8b6c 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java
@@ -1,6 +1,7 @@
package com.cool.store.service;
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
+import com.cool.store.exception.ApiException;
import com.cool.store.vo.cuser.IdentityCardInfoVO;
/**
@@ -23,6 +24,6 @@ public interface AliyunService {
* @param faceImageUrl
* @return
*/
- IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl);
+ IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException;
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java
index 00df38d16..0d171c9f1 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java
@@ -6,11 +6,10 @@ import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeRe
import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeResponse;
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponse;
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody;
-import com.aliyun.tea.TeaException;
-import com.aliyun.tea.TeaModel;
import com.aliyun.teaopenapi.models.Config;
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.service.AliyunService;
import com.cool.store.vo.cuser.IdentityCardInfoVO;
@@ -62,7 +61,7 @@ public class AliyunServiceImpl implements AliyunService {
}
@Override
- public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) {
+ public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException {
//todo zcb ak sk替换
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1")
@@ -94,14 +93,17 @@ public class AliyunServiceImpl implements AliyunService {
return result;
} catch (com.aliyun.tea.TeaException e) {
log.error("身份证解析报错TeaException:{}", e);
+ throw new ApiException(e.getMessage());
} catch (MalformedURLException e) {
log.error("身份证解析报错MalformedURLException:{}", e);
+ throw new ApiException(e.getMessage());
} catch (IOException e) {
log.error("身份证解析报错IOException:{}", e);
+ throw new ApiException(e.getMessage());
} catch (Exception e) {
log.error("身份证解析报错Exception:{}", e);
+ throw new ApiException(e.getMessage());
}
- return null;
}
public static String convertDate(String date, String format) {
diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml
index af0ff3164..a2e227e0b 100644
--- a/coolstore-partner-webb/coolstore-partner-webb.iml
+++ b/coolstore-partner-webb/coolstore-partner-webb.iml
@@ -119,6 +119,8 @@
+
+
diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java
index 25b570df4..aeb9c1d94 100644
--- a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java
+++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java
@@ -1,14 +1,17 @@
package com.cool.store.config;
import com.alibaba.fastjson.JSON;
+import com.cool.store.constants.CommonConstants;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.response.ResponseResult;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.context.LoginUserInfo;
+import com.cool.store.utils.UUIDUtils;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;
@@ -67,6 +70,7 @@ public class TokenValidateFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpServletRequest reqs = (HttpServletRequest) servletRequest;
String uri = reqs.getRequestURI();
@@ -109,6 +113,7 @@ public class TokenValidateFilter implements Filter {
filterChain.doFilter(servletRequest, servletResponse);
} finally {
CurrentUserHolder.removeUser();
+ MDC.clear();
}
}
diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml
index 9cfa8ce03..f6dc12615 100644
--- a/coolstore-partner-webc/coolstore-partner-webc.iml
+++ b/coolstore-partner-webc/coolstore-partner-webc.iml
@@ -117,6 +117,8 @@
+
+
diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java
index 1bb596309..f76d54ea9 100644
--- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java
+++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java
@@ -2,6 +2,7 @@ package com.cool.store.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.cool.store.constants.CommonConstants;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.response.ResponseResult;
@@ -9,9 +10,11 @@ import com.cool.store.service.WechatMiniAppService;
import com.cool.store.utils.AesUtil;
import com.cool.store.utils.Md5Utils;
import com.cool.store.utils.Sha1Utils;
+import com.cool.store.utils.UUIDUtils;
import com.cool.store.vo.PartnerUserInfoVO;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;
@@ -46,7 +49,9 @@ public class SignValidateFilter implements Filter {
private static List patternList =
Lists.newArrayList("/web/check/ok","/check/ok",
- "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig","/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
+ "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**",
+ "/partner/mini/program/oss/getUploadFileConfig",
+ "/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
"/**/swagger*/**", "/**/webjars/**");
@@ -73,6 +78,7 @@ public class SignValidateFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpServletRequest request = (HttpServletRequest) servletRequest;
String uri = request.getRequestURI();
@@ -101,8 +107,7 @@ public class SignValidateFilter implements Filter {
// 前后端验签不等
if (!newSign.equals(sign)) {
response.setStatus(HttpStatus.OK.value());
- response.getWriter().write(JSON.toJSONString(
- ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
+ response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
return;
}
PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, openid);
@@ -116,6 +121,7 @@ public class SignValidateFilter implements Filter {
filterChain.doFilter(servletRequest, servletResponse);
} finally {
PartnerUserHolder.removeUser();
+ MDC.clear();
}
}
diff --git a/pom.xml b/pom.xml
index 2522598c4..928a3d908 100644
--- a/pom.xml
+++ b/pom.xml
@@ -186,6 +186,16 @@
ocr20191230
1.0.26
+
+ org.aspectj
+ aspectjrt
+ 1.9.5
+
+
+ org.aspectj
+ aspectjweaver
+ 1.9.5
+