优化种子数据

This commit is contained in:
不做码农 2023-06-11 13:16:22 +08:00
parent df99da04fb
commit 9be0036b4e
2 changed files with 84 additions and 66 deletions

View File

@ -5,7 +5,6 @@ using Infrastructure.Extensions;
using Infrastructure.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using MiniExcelLibs;
using Newtonsoft.Json;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
@ -179,85 +178,30 @@ namespace ZR.Admin.WebApi.Controllers
/// <summary>
/// 初始化种子数据
/// </summary>
/// <param name="clean">是否清空数据</param>
/// <returns></returns>
[HttpGet]
[ApiExplorerSettings(IgnoreApi = true)]
[ActionPermissionFilter(Permission = "common")]
[Log(BusinessType = BusinessType.INSERT, Title = "初始化数据")]
public IActionResult InitSeedData()
public IActionResult InitSeedData(bool clean = false)
{
if (!WebHostEnvironment.IsDevelopment())
{
return ToResponse(ResultCode.FAIL, "导入数据失败");
return ToResponse(ResultCode.CUSTOM_ERROR, "导入数据失败");
}
var path = Path.Combine(WebHostEnvironment.WebRootPath, "data.xlsx");
//var sheetNames = MiniExcel.GetSheetNames(path);
SeedDataService seedDataService = new();
var sysUser = MiniExcel.Query<SysUser>(path, sheetName: "user").ToList();
var result1 = seedDataService.InitUserData(sysUser);
var sysPost = MiniExcel.Query<SysPost>(path, sheetName: "post").ToList();
var result2 = seedDataService.InitPostData(sysPost);
var sysRole = MiniExcel.Query<SysRole>(path, sheetName: "role").ToList();
var result3 = seedDataService.InitRoleData(sysRole);
var sysUserRole = MiniExcel.Query<SysUserRole>(path, sheetName: "user_role").ToList();
var result4 = seedDataService.InitUserRoleData(sysUserRole);
var sysMenu = MiniExcel.Query<SysMenu>(path, sheetName: "menu").ToList();
var result5 = seedDataService.InitMenuData(sysMenu);
var sysConfig = MiniExcel.Query<SysConfig>(path, sheetName: "config").ToList();
var result6 = seedDataService.InitConfigData(sysConfig);
var sysRoleMenu = MiniExcel.Query<SysRoleMenu>(path, sheetName: "role_menu").ToList();
var result7 = seedDataService.InitRoleMenuData(sysRoleMenu);
var sysDict = MiniExcel.Query<SysDictType>(path, sheetName: "dict_type").ToList();
var result8 = seedDataService.InitDictType(sysDict);
var sysDictData = MiniExcel.Query<SysDictData>(path, sheetName: "dict_data").ToList();
var result9 = seedDataService.InitDictData(sysDictData);
var sysDept = MiniExcel.Query<SysDept>(path, sheetName: "dept").ToList();
var result10 = seedDataService.InitDeptData(sysDept);
var sysArticleCategory = MiniExcel.Query<ArticleCategory>(path, sheetName: "article_category").ToList();
var result11 = seedDataService.InitArticleCategoryData(sysArticleCategory);
var sysTask = MiniExcel.Query<SysTasks>(path, sheetName: "task").ToList();
var result12 = seedDataService.InitTaskData(sysTask);
var result = seedDataService.InitSeedData(path, clean);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(result1.Item1);
Console.WriteLine(result2.Item1);
Console.WriteLine(result3.Item1);
Console.WriteLine(result4.Item1);
Console.WriteLine(result5.Item1);
Console.WriteLine(result6.Item1);
Console.WriteLine(result7.Item1);
Console.WriteLine(result8.Item1);
Console.WriteLine(result9.Item1);
Console.WriteLine(result10.Item1);
Console.WriteLine(result11.Item1);
Console.WriteLine(result12.Item1);
foreach (var item in result)
{
Console.WriteLine(item);
}
Console.ForegroundColor = ConsoleColor.White;
return SUCCESS(new
{
result1 = result1.Item1,
result2 = result2.Item1,
result3 = result3.Item1,
result4 = result4.Item1,
result5 = result5.Item1,
result6 = result6.Item1,
result7 = result7.Item1,
result8 = result8.Item1,
result9 = result9.Item1,
result10 = result10.Item1,
result11 = result11.Item1,
result12 = result12.Item1
result
});
}
}

