李昊 4 年之前
父節點
當前提交
847f44b886

+ 11 - 5
gx_api/GxPress/Api/GxPress.Api/AdminControllers/AdminController.cs

@@ -8,6 +8,7 @@ using GxPress.EnumConst;
 using GxPress.Repository.Interface;
 using GxPress.Request.Admin;
 using GxPress.Result.Admin;
+using GxPress.Service.Interface.Role;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Logging;
@@ -27,11 +28,14 @@ namespace GxPress.Api.AdminControllers
         private readonly ILogger<AdminController> _logger;
         private readonly IAdminRepository _adminRepository;
 
-        public AdminController(IOptions<JwtOptions> jwtOptions, ILogger<AdminController> logger, IAdminRepository adminRepository)
+        private readonly IRoleService roleService;
+
+        public AdminController(IOptions<JwtOptions> jwtOptions, ILogger<AdminController> logger, IAdminRepository adminRepository, IRoleService roleService)
         {
             _jwtOptions = jwtOptions.Value;
             _logger = logger;
             _adminRepository = adminRepository;
+            this.roleService = roleService;
         }
 
         /// <summary>
@@ -44,12 +48,14 @@ namespace GxPress.Api.AdminControllers
         public async Task<AdminSignInResult> SignIn(AdminSignInRequest request)
         {
             var result = await _adminRepository.SignInAsync(request);
+            //获取菜单
+            result.MenuInResult = await roleService.GetMenusAllAsync(result.RoleId);
             var claims = new[]
             {
                 new Claim(ClaimTypes.NameIdentifier,result.AdminId.ToString()),
                 new Claim(ClaimTypes.Role,AccountTypeConst.Admin.ToString()),
                  new Claim(ClaimTypes.Actor,result.Name)
-            };
+                };
             result.Token = TokenHelper.BuildToken(_jwtOptions, claims);
             _logger.LogInformation("admin token:{token}", result.Token);
             return result;
@@ -61,7 +67,7 @@ namespace GxPress.Api.AdminControllers
         /// <param name="request"></param>
         /// <returns></returns>
         [HttpPost("signup")]
-        public async Task<int> SignUp([FromBody]AdminSignUpRequest request)
+        public async Task<int> SignUp([FromBody] AdminSignUpRequest request)
         {
             return await _adminRepository.SignUpAsync(request);
         }
@@ -105,7 +111,7 @@ namespace GxPress.Api.AdminControllers
         /// <param name="request"></param>
         /// <returns></returns>
         [HttpPut("updatemenu")]
-        public async Task<bool> UpdateMenu( [FromBody] Admin request)
+        public async Task<bool> UpdateMenu([FromBody] Admin request)
         {
             return await _adminRepository.UpdateQAsync(request);
         }
@@ -115,7 +121,7 @@ namespace GxPress.Api.AdminControllers
         /// <param name="request"></param>
         /// <returns></returns>
         [HttpPost("page")]
-        public async Task<PagedList<AdminPageResult>> GetPagedList([FromBody]AdminPageSearchRequest request)
+        public async Task<PagedList<AdminPageResult>> GetPagedList([FromBody] AdminPageSearchRequest request)
         {
             return await _adminRepository.GetPagedList(request);
         }

+ 1 - 1
gx_api/GxPress/Api/GxPress.Api/AdminControllers/AdminSystemRoleController.cs

@@ -107,7 +107,7 @@ namespace GxPress.Api.AdminControllers
         /// <param name="roleId"></param>
         /// <returns></returns>
         [HttpGet("menus/{roid}")]
-        public async Task<List<MenuInRequest>> GetMenusAllAsync(int roleId)
+        public async Task<List<MenuInResult>> GetMenusAllAsync(int roleId)
         {
             //获取
             return await roleService.GetMenusAllAsync(roleId);

+ 6 - 1
gx_api/GxPress/Model/GxPress.Entity/Admin.cs

@@ -1,4 +1,3 @@
-using Datory;
 using Datory.Annotations;
 
 namespace GxPress.Entity
@@ -50,5 +49,11 @@ namespace GxPress.Entity
         /// </summary>
         [DataColumn]
         public string Sex { get; set; }
+        /// <summary>
+        /// 角色Id
+        /// </summary>
+        /// <value></value>
+        [DataColumn]
+        public int RoleId { get; set; }
     }
 }

