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 {