소스 검색

登入后返回menu菜单

yuanrf 1 년 전
부모
커밋
a1af840453

+ 72 - 11
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -7,6 +7,7 @@ using OASystem.API.OAMethodLib;
 using Serilog.Parsing;
 using OASystem.Domain.Dtos.System;
 using System.Drawing.Drawing2D;
+using System.Collections;
 
 namespace OASystem.API.Controllers
 {
@@ -19,14 +20,16 @@ namespace OASystem.API.Controllers
         private readonly IMapper _mapper;
         private readonly IConfiguration _config;
         private readonly LoginRepository _loginRep;
-        private readonly MessageRepository _message; 
-
-        public AuthController(IConfiguration config, LoginRepository loginRep, IMapper mapper,MessageRepository message)
+        private readonly MessageRepository _message;
+        private readonly SystemMenuPermissionRepository _SystemMenuPermissionRepository;
+        public AuthController(IConfiguration config, LoginRepository loginRep, IMapper mapper,MessageRepository message,
+            SystemMenuPermissionRepository systemMenuPermissionRepository)
         {
             _config = config;
             _loginRep = loginRep;
             _mapper = mapper;
             _message = message;
+            _SystemMenuPermissionRepository = systemMenuPermissionRepository;
         }
 
         /// <summary>
@@ -44,22 +47,23 @@ namespace OASystem.API.Controllers
             if (userData.Code != 0)
             {
                 if (userData.Code != 0) { return Ok(JsonView(false, userData.Msg)); }
-
                 return Ok(JsonView(false, "暂无该员工信息!"));
             }
 
             #endregion
-
-
-            dynamic authData = null;
+            IActionResult authData = null;
+            if (userData.Data != null)
+            {
+                var uid = (userData.Data as UserLoginInfoView).UserId;
+                authData = await MenuLoad(new MenuLoadDto() { PortType = dto.PortType, UserId = uid });
+            }
 
             var view = new LoginView
             {
-                UserInfo = userData.Data,
-                AuthData = authData,
+                UserInfo = userData == null ? null : userData.Data,
+                AuthData = authData != null ? (authData as OkObjectResult).Value : null,
             };
 
-
             DateTime createZebraTime = DateTime.Now;
             string authorId = dto.Number + "Token";
             string authorToken = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>(authorId);//string 取
@@ -181,9 +185,66 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(view));
         }
 
-       
 
 
+        /// <summary>
+        /// 菜单加载
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [HttpPost("MenuLoad")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> MenuLoad(MenuLoadDto dto)
+        {
+            var QueryResult = _SystemMenuPermissionRepository.QueryMenuLoad(dto.UserId,dto.PortType);
+            ArrayList arr = new ArrayList();
+            JsonView ViewData = new JsonView();
+            ViewData.Code = 400;
+            ViewData.Msg = "错误!";
+            ViewData.Data = null;
+
+            if (QueryResult.Code == 0)
+            {
+                if (dto.PortType == 1)
+                {
+                    var menuGroup = (QueryResult.Data as List<MenuLoadView>).GroupBy(x => x.modulid);
+                    foreach (var item in menuGroup)
+                    {
+                        var modul = item.FirstOrDefault();
+                        if (modul != null)
+                        {
+                            arr.Add(new
+                            {
+                                modulName = modul.modulName,
+                                modulid = modul.modulid,
+                                pageList = item
+                            });
+                        }
+                    }
+
+                    ViewData.Code = 200;
+                    ViewData.Msg = QueryResult.Msg;
+                    ViewData.Data = arr;
+
+                }
+                else if (dto.PortType == 2)
+                {
+                    var pages = (QueryResult.Data as List<MenuLoadView>).Select(x => x.pageid).ToArray();
+                    arr = ArrayList.Adapter(pages);
+
+                    ViewData.Code = 200;
+                    ViewData.Msg = QueryResult.Msg;
+                    ViewData.Data = arr;
+                }
+            }
+            else
+            {
+                ViewData.Msg = "错误!(" + QueryResult.Msg + ")";
+            }
+
+            return Ok(ViewData);
+        }
+
 
     }
 }

