上传T4模板

This commit is contained in:
yeslode
2021-10-17 17:35:18 +08:00
parent cdd9e8f45b
commit da6248e6b3
22 changed files with 302 additions and 21 deletions

View File

@@ -92,6 +92,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
var _user = this.HttpContext.GetCurrentUserInfo();
var menuList= await _userService.GetMenusByUser(_user);
return Result.Success().SetData(menuList);
}
/// <summary>
@@ -105,7 +106,24 @@ namespace Yi.Framework.ApiMicroservice.Controllers
var _children= await _menuService.AddChildrenMenu(new menu() { id=childrenDto.parentId}, childrenDto.data);
return Result.Success();
}
/// <summary>
/// 获取用户的目录菜单,不包含接口
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<Result> GeTopMenuByUser()
{
var _user = this.HttpContext.GetCurrentUserInfo();
var menuList =await _userService.GetMenuByUser(_user);
return Result.Success().SetData(menuList);
}
public async Task<Result> GeTopMenuByUser(menu _menu)
{
var _user = this.HttpContext.GetCurrentUserInfo();
var menu_data= await _userService.GetMenuByUser(_user);
var menuList = await _menuService.GetChildrenMenu(_menu);
return Result.Success().SetData(menuList);
}
}
}

View File

@@ -7,7 +7,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Interface
{
public interface IMenuService:IBaseService<menu>
public partial interface IMenuService:IBaseService<menu>
{
Task<bool> DelListByUpdateAsync(List<int> _ids);
/// <summary>
@@ -59,6 +59,6 @@ namespace Yi.Framework.Interface
/// 获取子菜单
/// </summary>
/// <returns></returns>
Task<List<menu>> GetChildrenMenu();
Task<List<menu>> GetChildrenMenu(menu _menu);
}
}

View File

@@ -7,7 +7,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Interface
{
public interface IMouldService : IBaseService<mould>
public partial interface IMouldService : IBaseService<mould>
{
Task<bool> DelListByUpdateAsync(List<int> _ids);
Task<IEnumerable<mould>> GetAllEntitiesTrueAsync();

View File

@@ -7,7 +7,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Interface
{
public interface IRoleService:IBaseService<role>
public partial interface IRoleService:IBaseService<role>
{
Task<bool> DelListByUpdateAsync(List<int> _ids);
Task<IEnumerable<role>> GetAllEntitiesTrueAsync();

View File

@@ -7,7 +7,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Interface
{
public interface IUserService:IBaseService<user>
public partial interface IUserService:IBaseService<user>
{
Task<bool> DelListByUpdateAsync(List<int> _ids);
Task<IEnumerable<user>> GetAllEntitiesTrueAsync();
@@ -58,6 +58,13 @@ namespace Yi.Framework.Interface
/// <param name="emailAddress"></param>
/// <returns></returns>
Task<bool> EmailIsExsit(string emailAddress);
/// <summary>
/// 获取用户的目录菜单,没有绑定接口
/// </summary>
/// <param name="_user"></param>
/// <returns></returns>
Task<List<List<menu>>> GetMenuByUser(user _user);
}
}

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Interface
{
public partial interface IMenuService:IBaseService<menu>
{
}
public partial interface IMouldService:IBaseService<mould>
{
}
public partial interface IRoleService:IBaseService<role>
{
}
public partial interface IUserService:IBaseService<user>
{
}
}

View File

@@ -0,0 +1,41 @@
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
DirectoryInfo dir = new DirectoryInfo(@"D:\YiFramework\Yi\Yi.Framework\Yi.Framework.Model\Models\");
FileInfo[] finfo = dir.GetFiles();
string filenames = string.Empty;
List<string> filenameList = new List<string>();
for (int i = 0; i < finfo.Length; i++)
{
filenames = finfo[i].Name ;
string[] fname=filenames.Split('.');
filenameList.Add(fname[0]);
}
#>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Interface
{
<# foreach(string k in filenameList){
string fn= k.Substring(0,1).ToUpper()+k.Substring(1);
#>
public partial interface I<#= fn #>Service:IBaseService<<#= k #>>
{
}
<# } #>
}

View File

@@ -8,13 +8,21 @@
<Compile Remove="T4Service.cs" />
</ItemGroup>
<ItemGroup>
<None Include="T4Iservice.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>T4Iservice.tt</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Yi.Framework.Model\Yi.Framework.Model.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="T4IService.tt">
<LastGenOutput>T4IService.cs</LastGenOutput>
<LastGenOutput>T4Iservice.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
</ItemGroup>

View File

@@ -10,5 +10,6 @@ namespace Yi.Framework.Model.Models
{
public int? is_top { get; set; }
public int? sort { get; set; }
public int? is_show { get; set; }
}
}

View File

@@ -34,7 +34,6 @@ namespace Yi.Framework.Model
optionsBuilder.UseSqlite(_connStr);
}
}
public DbSet<user> user { get; set; }
public DbSet<role> role { get; set; }
}
}

