diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs
index d5273f13..88c1f81e 100644
--- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs
@@ -13,6 +13,7 @@ using Yi.Framework.WebCore.SignalRHub;
using Hei.Captcha;
using Yi.Framework.WebCore;
using Microsoft.Extensions.DependencyInjection;
+using Yi.Framework.WebCore.DbExtend;
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddCommandLine(args);
@@ -186,6 +187,11 @@ app.UseAuthorization();
//Consul服务注入
#endregion
app.UseConsulService();
+
+#region
+//数据库种子注入
+#endregion
+app.UseDbSeedInitService();
#region
//redis种子注入
#endregion
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj
index e4e7aa28..2569ac4b 100644
--- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj
@@ -20,16 +20,6 @@
-
-
-
-
-
-
- Always
-
-
-
@@ -39,4 +29,10 @@
+
+
+ Always
+
+
+
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs
index 21d98101..e120af7f 100644
--- a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs
@@ -1,22 +1,125 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Yi.Framework.Common.Enum;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Model.SeedData
{
- public class MenuSeed: AbstractSeed
+ public class MenuSeed : AbstractSeed
{
public override List GetSeed()
{
- MenuEntity menu = new MenuEntity()
+ //绯荤粺绠$悊
+ MenuEntity system = new MenuEntity()
{
- MenuName="棣栭〉",
- PermissionCode="*:*:*"
+ Id = SnowFlakeSingle.Instance.NextId(),
+ 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;
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/RoleSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/RoleSeed.cs
index 7fe503ac..c1460b7a 100644
--- a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/RoleSeed.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/RoleSeed.cs
@@ -1,8 +1,10 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Yi.Framework.Common.Enum;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Model.SeedData
@@ -11,12 +13,30 @@ namespace Yi.Framework.Model.SeedData
{
public override List GetSeed()
{
- RoleEntity role = new RoleEntity()
+ RoleEntity role1 = new RoleEntity()
{
+ Id = SnowFlakeSingle.Instance.NextId(),
RoleName = "绠$悊鍛",
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;
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/SeedFactory.cs b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/SeedFactory.cs
index 0a624f3c..0320a355 100644
--- a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/SeedFactory.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/SeedFactory.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -7,10 +8,10 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Model.SeedData
{
- public class SeedFactory
+ public class SeedFactory
{
public static List GetUserSeed()
- {
+ {
return new UserSeed().GetSeed();
}
public static List GetRoleSeed()
@@ -21,9 +22,30 @@ namespace Yi.Framework.Model.SeedData
{
return new MenuSeed().GetSeed();
}
- public static List GetUserRoleSeed(List users,List roles)
+ public static List GetUserRoleSeed(List users, List roles)
{
- return new List();
+ List 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 GetRoleMenuSeed(List roles, List menus)
+ {
+ List 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;
}
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/UserSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/UserSeed.cs
index 2e0c9635..023f07f5 100644
--- a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/UserSeed.cs
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/UserSeed.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -11,15 +12,46 @@ namespace Yi.Framework.Model.SeedData
{
public override List GetSeed()
{
- UserEntity user = new UserEntity()
+ UserEntity user1 = new UserEntity()
{
+ Id =SnowFlakeSingle.Instance.NextId(),
Name = "澶ф瀛",
UserName = "cc",
Nick = "姗欏瓙",
- Password = "123456"
+ Password = "123456",
+ Email="454313500@qq.com",
+ Phone="13800000000",
+ Sex=0,
+ Address="娣卞湷",
+ Age=20,
+ Introduction="杩樻湁璋侊紵",
+ OrderNum=999,
+ Remark="鎻忚堪鏄粈涔堝憿锛",
+ IsDeleted=false
};
- user.BuildPassword();
- Entitys.Add(user);
+ user1.BuildPassword();
+ 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;
}
}
diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbSeedExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbSeedExtend.cs
new file mode 100644
index 00000000..5ab736e8
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbSeedExtend.cs
@@ -0,0 +1,56 @@
+锘縰sing 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();
+ var users = SeedFactory.GetUserSeed();
+ var roles = SeedFactory.GetRoleSeed();
+ var menus = SeedFactory.GetMenuSeed();
+ if (!_Db.Queryable().Any())
+ {
+ _Db.Insertable(users).ExecuteCommand();
+ }
+
+ if (!_Db.Queryable().Any())
+ {
+ _Db.Insertable(roles).ExecuteCommand();
+ }
+
+ if (!_Db.Queryable().Any())
+ {
+ _Db.Insertable(menus).ExecuteCommand();
+ }
+
+ if (!_Db.Queryable().Any())
+ {
+ _Db.Insertable(SeedFactory.GetUserRoleSeed(users, roles)).ExecuteCommand();
+ }
+
+ if (!_Db.Queryable().Any())
+ {
+ _Db.Insertable(SeedFactory.GetRoleMenuSeed(roles, menus)).ExecuteCommand();
+ }
+
+
+ }
+
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/RedisInitExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/RedisInitExtend.cs
index 4a0c02b6..529b96d5 100644
--- a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/RedisInitExtend.cs
+++ b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/RedisInitExtend.cs
@@ -20,7 +20,7 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
if (Appsettings.appBool("RedisSeed_Enabled"))
{
- var _cacheClientDB = ServiceLocator.Instance.GetService();
+ var _cacheClientDB = app.ApplicationServices.GetService();
try
{