+ 6 - 1
gx_api/GxPress/Model/GxPress.Entity/tede2/Media/MediaLibrary.cs

@@ -29,6 +29,11 @@ namespace GxPress.Entity.tede2.Media
         /// </summary>
         [DataColumn]
         public int Sort { get; set; }
-
+        /// <summary>
+        /// 章节名称
+        /// </summary>
+        /// <value></value>
+        [DataColumn]
+        public string SectionName { get; set; }
     }
 }

+ 9 - 3
gx_api/GxPress/Model/GxPress.Request/Admin/AdminSignUpRequest.cs

@@ -23,19 +23,25 @@ namespace GxPress.Request.Admin
         /// <summary>
         /// 手机号码
         /// </summary>
-    
+
         public string Phone { get; set; }
 
         /// <summary>
         /// 电子邮箱
         /// </summary>
-      
+
         public string Email { get; set; }
 
         /// <summary>
         /// 性别
         /// </summary>
-        
+
         public string Sex { get; set; }
+
+        /// <summary>
+        /// 角色ID
+        /// </summary>
+        /// <value></value>
+        public int RoleId { get; set; }
     }
 }

+ 11 - 1
gx_api/GxPress/Model/GxPress.Result/Admin/AdminSignInResult.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using GxPress.Result.SystemRole;
 
 namespace GxPress.Result.Admin
 {
@@ -12,7 +13,11 @@ namespace GxPress.Result.Admin
         /// 管理员id
         /// </summary>
         public int AdminId { get; set; }
-
+        /// <summary>
+        /// 角色
+        /// </summary>
+        /// <value></value>
+        public int RoleId { get; set; }
         /// <summary>
         /// token
         /// </summary>
@@ -21,6 +26,11 @@ namespace GxPress.Result.Admin
         /// 返回的管理的菜单集合
         /// </summary>
         public List<string> Menus { get; set; }
+        /// <summary>
+        /// 菜单
+        /// </summary>
+        /// <value></value>
+        public List<MenuInResult> MenuInResult { get; set; }
 
         /// <summary>
         /// 用户名

+ 5 - 0
gx_api/GxPress/Model/GxPress.Result/Media/MediaResult.cs

@@ -187,6 +187,11 @@ namespace GxPress.Result.Media
         /// 排序
         /// </summary>
         public int Sort { get; set; }
+        /// <summary>
+        /// 章节名称
+        /// </summary>
+        /// <value></value>
+        public string SectionName { get; set; }
 
 
     }

+ 5 - 4
gx_api/GxPress/Repository/GxPress.Repository.Implement/AdminRepository.cs

@@ -94,7 +94,7 @@ namespace GxPress.Repository.Implement
         /// <returns></returns>
         public async Task<IEnumerable<Admin>> GetPageListAsync(int page, int perPage)
         {
-            return await _repository.GetAllAsync(Q.ForPage(page, perPage)); 
+            return await _repository.GetAllAsync(Q.ForPage(page, perPage));
 
         }
 
@@ -117,7 +117,7 @@ namespace GxPress.Repository.Implement
             var pwd = EncryptProvider.Md5($"{request.Password}{request.Account}");
             if (admin.Password != pwd) throw new BusinessException("密码错误");
             //新增获取菜单数据
-            var result = new AdminSignInResult { AdminId = admin.Id,Menus = StringUtils.StringCollectionToStringList(admin.Menus).ToList(),Name = admin.Name};
+            var result = new AdminSignInResult { AdminId = admin.Id, RoleId = admin.RoleId, Menus = StringUtils.StringCollectionToStringList(admin.Menus).ToList(), Name = admin.Name };
             return result;
         }
 
@@ -138,7 +138,8 @@ namespace GxPress.Repository.Implement
                 Password = EncryptProvider.Md5($"{request.Password}{request.Account}"),
                 Phone = request.Phone,
                 Email = request.Email,
-                Sex = request.Sex
+                Sex = request.Sex,
+                RoleId = request.RoleId
             };
             var result = await InsertAsync(admin);
             return result;