+ 4 - 50
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -874,14 +874,14 @@ namespace OASystem.API.Controllers
             }
 
             //操作方式
-            var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
+            var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>(x=>x.IsEnable == 1).ToList();
 
             //获取所有关联页面
             var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
 
 
             //页面数据
-            var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x=>x.Mid == dto.moduleId).ToList();
+            var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x=>x.Mid == dto.moduleId && x.IsEnable == 1).ToList();
             if (SystemMenuPermissionData == null || SystemMenuPermissionData.Count() == 0)
             {
                 return Ok(JsonView("暂无数据"));
@@ -1097,7 +1097,7 @@ namespace OASystem.API.Controllers
             }
 
             //所有操作
-            var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
+            var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>(x=>x.IsEnable == 1).ToList();
 
             //获取所有关联页面
             var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
@@ -1397,7 +1397,7 @@ namespace OASystem.API.Controllers
             //页面与操作关联表
             var pageAndFunList =  _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
             //页面功能表
-            var pageFunList = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
+            var pageFunList = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>(x => x.IsEnable == 1).ToList();
 
             ArrayList arr = new ArrayList();  
             foreach (var item in pageFunList)
@@ -1423,52 +1423,6 @@ namespace OASystem.API.Controllers
             }
             return Ok(JsonView(arr));
         }
-
-
-        /// <summary>
-        /// 菜单加载
-        /// </summary>
-        /// <returns></returns>
-        [HttpPost]
-        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> MenuLoad(MenuLoadDto dto)
-        {
-            var QueryResult = _SystemMenuPermissionRepository.QueryMenuLoad(dto.Userid);
-            JsonView ViewData = new JsonView();
-            ArrayList arr = new ArrayList();
-
-            if (QueryResult.Code == 0)
-            {
-                var menuGroup = (QueryResult.Data as List<MenuLoadView>).GroupBy(x=>x.modulid);
-                foreach (var item in menuGroup)
-                {
-                    var modul = item.FirstOrDefault();
-                    if (modul != null)
-                    {
-                        arr.Add(new
-                        {
-                            modulName = modul.modulName,
-                            modulid = modul.modulid,
-                            pageList = item
-                        }) ;
-                    }
-                }
-
-                ViewData.Code = 200;
-                ViewData.Msg = QueryResult.Msg;
-                ViewData.Data = arr;
-            }
-            else
-            {
-                ViewData.Code = 400;
-                ViewData.Msg = QueryResult.Msg;
-                ViewData.Data = null;
-            }
-
-            return Ok(ViewData);
-        }
-
-
         #endregion
 
         #region 页面操作

+ 9 - 9
OASystem/OASystem.Api/Program.cs

@@ -37,14 +37,14 @@ builder.Services.AddControllers()
 
 
 #region ÉÏ´«Îļþ 
-//builder.Services.AddCors(policy =>
-//{
-//    policy.AddPolicy("Cors", opt => opt
-//    .AllowAnyOrigin()
-//    .AllowAnyHeader()
-//    .AllowAnyMethod()
-//    .WithExposedHeaders("X-Pagination"));
-//});
+builder.Services.AddCors(policy =>
+{
+    policy.AddPolicy("Cors", opt => opt
+    .AllowAnyOrigin()
+    .AllowAnyHeader()
+    .AllowAnyMethod()
+    .WithExposedHeaders("X-Pagination"));
+});
 
 //builder.Services.Configure<FormOptions>(options =>
 //{
@@ -239,7 +239,7 @@ app.UseStaticFiles();
 app.UseRouting();
 app.UseAuthentication(); // ÈÏÖ¤
 app.UseAuthorization();  // ÊÚȨ
-//app.UseCors("Cors");  //Cors
+app.UseCors("Cors");  //Cors
 //app.UseCors("AllowSpecificOrigin");  //Cors
 
 #region ÆôÓÃswaggerUI

+ 6 - 1
OASystem/OASystem.Domain/Dtos/System/MenuLoadDto.cs

