ソースを参照

新增迁移操作日志数据到历史表定时任务

zhulu 10 ヶ月 前
コミット
cfc8561440

+ 11 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteLogService.java

@@ -7,6 +7,7 @@ import com.xunmei.system.api.domain.SysLogininfor;
 import com.xunmei.system.api.domain.SysOperLog;
 import com.xunmei.system.api.factory.RemoteLogFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
@@ -38,4 +39,14 @@ public interface RemoteLogService
      */
     @PostMapping("/logininfor")
     public R<Boolean> saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 迁移操作日志到历史表
+     *
+     *
+     * @param source 请求来源
+     * @return 结果
+     */
+    @DeleteMapping("/operlog/transferToHistory")
+    public R<Boolean> transferOperLog(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteLogFallbackFactory.java

@@ -36,6 +36,11 @@ public class RemoteLogFallbackFactory implements FallbackFactory<RemoteLogServic
             {
                 return null;
             }
+
+            @Override
+            public R<Boolean> transferOperLog(String source) {
+                return null;
+            }
         };
 
     }

+ 29 - 0
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/OperTask.java

@@ -0,0 +1,29 @@
+package com.xunmei.job.task;
+
+import com.alibaba.fastjson.JSON;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.utils.uuid.UUID;
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.system.api.RemoteLogService;
+import com.xunmei.system.api.RemoteOrgService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component("OperTask")
+public class OperTask {
+
+    @Autowired
+    RemoteLogService logService;
+
+
+    public void transferOperLogToHistroy() {
+        log.info("开始处理 刷新冗余机构Path数据");
+        logService.transferOperLog(SecurityConstants.INNER);
+        log.info("刷新冗余机构Path 结束处理");
+    }
+
+}

+ 15 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysOperlogController.java

@@ -1,5 +1,6 @@
 package com.xunmei.system.controller;
 
+import cn.hutool.core.date.DateUtil;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -59,6 +61,19 @@ public class SysOperlogController extends BaseController
         return success();
     }
 
+//    @RequiresPermissions("system:operlog:remove")
+    @Log(title = "操作日志迁移到历史表", businessType = BusinessType.OTHER)
+    @InnerAuth
+    @DeleteMapping("/transferToHistory")
+    public AjaxResult transferOperLogToHistory()
+    {
+        // 迁移当前时间 3个月之前的操作日志到历史表
+        Date transferDate= DateUtil.offsetMonth(DateUtil.beginOfMonth(new Date()), -3);
+        operLogService.transferOperLogToHistory(transferDate);
+        return success();
+    }
+
+
     @InnerAuth
     @PostMapping
     public AjaxResult add(@RequestBody SysOperLog operLog)

+ 5 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysOperLogMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.system.api.domain.SysOperLog;
 import com.xunmei.system.domain.SysNotice;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -48,4 +49,8 @@ public interface SysOperLogMapper extends BaseMapper<SysOperLog>
      * 清空操作日志
      */
      void cleanOperLog();
+
+    void transferOperLogToHistory(Date transferDate);
+
+
 }

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysOperLogService.java

@@ -6,6 +6,7 @@ import com.xunmei.system.api.domain.SysLogininfor;
 import com.xunmei.system.api.domain.SysOperLog;
 import com.xunmei.system.domain.SysNotice;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -58,4 +59,6 @@ public interface ISysOperLogService extends IService<SysOperLog>
      * 清空操作日志
      */
     void cleanOperLog();
+
+    void transferOperLogToHistory(Date transferDate);
 }

+ 7 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOperLogServiceImpl.java

@@ -14,6 +14,7 @@ import com.xunmei.system.service.ISysOperLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -44,7 +45,7 @@ public class SysOperLogServiceImpl extends ServiceImpl<SysOperLogMapper, SysOper
         if(endTime != null){
             where.lambda().le(SysOperLog::getOperTime, DateUtils.parseDate(endTime));
         }
-
+        where.orderByDesc("oper_time");
         baseMapper.selectPage(page, where);
         return TableDataInfo.build(page);
     }
@@ -100,4 +101,9 @@ public class SysOperLogServiceImpl extends ServiceImpl<SysOperLogMapper, SysOper
     public void cleanOperLog() {
         operLogMapper.cleanOperLog();
     }
+
+    @Override
+    public void transferOperLogToHistory(Date transferDate) {
+        operLogMapper.transferOperLogToHistory(transferDate);
+    }
 }

+ 10 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOperLogMapper.xml

@@ -80,4 +80,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         truncate table sys_oper_log
     </update>
 
+	<insert id="transferOperLogToHistory">
+		INSERT INTO sys_oper_log_history SELECT
+			*
+		FROM
+			sys_oper_log
+		WHERE
+			oper_time &lt;= #{transferDate} ;
+		DELETE from sys_oper_log WHERE oper_time &lt;= #{transferDate} ;
+	</insert>
+
 </mapper>