Jelajahi Sumber

修改接口

Dun.Jason 2 tahun lalu
induk
melakukan
92e92970ab

+ 90 - 0
src/Hotline.Api/Controllers/OrgController.cs

@@ -0,0 +1,90 @@
+using AutoMapper;
+using Hotline.Permissions;
+using Hotline.Settings;
+using Hotline.Share.Dtos.Org;
+using Microsoft.AspNetCore.Mvc;
+using XF.Domain.Exceptions;
+
+namespace Hotline.Api.Controllers
+{
+    /// <summary>
+    /// 组织架构相关接口
+    /// </summary>
+    public class OrgController: BaseController
+    {
+        private readonly ISystemOrganizeRepository _systemOrganizeRepository;
+        private readonly IMapper _mapper;
+
+        public OrgController(ISystemOrganizeRepository systemOrganizeRepository,IMapper mapper)
+        {
+            _systemOrganizeRepository = systemOrganizeRepository;
+            _mapper = mapper;
+        }
+
+        /// <summary>
+        /// 组织机构获取树形列表
+        /// </summary>
+        /// <returns></returns>
+        [Permission(EPermission.GetOrgJson)]
+        [HttpGet("getorgjson")]
+        public async Task<IReadOnlyList<SystemOrganize>> GetOrgJson()
+        {
+            return await _systemOrganizeRepository.GetOrgJson();
+        }
+
+        /// <summary>
+        /// 新增组织架构
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [Permission(EPermission.AddOrg)]
+        [HttpPost("add-org")]
+        public async Task AddOrg([FromBody] AddOrgDto dto)
+        {
+            var org = _mapper.Map<SystemOrganize>(dto);
+            await _systemOrganizeRepository.AddAsync(org, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 修改组织架构
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [Permission(EPermission.UpdateOrg)]
+        [HttpPost("update-org")]
+        public async Task UpdateOrg([FromBody]UpdateOrgDto dto)
+        {
+            var org = await _systemOrganizeRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
+            if (org is null)
+                throw UserFriendlyException.SameMessage("无效组织架构");
+            _mapper.Map(dto, org);
+            await _systemOrganizeRepository.UpdateAsync(org, HttpContext.RequestAborted);
+        }
+
+        /// <summary>
+        /// 获取组织
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [Permission(EPermission.GetOrg)]
+        [HttpGet("getorg/{id}")]
+        public async Task<SystemOrganize> GetOrg(string id)
+        {
+            var org = await _systemOrganizeRepository.GetAsync(id, HttpContext.RequestAborted);
+            if (org is null)
+                throw UserFriendlyException.SameMessage("无效组织架构");
+            return org;
+        }
+
+        /// <summary>
+        /// 获取可用组织架构树形
+        /// </summary>
+        /// <returns></returns>
+        [Permission(EPermission.GetCanUseOrg)]
+        [HttpGet("getcanuseorg")]
+        public async Task<IReadOnlyList<SystemOrganize>> GetCanUseOrg()
+        {
+            return await _systemOrganizeRepository.GetCanUseOrg();
+        }
+    }
+}

+ 3 - 3
src/Hotline.Api/Controllers/RoleController.cs

@@ -98,10 +98,10 @@ public class RoleController : BaseController
     /// <returns></returns>
     [Permission(EPermission.AllocationAuthority)]
     [HttpPost("allocationauthority")]
-    public async Task AllocationAuthority(List<RoleAuthorityDto> dto)
+    public async Task AllocationAuthority(RoleAuthorityDto dto)
     {
-        var list = _mapper.Map<List<SystemAuthority>>(dto);
-        await _systemAuthorityRepository.AddRangeAsync(list);
+        var list = _mapper.Map<SystemAuthority>(dto);
+        await _systemAuthorityRepository.AddAsync(list);
     }
 
     /// <summary>

+ 7 - 2
src/Hotline.Api/Controllers/UserController.cs

@@ -132,7 +132,7 @@ public class UserController : BaseController
     /// <returns></returns>
     [Permission(EPermission.AddUser)]
     [HttpPost]
-    public async Task<string> Add([FromBody] AddUserDto userDto)
+    public async Task<string> Add([FromBody]AddUserDto userDto)
     {
         var getAccountRsp = await _identityClient.GetUserAsync(userDto.UserName, HttpContext.RequestAborted);
         CheckHttpRequestSuccess(getAccountRsp, "GetUserAsync");
@@ -153,7 +153,12 @@ public class UserController : BaseController
 
             var user = _mapper.Map<User>(userDto);
             user.Id = addAccountRsp.Result;
-            return await _userRepository.AddAsync(user, HttpContext.RequestAborted);
+            string userid = await _userRepository.AddAsync(user, HttpContext.RequestAborted);
+            
+
+
+
+            return userid;
         }
         else
         {

+ 27 - 1
src/Hotline.Api/Permissions/EPermission.cs

@@ -192,7 +192,33 @@ namespace Hotline.Permissions
         [Display(GroupName ="系统设置",Name ="获取按钮对象",Description ="获取按钮对象")]
         GetButton = 100409,
         #endregion
-
+        #region 组织架构管理
+        /// <summary>
+        /// 组织架构树形列表
+        /// </summary>
+        [Display(GroupName ="系统设置",Name ="组织架构树形列表",Description ="组织架构树形列表")]
+        GetOrgJson = 100500,
+        /// <summary>
+        /// 新增组织
+        /// </summary>
+        [Display(GroupName ="系统设置",Name ="新增组织",Description ="新增组织")]
+        AddOrg = 100501,
+        /// <summary>
+        /// 修改组织
+        /// </summary>
+        [Display(GroupName ="系统设置",Name ="修改组织",Description ="修改组织")]
+        UpdateOrg = 100502,
+        /// <summary>
+        /// 获取组织
+        /// </summary>
+        [Display(GroupName ="系统设置",Name ="获取组织",Description ="获取组织")]
+        GetOrg =  100503,
+        /// <summary>
+        /// 获取可用组织架构树形
+        /// </summary>
+        [Display(GroupName ="系统设置",Name = "获取可用组织架构树形",Description = "获取可用组织架构树形")]
+        GetCanUseOrg = 100504,
+        #endregion
         #endregion
 
         #region 通话相关接口(200)

+ 1 - 0
src/Hotline.Repository.SqlSugar/SystemMenuRepository.cs

@@ -1,4 +1,5 @@
 using Hotline.Settings;
+using Hotline.Share.Dtos.Menu;
 using SqlSugar;
 using System;
 using System.Collections.Generic;

+ 29 - 0
src/Hotline.Repository.SqlSugar/SystemOrganizeRepository.cs

@@ -0,0 +1,29 @@
+using Hotline.Settings;
+using SqlSugar;
+using XF.Domain.Dependency;
+
+namespace Hotline.Repository.SqlSugar
+{
+    public class SystemOrganizeRepository : BaseRepository<SystemOrganize>, ISystemOrganizeRepository, IScopeDependency
+    {
+        public SystemOrganizeRepository(ISugarUnitOfWork<HotlineDbContext> uow) : base(uow)
+        {
+        }
+
+
+        public async Task<IReadOnlyList<SystemOrganize>> GetOrgJson()
+        {
+            var list = await Db.Queryable<SystemOrganize>()
+                .ToTreeAsync(x => x.children, it => it.ParentId, "");
+            return list;
+        }
+
+        public async Task<IReadOnlyList<SystemOrganize>> GetCanUseOrg()
+        {
+            var list = await Db.Queryable<SystemOrganize>()
+                .Where(x=>x.IsEnable)
+                .ToTreeAsync(x => x.children, it => it.ParentId, "");
+            return list;
+        }
+    }
+}

+ 16 - 0
src/Hotline.Share/Dtos/Org/OrgDto.cs

@@ -0,0 +1,16 @@
+namespace Hotline.Share.Dtos.Org
+{
+    public record AddOrgDto
+    {
+        public string OrgName { get; set; }
+        public string OrgCode { get; set; }
+        public string ParentId { get; set; }
+        public string ParentName { get; set; }
+        public bool IsEnable { get; set; }
+    }
+
+    public record UpdateOrgDto:AddOrgDto
+    {
+        public string Id { get; set; }
+    }
+}

+ 5 - 0
src/Hotline.Share/Dtos/User/UserDto.cs

@@ -34,6 +34,11 @@ public record AddUserDto
     /// 默认分机号
     /// </summary>
     public string? DefaultTelNo { get; set; }
+
+    /// <summary>
+    /// 组织架构ID
+    /// </summary>
+    public string? OrgId { get; set; }
 }
 
 public record UpdateUserDto : AddUserDto

+ 2 - 1
src/Hotline/Settings/ISystemMenuRepository.cs

@@ -1,4 +1,5 @@
-using XF.Domain.Repository;
+using Hotline.Share.Dtos.Menu;
+using XF.Domain.Repository;
 
 namespace Hotline.Settings
 {

+ 12 - 0
src/Hotline/Settings/ISystemOrganizeRepository.cs

@@ -0,0 +1,12 @@
+using XF.Domain.Repository;
+
+namespace Hotline.Settings
+{
+
+    public interface ISystemOrganizeRepository: IRepository<SystemOrganize>
+    {
+        Task<IReadOnlyList<SystemOrganize>> GetOrgJson();
+
+        Task<IReadOnlyList<SystemOrganize>> GetCanUseOrg();
+    }
+}

+ 4 - 0
src/Hotline/Settings/SystemOrganize.cs

@@ -1,4 +1,5 @@
 
+using SqlSugar;
 using System.ComponentModel;
 using XF.Domain.Entities;
 
@@ -31,5 +32,8 @@ namespace Hotline.Settings
         /// 是否启用
         /// </summary>
         public bool IsEnable { get; set; }
+
+        [SugarColumn(IsIgnore = true)]
+        public List<SystemOrganize> children { get; set; }
     }
 }