Skip to content

项目介绍

项目结构

配置文件

dbconfig.json 数据库配置

{
  //数据库注册键
  "key": "appdb",
  //程序集名称,自动获取实体表,为空则通过ConfigureFreeSql自定义配置
  "assemblyNames": [ "MyCompanyName.MyProjectName.Api" ],

  //监听所有操作
  "monitorCommand": false,
  //监听Curd操作
  "curd": true,
  //监听同步结构脚本
  "syncStructureSql": false,
  //监听同步数据Curd操作
  "syncDataCurd": false,

  //建库
  "createDb": false,
  //SqlServer,PostgreSQL,Oracle,OdbcOracle,OdbcSqlServer,OdbcMySql,OdbcPostgreSQL,Odbc,OdbcDameng,MsAccess
  //建库连接字符串
  //MySql "Server=localhost; Port=3306; Database=mysql; Uid=root; Pwd=pwd; Charset=utf8mb4;"
  //SqlServer "Data Source=.;User Id=sa;Password=pwd;Initial Catalog=master;TrustServerCertificate=true;Pooling=true;Min Pool Size=1"
  //PostgreSQL "Host=localhost;Port=5432;Username=postgres;Password=; Database=postgres;Pooling=true;Minimum Pool Size=1"
  //Oracle "user id=SYS;password=pwd; data source=//127.0.0.1:1521/XE;Pooling=true;Min Pool Size=1"
  "createDbConnectionString": "",
  //建库脚本,复杂建库脚本可放到createdbsql.txt中
  //MySql "CREATE DATABASE `appdb` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'"
  //SqlServer "CREATE DATABASE [appdb]"
  //PostgreSQL "CREATE DATABASE \"appdb\" WITH ENCODING = 'UTF8'"
  "createDbSql": "",

  //同步结构
  "syncStructure": true,
  //同步结构批次实体数
  "syncStructureEntityBatchSize": 1,
  //同步数据
  "syncData": true,
  //同步更新数据
  "sysUpdateData": true,
  //新增强制更新EntityUpdate数据
  "forceUpdate": false,
  //同步数据地址
  //"SyncDataPath": "InitData/Admin",
  //同步所有表["ad_dict_type", "ad_dict", "ad_user",  "ad_user_staff", "ad_org", "ad_role", "ad_api", "ad_view", "ad_permission", "ad_permission_api", "ad_user_role", "ad_user_org", "ad_role_permission", "ad_tenant", "ad_tenant_permission"]
  //同步指定表["ad_api", "ad_view", "ad_permission", "ad_permission_api"]
  //同步数据包含表,指定表同步,不填同步所有表
  "syncDataIncludeTables": [],
  //同步排除表["ad_user"]
  //同步数据排除表,指定表不同步
  "syncDataExcludeTables": [],
  //同步数据操作用户
  "syncDataUser": {
    "id": 161223411986501,
    "userName": "admin",
    "tenantId": 161223412138053
  },

  //项目初始化不开启生成数据,发布生产环境前,如果开发环境有配置数据需要更新数据包,可以开启生成数据包,使用完记得关闭
  //开启生成数据前先关闭syncStructure syncData createDb
  //生成数据
  "generateData": false,

  //数据库配置 https://github.com/dotnetcore/FreeSql/wiki/入门
  //连接字符串语法 https://www.connectionstrings.com
  //数据库类型 MySql = 0, SqlServer = 1, PostgreSQL = 2, Oracle = 3, Sqlite = 4, OdbcOracle = 5, OdbcSqlServer = 6, OdbcMySql = 7, OdbcPostgreSQL = 8, Odbc = 9, OdbcDameng = 10, MsAccess = 11, Dameng = 12, OdbcKingbaseES = 13, ShenTong = 14, KingbaseES = 15, Firebird = 16
  "type": "Sqlite",

  //连接字符串
  //MySql "Server=localhost; Port=3306; Database=appdb; Uid=root; Pwd=pwd; Charset=utf8mb4;"
  //SqlServer "Data Source=.;Integrated Security=True;Initial Catalog=appdb;Pooling=true;Min Pool Size=1"
  //PostgreSQL "Host=localhost;Port=5432;Username=postgres;Password=; Database=appdb;Pooling=true;Minimum Pool Size=1"
  //Sqlite "Data Source=|DataDirectory|\\appdb.db; Pooling=true;Min Pool Size=1"
  //"Oracle" "user id=SYS;password=pwd; data source=//127.0.0.1:1521/XE;Pooling=true;Min Pool Size=1",
  "connectionString": "Data Source=|DataDirectory|\\appdb.db; Pooling=true;Min Pool Size=1",

  //指定程序集
  //FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySqlConnector
  "providerType": "",

  //读写分离从库列表
  "slaveList": [
    //{
    //  //权重
    //  "Weight": 1,
    //  //连接字符串
    //  "ConnectionString": "Data Source=|DataDirectory|\\appdb.db; Pooling=true;Min Pool Size=1"
    //}
  ],

  //空闲时间(分),设置idleTime=0则不自动回收, 设置1天不使用则自动回收
  "idleTime": 1440,

  //多数据库
  //Core/Consts定义DbKeys枚举
  //使用仓储访问 public ModuleRepository(UnitOfWorkManagerCloud muowm) : base(DbKeys.AppDb, muowm)
  //使用FreeSqlCloud访问  freeSqlCloud.Use(DbKeys.AppDb);
  "dbs": [
    {
      //权限库
      "key": "admindb",
      //程序集名称,自动获取实体表
      "assemblyNames": [ "ZhonTai.Admin" ],

      //监听所有操作
      "monitorCommand": false,
      //监听Curd操作
      "curd": true,

      //建库
      "createDb": false,
      //SqlServer,PostgreSQL,Oracle,OdbcOracle,OdbcSqlServer,OdbcMySql,OdbcPostgreSQL,Odbc,OdbcDameng,MsAccess
      //建库连接字符串
      //MySql "Server=localhost; Port=3306; Database=mysql; Uid=root; Pwd=pwd; Charset=utf8mb4;"
      //SqlServer "Data Source=.;User Id=sa;Password=pwd;Initial Catalog=master;TrustServerCertificate=true;Pooling=true;Min Pool Size=1"
      //PostgreSQL "Host=localhost;Port=5432;Username=postgres;Password=; Database=postgres;Pooling=true;Minimum Pool Size=1"
      //Oracle "user id=SYS;password=pwd; data source=127.0.0.1:1521/XE;Pooling=true;Min Pool Size=1"
      "createDbConnectionString": "",
      //建库脚本,复杂建库脚本可放到createdbsql.txt中
      //MySql "CREATE DATABASE `admindb` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'"
      //SqlServer "CREATE DATABASE [admindb]"
      //PostgreSQL "CREATE DATABASE \"admindb\" WITH ENCODING = 'UTF8'"
      "createDbSql": "",

      //同步结构
      "syncStructure": true,
      //同步数据
      "syncData": true,

      //项目初始化不开启生成数据,发布生产环境前,如果开发环境有配置数据需要更新数据包,可以开启生成数据包,使用完记得关闭
      //开启生成数据前先关闭syncStructure syncData createDb
      //生成数据
      "generateData": false,

      //数据库配置 https:github.com/dotnetcore/FreeSql/wiki/入门
      //连接字符串语法 https:www.connectionstrings.com
      //数据库类型 MySql = 0, SqlServer = 1, PostgreSQL = 2, Oracle = 3, Sqlite = 4, OdbcOracle = 5, OdbcSqlServer = 6, OdbcMySql = 7, OdbcPostgreSQL = 8, Odbc = 9, OdbcDameng = 10, MsAccess = 11, Dameng = 12, OdbcKingbaseES = 13, ShenTong = 14, KingbaseES = 15, Firebird = 16
      "type": "Sqlite",

      //连接字符串
      //MySql "Server=localhost; Port=3306; Database=admindb; Uid=root; Pwd=pwd; Charset=utf8mb4;"
      //SqlServer "Data Source=.;Integrated Security=True;Initial Catalog=admindb;Pooling=true;Min Pool Size=1"
      //PostgreSQL "Host=localhost;Port=5432;Username=postgres;Password=; Database=admindb;Pooling=true;Minimum Pool Size=1"
      //Sqlite "Data Source=|DataDirectory|\\admindb.db; Pooling=true;Min Pool Size=1"
      //"Oracle" "user id=SYS;password=pwd; data source=127.0.0.1:1521/XE;Pooling=true;Min Pool Size=1",
      "connectionString": "Data Source=|DataDirectory|\\admindb.db; Pooling=true;Min Pool Size=1",

      //指定程序集
      //FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySqlConnector
      "providerType": "",

      //读写分离从库列表
      "slaveList": [
        //{
        //  权重
        //  "Weight": 1,
        //  连接字符串
        //  "ConnectionString": "Data Source=|DataDirectory|\\admindb.db; Pooling=true;Min Pool Size=1"
        //}
      ]
    }
  ]
}

