From 84a08806b9907a468e971d83be80048fb5fcb07c Mon Sep 17 00:00:00 2001
From: qwj <qwjzorro@163.com>
Date: 星期三, 26 七月 2023 15:32:49 +0800
Subject: [PATCH] 公共类

---
 Document.Unility/NLogProvider.cs          |   59 +++++++++++
 Document.Model/Document.Model.csproj      |   17 +++
 Document.Unility/PageResult.cs            |   35 +++++++
 Document.Unility/NLog.config              |   27 +++++
 Document.Unility/PageBaseSearch.cs        |   28 +++++
 DocumentServiceAPI.Core/BaseRepository.cs |   13 ++
 Document.Model/SQL/Document_UserInfo.cs   |   32 ++++++
 DocumentServiceAPI.Core/SqlsugarSetup.cs  |   38 +++++++
 Document.Unility/Document.Unility.csproj  |   19 +++
 9 files changed, 268 insertions(+), 0 deletions(-)

diff --git a/Document.Model/Document.Model.csproj b/Document.Model/Document.Model.csproj
new file mode 100644
index 0000000..b825ed2
--- /dev/null
+++ b/Document.Model/Document.Model.csproj
@@ -0,0 +1,17 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.93" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Folder Include="DTO\" />
+  </ItemGroup>
+
+</Project>
diff --git a/Document.Model/SQL/Document_UserInfo.cs b/Document.Model/SQL/Document_UserInfo.cs
new file mode 100644
index 0000000..323e4f4
--- /dev/null
+++ b/Document.Model/SQL/Document_UserInfo.cs
@@ -0,0 +1,32 @@
+锘縰sing SqlSugar;
+
+namespace Document.Model
+{
+    [SugarTable("Document_UserInfo")]
+    public class Document_UserInfo
+    {
+        /// <summary>
+        /// 璐﹀彿
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "璐﹀彿")]
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛鍚嶇О
+        /// </summary>
+        [SugarColumn(Length = 50, ColumnDescription = "鐢ㄦ埛鍚嶇О")]
+        public string UserName { get; set; }
+
+        /// <summary>
+        /// 鏄惁绠$悊鍛�
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鏄惁绠$悊鍛�")]
+        public int IsManager { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍚敤
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鏄惁鍚敤")]
+        public int IsUsed { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/Document.Unility/Document.Unility.csproj b/Document.Unility/Document.Unility.csproj
new file mode 100644
index 0000000..0706e06
--- /dev/null
+++ b/Document.Unility/Document.Unility.csproj
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="NLog" Version="5.2.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="NLog.config">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+
+</Project>
diff --git a/Document.Unility/NLog.config b/Document.Unility/NLog.config
new file mode 100644
index 0000000..a891ee6
--- /dev/null
+++ b/Document.Unility/NLog.config
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd">
+
+  <targets>
+
+	  <target xsi:type="File" name="info_file" fileName="${basedir}/logs/${shortdate}_info.log" layout="${longdate} ${uppercase:${level}} ${message}"/>
+	  <target xsi:type="File" name="error_file" fileName="${basedir}/logs/${shortdate}_error.log" layout="${longdate} ${uppercase:${level}} ${message} ${exception:stacktrace}" />	  
+
+	  <!--
+    Write events to a file with the date in the filename.
+    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
+            layout="${longdate} ${uppercase:${level}} ${message}" />
+    -->
+  </targets>
+
+  <rules>
+	  <logger name="*" minlevel="Info" maxlevel="Info" writeTo="info_file" />
+	  <logger name="*" minlevel="Error" maxlevel="Error" writeTo="error_file" />
+
+    <!--
+    Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"
+    <logger name="*" minlevel="Debug" writeTo="f" />
+    -->
+  </rules>
+</nlog>
diff --git a/Document.Unility/NLogProvider.cs b/Document.Unility/NLogProvider.cs
new file mode 100644
index 0000000..372e086
--- /dev/null
+++ b/Document.Unility/NLogProvider.cs
@@ -0,0 +1,59 @@
+锘縰sing NLog;
+
+namespace Document.Unility
+{
+    public class NLogProvider
+    {
+
+        private NLogProvider()
+        {
+            logger = LogManager.GetLogger("Logger");//.GetCurrentClassLogger();
+        }
+
+        private readonly Logger logger = null;
+        private static NLogProvider logProvider = null;
+
+        /// <summary>
+        /// 闈欐�佸疄渚�
+        /// </summary>
+        /// <returns></returns>
+        public static NLogProvider GetInstance()
+        {
+            if (logProvider == null)
+            {
+                logProvider = new NLogProvider();
+            }
+            return logProvider;
+        }
+
+        /// <summary>
+        /// Info
+        /// </summary>
+        /// <param name="txt"></param>
+        public void Info(string txt)
+        {
+            if (logger != null)
+                logger.Info(txt);
+        }
+
+        /// <summary>
+        /// Error
+        /// </summary>
+        /// <param name="er"></param>
+        public void Error(Exception er)
+        {
+            if (logger != null)
+                logger.Error(er);
+        }
+
+        /// <summary>
+        /// Error
+        /// </summary>
+        /// <param name="str"></param>
+        public void Error(string str)
+        {
+            if (logger != null)
+                logger.Error(str);
+        }
+    }
+}
diff --git a/Document.Unility/PageBaseSearch.cs b/Document.Unility/PageBaseSearch.cs
new file mode 100644
index 0000000..f1f184c
--- /dev/null
+++ b/Document.Unility/PageBaseSearch.cs
@@ -0,0 +1,28 @@
+锘縩amespace Document.Unility
+{
+    /// <summary>
+    /// 鍒嗛〉鏌ヨ鏉′欢鍩虹被
+    /// </summary>
+    public class PageBaseSearch
+    {
+        /// <summary>
+        /// 椤电爜
+        /// </summary>
+        public int PageIndex { get; set; } = 1;
+
+        /// <summary>
+        /// 鍒嗛〉澶у皬
+        /// </summary>
+        public int PageSize { get; set; } = 20;
+
+        /// <summary>
+        /// 寮�濮嬫棩鏈�
+        /// </summary>
+        public DateTime? StartTime { get; set; }
+
+        /// <summary>
+        /// 缁撴潫鏃ユ湡
+        /// </summary>
+        public DateTime? EndTime { get; set; }
+    }
+}
diff --git a/Document.Unility/PageResult.cs b/Document.Unility/PageResult.cs
new file mode 100644
index 0000000..712fc7d
--- /dev/null
+++ b/Document.Unility/PageResult.cs
@@ -0,0 +1,35 @@
+锘縩amespace Document.Unility
+{
+    /// <summary>
+    /// 鍒嗛〉鏁版嵁淇℃伅
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    public class PageResult<T>
+    {
+        /// <summary>
+        /// 椤电爜
+        /// </summary>
+        public int PageIndex { get; set; }
+
+        /// <summary>
+        /// 鍒嗛〉澶у皬
+        /// </summary>
+        public int PageSize { get; set; }
+
+        /// <summary>
+        /// 椤垫�绘暟
+        /// </summary>
+        public int TotalPage { get; set; }
+
+        /// <summary>
+        /// 璁板綍鎬绘暟
+        /// </summary>
+        public int TotalCount { get; set; }
+
+        /// <summary>
+        /// 璁板綍闆嗗悎
+        /// </summary>
+        public List<T> Items { get; set; } = new();
+
+    }
+}
\ No newline at end of file
diff --git a/DocumentServiceAPI.Core/BaseRepository.cs b/DocumentServiceAPI.Core/BaseRepository.cs
new file mode 100644
index 0000000..822abf9
--- /dev/null
+++ b/DocumentServiceAPI.Core/BaseRepository.cs
@@ -0,0 +1,13 @@
+锘縰sing Furion;
+using SqlSugar;
+
+namespace DocumentServiceAPI.Core
+{
+    public class BaseRepository<T> : SimpleClient<T> where T : class,new()
+    {
+        public BaseRepository(ISqlSugarClient context = null) : base(context)
+        {
+            base.Context = App.GetService<ISqlSugarClient>();//鐢ㄦ墜鍔ㄨ幏鍙栨柟寮忔敮鎸佸垏鎹粨鍌�
+        }
+    }
+}
diff --git a/DocumentServiceAPI.Core/SqlsugarSetup.cs b/DocumentServiceAPI.Core/SqlsugarSetup.cs
new file mode 100644
index 0000000..87b8d1f
--- /dev/null
+++ b/DocumentServiceAPI.Core/SqlsugarSetup.cs
@@ -0,0 +1,38 @@
+锘縰sing Document.Unility;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using SqlSugar;
+
+namespace DocumentServiceAPI.Core
+{
+    public static class SqlsugarSetup
+    {
+        public static void AddSqlsugarSetup(this IServiceCollection services, IConfiguration configuration, string dbName = "sqldb")
+        {
+            //濡傛灉澶氫釜鏁版暟鎹簱浼� List<ConnectionConfig>
+            var configConnection = new ConnectionConfig()
+            {
+                DbType = SqlSugar.DbType.SqlServer,
+                ConnectionString = configuration.GetConnectionString(dbName),
+                IsAutoCloseConnection = true,
+            };
+
+            SqlSugarScope sqlSugar = new SqlSugarScope(configConnection,
+                db =>
+                {
+                    //鍗曚緥鍙傛暟閰嶇疆锛屾墍鏈変笂涓嬫枃鐢熸晥
+                    db.Aop.OnLogExecuting = (sql, pars) =>
+                    {
+                        //Console.WriteLine(sql);//杈撳嚭sql
+                    };
+                    //SQL鎶ラ敊
+                    db.Aop.OnError = (exp) =>
+                    {
+                        NLogProvider.GetInstance().Error(exp);
+                    };
+                });
+
+            services.AddSingleton<ISqlSugarClient>(sqlSugar);//杩欒竟鏄疭qlSugarScope鐢ˋddSingleton
+        }
+    }
+}

--
Gitblit v1.9.1