v3.4.6
This commit is contained in:
@@ -1,11 +1,7 @@
|
||||
using System.ArrayExtensions;
|
||||
using System.Collections;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Collections;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using JNPF.Common.Configuration;
|
||||
using JNPF.Common.Contracts;
|
||||
using JNPF.Common.Core.Manager;
|
||||
using JNPF.Common.Core.Manager.Files;
|
||||
using JNPF.Common.Dtos.DataBase;
|
||||
@@ -26,8 +22,6 @@ using Mapster;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using Org.BouncyCastle.Asn1.Cms;
|
||||
using SqlSugar;
|
||||
|
||||
namespace JNPF.Systems;
|
||||
@@ -101,30 +95,41 @@ public class DataBaseService : IDynamicApiController, ITransient
|
||||
/// <param name="input">过滤条件.</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{id}/Tables")]
|
||||
public async Task<dynamic> GetList(string id, [FromQuery] KeywordInput input)
|
||||
public async Task<dynamic> GetList(string id, [FromQuery] PageInputBase input)
|
||||
{
|
||||
var link = await _dbLinkService.GetInfo(id);
|
||||
var tenantLink = link ?? _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName);
|
||||
var tables = _dataBaseManager.GetDBTableList(tenantLink);
|
||||
//tables = tables.Where((x, i) => tables.FindIndex(z => z.Name == x.Name) == i).ToList();
|
||||
//var output = tables.Adapt<List<DatabaseTableListOutput>>();
|
||||
if (!string.IsNullOrEmpty(input.keyword))
|
||||
try
|
||||
{
|
||||
var keyword = input.keyword.ToLower();
|
||||
tables = tables.FindAll(d => d.table.ToLower().Contains(keyword) || (d.tableName.IsNotEmptyOrNull() && d.tableName.ToLower().Contains(keyword)));
|
||||
var link = await _dbLinkService.GetInfo(id);
|
||||
var tenantLink = link ?? _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName);
|
||||
var tables = _dataBaseManager.GetTableInfos(tenantLink);
|
||||
tables = tables.Where((x, i) => tables.FindIndex(z => z.Name == x.Name) == i).ToList();//去重
|
||||
var output = tables.Adapt<List<DatabaseTableListOutput>>();
|
||||
if (!string.IsNullOrEmpty(input.keyword))
|
||||
output = output.FindAll(d => d.table.ToLower().Contains(input.keyword.ToLower()) || (d.tableName.IsNotEmptyOrNull() && d.tableName.ToLower().Contains(input.keyword.ToLower())));
|
||||
return PageResult<DatabaseTableListOutput>.SqlSugarPageResult(new SqlSugarPagedList<DatabaseTableListOutput>()
|
||||
{
|
||||
list = output.OrderBy(x => x.table).Skip((input.currentPage - 1) * input.pageSize).Take(input.pageSize).OrderBy(x => x.table).ToList(),
|
||||
pagination = new Pagination()
|
||||
{
|
||||
CurrentPage = input.currentPage,
|
||||
PageSize = input.pageSize,
|
||||
Total = output.Count
|
||||
}
|
||||
});
|
||||
}
|
||||
if (tenantLink.DbType.ToLower().Equals("dm"))
|
||||
catch (Exception ex)
|
||||
{
|
||||
GetTableCount(tables, tenantLink);
|
||||
return PageResult<DatabaseTableListOutput>.SqlSugarPageResult(new SqlSugarPagedList<DatabaseTableListOutput>()
|
||||
{
|
||||
list = new List<DatabaseTableListOutput>(),
|
||||
pagination = new Pagination()
|
||||
{
|
||||
CurrentPage = input.currentPage,
|
||||
PageSize = input.pageSize,
|
||||
Total = 0
|
||||
}
|
||||
});
|
||||
}
|
||||
return new { list = tables.OrderBy(x => x.table).ToList() };
|
||||
//try
|
||||
//{
|
||||
//}
|
||||
//catch (Exception ex)
|
||||
//{
|
||||
// return new { list = new List<DatabaseTableListOutput>() };
|
||||
//}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -186,8 +191,7 @@ public class DataBaseService : IDynamicApiController, ITransient
|
||||
if (string.IsNullOrEmpty(tableName)) return new PageResult();
|
||||
var tenantLink = link ?? _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName);
|
||||
var output = _dataBaseManager.GetDataBaseTableInfo(tenantLink, tableName);
|
||||
var data = _dataBaseManager.GetData(tenantLink, tableName);
|
||||
output.hasTableData = data.Rows.Count > 0;
|
||||
output.hasTableData = _dataBaseManager.IsAnyData(tenantLink, tableName);
|
||||
return output;
|
||||
}
|
||||
|
||||
@@ -262,6 +266,8 @@ public class DataBaseService : IDynamicApiController, ITransient
|
||||
var tenantLink = link ?? _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName);
|
||||
if (_dataBaseManager.IsAnyTable(tenantLink, input.tableInfo.newTable))
|
||||
throw Oops.Oh(ErrorCode.D1503);
|
||||
if (input.tableInfo.newTable.Length >= 30) throw Oops.Oh(ErrorCode.D1514);
|
||||
if (input.tableFieldList.Any(x => x.field.Length >= 30)) throw Oops.Oh(ErrorCode.D1515);
|
||||
var tableInfo = input.tableInfo.Adapt<DbTableModel>();
|
||||
tableInfo.table = input.tableInfo.newTable;
|
||||
var tableFieldList = input.tableFieldList.Adapt<List<DbTableFieldModel>>();
|
||||
@@ -280,10 +286,12 @@ public class DataBaseService : IDynamicApiController, ITransient
|
||||
public async Task Update(string linkId, [FromBody] DatabaseTableUpInput input)
|
||||
{
|
||||
var link = await _dbLinkService.GetInfo(linkId);
|
||||
if (input.tableInfo.newTable.Length >= 30) throw Oops.Oh(ErrorCode.D1514);
|
||||
if (input.tableFieldList.Any(x => x.field.Length >= 30)) throw Oops.Oh(ErrorCode.D1515);
|
||||
var tenantLink = link ?? _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName);
|
||||
var oldFieldList = _dataBaseManager.GetFieldList(tenantLink, input.tableInfo.table).Adapt<List<TableFieldOutput>>();
|
||||
oldFieldList = _dataBaseManager.ViewDataTypeConversion(oldFieldList, _dataBaseManager.ToDbType(tenantLink.DbType));
|
||||
var oldTableInfo = _dataBaseManager.GetDBTableList(tenantLink).Find(m => m.table == input.tableInfo.table).Adapt<DbTableModel>();
|
||||
var oldTableInfo = _dataBaseManager.GetTableInfos(tenantLink).Find(m => m.Name == input.tableInfo.table).Adapt<DbTableModel>();
|
||||
var data = _dataBaseManager.GetData(tenantLink, input.tableInfo.table);
|
||||
if (data.Rows.Count > 0)
|
||||
throw Oops.Oh(ErrorCode.D1508);
|
||||
@@ -313,6 +321,7 @@ public class DataBaseService : IDynamicApiController, ITransient
|
||||
{
|
||||
try
|
||||
{
|
||||
if (input.tableFieldList.Any(x => x.field.Length >= 30)) throw Oops.Oh(ErrorCode.D1515);
|
||||
var link = await _dbLinkService.GetInfo(linkId);
|
||||
var tenantLink = link ?? _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName);
|
||||
_dataBaseManager.AddTableColumn(tenantLink, input.tableInfo.table, input.tableFieldList.Adapt<List<DbTableFieldModel>>());
|
||||
@@ -631,7 +640,7 @@ public class DataBaseService : IDynamicApiController, ITransient
|
||||
{"tool_", "Tnb.EquipMgr.Entities" },
|
||||
{"qc_", "Tnb.QcMgr.Entities" },
|
||||
};
|
||||
var allTables = sugar.DbMaintenance.GetTableInfoList().WhereIF(!string.IsNullOrEmpty(tbName), t=>t.Name == tbName);
|
||||
var allTables = sugar.DbMaintenance.GetTableInfoList().WhereIF(!string.IsNullOrEmpty(tbName), t => t.Name == tbName);
|
||||
foreach (var tbl in allTables)
|
||||
{
|
||||
var prefix = tbl.Name.Split('_')[0] + "_";
|
||||
|
||||
Reference in New Issue
Block a user