<#@ template language="C#" #> <#@ assembly name="System.Core" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> <#@ import namespace="System.Collections.Generic" #> using Abp.Application.Services.Dto; using Abp.Auditing; using Abp.Authorization; using Abp.Domain.Repositories; using Abp.Linq.Extensions; using Abp.Runtime.Caching; using VberZero.AppService.Base; using VberZero.AppService.Base.Dto; using VberZero.Auditing; using VberZero.Tools.StringModel; using <#=Model.ApplicationNamespace#>.Dto; <# string auditLog=string.IsNullOrEmpty(Model.HtmlPageTitle) ? "" : ", AuditLog(\""+ Model.HtmlPageTitle +"\")" ; #> namespace <#=Model.ApplicationNamespace#> { [AbpAuthorize<#=auditLog#>] public class <#=Model.FileName#>AppService : VzCrudAppServiceBase<<#=Model.ClassName#>, <#=Model.FileName#>Dto, <#=Model.IdType#>, VzPagedRequestDto, <#=Model.FileName#>CreateDto, <#=Model.FileName#>UpdateDto >, I<#=Model.FileName#>AppService { public <#=Model.FileName#>AppService(ICacheManager cacheManager, IRepository<<#=Model.ClassName#>, <#=Model.IdType#>> repository) : base(repository, "<#=Model.ColumnPrimaryKey#>") { CacheManager = cacheManager; } protected override bool KeyIsAuto { get; set; } = false; #region CURD [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgCreate)] public override async Task Create(<#=Model.FileName#>CreateDto input) { await CreateEntity(input); } [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgUpdate)] public override async Task Update(<#=Model.FileName#>UpdateDto input) { await UpdateEntity(input); } [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgDelete)] public override Task Delete(VzEntityDto<<#=Model.IdType#>> input) { return DeleteEntity(input); } [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async TaskDto>> GetAll(VzPagedRequestDto input) { var query = CreateFilteredQuery(input); query = ApplyFilter(query, input); var totalCount = await AsyncQueryableExecuter.CountAsync(query); query = ApplySorting(query, input); query = ApplyPaging(query, input); var entities = await AsyncQueryableExecuter.ToListAsync(query); var dtoList = new PagedResultDto<<#=Model.FileName#>Dto>(totalCount, entities.Select(MapToEntityDto).ToList()); return dtoList; } /// /// 默认自定义排序 /// /// /// /// /// protected override IQueryable SelfSorting(IQueryable query, VzPagedRequestDto input) { if (query is IQueryable<<#=Model.ClassName#>> queryable) return (IQueryable)queryable.OrderByDescending(r => r.Id); return query; } /// /// 关键字查询 /// /// /// /// /// protected override IQueryable KeyWordFilter(IQueryable query, string keyword) { if (query is IQueryable<<#=Model.ClassName#>> queryable) return (IQueryable)queryable.WhereIf(keyword.NotEmpty(), a => a.Name.Contains(keyword)); return query; } /// /// 特殊条件时,自定义查询 (使用完该字段查询条件时,应该从list里清除) /// /// /// /// protected override IQueryable SelfFilter(IQueryable query, List list) { //if (query is IQueryable<<#=Model.ClassName#>> queryable) //{ // var search = list.FirstOrDefault(a => a.KeyField.ToLower() == "xxxxxx"); // if (search != null) // { // var keyword = search.KeyWords; // if (keyword == "xxx") // { // // list.Remove(search); // } // } // return (IQueryable)queryable; //} return query; } #region GetEntity/Dto /// /// 查询实体Dto /// /// /// [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async Task<<#=Model.FileName#>Dto> GetDto(VzEntityDto<<#=Model.IdType#>> input) { var entity = await GetEntity(input); return MapToEntityDto(entity); } /// /// 查询实体Dto /// /// /// [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async Task<<#=Model.FileName#>Dto> GetDtoById(<#=Model.IdType#> id) { var entity = await GetEntityById(id); return MapToEntityDto(entity); } /// /// 查询实体Dto(需指明自定义字段) /// /// /// [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async Task<<#=Model.FileName#>Dto> GetDtoByNo(string no) { var entity = await GetEntityByNo(no); return MapToEntityDto(entity); } /// /// 查询实体 /// /// /// [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async Task<<#=Model.ClassName#>> GetEntity(VzEntityDto<<#=Model.IdType#>> input) { var entity = await GetEntityById(input.Id); return entity; } /// /// 查询实体 /// /// /// [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async Task<<#=Model.ClassName#>> GetEntityById(<#=Model.IdType#> id) { return await Repository.FirstOrDefaultAsync(a=>a.Id==id); } /// /// 查询实体(需指明自定义字段) /// /// /// [DisableAuditing] [AbpAuthorize(PermissionNames.Vber<#=Model.ParentPath#><#=Model.FileName#>MgQuery)] public override async Task<<#=Model.ClassName#>> GetEntityByNo(string no) { //CheckGetPermission(); if (string.IsNullOrEmpty(KeyFiledName)) { ThrowError("NoKeyFieldName"); } return await base.GetEntityByNo(no); } #endregion #endregion } }