优化用户导入
This commit is contained in:
parent
5a3e513a6b
commit
7cfa543865
@ -170,7 +170,7 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
{
|
{
|
||||||
IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
|
IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
|
||||||
string sFileName = $"{fileName}模板.xlsx";
|
string sFileName = $"{fileName}模板.xlsx";
|
||||||
string newFileName = Path.Combine(webHostEnvironment.WebRootPath, "importTemplate", sFileName);
|
string newFileName = Path.Combine(webHostEnvironment.WebRootPath, "ImportTemplate", sFileName);
|
||||||
|
|
||||||
if (!Directory.Exists(newFileName))
|
if (!Directory.Exists(newFileName))
|
||||||
{
|
{
|
||||||
@ -179,5 +179,19 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
MiniExcel.SaveAs(newFileName, list);
|
MiniExcel.SaveAs(newFileName, list);
|
||||||
return sFileName;
|
return sFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 下载指定文件模板
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileName">下载文件名</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -174,21 +174,17 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
|
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("importData")]
|
[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")]
|
[ActionPermissionFilter(Permission = "system:user:import")]
|
||||||
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||||
{
|
{
|
||||||
//List<SysUser> users = (List<SysUser>)ExcelHelper<SysUser>.ImportData(formFile.OpenReadStream());
|
|
||||||
List<SysUser> users = new();
|
List<SysUser> users = new();
|
||||||
using (var stream = formFile.OpenReadStream())
|
using (var stream = formFile.OpenReadStream())
|
||||||
{
|
{
|
||||||
users = stream.Query<SysUser>().ToList();
|
users = stream.Query<SysUser>().ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
string msg = UserService.ImportUsers(users);
|
return SUCCESS(UserService.ImportUsers(users));
|
||||||
|
|
||||||
//TODO 业务逻辑,自行插入数据到db
|
|
||||||
return SUCCESS(users);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -196,15 +192,12 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("importTemplate")]
|
[HttpGet("importTemplate")]
|
||||||
[Log(Title = "用户模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
|
[Log(Title = "用户模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public IActionResult ImportTemplateExcel()
|
public IActionResult ImportTemplateExcel()
|
||||||
{
|
{
|
||||||
List<SysUser> user = new List<SysUser>();
|
(string, string) result = DownloadImportTemplate("user");
|
||||||
MemoryStream stream = new MemoryStream();
|
return ExportExcel(result.Item2, result.Item1);
|
||||||
|
|
||||||
string sFileName = DownloadImportTemplate(user, stream, "用户列表");
|
|
||||||
return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"{sFileName}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
BIN
ZR.Admin.WebApi/wwwroot/ImportTemplate/user.xlsx
Normal file
BIN
ZR.Admin.WebApi/wwwroot/ImportTemplate/user.xlsx
Normal file
Binary file not shown.
@ -77,7 +77,7 @@ namespace ZR.Service.System.IService
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="users"></param>
|
/// <param name="users"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
string ImportUsers(List<SysUser> users);
|
(string, object, object) ImportUsers(List<SysUser> users);
|
||||||
|
|
||||||
SysUser Login(LoginBodyDto user);
|
SysUser Login(LoginBodyDto user);
|
||||||
|
|
||||||
|
|||||||
@ -192,7 +192,7 @@ namespace ZR.Service
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public int DeleteUser(long userid)
|
public int DeleteUser(long userid)
|
||||||
{
|
{
|
||||||
CheckUserAllowed(new SysUser() { UserId = userid});
|
CheckUserAllowed(new SysUser() { UserId = userid });
|
||||||
//删除用户与角色关联
|
//删除用户与角色关联
|
||||||
UserRoleService.DeleteUserRoleByUserId((int)userid);
|
UserRoleService.DeleteUserRoleByUserId((int)userid);
|
||||||
// 删除用户与岗位关联
|
// 删除用户与岗位关联
|
||||||
@ -259,8 +259,8 @@ namespace ZR.Service
|
|||||||
{
|
{
|
||||||
if (!SysUser.IsAdmin(loginUserId))
|
if (!SysUser.IsAdmin(loginUserId))
|
||||||
{
|
{
|
||||||
SysUser user = new SysUser() { UserId = userid};
|
SysUser user = new SysUser() { UserId = userid };
|
||||||
|
|
||||||
//TODO 判断用户是否有数据权限
|
//TODO 判断用户是否有数据权限
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -270,7 +270,7 @@ namespace ZR.Service
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="users"></param>
|
/// <param name="users"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string ImportUsers(List<SysUser> users)
|
public (string, object, object) ImportUsers(List<SysUser> users)
|
||||||
{
|
{
|
||||||
users.ForEach(x =>
|
users.ForEach(x =>
|
||||||
{
|
{
|
||||||
@ -278,7 +278,7 @@ namespace ZR.Service
|
|||||||
x.Status = "0";
|
x.Status = "0";
|
||||||
x.DelFlag = "0";
|
x.DelFlag = "0";
|
||||||
x.Password = "E10ADC3949BA59ABBE56E057F20F883E";
|
x.Password = "E10ADC3949BA59ABBE56E057F20F883E";
|
||||||
x.Remark = "数据导入";
|
x.Remark = x.Remark.IsEmpty() ? "数据导入" : x.Remark;
|
||||||
});
|
});
|
||||||
var x = Context.Storageable(users)
|
var x = Context.Storageable(users)
|
||||||
.SplitInsert(it => !it.Any())
|
.SplitInsert(it => !it.Any())
|
||||||
@ -289,7 +289,7 @@ namespace ZR.Service
|
|||||||
.ToStorage();
|
.ToStorage();
|
||||||
var result = x.AsInsertable.ExecuteCommand();//插入可插入部分;
|
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.InsertList.Count,
|
||||||
x.UpdateList.Count,
|
x.UpdateList.Count,
|
||||||
x.ErrorList.Count,
|
x.ErrorList.Count,
|
||||||
@ -298,14 +298,18 @@ namespace ZR.Service
|
|||||||
x.TotalList.Count);
|
x.TotalList.Count);
|
||||||
//输出统计
|
//输出统计
|
||||||
Console.WriteLine(msg);
|
Console.WriteLine(msg);
|
||||||
|
|
||||||
//输出错误信息
|
//输出错误信息
|
||||||
foreach (var item in x.ErrorList)
|
foreach (var item in x.ErrorList)
|
||||||
{
|
{
|
||||||
Console.WriteLine("userName为" + item.Item.UserName + " : " + item.StorageMessage);
|
Console.WriteLine("userName为" + item.Item.UserName + " : " + item.StorageMessage);
|
||||||
}
|
}
|
||||||
|
foreach (var item in x.IgnoreList)
|
||||||
return msg;
|
{
|
||||||
|
Console.WriteLine("userName为" + item.Item.UserName + " : " + item.StorageMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (msg, x.ErrorList, x.IgnoreList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -326,7 +330,7 @@ namespace ZR.Service
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public void UpdateLoginInfo(LoginBodyDto user, long userId)
|
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 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user