瀏覽代碼

新增数据字典类型管理
数据字典树型结构调整为扁平化结构
修复token以旧换新异常的问题
更正服务变量命名问题
更新数据包data.json

zhontai 3 年之前
父節點
當前提交
8da54df191
共有 36 個文件被更改,包括 745 次插入209 次删除
  1. 7 5
      Admin.Core.Model/Admin/DictionaryEntity.cs
  2. 48 0
      Admin.Core.Model/Admin/DictionaryTypeEntity.cs
  3. 11 0
      Admin.Core.Repository/Admin/DictionaryType/DictionaryTypeRepository.cs
  4. 8 0
      Admin.Core.Repository/Admin/DictionaryType/IDictionaryTypeRepository.cs
  5. 1 2
      Admin.Core.Repository/Base/DbHelper.cs
  6. 16 16
      Admin.Core.Repository/Base/IRepositoryBase.cs
  7. 30 30
      Admin.Core.Repository/Base/RepositoryBase.cs
  8. 89 0
      Admin.Core.Service/Admin/DictionaryType/DictionaryTypeService.cs
  9. 23 0
      Admin.Core.Service/Admin/DictionaryType/IDictionaryTypeService.cs
  10. 28 0
      Admin.Core.Service/Admin/DictionaryType/Input/DictionaryTypeAddInput.cs
  11. 18 0
      Admin.Core.Service/Admin/DictionaryType/Input/DictionaryTypeUpdateInput.cs
  12. 8 0
      Admin.Core.Service/Admin/DictionaryType/Output/DictionaryTypeGetOutput.cs
  13. 37 0
      Admin.Core.Service/Admin/DictionaryType/Output/DictionaryTypeListOutput.cs
  14. 18 0
      Admin.Core.Service/Admin/DictionaryType/_MapConfig.cs
  15. 2 2
      Admin.Core.Service/Admin/User/UserService.cs
  16. 52 2
      Admin.Core/Admin.Core.Model.xml
  17. 75 0
      Admin.Core/Admin.Core.Service.xml
  18. 44 4
      Admin.Core/Admin.Core.xml
  19. 2 2
      Admin.Core/Attributes/ValidatePermissionAttribute.cs
  20. 11 11
      Admin.Core/Controllers/Admin/ApiController.cs
  21. 12 6
      Admin.Core/Controllers/Admin/AuthController.cs
  22. 5 5
      Admin.Core/Controllers/Admin/CacheController.cs
  23. 8 8
      Admin.Core/Controllers/Admin/DictionaryController.cs
  24. 78 0
      Admin.Core/Controllers/Admin/DictionaryTypeController.cs
  25. 19 19
      Admin.Core/Controllers/Admin/DocumentController.cs
  26. 22 22
      Admin.Core/Controllers/Admin/PermissionController.cs
  27. 9 9
      Admin.Core/Controllers/Admin/RoleController.cs
  28. 10 10
      Admin.Core/Controllers/Admin/TenantController.cs
  29. 12 12
      Admin.Core/Controllers/Admin/UserController.cs
  30. 11 11
      Admin.Core/Controllers/Admin/ViewController.cs
  31. 1 1
      Admin.Core/Controllers/BaseController.cs
  32. 9 11
      Admin.Core/Controllers/Personnel/EmployeeController.cs
  33. 8 8
      Admin.Core/Controllers/Personnel/OrganizationController.cs
  34. 9 9
      Admin.Core/Controllers/Personnel/PositionController.cs
  35. 0 0
      Admin.Core/Db/Data/data-share.json
  36. 4 4
      Admin.Core/configs/dbconfig.json

+ 7 - 5
Admin.Core.Model/Admin/DictionaryEntity.cs

@@ -8,7 +8,7 @@ namespace Admin.Core.Model.Admin
     /// 数据字典
     /// </summary>
 	[Table(Name = "ad_dictionary")]
-    [Index("idx_{tablename}_01", nameof(ParentId) + "," + nameof(Name) + "," + nameof(TenantId), true)]
+    [Index("idx_{tablename}_01", nameof(DictionaryTypeId) + "," + nameof(Name) + "," + nameof(TenantId), true)]
     public class DictionaryEntity : EntityFull, ITenant
     {
         /// <summary>
@@ -18,12 +18,14 @@ namespace Admin.Core.Model.Admin
         public long? TenantId { get; set; }
 
         /// <summary>
-        /// 字典父级
+        /// 字典类型Id
         /// </summary>
-		public long ParentId { get; set; }
+        public long DictionaryTypeId { get; set; }
 
-        [Navigate(nameof(ParentId))]
-        public List<DictionaryEntity> Childs { get; set; }
+        /// <summary>
+        /// 字典类型
+        /// </summary>
+        public DictionaryTypeEntity DictionaryType { get; set; }
 
         /// <summary>
         /// 字典名称

+ 48 - 0
Admin.Core.Model/Admin/DictionaryTypeEntity.cs

@@ -0,0 +1,48 @@
+using Admin.Core.Common.BaseModel;
+using FreeSql.DataAnnotations;
+using System.Collections.Generic;
+
+namespace Admin.Core.Model.Admin
+{
+    /// <summary>
+    /// 数据字典类型
+    /// </summary>
+	[Table(Name = "ad_dictionary_type")]
+    [Index("idx_{tablename}_01", nameof(Name) + "," + nameof(TenantId), true)]
+    public class DictionaryTypeEntity : EntityFull, ITenant
+    {
+        /// <summary>
+        /// 租户Id
+        /// </summary>
+        [Column(Position = -10, CanUpdate = false)]
+        public long? TenantId { get; set; }
+
+        /// <summary>
+        /// 名称
+        /// </summary>
+        [Column(StringLength = 50)]
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 编码
+        /// </summary>
+        [Column(StringLength = 50)]
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 描述
+        /// </summary>
+        [Column(StringLength = 500)]
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 启用
+        /// </summary>
+		public bool Enabled { get; set; } = true;
+
+        /// <summary>
+        /// 排序
+        /// </summary>
+		public int Sort { get; set; }
+    }
+}

+ 11 - 0
Admin.Core.Repository/Admin/DictionaryType/DictionaryTypeRepository.cs

@@ -0,0 +1,11 @@
+using Admin.Core.Model.Admin;
+
+namespace Admin.Core.Repository.Admin
+{
+    public class DictionaryTypeRepository : RepositoryBase<DictionaryTypeEntity>, IDictionaryTypeRepository
+    {
+        public DictionaryTypeRepository(MyUnitOfWorkManager muowm) : base(muowm)
+        {
+        }
+    }
+}

+ 8 - 0
Admin.Core.Repository/Admin/DictionaryType/IDictionaryTypeRepository.cs

@@ -0,0 +1,8 @@
+using Admin.Core.Model.Admin;
+
+namespace Admin.Core.Repository.Admin
+{
+    public partial interface IDictionaryTypeRepository : IRepositoryBase<DictionaryTypeEntity>
+    {
+    }
+}

+ 1 - 2
Admin.Core.Repository/Base/DbHelper.cs

@@ -673,8 +673,7 @@ namespace Admin.Core.Repository
                     tenants,
                     tenantPermissions,
                     permissionApis,
-
-                    organizationTree
+                    //organizationTree
                 },
                 //Formatting.Indented,
                 settings

