From 0e6ed51eb2150d18749fd54453f4fc827a87b1a5 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 19 Nov 2020 10:01:41 +0800
Subject: [PATCH] 增加自动创建history天表任务

---
 src/main/java/com/moral/task/HistoryTableCreatAndDeleteTask.java |   36 ++++++++++++++++++
 /dev/null                                                        |   36 ------------------
 src/main/java/com/moral/service/HistoryService.java              |    2 +
 src/main/java/com/moral/service/impl/HistoryServiceImpl.java     |    5 ++
 src/main/java/com/moral/mapper/HistoryMapper.java                |    2 +
 src/main/resources/mapper/HistoryMapper.xml                      |   12 ++++++
 6 files changed, 57 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index 07beec2..ce7c160 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -33,4 +33,6 @@
 
     void deletePartition(@Param("p") String p);
 
+    void createHistoryTable(@Param("yearMonthDay") String yearMonthDay);
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/HistoryService.java b/src/main/java/com/moral/service/HistoryService.java
index d56b7a6..2b226a8 100644
--- a/src/main/java/com/moral/service/HistoryService.java
+++ b/src/main/java/com/moral/service/HistoryService.java
@@ -14,4 +14,6 @@
     int deleteHistoryData(String oldTime);
 
     void deletePartition(String p);
+
+    void createHistoryTable(String yearMonthDay);
 }
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index ab676cd..25986c4 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -36,4 +36,9 @@
     public void deletePartition(String p) {
         historyMapper.deletePartition(p);
     }
+
+    @Override
+    public void createHistoryTable(String yearMonthDay) {
+        historyMapper.createHistoryTable(yearMonthDay);
+    }
 }
diff --git a/src/main/java/com/moral/task/HistoryTableCreatAndDeleteTask.java b/src/main/java/com/moral/task/HistoryTableCreatAndDeleteTask.java
new file mode 100644
index 0000000..654130e
--- /dev/null
+++ b/src/main/java/com/moral/task/HistoryTableCreatAndDeleteTask.java
@@ -0,0 +1,36 @@
+package com.moral.task;
+
+import javax.annotation.Resource;
+
+import com.moral.service.HistoryService;
+import com.moral.util.DateUtil;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Component
+public class HistoryTableCreatAndDeleteTask {
+    private static transient Logger logger = LoggerFactory.getLogger(HistoryTableInsertTask.class);
+    @Resource
+    private HistoryService historyService;
+
+    @XxlJob("deleteHitoryTable")
+    public ReturnT deleteHistoryTable(String param) {
+       return new ReturnT(200,"������������");
+    }
+
+    @XxlJob("createHistoryTable")
+    public ReturnT createHistoryTable(String param) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String yearMonthDay = sdf.format(DateUtil.rollHour(new Date(),24));
+        historyService.createHistoryTable(yearMonthDay);
+        return new ReturnT(200,"������������");
+    }
+
+}
diff --git a/src/main/java/com/moral/task/HistoryTableDeleteTask.java b/src/main/java/com/moral/task/HistoryTableDeleteTask.java
deleted file mode 100644
index 3912d7e..0000000
--- a/src/main/java/com/moral/task/HistoryTableDeleteTask.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.moral.task;
-
-import javax.annotation.Resource;
-
-import com.moral.service.HistoryService;
-import com.moral.util.DateUtil;
-import com.xxl.job.core.biz.model.ReturnT;
-import com.xxl.job.core.handler.annotation.XxlJob;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-@Component
-public class HistoryTableDeleteTask {
-    private static transient Logger logger = LoggerFactory.getLogger(HistoryTableInsertTask.class);
-    @Resource
-    private HistoryService historyService;
-
-    @XxlJob("deleteOldDate")
-    public ReturnT deleteOldData(String param) {
-        String p=DateUtil.getOldTime(8);
-        String s=DateUtil.getOldTime(7);
-        String[] ss=p.split("-");
-        p="p"+ss[0]+ss[1]+ss[2];
-        int i=historyService.deleteHistoryData(s);
-        if (i>0){
-            ReturnT returnT = new ReturnT(200, s+"������������������������");
-            historyService.deletePartition(p);
-            return returnT;
-        }else{
-            ReturnT returnT = new ReturnT(500, "������������������");
-            return returnT;
-        }
-    }
-}
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 80947b2..0b3770c 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -247,4 +247,16 @@
     <update id="deletePartition">
         ALTER table history drop PARTITION ${p};
     </update>
+
+    <update id="createHistoryTable" parameterType="String">
+        CREATE TABLE history_${yearMonthDay} (
+        `mac` varchar(20) DEFAULT NULL,
+        `value` json DEFAULT NULL,
+        `time` datetime DEFAULT NULL,
+        `version` int(11) DEFAULT NULL,
+        KEY `_idx_mac_time` (`mac`,`time`) USING BTREE,
+        KEY `_idx_mac` (`mac`) USING BTREE,
+        KEY `_idx_time` (`time`) USING BTREE
+        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0