😎1、将记录数据校验日志调整为系统配置参数 2、同步更新

This commit is contained in:
zuohuaijun 2024-06-24 13:55:07 +08:00
parent 143c4992ff
commit d62a7b9cf1
4 changed files with 34 additions and 11 deletions

View File

@ -77,6 +77,11 @@ public class CommonConst
/// </summary>
public const string SysDomainLogin = "sys_domain_login";
/// <summary>
/// 开启记录数据校验日志
/// </summary>
public const string SysValidationLog = "sys_validation_log";
/// <summary>
/// 日志分组名称
/// </summary>

View File

@ -52,8 +52,8 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
}
var loggingMonitor = JSON.Deserialize<dynamic>(jsonStr);
// 记录数据校验日志
if (loggingMonitor.validation != null) return;
// 记录数据校验日志
if (loggingMonitor.validation != null && !await _sysConfigService.GetConfigValue<bool>(CommonConst.SysValidationLog)) return;
// 获取当前操作者
string account = "", realName = "", userId = "", tenantId = "";
@ -72,7 +72,13 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
}
}
string remoteIPv4 = loggingMonitor.remoteIPv4;
// 优先获取 X-Forwarded-For 头部信息携带的IP地址如nginx代理配置转发
var remoteIPv4 = ((JArray)loggingMonitor.requestHeaders).OfType<JObject>()
.FirstOrDefault(header => (string)header["key"] == "X-Forwarded-For")?["value"]?.ToString();
if (string.IsNullOrEmpty(remoteIPv4))
remoteIPv4 = loggingMonitor.remoteIPv4;
(string ipLocation, double? longitude, double? latitude) = GetIpAddress(remoteIPv4);
var browser = "";

View File

@ -29,13 +29,14 @@ public class SysConfigSeedData : ISqlSugarEntitySeedData<SysConfig>
new SysConfig{ Id=1300000000171, Name="刷新Token过期时间", Code="sys_refresh_token_expire", Value="20160", SysFlag=YesNoEnum.Y, Remark="刷新Token过期时间分钟一般 refresh_token 的有效时间 > 2 * access_token 的有效时间)", OrderNo=80, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000181, Name="发送异常日志邮件", Code="sys_error_mail", Value="True", SysFlag=YesNoEnum.Y, Remark="是否发送异常日志邮件", OrderNo=90, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000191, Name="开启域登录验证", Code="sys_domain_login", Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启域登录验证", OrderNo=100, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000192, Name="开启数据校验日志", Code="sys_validation_log", Value="True", SysFlag=YesNoEnum.Y, Remark="是否数据校验日志", OrderNo=110, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000211, Name="系统主标题", Code="sys_web_title", Value="Admin.NET", SysFlag=YesNoEnum.Y, Remark="系统主标题", OrderNo=110, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000221, Name="系统副标题", Code="sys_web_viceTitle", Value="Admin.NET", SysFlag=YesNoEnum.Y, Remark="系统副标题", OrderNo=120, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000231, Name="系统描述", Code="sys_web_viceDesc", Value="站在巨人肩膀上的 .NET 通用权限开发框架", SysFlag=YesNoEnum.Y, Remark="系统描述", OrderNo=130, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000241, Name="水印内容", Code="sys_web_watermark", Value="Admin.NET", SysFlag=YesNoEnum.Y, Remark="水印内容", OrderNo=140, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000251, Name="版权说明", Code="sys_web_copyright", Value="Copyright © 2021-present Admin.NET All rights reserved.", SysFlag=YesNoEnum.Y, Remark="版权说明", OrderNo=150, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000261, Name="系统图标", Code="sys_web_logo", Value="/Upload/logo.png", SysFlag=YesNoEnum.Y, Remark="系统图标", OrderNo=160, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000271, Name="ICP备案号", Code="sys_web_icp", Value="ICP备12345678号", SysFlag=YesNoEnum.Y, Remark="ICP备案号", OrderNo=170, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000271, Name="ICP备案号", Code="sys_web_icp", Value="ICP备12345678号", SysFlag=YesNoEnum.Y, Remark="ICP备案号", OrderNo=170, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
new SysConfig{ Id=1300000000281, Name="ICP地址", Code="sys_web_icpUrl", Value="https://beian.miit.gov.cn", SysFlag=YesNoEnum.Y, Remark="ICP地址", OrderNo=180, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
};
}

View File

@ -1,13 +1,12 @@
<template>
<el-card shadow="hover" header="更新记录">
<template #header>
<el-icon style="display: inline; vertical-align: middle"> <ele-Refresh /> </el-icon>
<span style=""> 更新记录 </span>
<el-button type="primary" icon="ele-Refresh" round @click="refresh">更新记录</el-button>
</template>
<div class="commit">
<div class="commit" v-loading="state.loading">
<el-timeline style="max-width: 600px" v-if="state.list.length > 0">
<el-timeline-item v-for="(item, index) in state.list" :key="index" :timestamp="item.commit.committer.date.replace(/[T+]/g, ' ')">
<el-link :href="item.html_url" target="_blank"> {{ item.commit.message }}</el-link>
<el-timeline-item v-for="(item, index) in state.list" :key="index" :timestamp="formatDate(new Date(item.commit.committer.date), 'YYYY-mm-dd HH:MM:SS')">
<el-link style="white-space: pre-line" :href="item.html_url" target="_blank"> {{ item.commit.message }}</el-link>
</el-timeline-item>
</el-timeline>
<el-empty v-else description="空"></el-empty>
@ -24,14 +23,15 @@ export default {
</script>
<script setup lang="ts" name="commit">
// import axios from 'axios';
import { reactive, onMounted } from 'vue';
import { formatDate } from '/@/utils/formatTime';
const state = reactive({
loading: false,
list: [] as any,
});
onMounted(() => {
const getList = () => {
axios({
method: 'get',
url: 'https://gitee.com/api/v5/repos/zuohuaijun/Admin.NET/commits',
@ -41,7 +41,18 @@ onMounted(() => {
},
}).then((res: any) => {
state.list = res.data;
state.loading = false;
});
};
const refresh = () => {
state.loading = true;
getList();
};
onMounted(() => {
state.loading = true;
getList();
});
</script>