+ 16 - 16
Admin.Core.Repository/Base/IRepositoryBase.cs

@@ -11,7 +11,7 @@ namespace Admin.Core.Repository
         /// 获得Dto
         /// </summary>
         /// <typeparam name="TDto"></typeparam>
-        /// <param name="id"></param>
+        /// <param name="id">主键</param>
         /// <returns></returns>
         Task<TDto> GetAsync<TDto>(TKey id);
 
@@ -30,41 +30,41 @@ namespace Admin.Core.Repository
         Task<TEntity> GetAsync(Expression<Func<TEntity, bool>> exp);
 
         /// <summary>
-        /// 递归删除
+        /// 删除
         /// </summary>
-        /// <param name="exp"></param>
-        /// <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
+        /// <param name="id">主键</param>
         /// <returns></returns>
-        Task<bool> RecursiveDeleteAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames);
+        Task<bool> SoftDeleteAsync(TKey id);
 
         /// <summary>
-        /// 递归软删除
+        /// 批量软删除
         /// </summary>
-        /// <param name="exp"></param>
-        /// <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
+        /// <param name="ids">主键数组</param>
         /// <returns></returns>
-        Task<bool> RecursiveSoftDeleteAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames);
+        Task<bool> SoftDeleteAsync(TKey[] ids);
 
         /// <summary>
         /// 软删除
         /// </summary>
-        /// <param name="id"></param>
+        /// <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
         /// <returns></returns>
-        Task<bool> SoftDeleteAsync(TKey id);
+        Task<bool> SoftDeleteAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames);
 
         /// <summary>
-        /// 批量删除
+        /// 递归删除
         /// </summary>
-        /// <param name="id"></param>
+        /// <param name="exp"></param>
+        /// <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
         /// <returns></returns>
-        Task<bool> SoftDeleteAsync(TKey[] id);
+        Task<bool> DeleteRecursiveAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames);
 
         /// <summary>
-        /// 软删除
+        /// 递归软删除
         /// </summary>
+        /// <param name="exp"></param>
         /// <param name="disableGlobalFilterNames">禁用全局过滤器名</param>
         /// <returns></returns>
-        Task<bool> SoftDeleteAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames);
+        Task<bool> SoftDeleteRecursiveAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames);
     }
 
     public interface IRepositoryBase<TEntity> : IRepositoryBase<TEntity, long> where TEntity : class

+ 30 - 30
Admin.Core.Repository/Base/RepositoryBase.cs

@@ -29,36 +29,6 @@ namespace Admin.Core.Repository
             return Select.Where(exp).ToOneAsync();
         }
 
-        public virtual async Task<bool> RecursiveDeleteAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames)
-        {
-            await Select
-            .Where(exp)
-            .DisableGlobalFilter(disableGlobalFilterNames)
-            .AsTreeCte()
-            .ToDelete()
-            .ExecuteAffrowsAsync();
-
-            return true;
-        }
-
-        public virtual async Task<bool> RecursiveSoftDeleteAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames)
-        {
-            await Select
-            .Where(exp)
-            .DisableGlobalFilter(disableGlobalFilterNames)
-            .AsTreeCte()
-            .ToUpdate()
-            .SetDto(new
-            {
-                IsDeleted = true,
-                ModifiedUserId = User.Id,
-                ModifiedUserName = User.Name
-            })
-            .ExecuteAffrowsAsync();
-
-            return true;
-        }
-
         public virtual async Task<bool> SoftDeleteAsync(TKey id)
         {
             await UpdateDiy
@@ -104,6 +74,36 @@ namespace Admin.Core.Repository
 
             return true;
         }
+
+        public virtual async Task<bool> DeleteRecursiveAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames)
+        {
+            await Select
+            .Where(exp)
+            .DisableGlobalFilter(disableGlobalFilterNames)
+            .AsTreeCte()
+            .ToDelete()
+            .ExecuteAffrowsAsync();
+
+            return true;
+        }
+
+        public virtual async Task<bool> SoftDeleteRecursiveAsync(Expression<Func<TEntity, bool>> exp, params string[] disableGlobalFilterNames)
+        {
+            await Select
+            .Where(exp)
+            .DisableGlobalFilter(disableGlobalFilterNames)
+            .AsTreeCte()
+            .ToUpdate()
+            .SetDto(new
+            {
+                IsDeleted = true,
+                ModifiedUserId = User.Id,
+                ModifiedUserName = User.Name
+            })
+            .ExecuteAffrowsAsync();
+
+            return true;
+        }
     }
 
     public class RepositoryBase<TEntity> : RepositoryBase<TEntity, long>, IRepositoryBase<TEntity> where TEntity : class, new()

+ 89 - 0
Admin.Core.Service/Admin/DictionaryType/DictionaryTypeService.cs