View File

@ -1,11 +1,16 @@
using Infrastructure.Extensions;
using MiniExcelLibs;
using SqlSugar.IOC;
using System.Collections.Generic;
using System.Linq;
using ZR.Common;
using ZR.Model.System;
namespace ZR.Service.System
{
/// <summary>
/// 种子数据处理
/// </summary>
public class SeedDataService
{
/// <summary>
@ -218,5 +223,74 @@ namespace ZR.Service.System
string msg = $"[任务数据] 插入{x.InsertList.Count} 错误数据{x.ErrorList.Count} 总共{x.TotalList.Count}";
return (msg, x.ErrorList, x.IgnoreList);
}
/// <summary>
/// 初始化种子数据
/// </summary>
/// <param name="path"></param>
/// <param name="clean"></param>
/// <returns></returns>
public List<string> InitSeedData(string path, bool clean)
{
List<string> result = new();
var db = DbScoped.SugarScope;
if (clean)
{
db.DbMaintenance.TruncateTable<SysRoleDept>();
db.DbMaintenance.TruncateTable<SysRoleMenu>();
db.DbMaintenance.TruncateTable<SysMenu>();
db.DbMaintenance.TruncateTable<SysRole>();
db.DbMaintenance.TruncateTable<SysUser>();
db.DbMaintenance.TruncateTable<SysDept>();
db.DbMaintenance.TruncateTable<SysPost>();
}
var sysUser = MiniExcel.Query<SysUser>(path, sheetName: "user").ToList();
var result1 = InitUserData(sysUser);
result.Add(result1.Item1);
var sysPost = MiniExcel.Query<SysPost>(path, sheetName: "post").ToList();
var result2 = InitPostData(sysPost);
result.Add(result2.Item1);
var sysRole = MiniExcel.Query<SysRole>(path, sheetName: "role").ToList();
var result3 = InitRoleData(sysRole);
result.Add(result3.Item1);
var sysUserRole = MiniExcel.Query<SysUserRole>(path, sheetName: "user_role").ToList();
var result4 = InitUserRoleData(sysUserRole);
result.Add(result4.Item1);
var sysMenu = MiniExcel.Query<SysMenu>(path, sheetName: "menu").ToList();
var result5 = InitMenuData(sysMenu);
result.Add(result5.Item1);
var sysConfig = MiniExcel.Query<SysConfig>(path, sheetName: "config").ToList();
var result6 = InitConfigData(sysConfig);
result.Add(result6.Item1);
var sysRoleMenu = MiniExcel.Query<SysRoleMenu>(path, sheetName: "role_menu").ToList();
var result7 = InitRoleMenuData(sysRoleMenu);
result.Add(result7.Item1);
var sysDict = MiniExcel.Query<SysDictType>(path, sheetName: "dict_type").ToList();
var result8 = InitDictType(sysDict);
result.Add(result8.Item1);
var sysDictData = MiniExcel.Query<SysDictData>(path, sheetName: "dict_data").ToList();
var result9 = InitDictData(sysDictData);
result.Add(result9.Item1);
var sysDept = MiniExcel.Query<SysDept>(path, sheetName: "dept").ToList();
var result10 = InitDeptData(sysDept);
result.Add(result10.Item1);
var sysArticleCategory = MiniExcel.Query<ArticleCategory>(path, sheetName: "article_category").ToList();
var result11 = InitArticleCategoryData(sysArticleCategory);
result.Add(result11.Item1);
return result;
}
}
}