From 094a2ce35d60abd7ae28a7d9f9ec863ed4ac652d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 05 Mar 2021 10:27:56 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java |   30 +++++++++++++++
 src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java  |   11 +++++
 src/main/resources/mapper/platform/SysExceptionDetailDao.xml                    |    5 ++
 src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java             |   51 +++++++++++++++++++++++++
 4 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java
new file mode 100644
index 0000000..c3249aa
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java
@@ -0,0 +1,51 @@
+package com.xcong.excoin.common.aop;
+
+import com.xcong.excoin.common.system.bean.SysExceptionDetailEntity;
+import com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterThrowing;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.InetAddress;
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2021-03-05
+ **/
+@Slf4j
+@Aspect
+@Component
+public class ExceptionCatchAspect {
+
+    @Autowired
+    private SysExceptionDetailDao sysExceptionDetailDao;
+
+    @Pointcut("execution(* com.xcong.excoin..*.*(..))")
+    public void exceptionCatch() {
+    }
+
+    @AfterThrowing(pointcut = "exceptionCatch()", throwing = "ex")
+    public void afterThrows(JoinPoint jp, Exception ex) throws Exception {
+        SysExceptionDetailEntity exceptionData = new SysExceptionDetailEntity();
+        exceptionData.setCreateTime(new Date());
+        exceptionData.setMachine(InetAddress.getLocalHost().getHostName());
+        exceptionData.setAddress(InetAddress.getLocalHost().getHostAddress());
+        exceptionData.setExceptionMsg(printStackTraceToString(ex.fillInStackTrace()));
+        exceptionData.setSimpleMsg(ex.getMessage());
+        sysExceptionDetailDao.insert(exceptionData);
+        throw ex;
+    }
+
+    public String printStackTraceToString(Throwable t) {
+        StringWriter sw = new StringWriter();
+        t.printStackTrace(new PrintWriter(sw, true));
+        return sw.getBuffer().toString();
+    }
+}
diff --git a/src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java b/src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java
new file mode 100644
index 0000000..4e53e4b
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/common/system/bean/SysExceptionDetailEntity.java
@@ -0,0 +1,30 @@
+package com.xcong.excoin.common.system.bean;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2021-03-05
+ **/
+@Data
+@TableName("sys_exception_detail")
+public class SysExceptionDetailEntity {
+
+    @TableId(value = "id",type = IdType.AUTO)
+    private Long id;
+
+    private Date createTime;
+
+    private String machine;
+
+    private String simpleMsg;
+
+    private String exceptionMsg;
+
+    private String address;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java b/src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java
new file mode 100644
index 0000000..7d944ee
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/platform/dao/SysExceptionDetailDao.java
@@ -0,0 +1,11 @@
+package com.xcong.excoin.modules.platform.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.common.system.bean.SysExceptionDetailEntity;
+
+/**
+ * @author wzy
+ * @date 2021-03-05
+ **/
+public interface SysExceptionDetailDao extends BaseMapper<SysExceptionDetailEntity> {
+}
diff --git a/src/main/resources/mapper/platform/SysExceptionDetailDao.xml b/src/main/resources/mapper/platform/SysExceptionDetailDao.xml
new file mode 100644
index 0000000..21ac6c5
--- /dev/null
+++ b/src/main/resources/mapper/platform/SysExceptionDetailDao.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao">
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1