@@ -0,0 +1,89 @@
+using Admin.Core.Common.Input;
+using Admin.Core.Common.Output;
+using Admin.Core.Model.Admin;
+using Admin.Core.Repository.Admin;
+using Admin.Core.Service.Admin.DictionaryType.Input;
+using Admin.Core.Service.Admin.DictionaryType.Output;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Service.Admin.DictionaryType
+{
+    public class DictionaryTypeService : BaseService, IDictionaryTypeService
+    {
+        private readonly IDictionaryTypeRepository _DictionaryTypeRepository;
+
+        public DictionaryTypeService(IDictionaryTypeRepository DictionaryTypeRepository)
+        {
+            _DictionaryTypeRepository = DictionaryTypeRepository;
+        }
+
+        public async Task<IResponseOutput> GetAsync(long id)
+        {
+            var result = await _DictionaryTypeRepository.GetAsync<DictionaryTypeGetOutput>(id);
+            return ResponseOutput.Ok(result);
+        }
+
+        public async Task<IResponseOutput> PageAsync(PageInput<DictionaryTypeEntity> input)
+        {
+            var key = input.Filter?.Name;
+
+            var list = await _DictionaryTypeRepository.Select
+            .WhereIf(key.NotNull(), a => a.Name.Contains(key) || a.Code.Contains(key))
+            .Count(out var total)
+            .OrderByDescending(true, c => c.Id)
+            .Page(input.CurrentPage, input.PageSize)
+            .ToListAsync<DictionaryTypeListOutput>();
+
+            var data = new PageOutput<DictionaryTypeListOutput>()
+            {
+                List = list,
+                Total = total
+            };
+
+            return ResponseOutput.Ok(data);
+        }
+
+        public async Task<IResponseOutput> AddAsync(DictionaryTypeAddInput input)
+        {
+            var DictionaryType = Mapper.Map<DictionaryTypeEntity>(input);
+            var id = (await _DictionaryTypeRepository.InsertAsync(DictionaryType)).Id;
+            return ResponseOutput.Result(id > 0);
+        }
+
+        public async Task<IResponseOutput> UpdateAsync(DictionaryTypeUpdateInput input)
+        {
+            if (!(input?.Id > 0))
+            {
+                return ResponseOutput.NotOk();
+            }
+
+            var entity = await _DictionaryTypeRepository.GetAsync(input.Id);
+            if (!(entity?.Id > 0))
+            {
+                return ResponseOutput.NotOk("数据字典不存在!");
+            }
+
+            Mapper.Map(input, entity);
+            await _DictionaryTypeRepository.UpdateAsync(entity);
+            return ResponseOutput.Ok();
+        }
+
+        public async Task<IResponseOutput> DeleteAsync(long id)
+        {
+            var result = false;
+            if (id > 0)
+            {
+                result = (await _DictionaryTypeRepository.DeleteAsync(m => m.Id == id)) > 0;
+            }
+
+            return ResponseOutput.Result(result);
+        }
+
+        public async Task<IResponseOutput> SoftDeleteAsync(long id)
+        {
+            var result = await _DictionaryTypeRepository.SoftDeleteAsync(id);
+
+            return ResponseOutput.Result(result);
+        }
+    }
+}

+ 23 - 0
Admin.Core.Service/Admin/DictionaryType/IDictionaryTypeService.cs

@@ -0,0 +1,23 @@
+using Admin.Core.Common.Input;
+using Admin.Core.Common.Output;
+using Admin.Core.Model.Admin;
+using Admin.Core.Service.Admin.DictionaryType.Input;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Service.Admin.DictionaryType
+{
+    public partial interface IDictionaryTypeService
+    {
+        Task<IResponseOutput> GetAsync(long id);
+
+        Task<IResponseOutput> PageAsync(PageInput<DictionaryTypeEntity> model);
+
+        Task<IResponseOutput> AddAsync(DictionaryTypeAddInput input);
+
+        Task<IResponseOutput> UpdateAsync(DictionaryTypeUpdateInput input);
+
+        Task<IResponseOutput> DeleteAsync(long id);
+
+        Task<IResponseOutput> SoftDeleteAsync(long id);
+    }
+}

+ 28 - 0
Admin.Core.Service/Admin/DictionaryType/Input/DictionaryTypeAddInput.cs

@@ -0,0 +1,28 @@
+namespace Admin.Core.Service.Admin.DictionaryType.Input
+{
+    /// <summary>
+    /// 添加
+    /// </summary>
+    public class DictionaryTypeAddInput
+    {
+        /// <summary>
+        /// 字典名称
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 字典编码
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 描述
+        /// </summary>
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 启用
+        /// </summary>
+		public bool Enabled { get; set; }
+    }
+}

+ 18 - 0
Admin.Core.Service/Admin/DictionaryType/Input/DictionaryTypeUpdateInput.cs

@@ -0,0 +1,18 @@
+namespace Admin.Core.Service.Admin.DictionaryType.Input
+{
+    /// <summary>
+    /// 修改
+    /// </summary>
+    public class DictionaryTypeUpdateInput : DictionaryTypeAddInput
+    {
+        /// <summary>
+        /// 主键Id
+        /// </summary>
+        public long Id { get; set; }
+
+        /// <summary>
+        /// 版本
+        /// </summary>
+        public long Version { get; set; }
+    }
+}

+ 8 - 0
Admin.Core.Service/Admin/DictionaryType/Output/DictionaryTypeGetOutput.cs

@@ -0,0 +1,8 @@
+using Admin.Core.Service.Admin.DictionaryType.Input;
+
+namespace Admin.Core.Service.Admin.DictionaryType.Output
+{
+    public class DictionaryTypeGetOutput : DictionaryTypeUpdateInput
+    {
+    }
+}

+ 37 - 0
Admin.Core.Service/Admin/DictionaryType/Output/DictionaryTypeListOutput.cs

@@ -0,0 +1,37 @@
+using System;
+
+namespace Admin.Core.Service.Admin.DictionaryType.Output
+{
+    public class DictionaryTypeListOutput
+    {
+        /// <summary>
+        /// 主键Id
+        /// </summary>
+        public long Id { get; set; }
+
+        /// <summary>
+        /// 字典名称
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 字典编码
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 描述
+        /// </summary>
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 启用
+        /// </summary>
+		public bool Enabled { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        public DateTime? CreatedTime { get; set; }
+    }
+}

+ 18 - 0
Admin.Core.Service/Admin/DictionaryType/_MapConfig.cs

@@ -0,0 +1,18 @@
+using Admin.Core.Model.Admin;
+using Admin.Core.Service.Admin.DictionaryType.Input;
+using AutoMapper;
+
+namespace Admin.Core.Service.Admin.DictionaryType
+{
+    /// <summary>
+    /// 映射配置
+    /// </summary>
+    public class MapConfig : Profile
+    {
+        public MapConfig()
+        {
+            CreateMap<DictionaryTypeAddInput, DictionaryTypeEntity>();
+            CreateMap<DictionaryTypeUpdateInput, DictionaryTypeEntity>();
+        }
+    }
+}

+ 2 - 2
Admin.Core.Service/Admin/User/UserService.cs

@@ -51,8 +51,8 @@ namespace Admin.Core.Service.Admin.User
                 var tenant = await _tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(entityDto.TenantId).ToOneAsync(a => new { a.TenantType, a.DataIsolationType });
                 if(null != tenant)
                 {
-                    output.Data.TenantType = tenant.TenantType;
-                    output.Data.DataIsolationType = tenant.DataIsolationType;
+                    entityDto.TenantType = tenant.TenantType;
+                    entityDto.DataIsolationType = tenant.DataIsolationType;
                 }
             }
             return output.Ok(entityDto);

+ 52 - 2
Admin.Core/Admin.Core.Model.xml

@@ -59,9 +59,14 @@
             租户Id
             </summary>
         </member>
-        <member name="P:Admin.Core.Model.Admin.DictionaryEntity.ParentId">
+        <member name="P:Admin.Core.Model.Admin.DictionaryEntity.DictionaryTypeId">
             <summary>
-            字典父级
+            字典类型Id
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryEntity.DictionaryType">
+            <summary>
+            字典类型
             </summary>
         </member>
         <member name="P:Admin.Core.Model.Admin.DictionaryEntity.Name">
