From 7540baa3222b5031304b76849f7089728b9dca36 Mon Sep 17 00:00:00 2001 From: yubaolee Date: Sun, 20 Dec 2020 23:14:09 +0800 Subject: [PATCH] sync with OpenAuth.Core --- Infrastructure/Helpers/ImgHelper.cs | 99 +++++++------------ Infrastructure/Infrastructure.csproj | 3 +- OpenAuth.App/FileApp.cs | 88 ++++++++++++++--- OpenAuth.App/ModuleManagerApp.cs | 7 ++ OpenAuth.App/OpenAuth.App.csproj | 2 +- OpenAuth.App/Request/QueryFileListReq.cs | 7 ++ OpenAuth.App/RevelanceManagerApp.cs | 63 +++++++----- OpenAuth.App/Test/TestFileApp.cs | 52 ++++++++++ OpenAuth.App/UserManagerApp.cs | 79 ++++++++------- .../OpenAuth.IdentityServer.csproj | 2 +- .../DataPrivilegeRulesController.cs | 6 +- .../Controllers/FlowInstancesController.cs | 8 +- .../Controllers/FlowSchemesController.cs | 6 +- OpenAuth.Mvc/Controllers/FormsController.cs | 6 +- .../Controllers/OpenJobsController.cs | 8 +- .../Controllers/ResourcesController.cs | 6 +- OpenAuth.Mvc/Controllers/SysLogsController.cs | 6 +- .../Controllers/SysMessagesController.cs | 6 +- .../WmsInboundOrderTblsController.cs | 6 +- OpenAuth.Mvc/OpenAuth.Mvc.csproj | 2 +- OpenAuth.Repository/Domain/UploadFile.cs | 2 +- .../OpenAuth.Repository.csproj | 2 +- .../Controllers/FilesController.cs | 36 +++++++ .../Controllers/ModulesController.cs | 12 ++- OpenAuth.WebApi/OpenAuth.WebApi.csproj | 2 +- 25 files changed, 347 insertions(+), 169 deletions(-) create mode 100644 OpenAuth.App/Request/QueryFileListReq.cs create mode 100644 OpenAuth.App/Test/TestFileApp.cs diff --git a/Infrastructure/Helpers/ImgHelper.cs b/Infrastructure/Helpers/ImgHelper.cs index 2c54c60b..13222fdd 100644 --- a/Infrastructure/Helpers/ImgHelper.cs +++ b/Infrastructure/Helpers/ImgHelper.cs @@ -2,76 +2,49 @@ // Copyright (c) 2019 openauth.me. All rights reserved. // // www.cnblogs.com/yubaolee -// 2019-03-07 // 生成缩略图 +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.Processing; + namespace Infrastructure.Helpers { public class ImgHelper { - //MakeThumbnail(path, tpath, 120, 90, "H"); - public static void MakeThumbnail(string originalImagePath, + /// + /// 根据已有图片生成缩略图 + /// 用法:MakeThumbnail(path, tpath, 120, 90, "H"); + /// + /// 源图片路径 + /// 缩略图保存路径 + /// 缩略图的宽度 + /// 缩略图高度 + /// 缩略模式:H:指定高度,宽度按比例处理;W:指定宽度,高度按比例处理;HW按参数指定的高度和宽度 + public static void MakeThumbnail(string originalImagePath, string thumbnailPath, - int width=120, int height=90, string mode="H") + int width = 120, int height = 90, string mode = "H") { - //Image originalImage = Image.FromFile(originalImagePath); - //int towidth = width; - //int toheight = height; - //int x = 0; - //int y = 0; - //int ow = originalImage.Width; - //int oh = originalImage.Height; - //switch (mode) - //{ - // case "HW"://指定高宽缩放(可能变形) - // break; - // case "W"://指定宽,高按比例 - // toheight = originalImage.Height * width / originalImage.Width; - // break; - // case "H"://指定高,宽按比例 - // towidth = originalImage.Width * height / originalImage.Height; - // break; - // case "Cut"://指定高宽裁减(不变形) - // if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight) - // { - // oh = originalImage.Height; - // ow = originalImage.Height * towidth / toheight; - // y = 0; - // x = (originalImage.Width - ow) / 2; - // } - // else - // { - // ow = originalImage.Width; - // oh = originalImage.Width * height / towidth; - // x = 0; - // y = (originalImage.Height - oh) / 2; - // } - // break; - // default: - // break; - //} - //MediaTypeNames.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); - //Graphics g = System.Drawing.Graphics.FromImage(bitmap); - //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; - //g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; - //g.Clear(Color.Transparent); - //g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight), - // new Rectangle(x, y, ow, oh), - // GraphicsUnit.Pixel); - //try - //{ - // bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Png); - //} - //catch (System.Exception e) - //{ - // throw e; - //} - //finally - //{ - // originalImage.Dispose(); - // bitmap.Dispose(); - // g.Dispose(); - //} + using (var originalImage = Image.Load(originalImagePath)) + { + int towidth = width; //缩略图宽度 + int toheight = height; //缩略图高度 + switch (mode) + { + case "HW": //指定高宽缩放(可能变形) + break; + case "W": //指定宽,高按比例 + toheight = originalImage.Height * width / originalImage.Width; + break; + case "H": //指定高,宽按比例 + towidth = originalImage.Width * height / originalImage.Height; + break; + default: + break; + } + + originalImage.Mutate(x => x.Resize(towidth, toheight)); + originalImage.Save(thumbnailPath); + } } } -} +} \ No newline at end of file diff --git a/Infrastructure/Infrastructure.csproj b/Infrastructure/Infrastructure.csproj index d62d5695..dcee9ca6 100644 --- a/Infrastructure/Infrastructure.csproj +++ b/Infrastructure/Infrastructure.csproj @@ -1,7 +1,7 @@  - netcoreapp5.0 + netcoreapp3.1 @@ -18,6 +18,7 @@ + diff --git a/OpenAuth.App/FileApp.cs b/OpenAuth.App/FileApp.cs index df27ea31..6c2b937c 100644 --- a/OpenAuth.App/FileApp.cs +++ b/OpenAuth.App/FileApp.cs @@ -1,29 +1,35 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Threading.Tasks; using Infrastructure; +using Infrastructure.Extensions; using Infrastructure.Helpers; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using OpenAuth.App.Interface; +using OpenAuth.App.Request; +using OpenAuth.App.Response; using OpenAuth.Repository.Domain; using OpenAuth.Repository.Interface; namespace OpenAuth.App { /// - /// 文件 + /// 文件管理 /// public class FileApp : BaseApp { private ILogger _logger; private string _filePath; - private string _dbFilePath; //数据库中的文件路径 - private string _dbThumbnail; //数据库中的缩略图路径 + private string _dbFilePath; //数据库中的文件路径 + private string _dbThumbnail; //数据库中的缩略图路径 - public FileApp( IOptions setOptions, IUnitWork unitWork, IRepository repository, ILogger logger, IAuth auth) - :base(unitWork, repository, auth) + public FileApp(IOptions setOptions, IUnitWork unitWork, IRepository repository, + ILogger logger, IAuth auth) + : base(unitWork, repository, auth) { _logger = logger; _filePath = setOptions.Value.UploadPath; @@ -33,6 +39,30 @@ namespace OpenAuth.App } } + /// + /// 加载附件列表 + /// + public async Task Load(QueryFileListReq request) + { + var result = new TableData(); + var objs = UnitWork.Find(null); + if (!string.IsNullOrEmpty(request.key)) + { + objs = objs.Where(u => u.FileName.Contains(request.key) || u.FilePath.Contains(request.key)); + } + + result.data = objs.OrderByDescending(u => u.CreateTime) + .Skip((request.page - 1) * request.limit) + .Take(request.limit); + result.count = objs.Count(); + return result; + } + + /// + /// 批量添加附件 + /// + /// + /// public List Add(IFormFileCollection files) { var result = new List(); @@ -55,20 +85,22 @@ namespace OpenAuth.App { _logger.LogWarning("收到新文件为空"); } + if (file != null && file.Length > 0 && file.Length < 10485760) { using (var binaryReader = new BinaryReader(file.OpenReadStream())) { var fileName = Path.GetFileName(file.FileName); - var data = binaryReader.ReadBytes((int)file.Length); - UploadFile(fileName, data); + var data = binaryReader.ReadBytes((int) file.Length); + SaveFile(fileName, data); var filedb = new UploadFile { FilePath = _dbFilePath, Thumbnail = _dbThumbnail, FileName = fileName, - FileSize = file.Length, + FileSize = file.Length.ToInt(), + CreateUserName = _auth.GetUserName(), FileType = Path.GetExtension(fileName), Extension = Path.GetExtension(fileName) }; @@ -81,8 +113,33 @@ namespace OpenAuth.App throw new Exception("文件过大"); } } + + /// + /// 删除附件 + /// + /// + public override void Delete(string[] ids) + { + var files = base.Repository.Find(u => ids.Contains(u.Id)).ToList(); + for (int i = 0; i < files.Count(); i++) + { + var uploadPath = Path.Combine(_filePath, files[i].FilePath); + FileHelper.FileDel(uploadPath); + if (!string.IsNullOrEmpty(files[i].Thumbnail)) + { + FileHelper.FileDel(Path.Combine(_filePath, files[i].Thumbnail)); + } + Repository.Delete(u =>u.Id == files[i].Id); + } + } - private void UploadFile(string fileName, byte[] fileBuffers) + /// + /// 存储文件,如果是图片文件则生成缩略图 + /// + /// + /// + /// + private void SaveFile(string fileName, byte[] fileBuffers) { string folder = DateTime.Now.ToString("yyyyMMdd"); @@ -98,7 +155,7 @@ namespace OpenAuth.App throw new Exception("文件不能为空"); } - var uploadPath = Path.Combine(_filePath , folder ); + var uploadPath = Path.Combine(_filePath, folder); _logger.LogInformation("文件写入:" + uploadPath); if (!Directory.Exists(uploadPath)) { @@ -108,21 +165,22 @@ namespace OpenAuth.App var ext = Path.GetExtension(fileName).ToLower(); string newName = GenerateId.GenerateOrderNumber() + ext; - using (var fs = new FileStream(Path.Combine(uploadPath , newName), FileMode.Create)) + using (var fs = new FileStream(Path.Combine(uploadPath, newName), FileMode.Create)) { fs.Write(fileBuffers, 0, fileBuffers.Length); fs.Close(); //生成缩略图 - if (ext.Contains(".jpg") || ext.Contains(".jpeg") || ext.Contains(".png") || ext.Contains(".bmp") || ext.Contains(".gif")) + if (ext.Contains(".jpg") || ext.Contains(".jpeg") || ext.Contains(".png") || ext.Contains(".bmp") || + ext.Contains(".gif")) { string thumbnailName = GenerateId.GenerateOrderNumber() + ext; - ImgHelper.MakeThumbnail(Path.Combine(uploadPath , newName), Path.Combine(uploadPath , thumbnailName)); - _dbThumbnail = Path.Combine(folder , thumbnailName); + ImgHelper.MakeThumbnail(Path.Combine(uploadPath, newName), Path.Combine(uploadPath, thumbnailName)); + _dbThumbnail = Path.Combine(folder, thumbnailName); } - _dbFilePath = Path.Combine(folder , newName); + _dbFilePath = Path.Combine(folder, newName); } } } diff --git a/OpenAuth.App/ModuleManagerApp.cs b/OpenAuth.App/ModuleManagerApp.cs index e224a864..bd2f14b7 100644 --- a/OpenAuth.App/ModuleManagerApp.cs +++ b/OpenAuth.App/ModuleManagerApp.cs @@ -62,6 +62,9 @@ namespace OpenAuth.App return _revelanceApp.Get(Define.ROLEDATAPROPERTY, roleId, moduleCode); } + /// + /// 根据某角色ID获取可访问某模块的菜单项 + /// public IEnumerable LoadMenusForRole(string moduleId, string roleId) { var elementIds = _revelanceApp.Get(Define.ROLEELEMENT, true, roleId); @@ -90,6 +93,10 @@ namespace OpenAuth.App } + /// + /// 新增菜单 + /// 当前登录用户的所有角色会自动分配菜单 + /// public void AddMenu(ModuleElement model) { var loginContext = _auth.GetCurrentUser(); diff --git a/OpenAuth.App/OpenAuth.App.csproj b/OpenAuth.App/OpenAuth.App.csproj index 91ef110f..187eada6 100644 --- a/OpenAuth.App/OpenAuth.App.csproj +++ b/OpenAuth.App/OpenAuth.App.csproj @@ -1,7 +1,7 @@  - netcoreapp5.0 + netcoreapp3.1 diff --git a/OpenAuth.App/Request/QueryFileListReq.cs b/OpenAuth.App/Request/QueryFileListReq.cs new file mode 100644 index 00000000..13d2a2b8 --- /dev/null +++ b/OpenAuth.App/Request/QueryFileListReq.cs @@ -0,0 +1,7 @@ +namespace OpenAuth.App.Request +{ + public class QueryFileListReq : PageReq + { + //todo:添加自己的请求字段 + } +} \ No newline at end of file diff --git a/OpenAuth.App/RevelanceManagerApp.cs b/OpenAuth.App/RevelanceManagerApp.cs index 4b909ec9..49fef5f6 100644 --- a/OpenAuth.App/RevelanceManagerApp.cs +++ b/OpenAuth.App/RevelanceManagerApp.cs @@ -72,14 +72,16 @@ namespace OpenAuth.App { foreach (var value in sameVals) { - Repository.Delete(u => u.Key == key && u.FirstId == sameVals.Key && u.SecondId == value); + UnitWork.Delete(u => u.Key == key && u.FirstId == sameVals.Key && u.SecondId == value); } } + UnitWork.Save(); } public void DeleteBy(string key, params string[] firstIds) { - Repository.Delete(u => firstIds.Contains(u.FirstId) && u.Key == key); + UnitWork.Delete(u => firstIds.Contains(u.FirstId) && u.Key == key); + UnitWork.Save(); } @@ -160,11 +162,12 @@ namespace OpenAuth.App { foreach (var property in request.Properties) { - Repository.Delete(u => u.Key == Define.ROLEDATAPROPERTY + UnitWork.Delete(u => u.Key == Define.ROLEDATAPROPERTY && u.FirstId == request.RoleId && u.SecondId == request.ModuleCode && u.ThirdId == property); } + UnitWork.Save(); } } @@ -174,18 +177,21 @@ namespace OpenAuth.App /// public void AssignRoleUsers(AssignRoleUsers request) { - //删除以前的所有用户 - UnitWork.Delete(u => u.SecondId == request.RoleId && u.Key == Define.USERROLE); - //批量分配用户角色 - UnitWork.BatchAdd((from firstId in request.UserIds - select new Relevance - { - Key = Define.USERROLE, - FirstId = firstId, - SecondId = request.RoleId, - OperateTime = DateTime.Now - }).ToArray()); - UnitWork.Save(); + UnitWork.ExecuteWithTransaction(() => + { + //删除以前的所有用户 + UnitWork.Delete(u => u.SecondId == request.RoleId && u.Key == Define.USERROLE); + //批量分配用户角色 + UnitWork.BatchAdd((from firstId in request.UserIds + select new Relevance + { + Key = Define.USERROLE, + FirstId = firstId, + SecondId = request.RoleId, + OperateTime = DateTime.Now + }).ToArray()); + UnitWork.Save(); + }); } /// @@ -194,18 +200,21 @@ namespace OpenAuth.App /// public void AssignOrgUsers(AssignOrgUsers request) { - //删除以前的所有用户 - UnitWork.Delete(u => u.SecondId == request.OrgId && u.Key == Define.USERORG); - //批量分配用户角色 - UnitWork.BatchAdd((from firstId in request.UserIds - select new Relevance - { - Key = Define.USERORG, - FirstId = firstId, - SecondId = request.OrgId, - OperateTime = DateTime.Now - }).ToArray()); - UnitWork.Save(); + UnitWork.ExecuteWithTransaction(() => + { + //删除以前的所有用户 + UnitWork.Delete(u => u.SecondId == request.OrgId && u.Key == Define.USERORG); + //批量分配用户角色 + UnitWork.BatchAdd((from firstId in request.UserIds + select new Relevance + { + Key = Define.USERORG, + FirstId = firstId, + SecondId = request.OrgId, + OperateTime = DateTime.Now + }).ToArray()); + UnitWork.Save(); + }); } } } \ No newline at end of file diff --git a/OpenAuth.App/Test/TestFileApp.cs b/OpenAuth.App/Test/TestFileApp.cs new file mode 100644 index 00000000..c251430b --- /dev/null +++ b/OpenAuth.App/Test/TestFileApp.cs @@ -0,0 +1,52 @@ +using System; +using System.Threading.Tasks; +using Castle.Core.Logging; +using Infrastructure; +using Infrastructure.Cache; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Moq; +using NUnit.Framework; +using OpenAuth.App.Request; +using OpenAuth.App.SSO; + +namespace OpenAuth.App.Test +{ + class TestFileApp :TestBase + { + public override ServiceCollection GetService() + { + var services = new ServiceCollection(); + + var cachemock = new Mock(); + cachemock.Setup(x => x.Get("tokentest")).Returns(new UserAuthSession { Account = "System" }); + services.AddScoped(x => cachemock.Object); + + var httpContextAccessorMock = new Mock(); + httpContextAccessorMock.Setup(x => x.HttpContext.Request.Query[Define.TOKEN_NAME]).Returns("tokentest"); + + services.AddScoped(x => httpContextAccessorMock.Object); + + var logMock = new Mock>(); + services.AddScoped(x => logMock.Object); + + return services; + } + + + [Test] + public void TestLoad() + { + var app = _autofacServiceProvider.GetService(); + var result = app.Load(new QueryFileListReq() + { + page = 1, + limit = 10 + }); + + Console.WriteLine(JsonHelper.Instance.Serialize(result.Result)); + } + + } +} diff --git a/OpenAuth.App/UserManagerApp.cs b/OpenAuth.App/UserManagerApp.cs index c714c2a2..ccd13f70 100644 --- a/OpenAuth.App/UserManagerApp.cs +++ b/OpenAuth.App/UserManagerApp.cs @@ -119,47 +119,52 @@ namespace OpenAuth.App throw new Exception("请为用户分配机构"); User requser = request; requser.CreateId = _auth.GetCurrentUser().User.Id; - if (string.IsNullOrEmpty(request.Id)) + + UnitWork.ExecuteWithTransaction(() => { - if (UnitWork.Any(u => u.Account == request.Account)) + if (string.IsNullOrEmpty(request.Id)) { - throw new Exception("用户账号已存在"); + if (UnitWork.Any(u => u.Account == request.Account)) + { + throw new Exception("用户账号已存在"); + } + + if (string.IsNullOrEmpty(requser.Password)) + { + requser.Password = requser.Account; //如果客户端没提供密码,默认密码同账号 + } + + requser.CreateTime = DateTime.Now; + + UnitWork.Add(requser); + request.Id = requser.Id; //要把保存后的ID存入view } - - if (string.IsNullOrEmpty(requser.Password)) - { - requser.Password = requser.Account; //如果客户端没提供密码,默认密码同账号 - } - - requser.CreateTime = DateTime.Now; - - UnitWork.Add(requser); - request.Id = requser.Id; //要把保存后的ID存入view - } - else - { - UnitWork.Update(u => u.Id == request.Id, u => new User - { - Account = requser.Account, - BizCode = requser.BizCode, - Name = requser.Name, - Sex = requser.Sex, - Status = requser.Status - }); - if (!string.IsNullOrEmpty(requser.Password)) //密码为空的时候,不做修改 + else { UnitWork.Update(u => u.Id == request.Id, u => new User { - Password = requser.Password + Account = requser.Account, + BizCode = requser.BizCode, + Name = requser.Name, + Sex = requser.Sex, + Status = requser.Status }); + if (!string.IsNullOrEmpty(requser.Password)) //密码为空的时候,不做修改 + { + UnitWork.Update(u => u.Id == request.Id, u => new User + { + Password = requser.Password + }); + } } - } - UnitWork.Save(); - string[] orgIds = request.OrganizationIds.Split(',').ToArray(); + UnitWork.Save(); + string[] orgIds = request.OrganizationIds.Split(',').ToArray(); - _revelanceApp.DeleteBy(Define.USERORG, requser.Id); - _revelanceApp.Assign(Define.USERORG, orgIds.ToLookup(u => requser.Id)); + _revelanceApp.DeleteBy(Define.USERORG, requser.Id); + _revelanceApp.Assign(Define.USERORG, orgIds.ToLookup(u => requser.Id)); + }); + } /// @@ -168,10 +173,14 @@ namespace OpenAuth.App /// public override void Delete(string[] ids) { - UnitWork.Delete(u =>(u.Key == Define.USERROLE || u.Key == Define.USERORG) - && ids.Contains(u.FirstId)); - UnitWork.Delete(u => ids.Contains(u.Id)); - UnitWork.Save(); + UnitWork.ExecuteWithTransaction(() => + { + UnitWork.Delete(u =>(u.Key == Define.USERROLE || u.Key == Define.USERORG) + && ids.Contains(u.FirstId)); + UnitWork.Delete(u => ids.Contains(u.Id)); + UnitWork.Save(); + }); + } diff --git a/OpenAuth.Identity/OpenAuth.IdentityServer.csproj b/OpenAuth.Identity/OpenAuth.IdentityServer.csproj index 8e97fdb1..4ea1f8a5 100644 --- a/OpenAuth.Identity/OpenAuth.IdentityServer.csproj +++ b/OpenAuth.Identity/OpenAuth.IdentityServer.csproj @@ -1,7 +1,7 @@  - netcoreapp5.0 + netcoreapp3.1 diff --git a/OpenAuth.Mvc/Controllers/DataPrivilegeRulesController.cs b/OpenAuth.Mvc/Controllers/DataPrivilegeRulesController.cs index 73352ada..df9f23ec 100644 --- a/OpenAuth.Mvc/Controllers/DataPrivilegeRulesController.cs +++ b/OpenAuth.Mvc/Controllers/DataPrivilegeRulesController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -59,9 +60,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QueryDataPrivilegeRuleListReq request) + public async Task Load([FromQuery]QueryDataPrivilegeRuleListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/FlowInstancesController.cs b/OpenAuth.Mvc/Controllers/FlowInstancesController.cs index 1fce59fb..dfc4c652 100644 --- a/OpenAuth.Mvc/Controllers/FlowInstancesController.cs +++ b/OpenAuth.Mvc/Controllers/FlowInstancesController.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -136,9 +137,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QueryFlowInstanceListReq request) - { - return JsonHelper.Instance.Serialize(_app.Load(request)); + public async Task Load([FromQuery]QueryFlowInstanceListReq request) + { + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } /// diff --git a/OpenAuth.Mvc/Controllers/FlowSchemesController.cs b/OpenAuth.Mvc/Controllers/FlowSchemesController.cs index bf024023..b0a81d1f 100644 --- a/OpenAuth.Mvc/Controllers/FlowSchemesController.cs +++ b/OpenAuth.Mvc/Controllers/FlowSchemesController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -86,9 +87,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QueryFlowSchemeListReq request) + public async Task Load([FromQuery]QueryFlowSchemeListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/FormsController.cs b/OpenAuth.Mvc/Controllers/FormsController.cs index 78695a0e..342c8b6d 100644 --- a/OpenAuth.Mvc/Controllers/FormsController.cs +++ b/OpenAuth.Mvc/Controllers/FormsController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -87,9 +88,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QueryFormListReq request) + public async Task Load([FromQuery]QueryFormListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/OpenJobsController.cs b/OpenAuth.Mvc/Controllers/OpenJobsController.cs index 84c8c615..6c81ae64 100644 --- a/OpenAuth.Mvc/Controllers/OpenJobsController.cs +++ b/OpenAuth.Mvc/Controllers/OpenJobsController.cs @@ -1,7 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; -using Infrastructure; + using System.Threading.Tasks; + using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -106,9 +107,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QueryOpenJobListReq request) + public async Task Load([FromQuery]QueryOpenJobListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/ResourcesController.cs b/OpenAuth.Mvc/Controllers/ResourcesController.cs index a3eb6d66..751788a2 100644 --- a/OpenAuth.Mvc/Controllers/ResourcesController.cs +++ b/OpenAuth.Mvc/Controllers/ResourcesController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -54,9 +55,10 @@ namespace OpenAuth.Mvc.Controllers } - public string Load([FromQuery]QueryResourcesReq request) + public async Task Load([FromQuery]QueryResourcesReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/SysLogsController.cs b/OpenAuth.Mvc/Controllers/SysLogsController.cs index 32815ae0..c3040783 100644 --- a/OpenAuth.Mvc/Controllers/SysLogsController.cs +++ b/OpenAuth.Mvc/Controllers/SysLogsController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -60,9 +61,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QuerySysLogListReq request) + public async Task Load([FromQuery]QuerySysLogListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/SysMessagesController.cs b/OpenAuth.Mvc/Controllers/SysMessagesController.cs index 7e4cbed8..2ba2b5fb 100644 --- a/OpenAuth.Mvc/Controllers/SysMessagesController.cs +++ b/OpenAuth.Mvc/Controllers/SysMessagesController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -60,9 +61,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QuerySysMessageListReq request) + public async Task Load([FromQuery]QuerySysMessageListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/Controllers/WmsInboundOrderTblsController.cs b/OpenAuth.Mvc/Controllers/WmsInboundOrderTblsController.cs index 5933a062..40a7406b 100644 --- a/OpenAuth.Mvc/Controllers/WmsInboundOrderTblsController.cs +++ b/OpenAuth.Mvc/Controllers/WmsInboundOrderTblsController.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; @@ -59,9 +60,10 @@ namespace OpenAuth.Mvc.Controllers /// /// 加载列表 /// - public string Load([FromQuery]QueryWmsInboundOrderTblListReq request) + public async Task Load([FromQuery]QueryWmsInboundOrderTblListReq request) { - return JsonHelper.Instance.Serialize(_app.Load(request)); + var objs = await _app.Load(request); + return JsonHelper.Instance.Serialize(objs); } [HttpPost] diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj index ea1f7e0f..b86bdeed 100644 --- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj +++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj @@ -1,7 +1,7 @@  - netcoreapp5.0 + netcoreapp3.1 false diff --git a/OpenAuth.Repository/Domain/UploadFile.cs b/OpenAuth.Repository/Domain/UploadFile.cs index 5f4074b9..c9c20216 100644 --- a/OpenAuth.Repository/Domain/UploadFile.cs +++ b/OpenAuth.Repository/Domain/UploadFile.cs @@ -51,7 +51,7 @@ namespace OpenAuth.Repository.Domain /// /// 文件大小 /// - public long FileSize { get; set; } + public int? FileSize { get; set; } /// /// 扩展名称 /// diff --git a/OpenAuth.Repository/OpenAuth.Repository.csproj b/OpenAuth.Repository/OpenAuth.Repository.csproj index 7dc37830..ecb8332c 100644 --- a/OpenAuth.Repository/OpenAuth.Repository.csproj +++ b/OpenAuth.Repository/OpenAuth.Repository.csproj @@ -1,7 +1,7 @@  - netcoreapp5.0 + netcoreapp3.1 diff --git a/OpenAuth.WebApi/Controllers/FilesController.cs b/OpenAuth.WebApi/Controllers/FilesController.cs index 016d1d3e..21ea8ca3 100644 --- a/OpenAuth.WebApi/Controllers/FilesController.cs +++ b/OpenAuth.WebApi/Controllers/FilesController.cs @@ -1,11 +1,14 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; +using OpenAuth.App.Request; +using OpenAuth.App.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers @@ -24,9 +27,42 @@ namespace OpenAuth.WebApi.Controllers { _app = app; } + + /// + /// 加载附件列表 + /// + [HttpGet] + public async Task Load([FromQuery]QueryFileListReq request) + { + return await _app.Load(request); + } + + /// + /// 删除附件 + /// + /// + /// + [HttpPost] + public Response Delete([FromBody]string[] ids) + { + var result = new Response(); + try + { + _app.Delete(ids); + + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.InnerException?.Message ?? ex.Message; + } + + return result; + } /// /// 批量上传文件接口 + /// 客户端文本框需设置name='files' /// /// /// 服务器存储的文件信息 diff --git a/OpenAuth.WebApi/Controllers/ModulesController.cs b/OpenAuth.WebApi/Controllers/ModulesController.cs index 949a5419..20229566 100644 --- a/OpenAuth.WebApi/Controllers/ModulesController.cs +++ b/OpenAuth.WebApi/Controllers/ModulesController.cs @@ -187,7 +187,10 @@ namespace OpenAuth.WebApi.Controllers #endregion 添加编辑模块 - //添加或修改 + /// + /// 新增菜单 + /// 当前登录用户的所有角色会自动分配菜单 + /// [HttpPost] public Response AddMenu(ModuleElement obj) { @@ -206,7 +209,9 @@ namespace OpenAuth.WebApi.Controllers return result; } - //添加或修改 + /// + /// 修改菜单属性 + /// [HttpPost] public Response UpdateMenu(ModuleElement obj) { @@ -226,6 +231,9 @@ namespace OpenAuth.WebApi.Controllers } + /// + /// 删除菜单 + /// [HttpPost] public Response DeleteMenu([FromBody]string[] ids) { diff --git a/OpenAuth.WebApi/OpenAuth.WebApi.csproj b/OpenAuth.WebApi/OpenAuth.WebApi.csproj index 3e07e090..7d815b3b 100644 --- a/OpenAuth.WebApi/OpenAuth.WebApi.csproj +++ b/OpenAuth.WebApi/OpenAuth.WebApi.csproj @@ -1,7 +1,7 @@  - netcoreapp5.0 + netcoreapp3.1