😎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> /// </summary>
public const string SysDomainLogin = "sys_domain_login"; public const string SysDomainLogin = "sys_domain_login";
/// <summary>
/// 开启记录数据校验日志
/// </summary>
public const string SysValidationLog = "sys_validation_log";
/// <summary> /// <summary>
/// 日志分组名称 /// 日志分组名称
/// </summary> /// </summary>

View File

@ -52,8 +52,8 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
} }
var loggingMonitor = JSON.Deserialize<dynamic>(jsonStr); 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 = ""; 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); (string ipLocation, double? longitude, double? latitude) = GetIpAddress(remoteIPv4);
var browser = ""; 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=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=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=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=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=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=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=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=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=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") }, 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> <template>
<el-card shadow="hover" header="更新记录"> <el-card shadow="hover" header="更新记录">
<template #header> <template #header>
<el-icon style="display: inline; vertical-align: middle"> <ele-Refresh /> </el-icon> <el-button type="primary" icon="ele-Refresh" round @click="refresh">更新记录</el-button>
<span style=""> 更新记录 </span>
</template> </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 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-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 :href="item.html_url" target="_blank"> {{ item.commit.message }}</el-link> <el-link style="white-space: pre-line" :href="item.html_url" target="_blank"> {{ item.commit.message }}</el-link>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
<el-empty v-else description="空"></el-empty> <el-empty v-else description="空"></el-empty>
@ -24,14 +23,15 @@ export default {
</script> </script>
<script setup lang="ts" name="commit"> <script setup lang="ts" name="commit">
// import axios from 'axios';
import { reactive, onMounted } from 'vue'; import { reactive, onMounted } from 'vue';
import { formatDate } from '/@/utils/formatTime';
const state = reactive({ const state = reactive({
loading: false,
list: [] as any, list: [] as any,
}); });
onMounted(() => { const getList = () => {
axios({ axios({
method: 'get', method: 'get',
url: 'https://gitee.com/api/v5/repos/zuohuaijun/Admin.NET/commits', url: 'https://gitee.com/api/v5/repos/zuohuaijun/Admin.NET/commits',
@ -41,7 +41,18 @@ onMounted(() => {
}, },
}).then((res: any) => { }).then((res: any) => {
state.list = res.data; state.list = res.data;
state.loading = false;
}); });
};
const refresh = () => {
state.loading = true;
getList();
};
onMounted(() => {
state.loading = true;
getList();
}); });
</script> </script>