Skip to content

Commit

Permalink
添加分页查询,添加泛型递归添加统一返回前端格式数据
Browse files Browse the repository at this point in the history
  • Loading branch information
KawhiWei committed Apr 17, 2020
1 parent 6cf5823 commit 9dd1b03
Show file tree
Hide file tree
Showing 23 changed files with 695 additions and 42 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
Expand All @@ -8,6 +9,10 @@
using Sukt.Core.Application.Contracts.DictionaryContract;
using Sukt.Core.AspNetCore.ApiBase;
using Sukt.Core.Dtos.DataDictionaryDto;
using Sukt.Core.Shared.AjaxResult;
using Sukt.Core.Shared.Entity;
using Sukt.Core.Shared.Extensions;
using Sukt.Core.Shared.Extensions.ResultExtensions;

namespace Sukt.Core.API.Controllers.DataDictionary
{
Expand All @@ -32,5 +37,32 @@ public async Task<bool> CreateAsync(DataDictionaryInputDto input)
{
return await _dictionary.InsertAsync(input);
}
/// <summary>
/// 添加一个数据字典
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet]
public async Task<PageList<DataDictionaryOutDto>> GetPageAsync([FromQuery]BaseQuery input)
{
return (await _dictionary.GetResultAsync(input)).PageList();
}
/// <summary>
/// 获取组织架构
/// </summary>
/// <returns></returns>
[HttpGet]
[Description("获取组织架构")]
public async Task<TreeData<TreeDictionaryOutDto>> GetTreeAsync()
{

var result = await _dictionary.GetTreeAsync();
return new TreeData<TreeDictionaryOutDto>()
{
Data = result.Data,
Message = result.Message,
Success = result.Success
};
}
}
}
30 changes: 30 additions & 0 deletions Sukt.Core/src/Sukt.Core.API/Startups/AspNetCoreMvcModule.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Sukt.Core.Shared.SuktAppModules;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Sukt.Core.API.Startups
{
public class AspNetCoreMvcModule: SuktAppModuleBase
{
public override IServiceCollection ConfigureServices(IServiceCollection service)
{
service.AddControllers().AddNewtonsoftJson(options => {
options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
});
return service;
}
public override void Configure(IApplicationBuilder applicationBuilder)
{
applicationBuilder.UseRouting();
applicationBuilder.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
9 changes: 9 additions & 0 deletions Sukt.Core/src/Sukt.Core.Application.Contracts/Class1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System;

namespace Sukt.Core.Application.Contracts
{
public class Class1
{

}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using Sukt.Core.Dtos.DataDictionaryDto;
using Sukt.Core.Shared.Entity;
using Sukt.Core.Shared.Extensions.ResultExtensions;
using System;
using System.Collections.Generic;
using System.Text;
Expand All @@ -8,6 +10,23 @@ namespace Sukt.Core.Application.Contracts.DictionaryContract
{
public interface IDictionaryContract
{
/// <summary>
/// 新增
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<bool> InsertAsync(DataDictionaryInputDto input);
/// <summary>
/// 分页获取
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<PageResult<DataDictionaryOutDto>> GetResultAsync(BaseQuery query);
/// <summary>
/// 获取树形数据
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
Task<TreeData<TreeDictionaryOutDto>> GetTreeAsync();
}
}
8 changes: 8 additions & 0 deletions Sukt.Core/src/Sukt.Core.Application/Class1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using System;

namespace Sukt.Core.Application
{
public class Class1
{
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@
using Sukt.Core.Domain.Models.DataDictionary;
using Sukt.Core.Dtos.DataDictionaryDto;
using Sukt.Core.Shared.Attributes.Dependency;
using Sukt.Core.Shared.Entity;
using Sukt.Core.Shared.Extensions;
using Sukt.Core.Shared.Extensions.OrderExtensions;
using Sukt.Core.Shared.Extensions.PageExyensions;
using Sukt.Core.Shared.Extensions.ResultExtensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Expand All @@ -16,7 +21,7 @@ namespace Sukt.Core.Application.DictionaryContract
/// 数据字典应用实现层
/// </summary>
[Dependency(ServiceLifetime.Scoped)]
public class DictionaryContract: IDictionaryContract
public class DictionaryContract : IDictionaryContract
{
private readonly IDataDictionaryRepository _dataDictionary;

Expand All @@ -28,7 +33,43 @@ public async Task<bool> InsertAsync(DataDictionaryInputDto input)
{
input.NotNull(nameof(input));
var entity = input.MapTo<DataDictionaryEntity>();
return await _dataDictionary.InsertAsync(entity)>0;
return await _dataDictionary.InsertAsync(entity) > 0;
}
public async Task<PageResult<DataDictionaryOutDto>> GetResultAsync(BaseQuery query)
{
var param = new PageParameters(query.PageIndex, query.PageRow);
param.OrderConditions = new OrderCondition[]
{
new OrderCondition(query.SortName,query.SortDirection)
};
return await _dataDictionary.NoTrackEntities.ToPageAsync<DataDictionaryEntity, DataDictionaryOutDto>(x => x.IsDeleted == false, param);
}
/// <summary>
/// 获取树形数据
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<TreeData<TreeDictionaryOutDto>> GetTreeAsync()
{
var list = await _dataDictionary.NoTrackEntities.ToTreeResultAsync<DataDictionaryEntity, TreeDictionaryOutDto>(
(p, c) =>
{
return c.ParentId == null || c.ParentId == Guid.Empty;
},
(p, c) =>
{
return p.Id == c.ParentId;
},
(p, datalist) =>
{
if (p.Children == null)
{
p.Children = new List<TreeDictionaryOutDto>();
}
p.Children.AddRange(datalist);
}
);
return list;
}
}
}
10 changes: 10 additions & 0 deletions Sukt.Core/src/Sukt.Core.Domain/DomainInterfaces/IRepository.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace Sukt.Core.Domain.DomainInterfaces
{
public interface IRepository
{
}
}
8 changes: 8 additions & 0 deletions Sukt.Core/src/Sukt.Core.Dtos/Class1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using System;

namespace Sukt.Core.Dtos
{
public class Class1
{
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using AutoMapper;
using Sukt.Core.Domain.Models.DataDictionary;
using Sukt.Core.Shared.Entity;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace Sukt.Core.Dtos.DataDictionaryDto
{
[AutoMap(typeof(DataDictionaryEntity))]
public class DataDictionaryOutDto: OutputDtoBase<Guid>
{
/// <summary>
/// 数据字典标题
/// </summary>
[DisplayName("数据字典标题")]
public string Title { get; set; }
/// <summary>
/// 数据字典值
/// </summary>
[DisplayName("数据字典值")]
public string Value { get; set; }
/// <summary>
/// 数据字典备注
/// </summary>
[DisplayName("数据字典备注")]
public string Remark { get; set; }
/// <summary>
/// 数据字典父级
/// </summary>
[DisplayName("数据字典父级")]
public Guid ParentId { get; set; } = Guid.Empty;
/// <summary>
/// 排序
/// </summary>
[DisplayName("排序")]
public int Sort { get; set; }
/// <summary>
///获取或设置 编码
/// </summary>
[DisplayName("唯一编码")]
public string Code { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using AutoMapper;
using Sukt.Core.Domain.Models.DataDictionary;
using System;
using System.Collections.Generic;
using System.Text;

namespace Sukt.Core.Dtos.DataDictionaryDto
{
public class DictionaryProfile: Profile
{
public DictionaryProfile()
{
CreateMap<DataDictionaryEntity, TreeDictionaryOutDto>().ForMember(x => x.title, opt => opt.MapFrom(x => x.Title));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using Sukt.Core.Shared.Entity;
using System;
using System.Collections.Generic;
using System.Text;

namespace Sukt.Core.Dtos.DataDictionaryDto
{
public class TreeDictionaryOutDto: OutputDtoBase<Guid>
{
/// <summary>
/// 标题
/// </summary>
public string title { get; set; }
/// <summary>
/// 是否展开直子节点
/// </summary>
public bool expand { get; set; }
/// <summary>
/// 禁掉响应
/// </summary>
public string disabled { get; set; }
/// <summary>
/// 组织架构深度
/// </summary>
public string Depth { get; set; }
/// <summary>
/// 父级ID
/// </summary>
public Guid ParentId { get; set; }
/// <summary>
/// 当前节点以上所有组织架构
/// </summary>
public string ParenNumber { get; set; }
/// <summary>
/// 组织架构标题
/// </summary>
public List<TreeDictionaryOutDto> Children { get; set; } = new List<TreeDictionaryOutDto>();
}
}
30 changes: 30 additions & 0 deletions Sukt.Core/src/Sukt.Core.Shared/AjaxResult/PageList.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using Sukt.Core.Shared.Extensions.ResultExtensions;
using System;
using System.Collections.Generic;
using System.Text;

namespace Sukt.Core.Shared.AjaxResult
{
public class PageList<T>:ResultBase
{
public PageList():this(new T[0],0,"查询成功",true)
{

}
public PageList(IEnumerable<T> data, int total, string message = "查询成功", bool success = true)
{
Data = data;
Total = total;
Success = success;
this.Message = message;
}
/// <summary>
/// 分页数据返回集合
/// </summary>
public IEnumerable<T> Data { get; set; }
/// <summary>
/// 查询条件的总条数
/// </summary>
public int Total { get; set; }
}
}
28 changes: 28 additions & 0 deletions Sukt.Core/src/Sukt.Core.Shared/Entity/BaseQuery.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using Sukt.Core.Shared.Enums;
using System;
using System.Collections.Generic;
using System.Text;

namespace Sukt.Core.Shared.Entity
{
public class BaseQuery
{
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; } = 1;
/// <summary>
/// 页行数
/// </summary>
public int PageRow { get; set; } = 10;
/// <summary>
/// 排序字段
/// </summary>
public string SortName { get; set; } = "Id";
/// <summary>
/// 排序方向
/// </summary>
public SortDirectionEnum SortDirection { get; set; } = SortDirectionEnum.Ascending;

}
}
10 changes: 0 additions & 10 deletions Sukt.Core/src/Sukt.Core.Shared/Enums/OperationEnumType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,4 @@ public enum OperationEnumType
[Description("操作没有引发任何变化")]
NoChanged = 20,
}
/// <summary>
/// 排序方向
/// </summary>
public enum SortDirection
{

Ascending = 0,

Descending = 1
}
}
Loading

0 comments on commit 9dd1b03

Please sign in to comment.