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 0000000..a8a2b77 Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/ImportTemplate/user.xlsx differ diff --git a/ZR.Service/System/IService/ISysUserService.cs b/ZR.Service/System/IService/ISysUserService.cs index 1c04ddf..493ac59 100644 --- a/ZR.Service/System/IService/ISysUserService.cs +++ b/ZR.Service/System/IService/ISysUserService.cs @@ -77,7 +77,7 @@ namespace ZR.Service.System.IService /// /// /// - 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 }); } } }