View File

@@ -11,7 +11,7 @@ namespace Yi.Framework.Model.Models
public string icon { get; set; }
public string router { get; set; }
public string menu_name { get; set; }
public ICollection<menu> children { get; set; }

View File

@@ -0,0 +1,17 @@
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Model
{
public partial class DataContext :DbContext
{
public DbSet<menu> menu { get; set; }
public DbSet<mould> mould { get; set; }
public DbSet<role> role { get; set; }
public DbSet<user> user { get; set; }
}
}

View File

@@ -0,0 +1,39 @@
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
DirectoryInfo dir = new DirectoryInfo(@"D:\YiFramework\Yi\Yi.Framework\Yi.Framework.Model\Models\");
FileInfo[] finfo = dir.GetFiles();
string filenames = string.Empty;
List<string> filenameList = new List<string>();
for (int i = 0; i < finfo.Length; i++)
{
filenames = finfo[i].Name ;
string[] f=filenames.Split('.');
filenameList.Add(f[0]);
}
#>
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Model
{
public partial class DataContext :DbContext
{
<# foreach(string k in filenameList){
#>
public DbSet<<#=k #>> <#=k #> { get; set; }
<# } #>
}
}

View File

@@ -8,6 +8,14 @@
<Folder Include="Search\" />
</ItemGroup>
<ItemGroup>
<None Include="T4DataContext.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>T4DataContext.tt</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.10" />
</ItemGroup>
@@ -21,6 +29,10 @@
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>T4DaraContext.cs</LastGenOutput>
</None>
<None Update="T4DataContext.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>T4DataContext.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
@@ -33,6 +45,11 @@
<AutoGen>True</AutoGen>
<DependentUpon>T4DaraContext.tt</DependentUpon>
</Compile>
<Compile Update="T4DataContext.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>T4DataContext.tt</DependentUpon>
</Compile>
</ItemGroup>
</Project>

View File

@@ -9,7 +9,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Service
{
public class MenuService:BaseService<menu>, IMenuService
public partial class MenuService:BaseService<menu>, IMenuService
{
public MenuService(DbContext Db) : base(Db) { }
@@ -41,11 +41,13 @@ namespace Yi.Framework.Service
return childrenList;
}
public async Task<List<menu>> GetChildrenMenu()
public async Task<List<menu>> GetChildrenMenu(menu _menu)
{
return await _Db.Set<menu>().Include(u => u.children)
.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal&& u.is_top == (short)Common.Enum.TopFlagEnum.Children )
.ToListAsync();
var menu= await _Db.Set<menu>().Include(u => u.children).Include(u=>u.mould)
.Where(u =>u.id==_menu.id&& u.is_delete == (short)Common.Enum.DelFlagEnum.Normal&& u.is_top == (short)Common.Enum.TopFlagEnum.Children )
.FirstOrDefaultAsync();
var childrenList = menu.children.ToList();
return childrenList;
}
public async Task<menu> GetMenuMouldByMenu(menu _menu)
@@ -75,5 +77,6 @@ namespace Yi.Framework.Service
menu_data.mould = mould_data;
return await UpdateAsync(menu_data);
}
}
}