@@ -8,6 +8,11 @@ namespace OASystem.Domain.Dtos.System
 {
     public class MenuLoadDto
     {
-        public int Userid { get; set; }
+        public int UserId { get; set; }
+        /// <summary>
+        /// 请求端口分类
+        /// 1 Web 2 Android 3 IOS
+        /// </summary>
+        public int PortType { get; set; } = 1;
     }
 }

+ 0 - 1
OASystem/OASystem.Domain/ViewModels/System/MenuLoadView.cs

@@ -8,7 +8,6 @@ namespace OASystem.Domain.ViewModels.System
 {
     public class MenuLoadView
     {
-       public int userpageid { get; set; }
         public int Uid { get; set; }
         public int SmId { get; set; }
         public int Funid { get; set; }

+ 29 - 11
OASystem/OASystem.Infrastructure/Repositories/System/SystemMenuPermissionRepository.cs

@@ -65,20 +65,38 @@ namespace OASystem.Infrastructure.Repositories.System
         }
 
 
-        public Result QueryMenuLoad(int uid)
+        public Result QueryMenuLoad(int uid,int PortType)
         {
             Result result = new Result();
+
             if (uid != 0)
             {
-                var DBData = _sqlSugar.SqlQueryable<MenuLoadView>($@"
-                 select a.id as userpageid ,a.UId,a.SmId,b.Id as Funid,b.FunctionName,b.FunctionCode,c.Id as modulid,
-                  c.Name as modulName,c.STid,d.Id as pageid ,d.Name as PageName,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
-                  d.IosUrl
-                  from Sys_UserAuthority a inner join Sys_PageFunctionPermission b on a.FId = b.Id 
-                  inner join Sys_SystemMenuPermission d on a.SmId = d.Id inner join Sys_SetData c on c.Id = d.Mid
-                  where uid = {uid} and b.Id = 1 and a.IsDel= 0  and b.IsDel = 0 
-                  and b.IsEnable = 1 and c.IsDel = 0 and d.IsDel = 0 and d.IsEnable = 1
-                ").ToList();
+                List<MenuLoadView> DBData = new List<MenuLoadView>();
+                string sql = $@"
+                     select a.UId,a.SmId,b.Id as Funid,b.FunctionName,b.FunctionCode,c.Id as modulid,
+                      c.Name as modulName,c.STid,d.Id as pageid ,d.Name as PageName,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
+                      d.IosUrl
+                      from Sys_UserAuthority a inner join Sys_PageFunctionPermission b on a.FId = b.Id 
+                      inner join Sys_SystemMenuPermission d on a.SmId = d.Id inner join Sys_SetData c on c.Id = d.Mid
+                      where uid = {uid} and b.Id = 1 and a.IsDel= 0  and b.IsDel = 0 
+                      and b.IsEnable = 1 and c.IsDel = 0 and d.IsDel = 0   ";
+
+                if (PortType == 1)
+                {
+                    sql += $@"   and d.IsEnable = 1  group by 
+                      a.UId,a.SmId,b.Id,b.FunctionName,b.FunctionCode,c.Id,
+                      c.Name,c.STid,d.Id,d.Name,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
+                      d.IosUrl";
+                    DBData = _sqlSugar.SqlQueryable<MenuLoadView>(sql).ToList();
+                }
+                else if (PortType == 2)
+                {
+                    sql += $@"  and d.phoneIsEnable = 1 group by 
+                      a.UId,a.SmId,b.Id,b.FunctionName,b.FunctionCode,c.Id,
+                      c.Name,c.STid,d.Id,d.Name,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
+                      d.IosUrl ";
+                    DBData = _sqlSugar.SqlQueryable<MenuLoadView>(sql).ToList();
+                }
 
                 result.Code = -1;
                 result.Msg = "暂无数据!";
@@ -89,8 +107,8 @@ namespace OASystem.Infrastructure.Repositories.System
                     result.Msg = "成功!";
                     result.Data = DBData;
                 }
+               
             }
-
             return result;
         }