@@ -211,7 +212,7 @@ namespace GxPress.Repository.Implement
 
             //admin.Name = request.Name;
             //admin.Password = EncryptProvider.Md5($"{request.NewPassword}{admin.Account}");
-            request.Id=id;
+            request.Id = id;
             request.Password = admin.Password;
             request.CreatedDate = admin.CreatedDate;
             return await UpdateAsync(request);

+ 6 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/Menus/MenusRepository.cs

@@ -65,5 +65,11 @@ namespace GxPress.Repository.Implement.Menus
             }
             return list;
         }
+
+         public async Task<IEnumerable<Entity.Menus.Menus>> GetAllMenusAsync(List<int> menusIds)
+        {
+            var all = await _repository.GetAllAsync(Q.WhereIn(nameof(Entity.Menus.Menus.Id), menusIds));
+           return all;
+        }
     }
 }

+ 2 - 0
gx_api/GxPress/Repository/GxPress.Repository.Interface/Menus/IMenusRepository.cs

@@ -15,5 +15,7 @@ namespace GxPress.Repository.Interface.Menus
           Task<IEnumerable<Entity.Menus.Menus>> GetAllAsync();
 
           Task<IEnumerable<Entity.Menus.Menus>> GetAllAsync(List<int> menusIds);
+
+          Task<IEnumerable<Entity.Menus.Menus>> GetAllMenusAsync(List<int> menusIds);
     }
 }

+ 5 - 7
gx_api/GxPress/Service/GxPress.Service.Implement/Role/RoleService.cs

@@ -9,7 +9,6 @@ using System.Linq;
 using System.Transactions;
 using AutoMapper;
 using GxPress.Request.Menu;
-using System.Transactions;
 using GxPress.Result.SystemRole;
 
 namespace GxPress.Service.Implement.Role
@@ -74,10 +73,9 @@ namespace GxPress.Service.Implement.Role
             foreach (var systemRole in systemRoles)
             {
                 var models = await systemRoleMenusRepository.GetAllAsync(systemRole.Id);
-                var item = await menusRepository.GetAllAsync(models.Select(n => n.MenuId).ToList());
+                var item = await menusRepository.GetAllMenusAsync(models.Select(n => n.MenuId).ToList());
                 var systemRoleResult = new SystemRoleResult();
                 systemRoleResult.SystemRole = systemRole;
-                var menuInRequest = new List<MenuInResult>();
                 var model = item.Where(n => n.ParentId == 0).Select(n => _mapper.Map<MenuInResult>(n)).ToList();
                 foreach (var request in model)
                 {
@@ -205,16 +203,16 @@ namespace GxPress.Service.Implement.Role
         /// </summary>
         /// <param name="roleId"></param>
         /// <returns></returns>
-        public async Task<List<MenuInRequest>> GetMenusAllAsync(int roleId)
+        public async Task<List<MenuInResult>> GetMenusAllAsync(int roleId)
         {
             //获取
             var models = await systemRoleMenusRepository.GetAllAsync(roleId);
             var item = await menusRepository.GetAllAsync(models.Select(n => n.Id).ToList());
-            var result = new List<MenuInRequest>();
-            result = item.Where(n => n.ParentId == 0).Select(n => _mapper.Map<MenuInRequest>(n)).ToList();
+            var result = new List<MenuInResult>();
+            result = item.Where(n => n.ParentId == 0).Select(n => _mapper.Map<MenuInResult>(n)).ToList();
             foreach (var request in result)
             {
-                request.Children = item.Where(n => n.ParentId == request.Id).Select(n => _mapper.Map<MenuInRequest>(n)).ToList();
+                request.Children = item.Where(n => n.ParentId == request.Id).Select(n => _mapper.Map<MenuInResult>(n)).ToList();
             }
             return result;
         }

+ 1 - 1
gx_api/GxPress/Service/GxPress.Service.Interface/Role/IRoleService.cs

@@ -58,7 +58,7 @@ namespace GxPress.Service.Interface.Role
         /// </summary>
         /// <param name="roleId"></param>
         /// <returns></returns>
-        Task<List<MenuInRequest>> GetMenusAllAsync(int roleId);
+        Task<List<MenuInResult>> GetMenusAllAsync(int roleId);
 
         /// <summary>
         /// 获取所有菜单