appsettings.json 应用程序配置

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.AspNetCore": "Warning",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.Extensions.Diagnostics.HealthChecks": "Warning"
    }
  },
  "AllowedHosts": "*",
  // 事件总线和分布式事务
  "CAP": {
    "RabbitMq": {
      "HostName": "",
      "Port": 5672,
      "UserName": "",
      "Password": ""
    }
  },
  /*
  //发送邮件验证码
  await AppInfo.GetRequiredService<ICapPublisher>().PublishAsync(SubscribeNames.EmailSingleSend,
  new EamilSingleSendEvent
  {
      ToEmail = new EamilSingleSendEvent.Models.EmailModel
      {
          Address = ""
      },
      Subject = "中台Admin账号邮件验证码",
      Body = code
  });
  */
  //邮件配置
  "Email": {
    //主机
    "Host": "smtp.qq.com",
    //端口 465、587、25
    "Port": 465,
    //是否使用SSL
    "UseSsl": true,
    //邮箱账号
    "UserName": "",
    //邮箱密码
    "Password": "",
    //发件人
    "FromEmail": {
      //名称
      "Name": "",
      //地址
      "Address": ""
    },
    //收件人
    "ToEmail": {
      //名称
      "Name": "",
      //地址
      "Address": ""
    }
  },
  //任务调度配置
  "TaskScheduler": {
    //进程启动信息
    "ProcessStartInfo": {
      "FileName": "C:/grpcurl_1.8.7/grpcurl",
      //工作目录
      "WorkingDirectory": ""
    },
    //告警邮件
    "AlerEmail": {
      "Enable": true,
      "Adress": ""
    }
  },
  // 滑动验证码
  "SlideCaptcha": {
    // 缓存过期时长
    "ExpirySeconds": 300, 
    // 缓存前缀
    "StoreageKeyPrefix": "app:captcha:",
    // 容错值(校验时用,缺口位置与实际滑动位置匹配容错范围)
    "Tolerant": 0.02,
    // 背景图配置
    "Backgrounds": [
      {
        "Type": "file",
        "Data": "wwwroot/captcha/jigsaw/backgrounds/1.jpg"
      },
      {
        "Type": "file",
        "Data": "wwwroot/captcha/jigsaw/backgrounds/2.jpg"
      },
      {
        "Type": "file",
        "Data": "wwwroot/captcha/jigsaw/backgrounds/3.jpg"
      },
      {
        "Type": "file",
        "Data": "wwwroot/captcha/jigsaw/backgrounds/4.jpg"
      },
      {
        "Type": "file",
        "Data": "wwwroot/captcha/jigsaw/backgrounds/5.jpg"
      }
    ],
    // Templates不配置,则使用默认模板
    "Templates": [
      //{
      //  "Slider": {
      //    "Type": "file",
      //    "Data": "wwwroot/captcha/jigsaw/templates/1/transparent.png"
      //  },
      //  "Hole": {
      //    "Type": "file",
      //    "Data": "wwwroot/captcha/jigsaw/templates/1/dark.png"
      //  }
      //}
    ]
  }
}