Selaa lähdekoodia

数据流向记录

ZHOUTD 1 vuosi sitten
vanhempi
commit
3f07510e86

+ 9 - 0
xzl-admin/src/main/java/com/xzl/web/controller/DataGovernanceController.java

@@ -1,8 +1,11 @@
 package com.xzl.web.controller;
 
+import com.xzl.web.model.common.Result;
 import com.xzl.web.model.dataGovernance.dto.CreateTableDTO;
 import com.xzl.web.model.dataGovernance.dto.DataReplicationParam;
+import com.xzl.web.model.dataGovernance.dto.SysDataLogQueryParam;
 import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+import com.xzl.web.model.dataGovernance.entity.SysDataLog;
 import com.xzl.web.model.dataGovernance.entity.TableInfo;
 import com.xzl.web.service.DataGovernanceService;
 import org.slf4j.Logger;
@@ -69,4 +72,10 @@ public class DataGovernanceController {
         return dataGovernanceService.dataReplication(param);
     }
 
+    @RequestMapping(value = "/getDataLog")
+    public Result<SysDataLog> getDataLog(@RequestBody SysDataLogQueryParam param){
+        return dataGovernanceService.getDataLog(param);
+    }
+
+
 }

+ 5 - 0
xzl-admin/src/main/java/com/xzl/web/mapper/DataGovernanceMapper.java

@@ -3,6 +3,7 @@ package com.xzl.web.mapper;
 import com.xzl.web.model.dataGovernance.dto.CreateTableDTO;
 import com.xzl.web.model.dataGovernance.dto.DataReplicationParam;
 import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+import com.xzl.web.model.dataGovernance.entity.SysDataLog;
 import com.xzl.web.model.dataGovernance.entity.TableInfo;
 import com.xzl.web.model.dataGovernance.entity.TableStructure;
 import org.apache.ibatis.annotations.Mapper;
@@ -32,4 +33,8 @@ public interface DataGovernanceMapper {
 
     void dataReplication(DataReplicationParam param);
 
+    Integer getSysDataLogCount(Map<String,String> param);
+
+    List<SysDataLog> getSysDataLogList(Map<String,String> param);
+
 }

+ 9 - 0
xzl-admin/src/main/java/com/xzl/web/model/common/PageParam.java

@@ -0,0 +1,9 @@
+package com.xzl.web.model.common;
+
+import lombok.Data;
+
+@Data
+public class PageParam {
+    private Integer pageNum;
+    private Integer pageSize;
+}

+ 12 - 0
xzl-admin/src/main/java/com/xzl/web/model/common/Result.java

@@ -0,0 +1,12 @@
+package com.xzl.web.model.common;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class Result <T> {
+    private List<T> tableData;
+    private PageParam pageParam;
+    private Integer count;
+}

+ 10 - 0
xzl-admin/src/main/java/com/xzl/web/model/dataGovernance/dto/SysDataLogQueryParam.java

@@ -0,0 +1,10 @@
+package com.xzl.web.model.dataGovernance.dto;
+
+import com.xzl.web.model.common.PageParam;
+import lombok.Data;
+
+@Data
+public class SysDataLogQueryParam {
+    private PageParam pageParam;
+    private String actionType;
+}

+ 15 - 0
xzl-admin/src/main/java/com/xzl/web/model/dataGovernance/entity/SysDataLog.java

@@ -0,0 +1,15 @@
+package com.xzl.web.model.dataGovernance.entity;
+
+import lombok.Data;
+
+@Data
+public class SysDataLog {
+    private String id;
+    private String databaseName;
+    private String tableName;
+    private String actionType;
+    private String action;
+    private String updateCount;
+    private String dataContent;
+    private String createTime;
+}

+ 5 - 0
xzl-admin/src/main/java/com/xzl/web/service/DataGovernanceService.java

@@ -1,8 +1,11 @@
 package com.xzl.web.service;
 
+import com.xzl.web.model.common.Result;
 import com.xzl.web.model.dataGovernance.dto.CreateTableDTO;
 import com.xzl.web.model.dataGovernance.dto.DataReplicationParam;
+import com.xzl.web.model.dataGovernance.dto.SysDataLogQueryParam;
 import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
+import com.xzl.web.model.dataGovernance.entity.SysDataLog;
 import com.xzl.web.model.dataGovernance.entity.TableInfo;
 
 import java.util.List;
@@ -27,4 +30,6 @@ public interface DataGovernanceService {
     List<Map> getTableData(String tableName);
 
     Map<String, String> dataReplication(DataReplicationParam param);
+
+    Result<SysDataLog> getDataLog(SysDataLogQueryParam param);
 }

+ 26 - 4
xzl-admin/src/main/java/com/xzl/web/service/impl/DataGovernanceServiceImpl.java

@@ -2,12 +2,12 @@ package com.xzl.web.service.impl;
 
 
 import com.xzl.web.mapper.DataGovernanceMapper;
+import com.xzl.web.model.common.PageParam;
+import com.xzl.web.model.common.Result;
 import com.xzl.web.model.dataGovernance.dto.CreateTableDTO;
 import com.xzl.web.model.dataGovernance.dto.DataReplicationParam;
-import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
-import com.xzl.web.model.dataGovernance.entity.TableColumnParam;
-import com.xzl.web.model.dataGovernance.entity.TableInfo;
-import com.xzl.web.model.dataGovernance.entity.TableStructure;
+import com.xzl.web.model.dataGovernance.dto.SysDataLogQueryParam;
+import com.xzl.web.model.dataGovernance.entity.*;
 import com.xzl.web.service.DataGovernanceService;
 import org.mybatis.spring.SqlSessionTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -195,6 +195,28 @@ public class DataGovernanceServiceImpl implements DataGovernanceService {
         return result;
     }
 