View File

@@ -9,7 +9,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Service
{
public class MouldService:BaseService<mould>, IMouldService
public partial class MouldService:BaseService<mould>, IMouldService
{
public MouldService(DbContext Db) : base(Db) { }

View File

@@ -9,7 +9,7 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Service
{
public class RoleService:BaseService<role>, IRoleService
public partial class RoleService:BaseService<role>, IRoleService
{
public RoleService(DbContext Db):base(Db)
{
@@ -30,7 +30,9 @@ namespace Yi.Framework.Service
{
var role_data =await _Db.Set<role>().Include(u => u.menus)
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
return role_data.menus.ToList();
var menuList =role_data.menus.Where(u => u.is_top == (short)Common.Enum.TopFlagEnum.Top && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal)
.ToList();
return menuList;
}
public async Task<List<user>> GetUsersByRole(role _role)

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.Models;
using Yi.Framework.Interface;
using Microsoft.EntityFrameworkCore;
namespace Yi.Framework.Service
{
public partial class MenuService:BaseService<menu>,IMenuService
{
//public MenuService(DbContext Db):base(Db){ }
}
public partial class MouldService:BaseService<mould>,IMouldService
{
//public MouldService(DbContext Db):base(Db){ }
}
public partial class RoleService:BaseService<role>,IRoleService
{
//public RoleService(DbContext Db):base(Db){ }
}
public partial class UserService:BaseService<user>,IUserService
{
//public UserService(DbContext Db):base(Db){ }
}
}

View File

@@ -0,0 +1,43 @@
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
DirectoryInfo dir = new DirectoryInfo(@"D:\YiFramework\Yi\Yi.Framework\Yi.Framework.Model\Models\");
FileInfo[] finfo = dir.GetFiles();
string filenames = string.Empty;
List<string> filenameList = new List<string>();
for (int i = 0; i < finfo.Length; i++)
{
filenames = finfo[i].Name ;
string[] fname=filenames.Split('.');
filenameList.Add(fname[0]);
}
#>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Model.Models;
using Yi.Framework.Interface;
using Microsoft.EntityFrameworkCore;
namespace Yi.Framework.Service
{
<# foreach(string k in filenameList){
string fn= k.Substring(0,1).ToUpper()+k.Substring(1);
#>
public partial class <#= fn #>Service:BaseService<<#= k #>>,I<#= fn #>Service
{
//public <#= fn #>Service(DbContext Db):base(Db){ }
}
<# } #>
}

View File

@@ -11,10 +11,12 @@ using Yi.Framework.Model.Models;
namespace Yi.Framework.Service
{
public class UserService: BaseService<user>,IUserService
public partial class UserService: BaseService<user>,IUserService
{
public UserService(DbContext Db) :base(Db)
private IRoleService _roleService;
public UserService(DbContext Db, IRoleService roleService) :base(Db)
{
_roleService = roleService;
}
public async Task<bool> DelListByUpdateAsync(List<int> _ids)
{
@@ -97,5 +99,19 @@ namespace Yi.Framework.Service
return await UpdateListAsync(user_data);
}
public async Task <List<List<menu>>> GetMenuByUser(user _user)
{
var user_data =await _Db.Set<user>().Include(u => u.roles).ThenInclude(u => u.menus)
.Where(u => u.id == _user.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
var roleList= user_data.roles.ToList();
var menuList = new List<List<menu>>();
foreach (var role in roleList)
{
var menu= await _roleService.GetMenusByRole(role);
menuList.Add(menu);
}
return menuList;
}
}
}

View File

@@ -8,6 +8,14 @@
<Compile Remove="T4DaraContext.cs" />
</ItemGroup>
<ItemGroup>
<None Include="T4Service.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>T4Service.tt</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Yi.Framework.Interface\Yi.Framework.Interface.csproj" />
<ProjectReference Include="..\Yi.Framework.Model\Yi.Framework.Model.csproj" />