diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/AuditLog/IAuditLogService.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/AuditLog/IAuditLogService.cs
new file mode 100644
index 0000000..00df510
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/AuditLog/IAuditLogService.cs
@@ -0,0 +1,17 @@
+using ATS.NonCustodial.AuditLogging.Dtos.Input;
+using ATS.NonCustodial.AuditLogging.Dtos.Output;
+
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.AuditLog
+{
+ ///
+ ///
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-04-25 16:23
+ public interface IAuditLogService
+ {
+ Task GetAsync(AuditLogFilterDto filters);
+
+ Task DeleteLogsOlderThanAsync(DateTime deleteOlderThan);
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/ILoginLogService.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/ILoginLogService.cs
new file mode 100644
index 0000000..fe2d3ae
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/ILoginLogService.cs
@@ -0,0 +1,27 @@
+using ATS.NonCustodial.Application.Contracts.Interfaces.Logs.LoginLog.Input;
+using ATS.NonCustodial.Shared.Common.UnifiedResults;
+
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.LoginLog
+{
+ ///
+ /// ¼־ӿ
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public interface ILoginLogService
+ {
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task GetPageAsync(LogGetPageDto input);
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task> AddAsync(LoginLogAddInput input);
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Input/LogGetPageDto.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Input/LogGetPageDto.cs
new file mode 100644
index 0000000..e3eb6a6
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Input/LogGetPageDto.cs
@@ -0,0 +1,25 @@
+using ATS.NonCustodial.Shared.Common.Dtos;
+
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.LoginLog.Input
+{
+ ///
+ ///
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public class LogGetPageDto : PageRequestBaseInput
+ {
+ ///
+ /// 操作者名称
+ ///
+ public string? OperatorName { get; set; }
+ ///
+ /// 手机型号
+ ///
+ public string? Device { get; set; }
+ ///
+ /// app
+ ///
+ public string? NickName { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Input/LoginLogAddInput.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Input/LoginLogAddInput.cs
new file mode 100644
index 0000000..a97bcae
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Input/LoginLogAddInput.cs
@@ -0,0 +1,75 @@
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.LoginLog.Input
+{
+ ///
+ /// 添加
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public class LoginLogAddInput
+ {
+ ///
+ /// 租户Id
+ ///
+ public long? TenantId { get; set; }
+
+ ///
+ /// 昵称
+ ///
+ public string? NickName { get; set; }
+
+ ///
+ /// IP
+ ///
+ public string? IP { get; set; }
+
+ ///
+ /// 浏览器
+ ///
+ public string? Browser { get; set; }
+
+ ///
+ /// 操作系统
+ ///
+ public string? Os { get; set; }
+
+ ///
+ /// 设备
+ ///
+ public string? Device { get; set; }
+
+ ///
+ /// 浏览器信息
+ ///
+ public string? BrowserInfo { get; set; }
+
+ ///
+ /// 耗时(毫秒)
+ ///
+ public long ElapsedMilliseconds { get; set; }
+
+ ///
+ /// 操作状态
+ ///
+ public bool? Status { get; set; }
+
+ ///
+ /// 操作消息
+ ///
+ public string? Msg { get; set; }
+
+ ///
+ /// 操作结果
+ ///
+ public string? Result { get; set; }
+
+ ///
+ /// 创建者Id
+ ///
+ public long? CreatedUserId { get; set; }
+
+ ///
+ /// 创建者
+ ///
+ public string? CreatedUserName { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Output/LoginLogListOutput.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Output/LoginLogListOutput.cs
new file mode 100644
index 0000000..53b28e5
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/LoginLog/Output/LoginLogListOutput.cs
@@ -0,0 +1,47 @@
+using ATS.NonCustodial.Domain.Shared.AggRootEntities;
+
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.LoginLog.Output
+{
+ ///
+ /// 登录日志输出Dto
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public class LoginLogListOutput : EntityFull
+ {
+ ///
+ /// 昵称
+ ///
+ public string? NickName { get; set; }
+
+ ///
+ /// IP
+ ///
+ public string? IP { get; set; }
+
+ ///
+ /// 浏览器
+ ///
+ public string? Browser { get; set; }
+
+ ///
+ /// 操作系统
+ ///
+ public string? Os { get; set; }
+
+ ///
+ /// 设备
+ ///
+ public string? Device { get; set; }
+
+ ///
+ /// 耗时(毫秒)
+ ///
+ public long ElapsedMilliseconds { get; set; }
+
+ ///
+ /// 操作消息
+ ///
+ public string? Msg { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/IOperationLogService.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/IOperationLogService.cs
new file mode 100644
index 0000000..b184156
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/IOperationLogService.cs
@@ -0,0 +1,34 @@
+using ATS.NonCustodial.Application.Contracts.Interfaces.Logs.LoginLog.Input;
+using ATS.NonCustodial.Application.Contracts.Interfaces.Logs.OprationLog.Input;
+using ATS.NonCustodial.Shared.Common.UnifiedResults;
+
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.OprationLog
+{
+ ///
+ /// ־ӿ
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public interface IOperationLogService
+ {
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task GetPageAsync(LogGetPageDto input);
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task AddAsync(OprationLogAddInput input);
+
+ ///
+ /// ҵ̨==>5־
+ ///
+ ///
+ Task OperationBusinessWorkbench();
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/Input/OprationLogAddInput.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/Input/OprationLogAddInput.cs
new file mode 100644
index 0000000..5957205
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/Input/OprationLogAddInput.cs
@@ -0,0 +1,85 @@
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.OprationLog.Input
+{
+ ///
+ /// 添加
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public class OprationLogAddInput
+ {
+ ///
+ /// 昵称
+ ///
+ public string? NickName { get; set; }
+
+ ///
+ /// 接口名称
+ ///
+ public string? ApiLabel { get; set; }
+
+ ///
+ /// 接口地址
+ ///
+ public string? ApiPath { get; set; }
+
+ ///
+ /// 接口提交方法
+ ///
+ public string? ApiMethod { get; set; }
+
+ ///
+ /// IP
+ ///
+ public string? IpAddress { get; set; }
+
+ ///
+ /// 浏览器
+ ///
+ public string? Browser { get; set; }
+
+ ///
+ /// 操作系统
+ ///
+ public string? Os { get; set; }
+
+ ///
+ /// 设备
+ ///
+ public string? Device { get; set; }
+
+ ///
+ /// 浏览器信息
+ ///
+ public string? BrowserInfo { get; set; }
+
+ ///
+ /// 耗时(毫秒)
+ ///
+ public long ElapsedMilliseconds { get; set; }
+
+ ///
+ /// 操作状态
+ ///
+ public bool? Status { get; set; }
+
+ ///
+ /// 操作消息
+ ///
+ public string? Msg { get; set; }
+
+ ///
+ /// 操作参数
+ ///
+ public string? Params { get; set; }
+
+ ///
+ /// 操作结果
+ ///
+ public string? Result { get; set; }
+
+ ///
+ /// 异常信息
+ ///
+ public string? Exception { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/Output/OprationLogListOutput.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/Output/OprationLogListOutput.cs
new file mode 100644
index 0000000..39a80fb
--- /dev/null
+++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Logs/OprationLog/Output/OprationLogListOutput.cs
@@ -0,0 +1,77 @@
+using ATS.NonCustodial.Domain.Shared.AggRootEntities;
+
+namespace ATS.NonCustodial.Application.Contracts.Interfaces.Logs.OprationLog.Output
+{
+ ///
+ /// OprationLogListOutput
+ ///
+ /// Author:mxg
+ /// CreatedTimed:2022-05-14 09:32 PM
+ public class OprationLogListOutput : EntityFull
+ {
+ ///
+ /// 昵称
+ ///
+ public string? NickName { get; set; }
+
+ ///
+ /// 接口名称
+ ///
+ public string? ApiLabel { get; set; }
+
+ ///
+ /// 接口地址
+ ///
+ public string? ApiPath { get; set; }
+
+ ///
+ /// 接口提交方法
+ ///
+ public string? ApiMethod { get; set; }
+
+ ///
+ /// IpAddress
+ ///
+ public string? IpAddress { get; set; }
+
+ ///
+ /// 浏览器
+ ///
+ public string? Browser { get; set; }
+
+ ///
+ /// 操作系统
+ ///
+ public string? Os { get; set; }
+
+ ///
+ /// 设备
+ ///
+ public string? Device { get; set; }
+
+ ///
+ /// 耗时(毫秒)
+ ///
+ public long ElapsedMilliseconds { get; set; }
+
+ ///
+ /// 操作消息
+ ///
+ public string? Msg { get; set; }
+
+ ///
+ /// 操作参数
+ ///
+ public string? Params { get; set; }
+
+ ///
+ /// 操作结果
+ ///
+ public string? Result { get; set; }
+
+ ///
+ /// 异常信息
+ ///
+ public string? Exception { get; set; }
+ }
+}
\ No newline at end of file