+    @Override
+    public Result<SysDataLog> getDataLog(SysDataLogQueryParam param) {
+        Result<SysDataLog> result= new Result<>();
+        PageParam pageParam = param.getPageParam();
+        result.setPageParam(pageParam);
+        Map<String,String> queryParam=new HashMap<>();
+        Integer page = null;
+        if(pageParam.getPageNum()==1){
+            page=0;
+        }else{
+            page=(pageParam.getPageNum()-1) * pageParam.getPageSize()-1;
+        }
+        queryParam.put("page", String.valueOf(page));
+        queryParam.put("pageSize",String.valueOf(pageParam.getPageSize()));
+        queryParam.put("actionType", param.getActionType());
+        Integer logCount = dataGovernanceMapper.getSysDataLogCount(queryParam);
+        result.setCount(logCount);
+        List<SysDataLog> logList = dataGovernanceMapper.getSysDataLogList(queryParam);
+        result.setTableData(logList);
+        return result;
+    }
+
 
     private Boolean verifySQLName(String text){
         return text.isEmpty() || !text.matches("^[a-zA-Z_][a-zA-Z0-9_]{0,63}$");

+ 31 - 0
xzl-admin/src/main/resources/mapper/DataGovernanceMapper.xml

@@ -52,6 +52,37 @@
         ORDER BY ORDINAL_POSITION
     </select>
 
+    <select id="getSysDataLogCount" resultType="int" parameterType="map">
+        select count(1)
+        from sys_data_log
+        <where>
+            <if test="actionType != ''">action_type = #{actionType}</if>
+        </where>
+    </select>
+
+    <select id="getSysDataLogList" resultType="com.xzl.web.model.dataGovernance.entity.SysDataLog" parameterType="map">
+        SELECT
+               LOG_ID AS "id",
+               DATABASE_NAME AS "databaseName",
+               TABLE_NAME AS "tableName",
+               ACTION_TYPE AS "actionType",
+               CASE ACTION_TYPE
+                   WHEN 0 THEN "新增"
+                   WHEN 1 THEN "修改"
+                   WHEN 2 THEN "删除"
+               END AS "action",
+               UPDATE_COUNT AS "updateCount",
+               DATA_CONTENT AS "dataContent",
+               CREATE_TIME AS "createTime"
+        FROM
+               SYS_DATA_LOG
+        <where>
+            <if test="actionType != ''">action_type = #{actionType}</if>
+        </where>
+        ORDER BY CREATE_TIME DESC
+        LIMIT ${page},${pageSize}
+    </select>
+
     <update id="createDatabase" parameterType="string">
         CREATE DATABASE IF NOT EXISTS ${databaseName}
         DEFAULT CHARACTER SET utf8mb4

+ 134 - 0
xzl-ui/src/views/dataGovernance/dataFlowDirectionRecord.vue

@@ -0,0 +1,134 @@
+<template>
+  <div>
+    <div class="app-container" style="padding-left: 20px;width: 100%;height: 60px;">
+      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
+        <el-form-item label="操作类型:" prop="actionType">
+          <el-select v-model="queryParams.actionType" clearable>
+            <el-option
+              v-for="item in actionTypeOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item><el-button @click="queryData">查询</el-button></el-form-item>
+      </el-form>
+
+    </div>
+    <el-table
+      :data="data.tableData"
+      border
+      stripe
+      :height="pageHeight"
+      size="medium"
+    >
+      <el-table-column
+        align="center"
+        type="index"
+        label="序号"
+        width="100">
+      </el-table-column>
+      <el-table-column
+        prop="databaseName"
+        label="数据库"
+        width="220">
+      </el-table-column>
+      <el-table-column
+        prop="tableName"
+        label="数据表"
+        width="220">
+      </el-table-column>
+      <el-table-column
+        prop="action"
+        label="操作类型"
+        width="220">
+      </el-table-column>
+      <el-table-column
+        prop="updateCount"
+        label="更新行数"
+        width="220">
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        label="操作时间">
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handlePageChange"
+      :current-page="data.pageParam.pageNum"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="data.pageParam.pageSize"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="data.count"
+      style="margin-left: 20px"
+    >
+    </el-pagination>
+  </div>
+</template>
+<script>
+import request from '@/utils/request'
+
+export default {
+  data() {
+    return {
+      queryParams: {
+        pageParam:{
+          pageNum: 1,
+          pageSize: 10
+        },
+        actionType: ""
+      },
+      actionTypeOptions: [
+        {value: "0", label: "新增"},
+        {value: "1", label: "修改"},
+        {value: "2", label: "删除"}
+      ],
+      map: null,
+      data:{
+        tableData:[
+          {
+            id:"",
+            databaseName:"",
+            tableName:"",
+            action:"",
+            updateCount:"",
+            createTime:""
+          }
+        ],
+        pageParam:{
+          pageNum: 1,
+          pageSize: 10
+        },
+        count:0,
+      },
+      pageHeight:window.outerHeight*0.64
+    }
+  },
+  mounted() {
+    this.queryData();
+  },
+  methods: {
+    queryData() {
+      const t=this;
+      t.queryParams.pageParam=t.data.pageParam;
+      request({
+        url: '/dataGovernance/getDataLog',
+        method: 'post',
+        data: t.queryParams
+      }).then(function (res) {
+        t.data=res;
+      })
+    },
+    handleSizeChange(val){
+      this.data.pageParam.pageSize=val;
+      this.queryData()
+    },
+    handlePageChange(val){
+      this.data.pageParam.pageNum=val;
+      this.queryData()
+    }
+  }
+};
+</script>