数据库种子初始化搭建
This commit is contained in:
@@ -13,6 +13,7 @@ using Yi.Framework.WebCore.SignalRHub;
|
|||||||
using Hei.Captcha;
|
using Hei.Captcha;
|
||||||
using Yi.Framework.WebCore;
|
using Yi.Framework.WebCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Yi.Framework.WebCore.DbExtend;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
builder.Configuration.AddCommandLine(args);
|
builder.Configuration.AddCommandLine(args);
|
||||||
@@ -186,6 +187,11 @@ app.UseAuthorization();
|
|||||||
//Consul<75><6C><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
|
//Consul<75><6C><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
|
||||||
#endregion
|
#endregion
|
||||||
app.UseConsulService();
|
app.UseConsulService();
|
||||||
|
|
||||||
|
#region
|
||||||
|
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
|
||||||
|
#endregion
|
||||||
|
app.UseDbSeedInitService();
|
||||||
#region
|
#region
|
||||||
//redis<69><73><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
|
//redis<69><73><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -20,16 +20,6 @@
|
|||||||
<None Remove="wwwrooot\**" />
|
<None Remove="wwwrooot\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Remove="yi-sqlsugar-dev.db" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="yi-sqlsugar-dev.db">
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Yi.Framework.WebCore\Yi.Framework.WebCore.csproj" />
|
<ProjectReference Include="..\Yi.Framework.WebCore\Yi.Framework.WebCore.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -39,4 +29,10 @@
|
|||||||
<Folder Include="wwwroot\image\" />
|
<Folder Include="wwwroot\image\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="yi-sqlsugar-dev.db">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,22 +1,125 @@
|
|||||||
using System;
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Yi.Framework.Common.Enum;
|
||||||
using Yi.Framework.Model.Models;
|
using Yi.Framework.Model.Models;
|
||||||
|
|
||||||
namespace Yi.Framework.Model.SeedData
|
namespace Yi.Framework.Model.SeedData
|
||||||
{
|
{
|
||||||
public class MenuSeed: AbstractSeed<MenuEntity>
|
public class MenuSeed : AbstractSeed<MenuEntity>
|
||||||
{
|
{
|
||||||
public override List<MenuEntity> GetSeed()
|
public override List<MenuEntity> GetSeed()
|
||||||
{
|
{
|
||||||
MenuEntity menu = new MenuEntity()
|
//系统管理
|
||||||
|
MenuEntity system = new MenuEntity()
|
||||||
{
|
{
|
||||||
MenuName="首页",
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
PermissionCode="*:*:*"
|
MenuName = "系统管理",
|
||||||
|
PermissionCode = "*:*:*",
|
||||||
|
MenuType = MenuTypeEnum.Catalogue.GetHashCode(),
|
||||||
|
Router = "/system",
|
||||||
|
IsShow = true,
|
||||||
|
IsLink = false,
|
||||||
|
MenuIcon = "system",
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = 0,
|
||||||
|
IsDeleted = false
|
||||||
};
|
};
|
||||||
Entitys.Add(menu);
|
Entitys.Add(system);
|
||||||
|
|
||||||
|
//用户管理
|
||||||
|
MenuEntity user = new MenuEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
MenuName = "用户管理",
|
||||||
|
PermissionCode = "system:user:list",
|
||||||
|
MenuType = MenuTypeEnum.Menu.GetHashCode(),
|
||||||
|
Router = "user",
|
||||||
|
IsShow = true,
|
||||||
|
IsLink = false,
|
||||||
|
IsCache = true,
|
||||||
|
Component = "system/user/index",
|
||||||
|
MenuIcon = "user",
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = system.Id,
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(user);
|
||||||
|
|
||||||
|
MenuEntity userQuery = new MenuEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
MenuName = "用户查询",
|
||||||
|
PermissionCode = "system:user:query",
|
||||||
|
MenuType = MenuTypeEnum.Component.GetHashCode(),
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = user.Id,
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(userQuery);
|
||||||
|
|
||||||
|
MenuEntity userAdd = new MenuEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
MenuName = "用户新增",
|
||||||
|
PermissionCode = "system:user:add",
|
||||||
|
MenuType = MenuTypeEnum.Component.GetHashCode(),
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = user.Id,
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(userAdd);
|
||||||
|
|
||||||
|
MenuEntity userEdit = new MenuEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
MenuName = "用户修改",
|
||||||
|
PermissionCode = "system:user:edit",
|
||||||
|
MenuType = MenuTypeEnum.Component.GetHashCode(),
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = user.Id,
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(userEdit);
|
||||||
|
|
||||||
|
MenuEntity userRemove = new MenuEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
MenuName = "用户删除",
|
||||||
|
PermissionCode = "system:user:remove",
|
||||||
|
MenuType = MenuTypeEnum.Component.GetHashCode(),
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = user.Id,
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(userRemove);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//角色管理
|
||||||
|
MenuEntity role = new MenuEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
MenuName = "角色管理",
|
||||||
|
PermissionCode = "system:role:list",
|
||||||
|
MenuType = MenuTypeEnum.Menu.GetHashCode(),
|
||||||
|
Router = "role",
|
||||||
|
IsShow = true,
|
||||||
|
IsLink = false,
|
||||||
|
IsCache = true,
|
||||||
|
Component = "system/role/index",
|
||||||
|
MenuIcon = "peoples",
|
||||||
|
OrderNum = 100,
|
||||||
|
ParentId = system.Id,
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(role);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return Entitys;
|
return Entitys;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
using System;
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Yi.Framework.Common.Enum;
|
||||||
using Yi.Framework.Model.Models;
|
using Yi.Framework.Model.Models;
|
||||||
|
|
||||||
namespace Yi.Framework.Model.SeedData
|
namespace Yi.Framework.Model.SeedData
|
||||||
@@ -11,12 +13,30 @@ namespace Yi.Framework.Model.SeedData
|
|||||||
{
|
{
|
||||||
public override List<RoleEntity> GetSeed()
|
public override List<RoleEntity> GetSeed()
|
||||||
{
|
{
|
||||||
RoleEntity role = new RoleEntity()
|
RoleEntity role1 = new RoleEntity()
|
||||||
{
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
RoleName = "管理员",
|
RoleName = "管理员",
|
||||||
RoleCode = "admin",
|
RoleCode = "admin",
|
||||||
|
DataScope = DataScopeEnum.ALL.GetHashCode(),
|
||||||
|
OrderNum = 999,
|
||||||
|
Remark ="管理员",
|
||||||
|
IsDeleted = false
|
||||||
};
|
};
|
||||||
Entitys.Add(role);
|
Entitys.Add(role1);
|
||||||
|
|
||||||
|
RoleEntity role2 = new RoleEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
RoleName = "测试角色",
|
||||||
|
RoleCode = "test",
|
||||||
|
DataScope = DataScopeEnum.ALL.GetHashCode(),
|
||||||
|
OrderNum = 1,
|
||||||
|
Remark = "测试用的角色",
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
Entitys.Add(role2);
|
||||||
|
|
||||||
return Entitys;
|
return Entitys;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -7,10 +8,10 @@ using Yi.Framework.Model.Models;
|
|||||||
|
|
||||||
namespace Yi.Framework.Model.SeedData
|
namespace Yi.Framework.Model.SeedData
|
||||||
{
|
{
|
||||||
public class SeedFactory
|
public class SeedFactory
|
||||||
{
|
{
|
||||||
public static List<UserEntity> GetUserSeed()
|
public static List<UserEntity> GetUserSeed()
|
||||||
{
|
{
|
||||||
return new UserSeed().GetSeed();
|
return new UserSeed().GetSeed();
|
||||||
}
|
}
|
||||||
public static List<RoleEntity> GetRoleSeed()
|
public static List<RoleEntity> GetRoleSeed()
|
||||||
@@ -21,9 +22,30 @@ namespace Yi.Framework.Model.SeedData
|
|||||||
{
|
{
|
||||||
return new MenuSeed().GetSeed();
|
return new MenuSeed().GetSeed();
|
||||||
}
|
}
|
||||||
public static List<UserRoleEntity> GetUserRoleSeed(List<UserEntity> users,List<RoleEntity> roles)
|
public static List<UserRoleEntity> GetUserRoleSeed(List<UserEntity> users, List<RoleEntity> roles)
|
||||||
{
|
{
|
||||||
return new List<UserRoleEntity>();
|
List<UserRoleEntity> userRoleEntities = new();
|
||||||
|
foreach (var u in users)
|
||||||
|
{
|
||||||
|
foreach (var r in roles)
|
||||||
|
{
|
||||||
|
userRoleEntities.Add(new UserRoleEntity() {Id= SnowFlakeSingle.Instance.NextId(),UserId = u.Id, RoleId = r.Id, IsDeleted = false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return userRoleEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<RoleMenuEntity> GetRoleMenuSeed(List<RoleEntity> roles, List<MenuEntity> menus)
|
||||||
|
{
|
||||||
|
List<RoleMenuEntity> roleMenuEntities = new();
|
||||||
|
foreach (var r in roles)
|
||||||
|
{
|
||||||
|
foreach (var m in menus)
|
||||||
|
{
|
||||||
|
roleMenuEntities.Add(new RoleMenuEntity() { Id = SnowFlakeSingle.Instance.NextId(), RoleId = r.Id, MenuId = m.Id, IsDeleted = false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return roleMenuEntities;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -11,15 +12,46 @@ namespace Yi.Framework.Model.SeedData
|
|||||||
{
|
{
|
||||||
public override List<UserEntity> GetSeed()
|
public override List<UserEntity> GetSeed()
|
||||||
{
|
{
|
||||||
UserEntity user = new UserEntity()
|
UserEntity user1 = new UserEntity()
|
||||||
{
|
{
|
||||||
|
Id =SnowFlakeSingle.Instance.NextId(),
|
||||||
Name = "大橙子",
|
Name = "大橙子",
|
||||||
UserName = "cc",
|
UserName = "cc",
|
||||||
Nick = "橙子",
|
Nick = "橙子",
|
||||||
Password = "123456"
|
Password = "123456",
|
||||||
|
Email="454313500@qq.com",
|
||||||
|
Phone="13800000000",
|
||||||
|
Sex=0,
|
||||||
|
Address="深圳",
|
||||||
|
Age=20,
|
||||||
|
Introduction="还有谁?",
|
||||||
|
OrderNum=999,
|
||||||
|
Remark="描述是什么呢?",
|
||||||
|
IsDeleted=false
|
||||||
};
|
};
|
||||||
user.BuildPassword();
|
user1.BuildPassword();
|
||||||
Entitys.Add(user);
|
Entitys.Add(user1);
|
||||||
|
|
||||||
|
UserEntity user2 = new UserEntity()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId(),
|
||||||
|
Name = "大测试",
|
||||||
|
UserName = "test",
|
||||||
|
Nick = "测试",
|
||||||
|
Password = "123456",
|
||||||
|
Email = "454313500@qq.com",
|
||||||
|
Phone = "15900000000",
|
||||||
|
Sex = 0,
|
||||||
|
Address = "深圳",
|
||||||
|
Age = 18,
|
||||||
|
Introduction = "还有我!",
|
||||||
|
OrderNum = 1,
|
||||||
|
Remark = "我没有描述!",
|
||||||
|
IsDeleted = false
|
||||||
|
};
|
||||||
|
user2.BuildPassword();
|
||||||
|
Entitys.Add(user2);
|
||||||
|
|
||||||
return Entitys;
|
return Entitys;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Yi.Framework.Model.Models;
|
||||||
|
using Yi.Framework.Model.SeedData;
|
||||||
|
|
||||||
|
namespace Yi.Framework.WebCore.DbExtend
|
||||||
|
{
|
||||||
|
public static class DbSeedExtend
|
||||||
|
{
|
||||||
|
public static void UseDbSeedInitService(this IApplicationBuilder app)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (Appsettings.appBool("DbSeed_Enabled"))
|
||||||
|
{
|
||||||
|
|
||||||
|
var _Db = app.ApplicationServices.GetService<ISqlSugarClient>();
|
||||||
|
var users = SeedFactory.GetUserSeed();
|
||||||
|
var roles = SeedFactory.GetRoleSeed();
|
||||||
|
var menus = SeedFactory.GetMenuSeed();
|
||||||
|
if (!_Db.Queryable<UserEntity>().Any())
|
||||||
|
{
|
||||||
|
_Db.Insertable(users).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_Db.Queryable<RoleEntity>().Any())
|
||||||
|
{
|
||||||
|
_Db.Insertable(roles).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_Db.Queryable<MenuEntity>().Any())
|
||||||
|
{
|
||||||
|
_Db.Insertable(menus).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_Db.Queryable<UserRoleEntity>().Any())
|
||||||
|
{
|
||||||
|
_Db.Insertable(SeedFactory.GetUserRoleSeed(users, roles)).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_Db.Queryable<RoleMenuEntity>().Any())
|
||||||
|
{
|
||||||
|
_Db.Insertable(SeedFactory.GetRoleMenuSeed(roles, menus)).ExecuteCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,7 +20,7 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
|
|||||||
|
|
||||||
if (Appsettings.appBool("RedisSeed_Enabled"))
|
if (Appsettings.appBool("RedisSeed_Enabled"))
|
||||||
{
|
{
|
||||||
var _cacheClientDB = ServiceLocator.Instance.GetService<CacheClientDB>();
|
var _cacheClientDB = app.ApplicationServices.GetService<CacheClientDB>();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user