Explorar o código

新增参数、查询接口

Dun.Jason %!s(int64=2) %!d(string=hai) anos
pai
achega
3829425b9e

+ 15 - 0
src/Hotline.Api/Controllers/SysController.cs

@@ -168,6 +168,21 @@ namespace Hotline.Api.Controllers
             await _systemMenuRepository.RemoveAsync(id, true, HttpContext.RequestAborted);
         }
 
+        /// <summary>
+        /// 获取菜单对象
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [Permission(EPermission.GetMenu)]
+        [HttpGet("menu/{id}")]
+        public async Task<SystemMenu> GetMenu(string id)
+        {
+            var menu = await _systemMenuRepository.GetAsync(id, HttpContext.RequestAborted);
+            if (menu is null)
+                throw UserFriendlyException.SameMessage("无效菜单");
+            return menu;
+        }
+
         #region 按钮管理
 
         /// <summary>

+ 5 - 0
src/Hotline.Api/Permissions/EPermission.cs

@@ -159,6 +159,11 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="系统设置",Name ="删除菜单",Description ="删除菜单")]
         RemoveMenu = 100403,
+        /// <summary>
+        /// 获取菜单对象
+        /// </summary>
+        [Display(GroupName ="系统设置",Name ="获取菜单对象",Description ="获取菜单对象")]
+        GetMenu = 100408,
         #region 按钮管理
         /// <summary>
         /// 获取菜单按钮

+ 3 - 2
src/Hotline.Share/Dtos/Menu/MenuDto.cs

@@ -6,7 +6,7 @@
         public int DisplayOrder { get; set; }
         public string ParentId { get; set; }
         public string PermissionCode { get; set; }
-        public bool IsShow { get; set; }
+        public bool IsHide { get; set; }
         public string Path { get; set; }
         public bool IsKeepAlive { get; set; }
         public bool IsAffix { get; set; }
@@ -14,7 +14,8 @@
         public string RuleName { get; set; }
         public string Component { get; set; }
         public string Icon { get; set; }
-
+        public bool IsLink { get; set; }
+        public string Link { get; set; }
     }
 
     public record UpdateMenuDto:AddMenuDto

+ 73 - 0
src/XF.Domain/Entities/Entity.cs

@@ -98,5 +98,78 @@ public abstract class FullStateEntity : CreationSoftDeleteEntity, IHasModificati
     [SugarColumn(ColumnDescription = "最近更新时间")]
     public DateTime? LastModificationTime { get; set; }
 
+    public void Modified() => LastModificationTime = DateTime.Now;
+}
+
+/// <summary>
+/// 实体(权限、创建时间)
+/// </summary>
+public abstract class CreationEntityHasAuth : Entity, IHasCreationTime, IHasAuth
+{
+    /// <summary>
+    /// 创建时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "创建时间")]
+    public DateTime CreationTime { get; set; }
+    /// <summary>
+    /// 组织编码
+    /// </summary>
+    [SugarColumn(ColumnDescription ="组织编码")]
+    public string OrgCode { get; set; }
+    /// <summary>
+    /// 创建人
+    /// </summary>
+    [SugarColumn(ColumnDescription ="创建人")]
+    public string CreateUserId { get; set; }
+}
+
+/// <summary>
+/// 实体(权限、创建时间、软删除)
+/// </summary>
+public abstract class CreationSoftDeleteEntityHasAuth:CreationEntityHasAuth, IHasDeletionTime, ISoftDelete
+{
+    [SugarColumn(ColumnDescription = "是否删除")]
+    public bool IsDeleted { get; private set; }
+
+    /// <summary>
+    /// 删除时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "删除时间")]
+    public DateTime? DeletionTime { get; set; }
+
+    public void SoftDelete()
+    {
+        IsDeleted = true;
+        DeletionTime = DateTime.Now;
+    }
+
+    public void Recover() => IsDeleted = false;
+}
+
+/// <summary>
+/// 实体(权限、修改时间)
+/// </summary>
+public abstract class CreationModifycationHasAuth: CreationEntityHasAuth, IHasModificationTime
+{
+    /// <summary>
+    /// 最近更新时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最近更新时间")]
+    public DateTime? LastModificationTime { get; set; }
+
+    public void Modified() => LastModificationTime = DateTime.Now;
+}
+
+/// <summary>
+/// 全状态实体(权限、创建时间、更新时间、软删除)
+/// </summary>
+public abstract class FullStateEntityHasAuthEntity: CreationSoftDeleteEntityHasAuth, IHasModificationTime
+{
+    /// <summary>
+    /// 最近更新时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最近更新时间")]
+    public DateTime? LastModificationTime { get; set; }
+
     public void Modified() => LastModificationTime = DateTime.Now;
 }

+ 10 - 0
src/XF.Domain/Entities/IHasAuth.cs

@@ -0,0 +1,10 @@
+
+namespace XF.Domain.Entities
+{
+    public interface IHasAuth
+    {
+        string OrgCode { get; set; }
+
+        string CreateUserId { get; set; }
+    }
+}