From 7cfa543865089f504671bd1f2706acc3b185fdd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Sun, 7 May 2023 08:51:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=A8=E6=88=B7=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Admin.WebApi/Controllers/BaseController.cs | 16 +++++++++++- .../Controllers/System/SysUserController.cs | 17 ++++--------- .../wwwroot/ImportTemplate/user.xlsx | Bin 0 -> 13375 bytes ZR.Service/System/IService/ISysUserService.cs | 2 +- ZR.Service/System/SysUserService.cs | 24 ++++++++++-------- 5 files changed, 35 insertions(+), 24 deletions(-) create mode 100644 ZR.Admin.WebApi/wwwroot/ImportTemplate/user.xlsx diff --git a/ZR.Admin.WebApi/Controllers/BaseController.cs b/ZR.Admin.WebApi/Controllers/BaseController.cs index f4ea66b..90bc9ff 100644 --- a/ZR.Admin.WebApi/Controllers/BaseController.cs +++ b/ZR.Admin.WebApi/Controllers/BaseController.cs @@ -170,7 +170,7 @@ namespace ZR.Admin.WebApi.Controllers { IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment)); string sFileName = $"{fileName}模板.xlsx"; - string newFileName = Path.Combine(webHostEnvironment.WebRootPath, "importTemplate", sFileName); + string newFileName = Path.Combine(webHostEnvironment.WebRootPath, "ImportTemplate", sFileName); if (!Directory.Exists(newFileName)) { @@ -179,5 +179,19 @@ namespace ZR.Admin.WebApi.Controllers MiniExcel.SaveAs(newFileName, list); return sFileName; } + + /// + /// 下载指定文件模板 + /// + /// 下载文件名 + /// + protected (string, string) DownloadImportTemplate(string fileName) + { + IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment)); + string sFileName = $"{fileName}.xlsx"; + string fullPath = Path.Combine(webHostEnvironment.WebRootPath, "ImportTemplate", sFileName); + + return (sFileName, fullPath); + } } } diff --git a/ZR.Admin.WebApi/Controllers/System/SysUserController.cs b/ZR.Admin.WebApi/Controllers/System/SysUserController.cs index 4da9cc0..7e3d0f7 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysUserController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysUserController.cs @@ -174,21 +174,17 @@ namespace ZR.Admin.WebApi.Controllers.System /// 使用IFromFile必须使用name属性否则获取不到文件 /// [HttpPost("importData")] - [Log(Title = "用户导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = false)] + [Log(Title = "用户导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)] [ActionPermissionFilter(Permission = "system:user:import")] public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile) { - //List users = (List)ExcelHelper.ImportData(formFile.OpenReadStream()); List users = new(); using (var stream = formFile.OpenReadStream()) { users = stream.Query().ToList(); } - string msg = UserService.ImportUsers(users); - - //TODO 业务逻辑,自行插入数据到db - return SUCCESS(users); + return SUCCESS(UserService.ImportUsers(users)); } /// @@ -196,15 +192,12 @@ namespace ZR.Admin.WebApi.Controllers.System /// /// [HttpGet("importTemplate")] - [Log(Title = "用户模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = false, IsSaveResponseData = false)] + [Log(Title = "用户模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)] [AllowAnonymous] public IActionResult ImportTemplateExcel() { - List user = new List(); - MemoryStream stream = new MemoryStream(); - - string sFileName = DownloadImportTemplate(user, stream, "用户列表"); - return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"{sFileName}"); + (string, string) result = DownloadImportTemplate("user"); + return ExportExcel(result.Item2, result.Item1); } /// diff --git a/ZR.Admin.WebApi/wwwroot/ImportTemplate/user.xlsx b/ZR.Admin.WebApi/wwwroot/ImportTemplate/user.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a8a2b77f8efa2d778abfe437fc1a3746052acf71 GIT binary patch literal 13375 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 /// /// - string ImportUsers(List users); + (string, object, object) ImportUsers(List users); SysUser Login(LoginBodyDto user); diff --git a/ZR.Service/System/SysUserService.cs b/ZR.Service/System/SysUserService.cs index a427ee5..8fd9229 100644 --- a/ZR.Service/System/SysUserService.cs +++ b/ZR.Service/System/SysUserService.cs @@ -192,7 +192,7 @@ namespace ZR.Service /// public int DeleteUser(long userid) { - CheckUserAllowed(new SysUser() { UserId = userid}); + CheckUserAllowed(new SysUser() { UserId = userid }); //删除用户与角色关联 UserRoleService.DeleteUserRoleByUserId((int)userid); // 删除用户与岗位关联 @@ -259,8 +259,8 @@ namespace ZR.Service { if (!SysUser.IsAdmin(loginUserId)) { - SysUser user = new SysUser() { UserId = userid}; - + SysUser user = new SysUser() { UserId = userid }; + //TODO 判断用户是否有数据权限 } } @@ -270,7 +270,7 @@ namespace ZR.Service /// /// /// - public string ImportUsers(List users) + public (string, object, object) ImportUsers(List users) { users.ForEach(x => { @@ -278,7 +278,7 @@ namespace ZR.Service x.Status = "0"; x.DelFlag = "0"; x.Password = "E10ADC3949BA59ABBE56E057F20F883E"; - x.Remark = "数据导入"; + x.Remark = x.Remark.IsEmpty() ? "数据导入" : x.Remark; }); var x = Context.Storageable(users) .SplitInsert(it => !it.Any()) @@ -289,7 +289,7 @@ namespace ZR.Service .ToStorage(); var result = x.AsInsertable.ExecuteCommand();//插入可插入部分; - string msg = string.Format(" 插入{0} 更新{1} 错误数据{2} 不计算数据{3} 删除数据{4},总共{5}", + string msg = string.Format(" 插入{0} 更新{1} 错误数据{2} 不计算数据{3} 删除数据{4} 总共{5}", x.InsertList.Count, x.UpdateList.Count, x.ErrorList.Count, @@ -298,14 +298,18 @@ namespace ZR.Service x.TotalList.Count); //输出统计 Console.WriteLine(msg); - + //输出错误信息 foreach (var item in x.ErrorList) { Console.WriteLine("userName为" + item.Item.UserName + " : " + item.StorageMessage); } - - return msg; + foreach (var item in x.IgnoreList) + { + Console.WriteLine("userName为" + item.Item.UserName + " : " + item.StorageMessage); + } + + return (msg, x.ErrorList, x.IgnoreList); } /// @@ -326,7 +330,7 @@ namespace ZR.Service /// public void UpdateLoginInfo(LoginBodyDto user, long userId) { - Update(new SysUser() { LoginIP = user.LoginIP, LoginDate = DateTime.Now, UserId = userId },it => new { it.LoginIP, it.LoginDate }); + Update(new SysUser() { LoginIP = user.LoginIP, LoginDate = DateTime.Now, UserId = userId }, it => new { it.LoginIP, it.LoginDate }); } } }