修改初始数据

This commit is contained in:
lq1405 2024-10-13 22:09:08 +08:00
parent 8845fb6521
commit e94a8bbfd2
8 changed files with 405 additions and 9 deletions

View File

@ -1,4 +1,5 @@
using LMS.Repository.User;
using LMS.Tools.Extensions;
using Microsoft.AspNetCore.Identity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
@ -33,13 +34,13 @@ namespace LMS.Repository.Models.DB
public string? Options { get; set; } = "{}";
[Column(TypeName = "datetime")]
public DateTime CreatedDate { get; set; } = DateTime.Now;
public DateTime CreatedDate { get; set; } = BeijingTimeExtension.GetBeijingTime();
[Column(TypeName = "datetime")]
public DateTime UpdatedDate { get; set; } = DateTime.Now;
public DateTime UpdatedDate { get; set; } = BeijingTimeExtension.GetBeijingTime();
[Column(TypeName = "datetime")]
public DateTime LastLoginDate { get; set; } = DateTime.Now;
public DateTime LastLoginDate { get; set; } = BeijingTimeExtension.GetBeijingTime();
public string? LastLoginIp { get; set; } = "";

View File

@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "8.0.10",
"commands": [
"dotnet-ef"
]
}
}
}

View File

@ -0,0 +1,100 @@
using LMS.DAO;
using LMS.Repository.Models.DB;
using LMS.Tools.Extensions;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using static LMS.Common.Enums.ResponseCodeEnum;
namespace LMS.service.Configuration.InitConfiguration;
/// <summary>
/// 检查数据库中的一些操作
/// </summary>
/// <param name="serviceProvider"></param>
public class DatabaseConfiguration(IServiceProvider serviceProvider) : IHostedService
{
private readonly IServiceProvider _serviceProvider = serviceProvider;
public async Task StartAsync(CancellationToken cancellationToken)
{
using var scope = _serviceProvider.CreateScope();
var dbContext = scope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
var userManager = scope.ServiceProvider.GetRequiredService<UserManager<User>>();
var roleManager = scope.ServiceProvider.GetRequiredService<RoleManager<Role>>();
using var transaction = await dbContext.Database.BeginTransactionAsync(cancellationToken);
try
{
// 判断数据库中是不是超级管理员,没有创建一个
// 要是没有用户,默认没有
User? user = await dbContext.Users.FirstOrDefaultAsync(x => x.UserName == "admin", cancellationToken: cancellationToken);
if (user != null)
{
return;
}
User admin = new()
{
UserName = "admin",
NickName = "admin",
Email = "admin@admin.com",
AllDeviceCount = 1,
AgentPercent = 0.50,
FreeCount = 10,
CreatedDate = BeijingTimeExtension.GetBeijingTime(),
UpdatedDate = BeijingTimeExtension.GetBeijingTime(),
};
var result = await userManager.CreateAsync(admin, "Admin123.");
if (!result.Succeeded)
{
foreach (var s in result.Errors)
{
Console.WriteLine(s.Description);
return;
}
}
List<string> roleNames =
[
"Super Admin",
"Admin",
"Agent User",
"VIP User",
"Simple User"
];
for (int i = 0; i < roleNames.Count; i++)
{
// 开始添加一些默认数据。添加角色
if (await roleManager.FindByNameAsync(roleNames[i]) == null)
{
var indentiyResult = await roleManager.CreateAsync(new Role
{
Name = roleNames[i],
CreatedUserId = admin.Id,
UpdatedUserId = admin.Id,
CreatedTime = BeijingTimeExtension.GetBeijingTime(),
UpdatedTime = BeijingTimeExtension.GetBeijingTime(),
Remark = string.Empty,
});
Console.WriteLine(indentiyResult.Succeeded);
}
}
// 判断判断admin是不是超级管理员不是的话添加
if (!await userManager.IsInRoleAsync(admin, "Super Admin"))
{
await userManager.AddToRoleAsync(admin, "Super Admin");
}
await transaction.CommitAsync(cancellationToken);
}
catch (Exception ex)
{
await transaction.RollbackAsync(cancellationToken);
// 根据需要处理异常,例如终止应用程序
Console.WriteLine(ex.Message);
Environment.Exit(1);
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}

View File

@ -1,16 +1,14 @@

using LMS.Common.RSAKey;
using LMS.Common.RSAKey;
using LMS.DAO;
using LMS.Repository.DB;
using LMS.Tools.Extensions;
using Microsoft.EntityFrameworkCore;
namespace LMS.service.Configuration
namespace LMS.service.Configuration.InitConfiguration
{
public class RsaConfigurattions(IServiceProvider serviceProvider) : IHostedService
{
private readonly IServiceProvider _serviceProvider = serviceProvider;
public async Task StartAsync(CancellationToken cancellationToken)
{
using var scope = _serviceProvider.CreateScope();

View File

@ -2,7 +2,7 @@
using LMS.DAO.PermissionDAO;
using LMS.DAO.RoleDAO;
using LMS.DAO.UserDAO;
using LMS.service.Configuration;
using LMS.service.Configuration.InitConfiguration;
using LMS.service.Service;
using LMS.service.Service.PermissionService;
using LMS.service.Service.RoleService;
@ -16,6 +16,7 @@ namespace Lai_server.Configuration
{
// 注入Service
services.AddScoped<RsaConfigurattions>();
services.AddScoped<DatabaseConfiguration>();
// 注入DDL
services.AddScoped<LoginService>();

View File

@ -208,6 +208,7 @@ namespace LMS.service.Controllers
long requestUserId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _loginService.EnableAgent(requestUserId);
}
#endregion
#region

View File

@ -2,6 +2,7 @@ using Lai_server.Configuration;
using LMS.DAO;
using LMS.Repository.Models.DB;
using LMS.service.Configuration;
using LMS.service.Configuration.InitConfiguration;
using LMS.service.Extensions.Middleware;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
@ -70,6 +71,7 @@ builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerService();
builder.Services.AddHostedService<RsaConfigurattions>();
builder.Services.AddHostedService<DatabaseConfiguration>();
var app = builder.Build();

281
SQL/Structure/Structure.sql Normal file
View File

@ -0,0 +1,281 @@
/*
Navicat Premium Dump SQL
Source Server : 亿
Source Server Type : MySQL
Source Server Version : 80018 (8.0.18)
Source Host : yisurds-66dc0b453c05d4.rds.ysydb1.com:14080
Source Schema : LMS_TEST
Target Server Type : MySQL
Target Server Version : 80018 (8.0.18)
File Encoding : 65001
Date: 13/10/2024 21:05:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for ApiEndpoints
-- ----------------------------
CREATE TABLE IF NOT EXISTS `ApiEndpoints` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`HttpMethod` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'Http请求方式',
`Path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'Http请求地址',
`CreateTime` datetime NOT NULL COMMENT '创建时间',
`RequiredPermissionIds` json NOT NULL COMMENT '需要的权限ID',
`CreatedId` bigint(20) NOT NULL COMMENT '创建者ID',
`UpdatedId` bigint(20) NOT NULL COMMENT '更新者ID',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetRoleClaims
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetRoleClaims` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`RoleId` bigint(20) NOT NULL,
`ClaimType` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`ClaimValue` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
PRIMARY KEY (`Id`) USING BTREE,
INDEX `IX_AspNetRoleClaims_RoleId`(`RoleId` ASC) USING BTREE,
CONSTRAINT `FK_AspNetRoleClaims_AspNetRoles_RoleId` FOREIGN KEY (`RoleId`) REFERENCES `AspNetRoles` (`Id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetRoles
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetRoles` (
`Id` bigint(20) NOT NULL AUTO_INCREMENT,
`Name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`NormalizedName` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`ConcurrencyStamp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`CreatedUserId` bigint(20) NOT NULL,
`UpdatedUserId` bigint(20) NOT NULL,
`CreatedTime` datetime NOT NULL,
`UpdatedTime` datetime NOT NULL,
`Remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
PRIMARY KEY (`Id`) USING BTREE,
UNIQUE INDEX `RoleNameIndex`(`NormalizedName` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetUserClaims
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetUserClaims` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`UserId` bigint(20) NOT NULL,
`ClaimType` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`ClaimValue` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
PRIMARY KEY (`Id`) USING BTREE,
INDEX `IX_AspNetUserClaims_UserId`(`UserId` ASC) USING BTREE,
CONSTRAINT `FK_AspNetUserClaims_AspNetUsers_UserId` FOREIGN KEY (`UserId`) REFERENCES `AspNetUsers` (`Id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetUserLogins
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetUserLogins` (
`LoginProvider` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`ProviderKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`ProviderDisplayName` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`UserId` bigint(20) NOT NULL,
PRIMARY KEY (`LoginProvider`, `ProviderKey`) USING BTREE,
INDEX `IX_AspNetUserLogins_UserId`(`UserId` ASC) USING BTREE,
CONSTRAINT `FK_AspNetUserLogins_AspNetUsers_UserId` FOREIGN KEY (`UserId`) REFERENCES `AspNetUsers` (`Id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetUserRoles
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetUserRoles` (
`UserId` bigint(20) NOT NULL,
`RoleId` bigint(20) NOT NULL,
PRIMARY KEY (`UserId`, `RoleId`) USING BTREE,
INDEX `IX_AspNetUserRoles_RoleId`(`RoleId` ASC) USING BTREE,
CONSTRAINT `FK_AspNetUserRoles_AspNetRoles_RoleId` FOREIGN KEY (`RoleId`) REFERENCES `AspNetRoles` (`Id`) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT `FK_AspNetUserRoles_AspNetUsers_UserId` FOREIGN KEY (`UserId`) REFERENCES `AspNetUsers` (`Id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetUserTokens
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetUserTokens` (
`UserId` bigint(20) NOT NULL,
`LoginProvider` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`Value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
PRIMARY KEY (`UserId`, `LoginProvider`, `Name`) USING BTREE,
CONSTRAINT `FK_AspNetUserTokens_AspNetUsers_UserId` FOREIGN KEY (`UserId`) REFERENCES `AspNetUsers` (`Id`) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for AspNetUsers
-- ----------------------------
CREATE TABLE IF NOT EXISTS `AspNetUsers` (
`Id` bigint(20) NOT NULL AUTO_INCREMENT,
`NickName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`CreatedDate` datetime NOT NULL,
`UpdatedDate` datetime NOT NULL,
`LastLoginDate` datetime NOT NULL,
`LastLoginIp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`LastLoginDevice` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`UserName` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`NormalizedUserName` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`Email` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`NormalizedEmail` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`EmailConfirmed` tinyint(1) NOT NULL,
`PasswordHash` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`SecurityStamp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`ConcurrencyStamp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`PhoneNumber` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
`PhoneNumberConfirmed` tinyint(1) NOT NULL,
`TwoFactorEnabled` tinyint(1) NOT NULL,
`LockoutEnd` datetime(6) NULL DEFAULT NULL,
`LockoutEnabled` tinyint(1) NULL DEFAULT NULL,
`AccessFailedCount` int(11) NULL DEFAULT NULL,
`FreeCount` bigint(20) NOT NULL DEFAULT 5 COMMENT '免费修改机器码的次数',
`AgentPercent` double NOT NULL DEFAULT 0.5 COMMENT '代理分成的百分比',
`AllDeviceCount` bigint(10) NOT NULL DEFAULT 1 COMMENT '可用的机器码数量(买了几次)',
`Options` json NULL,
`ParentId` bigint(20) NULL DEFAULT NULL,
`AffiliateCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
PRIMARY KEY (`Id`) USING BTREE,
UNIQUE INDEX `UserNameIndex`(`NormalizedUserName` ASC) USING BTREE,
INDEX `EmailIndex`(`NormalizedEmail` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for Machine
-- ----------------------------
CREATE TABLE IF NOT EXISTS `Machine` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ID',
`MachineId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户电脑的机器码',
`CreateTime` datetime NOT NULL COMMENT '创建时间',
`UpdateTime` datetime NOT NULL COMMENT '更新时间',
`DeactivationTime` datetime NULL DEFAULT NULL COMMENT '停用时间',
`Status` int(11) NOT NULL COMMENT '状态 (激活/冻结)',
`CreateId` bigint(20) NOT NULL COMMENT '创建者ID',
`UpdateId` bigint(20) NOT NULL COMMENT '更新者ID',
`UseStatus` int(11) NOT NULL COMMENT '使用状态(使用/永久)',
`Remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
`UserID` bigint(20) NOT NULL COMMENT '机器码所属ID',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for Permission
-- ----------------------------
CREATE TABLE IF NOT EXISTS `Permission` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '权限的ID',
`UserId` bigint(20) NULL DEFAULT NULL COMMENT '用户的ID',
`MachineId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '机器码的ID是ID不是机器码',
`RoleId` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',
`PermissionTypeIds` json NULL COMMENT '权限类型的ID子权限',
`PermissionCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '权限对应的Code',
`CreateUserId` bigint(20) NOT NULL COMMENT '创建人ID',
`UpdateUserId` bigint(20) NOT NULL COMMENT '更新人ID',
`CreateTime` datetime NOT NULL COMMENT '创建时间',
`UpdateTime` datetime NOT NULL COMMENT '更新时间',
`Remark` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
`Type` int(11) NOT NULL COMMENT '对应的类型\r\n对应 UserRoleMachine\r\n设置对应的type 检查对应的属性数据是不是存在\r\n',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for PermissionType
-- ----------------------------
CREATE TABLE IF NOT EXISTS `PermissionType` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '权限ID',
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '权限的名字',
`Code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '表示权限的代码',
`Type` int(11) NOT NULL COMMENT '权限的分类user和machineroleprompt,permission自定义',
`CreateUserId` bigint(20) NOT NULL COMMENT '创建者ID',
`CreateTime` datetime NOT NULL COMMENT '创建时间',
`UpdateUserId` bigint(20) NOT NULL COMMENT '更新者ID',
`UpdateTime` datetime NOT NULL COMMENT '更新权限类型的时间',
`Remark` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '权限的描述',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for Prompt
-- ----------------------------
CREATE TABLE IF NOT EXISTS `Prompt` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ID',
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词预设的名称',
`PromptTypeId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词的类型ID',
`PromptTypeCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词的类型编码',
`PromptString` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词预设字符串',
`Version` int(11) NOT NULL COMMENT '当前版本',
`Status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '状态',
`Description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '提示词的描述',
`CreateUserId` bigint(20) NOT NULL COMMENT '创建者',
`CreateTime` datetime NOT NULL COMMENT '创建时间',
`UpdateUserId` bigint(20) NOT NULL COMMENT '更新者',
`UpdateTime` datetime NOT NULL COMMENT '更新时间',
`Remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '存放提示词的表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for PromptType
-- ----------------------------
CREATE TABLE IF NOT EXISTS `PromptType` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ID',
`Code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词类型编码',
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词类型名称',
`Remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '提示词类型描述',
`Status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提示词类型状态',
`IsDeleted` tinyint(1) NOT NULL COMMENT '是否删除',
`CreateUserId` bigint(20) NOT NULL COMMENT '创建用户ID',
`CreateTime` datetime NOT NULL COMMENT '创建时间',
`UpdateUserId` bigint(20) NOT NULL COMMENT '更新者ID',
`UpdateTime` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '提示词类型的库' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for RefreshTokens
-- ----------------------------
CREATE TABLE IF NOT EXISTS `RefreshTokens` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ID ',
`UserId` bigint(20) NOT NULL COMMENT '用户ID\r\n',
`Token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '刷新token',
`Expiration` datetime NOT NULL COMMENT '到期时间',
`Revoked` bit(1) NOT NULL COMMENT '是不是失效',
`CreatedTime` datetime NOT NULL COMMENT '创建时间',
`LastCheckIp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上次校验IP',
`DeviceInfo` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备信息,浏览器信息等',
PRIMARY KEY (`Id` DESC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for RsaKeys
-- ----------------------------
CREATE TABLE IF NOT EXISTS `RsaKeys` (
`Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ID 主键',
`PublicKey` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公钥',
`EncryptedPrivateKey` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '加密后的私钥',
`EncryptionKey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '加密私钥的随机字符串',
`EncryptionIV` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '加密私钥的IV',
`KeyVersion` int(11) NOT NULL COMMENT 'Key的版本',
`CreatedTime` datetime NOT NULL COMMENT '创建时间',
`LastUsed` datetime NULL DEFAULT NULL COMMENT '上次使用的时间',
`UseCount` int(11) NOT NULL DEFAULT 0 COMMENT '使用的次数',
`ExpirationTime` datetime NOT NULL COMMENT '到期时间',
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'RSA密钥存储表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for __EFMigrationsHistory
-- ----------------------------
CREATE TABLE IF NOT EXISTS `__EFMigrationsHistory` (
`MigrationId` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`ProductVersion` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
PRIMARY KEY (`MigrationId`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;