@@ -94,6 +99,41 @@
             排序
             </summary>
         </member>
+        <member name="T:Admin.Core.Model.Admin.DictionaryTypeEntity">
+            <summary>
+            数据字典类型
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryTypeEntity.TenantId">
+            <summary>
+            租户Id
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryTypeEntity.Name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryTypeEntity.Code">
+            <summary>
+            编码
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryTypeEntity.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryTypeEntity.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Admin.DictionaryTypeEntity.Sort">
+            <summary>
+            排序
+            </summary>
+        </member>
         <member name="T:Admin.Core.Model.Admin.DocumentEntity">
             <summary>
             文档
@@ -729,6 +769,16 @@
             主属部门Id
             </summary>
         </member>
+        <member name="P:Admin.Core.Model.Personnel.EmployeeEntity.PrimaryEmployeeId">
+            <summary>
+            主管Id
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Model.Personnel.EmployeeEntity.PrimaryEmployee">
+            <summary>
+            主管
+            </summary>
+        </member>
         <member name="P:Admin.Core.Model.Personnel.EmployeeEntity.PositionId">
             <summary>
             职位Id

+ 75 - 0
Admin.Core/Admin.Core.Service.xml

@@ -380,6 +380,81 @@
             <param name="cacheKey"></param>
             <returns></returns>
         </member>
+        <member name="T:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeAddInput">
+            <summary>
+            添加
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeAddInput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeAddInput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeAddInput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeAddInput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="T:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeUpdateInput">
+            <summary>
+            修改
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeUpdateInput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeUpdateInput.Version">
+            <summary>
+            版本
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Output.DictionaryTypeListOutput.Id">
+            <summary>
+            主键Id
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Output.DictionaryTypeListOutput.Name">
+            <summary>
+            字典名称
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Output.DictionaryTypeListOutput.Code">
+            <summary>
+            字典编码
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Output.DictionaryTypeListOutput.Description">
+            <summary>
+            描述
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Output.DictionaryTypeListOutput.Enabled">
+            <summary>
+            启用
+            </summary>
+        </member>
+        <member name="P:Admin.Core.Service.Admin.DictionaryType.Output.DictionaryTypeListOutput.CreatedTime">
+            <summary>
+            创建时间
+            </summary>
+        </member>
+        <member name="T:Admin.Core.Service.Admin.DictionaryType.MapConfig">
+            <summary>
+            映射配置
+            </summary>
+        </member>
         <member name="T:Admin.Core.Service.Admin.Dictionary.Input.DictionaryAddInput">
             <summary>
             添加

+ 44 - 4
Admin.Core/Admin.Core.xml

@@ -27,14 +27,14 @@
             禁用操作日志
             </summary>
         </member>
-        <member name="T:Admin.Core.Attributes.PermissionAttribute">
+        <member name="T:Admin.Core.Attributes.ValidateInputAttribute">
             <summary>
-            启用权限
+            输入模型验证
             </summary>
         </member>
-        <member name="T:Admin.Core.Attributes.ValidateInputAttribute">
+        <member name="T:Admin.Core.Attributes.ValidatePermissionAttribute">
             <summary>
-            输入模型验证
+            启用权限验证
             </summary>
         </member>
         <member name="T:Admin.Core.Attributes.VersionRouteAttribute">
@@ -246,6 +246,46 @@
             <param name="id"></param>
             <returns></returns>
         </member>
+        <member name="T:Admin.Core.Controllers.Admin.DictionaryTypeController">
+            <summary>
+            数据字典类型
+            </summary>
+        </member>
+        <member name="M:Admin.Core.Controllers.Admin.DictionaryTypeController.Get(System.Int64)">
+            <summary>
+            查询单条数据字典类型
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Admin.Core.Controllers.Admin.DictionaryTypeController.GetPage(Admin.Core.Common.Input.PageInput{Admin.Core.Model.Admin.DictionaryTypeEntity})">
+            <summary>
+            查询分页数据字典类型
+            </summary>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Admin.Core.Controllers.Admin.DictionaryTypeController.Add(Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeAddInput)">
+            <summary>
+            新增数据字典类型
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Admin.Core.Controllers.Admin.DictionaryTypeController.Update(Admin.Core.Service.Admin.DictionaryType.Input.DictionaryTypeUpdateInput)">
+            <summary>
+            修改数据字典类型
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Admin.Core.Controllers.Admin.DictionaryTypeController.SoftDelete(System.Int64)">
+            <summary>
+            删除数据字典类型
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
         <member name="T:Admin.Core.Controllers.Admin.DocumentController">
             <summary>
             文档管理

+ 2 - 2
Admin.Core/Attributes/PermissionAttribute.cs → Admin.Core/Attributes/ValidatePermissionAttribute.cs

@@ -11,10 +11,10 @@ using System.Threading.Tasks;
 namespace Admin.Core.Attributes
 {
     /// <summary>
-    /// 启用权限
+    /// 启用权限验证
     /// </summary>
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
-    public class PermissionAttribute : AuthorizeAttribute, IAuthorizationFilter, IAsyncAuthorizationFilter
+    public class ValidatePermissionAttribute : AuthorizeAttribute, IAuthorizationFilter, IAsyncAuthorizationFilter
     {
         private async Task PermissionAuthorization(AuthorizationFilterContext context)
         {

+ 11 - 11
Admin.Core/Controllers/Admin/ApiController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class ApiController : AreaController
     {
-        private readonly IApiService _apiServices;
+        private readonly IApiService _apiService;
 
-        public ApiController(IApiService apiServices)
+        public ApiController(IApiService apiService)
         {
-            _apiServices = apiServices;
+            _apiService = apiService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _apiServices.GetAsync(id);
+            return await _apiService.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetList(string key)
         {
-            return await _apiServices.ListAsync(key);
+            return await _apiService.ListAsync(key);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<ApiEntity> model)
         {
-            return await _apiServices.PageAsync(model);
+            return await _apiService.PageAsync(model);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Add(ApiAddInput input)
         {
-            return await _apiServices.AddAsync(input);
+            return await _apiService.AddAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> Update(ApiUpdateInput input)
         {
-            return await _apiServices.UpdateAsync(input);
+            return await _apiService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _apiServices.SoftDeleteAsync(id);
+            return await _apiService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -94,7 +94,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _apiServices.BatchSoftDeleteAsync(ids);
+            return await _apiService.BatchSoftDeleteAsync(ids);
         }
 
         /// <summary>
@@ -107,7 +107,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Sync(ApiSyncInput input)
         {
-            return await _apiServices.SyncAsync(input);
+            return await _apiService.SyncAsync(input);
         }
     }
 }

+ 12 - 6
Admin.Core/Controllers/Admin/AuthController.cs

@@ -27,19 +27,19 @@ namespace Admin.Core.Controllers.Admin
     {
         private readonly IUserToken _userToken;
         private readonly IAuthService _authService;
-        private readonly IUserService _userServices;
+        private readonly IUserService _userService;
         private readonly ILoginLogService _loginLogService;
 
         public AuthController(
             IUserToken userToken,
-            IAuthService authServices,
-            IUserService userServices,
+            IAuthService authService,
+            IUserService userService,
             ILoginLogService loginLogService
         )
         {
             _userToken = userToken;
-            _authService = authServices;
-            _userServices = userServices;
+            _authService = authService;
+            _userService = userService;
             _loginLogService = loginLogService;
         }
 
@@ -56,6 +56,12 @@ namespace Admin.Core.Controllers.Admin
             }
 
             var user = output.Data;
+
+            if (user == null)
+            {
+                return ResponseOutput.NotOk();
+            }
+
             var token = _userToken.Create(new[]
             {
                 new Claim(ClaimAttributes.UserId, user.Id.ToString()),
@@ -185,7 +191,7 @@ namespace Admin.Core.Controllers.Admin
             {
                 return ResponseOutput.NotOk("登录信息已失效");
             }
-            var output = await _userServices.GetLoginUserAsync(userId.ToLong());
+            var output = await _userService.GetLoginUserAsync(userId.ToLong());
 
             return GetToken(output);
         }

+ 5 - 5
Admin.Core/Controllers/Admin/CacheController.cs

@@ -10,11 +10,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class CacheController : AreaController
     {
-        private readonly ICacheService _cacheServices;
+        private readonly ICacheService _cacheService;
 
-        public CacheController(ICacheService cacheServices)
+        public CacheController(ICacheService cacheService)
         {
-            _cacheServices = cacheServices;
+            _cacheService = cacheService;
         }
 
         /// <summary>
@@ -24,7 +24,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public IResponseOutput List()
         {
-            return _cacheServices.List();
+            return _cacheService.List();
         }
 
         /// <summary>
@@ -35,7 +35,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> Clear(string cacheKey)
         {
-            return await _cacheServices.ClearAsync(cacheKey);
+            return await _cacheService.ClearAsync(cacheKey);
         }
     }
 }

+ 8 - 8
Admin.Core/Controllers/Admin/DictionaryController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class DictionaryController : AreaController
     {
-        private readonly IDictionaryService _dictionaryServices;
+        private readonly IDictionaryService _dictionaryService;
 
-        public DictionaryController(IDictionaryService dictionaryServices)
+        public DictionaryController(IDictionaryService dictionaryService)
         {
-            _dictionaryServices = dictionaryServices;
+            _dictionaryService = dictionaryService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _dictionaryServices.GetAsync(id);
+            return await _dictionaryService.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<DictionaryEntity> model)
         {
-            return await _dictionaryServices.PageAsync(model);
+            return await _dictionaryService.PageAsync(model);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Add(DictionaryAddInput input)
         {
-            return await _dictionaryServices.AddAsync(input);
+            return await _dictionaryService.AddAsync(input);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> Update(DictionaryUpdateInput input)
         {
-            return await _dictionaryServices.UpdateAsync(input);
+            return await _dictionaryService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _dictionaryServices.SoftDeleteAsync(id);
+            return await _dictionaryService.SoftDeleteAsync(id);
         }
     }
 }

+ 78 - 0
Admin.Core/Controllers/Admin/DictionaryTypeController.cs

@@ -0,0 +1,78 @@
+using Admin.Core.Common.Input;
+using Admin.Core.Common.Output;
+using Admin.Core.Model.Admin;
+using Admin.Core.Service.Admin.DictionaryType;
+using Admin.Core.Service.Admin.DictionaryType.Input;
+using Microsoft.AspNetCore.Mvc;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Controllers.Admin
+{
+    /// <summary>
+    /// 数据字典类型
+    /// </summary>
+    public class DictionaryTypeController : AreaController
+    {
+        private readonly IDictionaryTypeService _DictionaryTypeService;
+
+        public DictionaryTypeController(IDictionaryTypeService DictionaryTypeService)
+        {
+            _DictionaryTypeService = DictionaryTypeService;
+        }
+
+        /// <summary>
+        /// 查询单条数据字典类型
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet]
+        public async Task<IResponseOutput> Get(long id)
+        {
+            return await _DictionaryTypeService.GetAsync(id);
+        }
+
+        /// <summary>
+        /// 查询分页数据字典类型
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IResponseOutput> GetPage(PageInput<DictionaryTypeEntity> model)
+        {
+            return await _DictionaryTypeService.PageAsync(model);
+        }
+
+        /// <summary>
+        /// 新增数据字典类型
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IResponseOutput> Add(DictionaryTypeAddInput input)
+        {
+            return await _DictionaryTypeService.AddAsync(input);
+        }
+
+        /// <summary>
+        /// 修改数据字典类型
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPut]
+        public async Task<IResponseOutput> Update(DictionaryTypeUpdateInput input)
+        {
+            return await _DictionaryTypeService.UpdateAsync(input);
+        }
+
+        /// <summary>
+        /// 删除数据字典类型
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpDelete]
+        public async Task<IResponseOutput> SoftDelete(long id)
+        {
+            return await _DictionaryTypeService.SoftDeleteAsync(id);
+        }
+    }
+}

+ 19 - 19
Admin.Core/Controllers/Admin/DocumentController.cs

@@ -15,19 +15,19 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class DocumentController : AreaController
     {
-        private readonly IDocumentService _documentServices;
+        private readonly IDocumentService _documentService;
         private readonly UploadConfig _uploadConfig;
         private readonly UploadHelper _uploadHelper;
 
         public DocumentController(
-            IDocumentService documentServices,
+            UploadHelper uploadHelper,
             IOptionsMonitor<UploadConfig> uploadConfig,
-            UploadHelper uploadHelper
+            IDocumentService documentService
         )
         {
-            _documentServices = documentServices;
-            _uploadConfig = uploadConfig.CurrentValue;
             _uploadHelper = uploadHelper;
+            _uploadConfig = uploadConfig.CurrentValue;
+            _documentService = documentService;
         }
 
         /// <summary>
@@ -40,7 +40,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetList(string key, DateTime? start, DateTime? end)
         {
-            return await _documentServices.GetListAsync(key, start, end);
+            return await _documentService.GetListAsync(key, start, end);
         }
 
         /// <summary>
@@ -51,7 +51,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetImageList(long id)
         {
-            return await _documentServices.GetImageListAsync(id);
+            return await _documentService.GetImageListAsync(id);
         }
 
         /// <summary>
@@ -62,7 +62,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetGroup(long id)
         {
-            return await _documentServices.GetGroupAsync(id);
+            return await _documentService.GetGroupAsync(id);
         }
 
         /// <summary>
@@ -73,7 +73,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetMenu(long id)
         {
-            return await _documentServices.GetMenuAsync(id);
+            return await _documentService.GetMenuAsync(id);
         }
 
         /// <summary>
@@ -84,7 +84,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetContent(long id)
         {
-            return await _documentServices.GetContentAsync(id);
+            return await _documentService.GetContentAsync(id);
         }
 
         /// <summary>
@@ -94,7 +94,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetPlainList()
         {
-            return await _documentServices.GetPlainListAsync();
+            return await _documentService.GetPlainListAsync();
         }
 
         /// <summary>
@@ -105,7 +105,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> AddGroup(DocumentAddGroupInput input)
         {
-            return await _documentServices.AddGroupAsync(input);
+            return await _documentService.AddGroupAsync(input);
         }
 
         /// <summary>
@@ -116,7 +116,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> AddMenu(DocumentAddMenuInput input)
         {
-            return await _documentServices.AddMenuAsync(input);
+            return await _documentService.AddMenuAsync(input);
         }
 
         /// <summary>
@@ -127,7 +127,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateGroup(DocumentUpdateGroupInput input)
         {
-            return await _documentServices.UpdateGroupAsync(input);
+            return await _documentService.UpdateGroupAsync(input);
         }
 
         /// <summary>
@@ -138,7 +138,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateMenu(DocumentUpdateMenuInput input)
         {
-            return await _documentServices.UpdateMenuAsync(input);
+            return await _documentService.UpdateMenuAsync(input);
         }
 
         /// <summary>
@@ -149,7 +149,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateContent(DocumentUpdateContentInput input)
         {
-            return await _documentServices.UpdateContentAsync(input);
+            return await _documentService.UpdateContentAsync(input);
         }
 
         /// <summary>
@@ -160,7 +160,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _documentServices.SoftDeleteAsync(id);
+            return await _documentService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -172,7 +172,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> DeleteImage(long documentId, string url)
         {
-            return await _documentServices.DeleteImageAsync(documentId, url);
+            return await _documentService.DeleteImageAsync(documentId, url);
         }
 
         /// <summary>
@@ -188,7 +188,7 @@ namespace Admin.Core.Controllers.Admin
             if (res.Success)
             {
                 //保存文档图片
-                var r = await _documentServices.AddImageAsync(
+                var r = await _documentService.AddImageAsync(
                 new DocumentAddImageInput
                 {
                     DocumentId = input.Id,

+ 22 - 22
Admin.Core/Controllers/Admin/PermissionController.cs

@@ -12,11 +12,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class PermissionController : AreaController
     {
-        private readonly IPermissionService _permissionServices;
+        private readonly IPermissionService _permissionService;
 
-        public PermissionController(IPermissionService permissionServices)
+        public PermissionController(IPermissionService permissionService)
         {
-            _permissionServices = permissionServices;
+            _permissionService = permissionService;
         }
 
         /// <summary>
@@ -29,7 +29,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetList(string key, DateTime? start, DateTime? end)
         {
-            return await _permissionServices.ListAsync(key, start, end);
+            return await _permissionService.ListAsync(key, start, end);
         }
 
         /// <summary>
@@ -40,7 +40,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetGroup(long id)
         {
-            return await _permissionServices.GetGroupAsync(id);
+            return await _permissionService.GetGroupAsync(id);
         }
 
         /// <summary>
@@ -51,7 +51,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetMenu(long id)
         {
-            return await _permissionServices.GetMenuAsync(id);
+            return await _permissionService.GetMenuAsync(id);
         }
 
         /// <summary>
@@ -62,7 +62,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetApi(long id)
         {
-            return await _permissionServices.GetApiAsync(id);
+            return await _permissionService.GetApiAsync(id);
         }
 
         /// <summary>
@@ -73,7 +73,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetDot(long id)
         {
-            return await _permissionServices.GetDotAsync(id);
+            return await _permissionService.GetDotAsync(id);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetPermissionList()
         {
-            return await _permissionServices.GetPermissionList();
+            return await _permissionService.GetPermissionList();
         }
 
         /// <summary>
@@ -94,7 +94,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetRolePermissionList(long roleId = 0)
         {
-            return await _permissionServices.GetRolePermissionList(roleId);
+            return await _permissionService.GetRolePermissionList(roleId);
         }
 
         /// <summary>
@@ -105,7 +105,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetTenantPermissionList(long tenantId = 0)
         {
-            return await _permissionServices.GetTenantPermissionList(tenantId);
+            return await _permissionService.GetTenantPermissionList(tenantId);
         }
 
         /// <summary>
@@ -116,7 +116,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> AddGroup(PermissionAddGroupInput input)
         {
-            return await _permissionServices.AddGroupAsync(input);
+            return await _permissionService.AddGroupAsync(input);
         }
 
         /// <summary>
@@ -127,7 +127,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> AddMenu(PermissionAddMenuInput input)
         {
-            return await _permissionServices.AddMenuAsync(input);
+            return await _permissionService.AddMenuAsync(input);
         }
 
         /// <summary>
@@ -138,7 +138,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> AddApi(PermissionAddApiInput input)
         {
-            return await _permissionServices.AddApiAsync(input);
+            return await _permissionService.AddApiAsync(input);
         }
 
         /// <summary>
@@ -149,7 +149,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> AddDot(PermissionAddDotInput input)
         {
-            return await _permissionServices.AddDotAsync(input);
+            return await _permissionService.AddDotAsync(input);
         }
 
         /// <summary>
@@ -160,7 +160,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateGroup(PermissionUpdateGroupInput input)
         {
-            return await _permissionServices.UpdateGroupAsync(input);
+            return await _permissionService.UpdateGroupAsync(input);
         }
 
         /// <summary>
@@ -171,7 +171,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateMenu(PermissionUpdateMenuInput input)
         {
-            return await _permissionServices.UpdateMenuAsync(input);
+            return await _permissionService.UpdateMenuAsync(input);
         }
 
         /// <summary>
@@ -182,7 +182,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateApi(PermissionUpdateApiInput input)
         {
-            return await _permissionServices.UpdateApiAsync(input);
+            return await _permissionService.UpdateApiAsync(input);
         }
 
         /// <summary>
@@ -193,7 +193,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateDot(PermissionUpdateDotInput input)
         {
-            return await _permissionServices.UpdateDotAsync(input);
+            return await _permissionService.UpdateDotAsync(input);
         }
 
         /// <summary>
@@ -204,7 +204,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _permissionServices.SoftDeleteAsync(id);
+            return await _permissionService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -215,7 +215,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Assign(PermissionAssignInput input)
         {
-            return await _permissionServices.AssignAsync(input);
+            return await _permissionService.AssignAsync(input);
         }
 
         /// <summary>
@@ -226,7 +226,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> SaveTenantPermissions(PermissionSaveTenantPermissionsInput input)
         {
-            return await _permissionServices.SaveTenantPermissionsAsync(input);
+            return await _permissionService.SaveTenantPermissionsAsync(input);
         }
     }
 }

+ 9 - 9
Admin.Core/Controllers/Admin/RoleController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class RoleController : AreaController
     {
-        private readonly IRoleService _roleServices;
+        private readonly IRoleService _roleService;
 
-        public RoleController(IRoleService roleServices)
+        public RoleController(IRoleService roleService)
         {
-            _roleServices = roleServices;
+            _roleService = roleService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _roleServices.GetAsync(id);
+            return await _roleService.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<RoleEntity> model)
         {
-            return await _roleServices.PageAsync(model);
+            return await _roleService.PageAsync(model);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Add(RoleAddInput input)
         {
-            return await _roleServices.AddAsync(input);
+            return await _roleService.AddAsync(input);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> Update(RoleUpdateInput input)
         {
-            return await _roleServices.UpdateAsync(input);
+            return await _roleService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _roleServices.SoftDeleteAsync(id);
+            return await _roleService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _roleServices.BatchSoftDeleteAsync(ids);
+            return await _roleService.BatchSoftDeleteAsync(ids);
         }
     }
 }

+ 10 - 10
Admin.Core/Controllers/Admin/TenantController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class TenantController : AreaController
     {
-        private readonly ITenantService _roleServices;
+        private readonly ITenantService _tenantServices;
 
-        public TenantController(ITenantService roleServices)
+        public TenantController(ITenantService tenantService)
         {
-            _roleServices = roleServices;
+            _tenantServices = tenantService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _roleServices.GetAsync(id);
+            return await _tenantServices.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<TenantEntity> model)
         {
-            return await _roleServices.PageAsync(model);
+            return await _tenantServices.PageAsync(model);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Add(TenantAddInput input)
         {
-            return await _roleServices.AddAsync(input);
+            return await _tenantServices.AddAsync(input);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> Update(TenantUpdateInput input)
         {
-            return await _roleServices.UpdateAsync(input);
+            return await _tenantServices.UpdateAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> Delete(long id)
         {
-            return await _roleServices.DeleteAsync(id);
+            return await _tenantServices.DeleteAsync(id);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _roleServices.SoftDeleteAsync(id);
+            return await _tenantServices.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -94,7 +94,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _roleServices.BatchSoftDeleteAsync(ids);
+            return await _tenantServices.BatchSoftDeleteAsync(ids);
         }
     }
 }

+ 12 - 12
Admin.Core/Controllers/Admin/UserController.cs

@@ -22,19 +22,19 @@ namespace Admin.Core.Controllers.Admin
         private readonly IUser _user;
         private readonly UploadConfig _uploadConfig;
         private readonly UploadHelper _uploadHelper;
-        private readonly IUserService _userServices;
+        private readonly IUserService _userService;
 
         public UserController(
             IUser user,
             IOptionsMonitor<UploadConfig> uploadConfig,
             UploadHelper uploadHelper,
-            IUserService userServices
+            IUserService userService
         )
         {
             _user = user;
             _uploadConfig = uploadConfig.CurrentValue;
             _uploadHelper = uploadHelper;
-            _userServices = userServices;
+            _userService = userService;
         }
 
         /// <summary>
@@ -44,7 +44,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetBasic()
         {
-            return await _userServices.GetBasicAsync();
+            return await _userService.GetBasicAsync();
         }
 
         /// <summary>
@@ -55,7 +55,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _userServices.GetAsync(id);
+            return await _userService.GetAsync(id);
         }
 
         /// <summary>
@@ -67,7 +67,7 @@ namespace Admin.Core.Controllers.Admin
         //[ResponseCache(Duration = 60)]
         public async Task<IResponseOutput> GetPage(PageInput<UserEntity> input)
         {
-            return await _userServices.PageAsync(input);
+            return await _userService.PageAsync(input);
         }
 
         /// <summary>
@@ -78,7 +78,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Add(UserAddInput input)
         {
-            return await _userServices.AddAsync(input);
+            return await _userService.AddAsync(input);
         }
 
         /// <summary>
@@ -89,7 +89,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> Update(UserUpdateInput input)
         {
-            return await _userServices.UpdateAsync(input);
+            return await _userService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -100,7 +100,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _userServices.SoftDeleteAsync(id);
+            return await _userService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -111,7 +111,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _userServices.BatchSoftDeleteAsync(ids);
+            return await _userService.BatchSoftDeleteAsync(ids);
         }
 
         /// <summary>
@@ -122,7 +122,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> ChangePassword(UserChangePasswordInput input)
         {
-            return await _userServices.ChangePasswordAsync(input);
+            return await _userService.ChangePasswordAsync(input);
         }
 
         /// <summary>
@@ -133,7 +133,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> UpdateBasic(UserUpdateBasicInput input)
         {
-            return await _userServices.UpdateBasicAsync(input);
+            return await _userService.UpdateBasicAsync(input);
         }
 
         /// <summary>

+ 11 - 11
Admin.Core/Controllers/Admin/ViewController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Admin
     /// </summary>
     public class ViewController : AreaController
     {
-        private readonly IViewService _viewServices;
+        private readonly IViewService _viewService;
 
-        public ViewController(IViewService viewServices)
+        public ViewController(IViewService viewService)
         {
-            _viewServices = viewServices;
+            _viewService = viewService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _viewServices.GetAsync(id);
+            return await _viewService.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpGet]
         public async Task<IResponseOutput> GetList(string key)
         {
-            return await _viewServices.ListAsync(key);
+            return await _viewService.ListAsync(key);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<ViewEntity> model)
         {
-            return await _viewServices.PageAsync(model);
+            return await _viewService.PageAsync(model);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Add(ViewAddInput input)
         {
-            return await _viewServices.AddAsync(input);
+            return await _viewService.AddAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> Update(ViewUpdateInput input)
         {
-            return await _viewServices.UpdateAsync(input);
+            return await _viewService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _viewServices.SoftDeleteAsync(id);
+            return await _viewService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -94,7 +94,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _viewServices.BatchSoftDeleteAsync(ids);
+            return await _viewService.BatchSoftDeleteAsync(ids);
         }
 
         /// <summary>
@@ -107,7 +107,7 @@ namespace Admin.Core.Controllers.Admin
         [HttpPost]
         public async Task<IResponseOutput> Sync(ViewSyncInput input)
         {
-            return await _viewServices.SyncAsync(input);
+            return await _viewService.SyncAsync(input);
         }
     }
 }

+ 1 - 1
Admin.Core/Controllers/BaseController.cs

@@ -8,7 +8,7 @@ namespace Admin.Core.Controllers
     /// </summary>
     [Route("api/[area]/[controller]/[action]")]
     [ApiController]
-    [Permission]
+    [ValidatePermission]
     [ValidateInput]
     public abstract class BaseController : ControllerBase
     {

+ 9 - 11
Admin.Core/Controllers/Personnel/EmployeeController.cs

@@ -13,13 +13,11 @@ namespace Admin.Core.Controllers.Personnel
     /// </summary>
     public class EmployeeController : AreaController
     {
-        private readonly IEmployeeService _employeeServices;
+        private readonly IEmployeeService _employeeService;
 
-        public EmployeeController(
-            IEmployeeService employeeServices
-        )
+        public EmployeeController(IEmployeeService employeeService)
         {
-            _employeeServices = employeeServices;
+            _employeeService = employeeService;
         }
 
         /// <summary>
@@ -30,7 +28,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _employeeServices.GetAsync(id);
+            return await _employeeService.GetAsync(id);
         }
 
         /// <summary>
@@ -42,7 +40,7 @@ namespace Admin.Core.Controllers.Personnel
         //[ResponseCache(Duration = 60)]
         public async Task<IResponseOutput> GetPage(PageInput<EmployeeEntity> input)
         {
-            return await _employeeServices.PageAsync(input);
+            return await _employeeService.PageAsync(input);
         }
 
         /// <summary>
@@ -53,7 +51,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPost]
         public async Task<IResponseOutput> Add(EmployeeAddInput input)
         {
-            return await _employeeServices.AddAsync(input);
+            return await _employeeService.AddAsync(input);
         }
 
         /// <summary>
@@ -64,7 +62,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPut]
         public async Task<IResponseOutput> Update(EmployeeUpdateInput input)
         {
-            return await _employeeServices.UpdateAsync(input);
+            return await _employeeService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -75,7 +73,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _employeeServices.SoftDeleteAsync(id);
+            return await _employeeService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -86,7 +84,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _employeeServices.BatchSoftDeleteAsync(ids);
+            return await _employeeService.BatchSoftDeleteAsync(ids);
         }
     }
 }

+ 8 - 8
Admin.Core/Controllers/Personnel/OrganizationController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Personnel
     /// </summary>
     public class OrganizationController : AreaController
     {
-        private readonly IOrganizationService _organizationServices;
+        private readonly IOrganizationService _organizationService;
 
-        public OrganizationController(IOrganizationService organizationServices)
+        public OrganizationController(IOrganizationService organizationService)
         {
-            _organizationServices = organizationServices;
+            _organizationService = organizationService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _organizationServices.GetAsync(id);
+            return await _organizationService.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<OrganizationEntity> model)
         {
-            return await _organizationServices.PageAsync(model);
+            return await _organizationService.PageAsync(model);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPost]
         public async Task<IResponseOutput> Add(OrganizationAddInput input)
         {
-            return await _organizationServices.AddAsync(input);
+            return await _organizationService.AddAsync(input);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPut]
         public async Task<IResponseOutput> Update(OrganizationUpdateInput input)
         {
-            return await _organizationServices.UpdateAsync(input);
+            return await _organizationService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _organizationServices.SoftDeleteAsync(id);
+            return await _organizationService.SoftDeleteAsync(id);
         }
     }
 }

+ 9 - 9
Admin.Core/Controllers/Personnel/PositionController.cs

@@ -13,11 +13,11 @@ namespace Admin.Core.Controllers.Personnel
     /// </summary>
     public class PositionController : AreaController
     {
-        private readonly IPositionService _roleServices;
+        private readonly IPositionService _positionService;
 
-        public PositionController(IPositionService roleServices)
+        public PositionController(IPositionService positionService)
         {
-            _roleServices = roleServices;
+            _positionService = positionService;
         }
 
         /// <summary>
@@ -28,7 +28,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpGet]
         public async Task<IResponseOutput> Get(long id)
         {
-            return await _roleServices.GetAsync(id);
+            return await _positionService.GetAsync(id);
         }
 
         /// <summary>
@@ -39,7 +39,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPost]
         public async Task<IResponseOutput> GetPage(PageInput<PositionEntity> model)
         {
-            return await _roleServices.PageAsync(model);
+            return await _positionService.PageAsync(model);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPost]
         public async Task<IResponseOutput> Add(PositionAddInput input)
         {
-            return await _roleServices.AddAsync(input);
+            return await _positionService.AddAsync(input);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPut]
         public async Task<IResponseOutput> Update(PositionUpdateInput input)
         {
-            return await _roleServices.UpdateAsync(input);
+            return await _positionService.UpdateAsync(input);
         }
 
         /// <summary>
@@ -72,7 +72,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpDelete]
         public async Task<IResponseOutput> SoftDelete(long id)
         {
-            return await _roleServices.SoftDeleteAsync(id);
+            return await _positionService.SoftDeleteAsync(id);
         }
 
         /// <summary>
@@ -83,7 +83,7 @@ namespace Admin.Core.Controllers.Personnel
         [HttpPut]
         public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
         {
-            return await _roleServices.BatchSoftDeleteAsync(ids);
+            return await _positionService.BatchSoftDeleteAsync(ids);
         }
     }
 }

File diff suppressed because it is too large
+ 0 - 0
Admin.Core/Db/Data/data-share.json


+ 4 - 4
Admin.Core/configs/dbconfig.json

@@ -5,7 +5,7 @@
   "curd": false,
 
   //建库
-  "createDb": true,
+  "createDb": false,
   //SqlServer,PostgreSQL,Oracle,OdbcOracle,OdbcSqlServer,OdbcMySql,OdbcPostgreSQL,Odbc,OdbcDameng,MsAccess
   //建库连接字符串
   //MySql "Server=localhost; Port=3306; Database=mysql; Uid=root; Pwd=pwd; Charset=utf8mb4;"
@@ -19,14 +19,14 @@
   "createDbSql": "CREATE DATABASE `admindb` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'",
 
   //同步结构
-  "syncStructure": true,
+  "syncStructure": false,
   //同步数据
-  "syncData": true,
+  "syncData": false,
 
   //项目初始化不开启生成数据,发布生产环境前,如果开发环境有配置数据需要更新数据包,可以开启生成数据包,使用完记得关闭
   //开启生成数据前先关闭syncStructure syncData createDb
   //生成数据
-  "generateData": false,
+  "generateData": true,
 
   //数据库配置 https://github.com/dotnetcore/FreeSql/wiki/入门
   //数据库类型 MySql = 0, SqlServer = 1, PostgreSQL = 2, Oracle = 3, Sqlite = 4, OdbcOracle = 5, OdbcSqlServer = 6, OdbcMySql = 7, OdbcPostgreSQL = 8, Odbc = 9, OdbcDameng = 10, MsAccess = 11, Dameng = 12, OdbcKingbaseES = 13, ShenTong = 14, KingbaseES = 15, Firebird = 16

Some files were not shown because too many files changed in this diff