@ -1,6 +1,4 @@
using Castle.Core.Internal ;
using ClosedXML.Excel ;
using Infrastructure ;
using Infrastructure ;
using Infrastructure.Extensions ;
using Microsoft.AspNetCore.Mvc ;
using OpenAuth.Auth.Interface ;
@ -29,57 +27,7 @@ namespace OpenAuth.App
this . auth = auth ;
}
/// <summary>
/// 创建表
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpPost]
public string CreateTable ( [ FromBody ] CreateTableReq req )
{
string tableName = req . TableName ;
List < TableInfo > tableInfo = req . TableInfos ;
if ( tableName = = null | | tableInfo . Count = = 0 ) {
return "数据不能为空" ;
}
string sql = @"CREATE TABLE ""public""." + tableName + "(" + "id varchar(255) COLLATE \"pg_catalog\".\"default\" NOT NULL," ;
string explanation = "" ;
int type = 0 ;
for ( int i = 0 ; i < tableInfo . Count ; i + + ) {
TableInfo table = tableInfo [ i ] ;
if ( "id" . Equals ( table . Name . ToLower ( ) ) ) {
continue ;
}
sql = sql + table . Name + " " + table . Type ;
if ( ! table . Name . IsNullOrEmpty ( ) ) {
explanation = explanation + "COMMENT ON COLUMN \"public\"." + tableName + "." + table . Name + " Is " + "'" + table . Explanation + "'" + ";" ;
}
if ( "varchar" . Equals ( table . Name . ToLower ( ) ) ) {
sql = sql + "(" + 255 + ")" ;
}
if ( table . Type . Contains ( "geom" ) ) {
type = 1 ;
}
/ * if ( table . IsNull ) {
sql = sql + " " + "NOT NUll" ;
} * /
sql = sql + "," ;
if ( tableInfo . Count - 1 = = i ) {
sql = sql + "CONSTRAINT " + tableName + "_pkey PRIMARY KEY (\"id\"));" ;
}
}
Console . WriteLine ( sql ) ;
int count = client . Ado . ExecuteCommand ( sql ) ;
Console . WriteLine ( count ) ;
string sql1 = "ALTER TABLE \"public\"." + tableName + " OWNER TO \"postgres\"" ;
client . Ado . ExecuteCommand ( sql1 ) ;
addExplain ( explanation ) ;
SysUser user = auth . GetCurrentUser ( ) . User ;
string sql22 = "insert into table_record (\"TableName\",\"Type\",\"ColumnJson\",\"CreateUser\") values('" + tableName + "'," + type + ",'" + String . Join ( ":" , tableInfo . Select (
p = > $"{p.Name},{p.Type},{p.Explanation}" ) ) + "','" + user . Account + "')" ;
client . Ado . ExecuteCommand ( sql22 ) ;
return "创建成功" ;
}
[HttpPost]
public string CreateView ( [ FromBody ] CreateViewReq req ) {
@ -87,103 +35,9 @@ namespace OpenAuth.App
return "创建成功" ;
}
[HttpPost]
public List < TableInfo > UploadExcel ( UploadExcelReq req )
{
using ( var workbook = new XLWorkbook ( req . file . OpenReadStream ( ) ) ) {
string tableName = req . tableName ;
var wooksheet = workbook . Worksheet ( 1 ) ;
IXLRows row = wooksheet . RowsUsed ( ) ;
List < IXLRow > rowCells = row . ToList ( ) ;
IXLRow row1 = rowCells [ 0 ] ;
IXLCells cells = row1 . CellsUsed ( ) ;
string sqltable = @"CREATE TABLE if not exists ""public""." + "table_relation_record " + "(" + "id varchar(255) COLLATE \"pg_catalog\".\"default\" NOT NULL," +
"name varchar(32) COLLATE \"pg_catalog\".\"default\"," +
"relation text COLLATE \"pg_catalog\".\"default\"," +
" CONSTRAINT \"table_relation_record_pkey\" PRIMARY KEY (\"id\"))\r\n;" +
"ALTER TABLE \"public\".\"table_relation_record\" OWNER TO \"postgres\";" ;
addExplain ( sqltable ) ;
string sql = @"CREATE TABLE ""public""." + tableName + "(" + "id varchar(255) COLLATE \"pg_catalog\".\"default\" NOT NULL," ;
string explanation = "" ;
List < TableInfo > listTableInfo = new List < TableInfo > ( ) ;
int k = 0 ;
JsonObject json = new JsonObject ( ) ;
foreach ( IXLCell cell in row1 . CellsUsed ( ) )
{
if ( cell . GetString ( ) . IsNullOrEmpty ( ) ) {
break ; }
json . Add ( cell . GetString ( ) , "cloum" + k ) ;
TableInfo tableInfo = new TableInfo ( ) ;
tableInfo . Name = "cloum" + k ;
tableInfo . Type = "varchar" ;
// tableInfo.Length = 255;
tableInfo . Explanation = cell . GetString ( ) ;
listTableInfo . Add ( tableInfo ) ;
sql = sql + "cloum" + k + " " + "varchar(255)," ;
explanation = explanation + "COMMENT ON COLUMN \"public\"." + tableName + "." + "cloum" + k + " Is " + "'" + cell . GetString ( ) + "'" + ";" ;
k + + ;
}
Dictionary < String , Object > dict = new Dictionary < String , Object > ( ) ;
dict . Add ( "id" , Guid . NewGuid ( ) ) ;
dict . Add ( "name" , tableName ) ;
dict . Add ( "relation" , json . ToJsonString ( ) ) ;
client . Insertable ( dict ) . AS ( "table_relation_record" ) . ExecuteCommand ( ) ;
sql = sql + "CONSTRAINT " + tableName + "_pkey PRIMARY KEY (\"id\"));" ;
string sql1 = "ALTER TABLE \"public\"." + tableName + " OWNER TO \"postgres\"" ;
addExplain ( sql ) ;
addExplain ( sql1 ) ;
addExplain ( explanation ) ;
var count = wooksheet . RowCount ( ) ;
List < Dictionary < String , Object > > listmap = new List < Dictionary < String , Object > > ( ) ;
foreach ( IXLRow rowValue in wooksheet . RowsUsed ( ) ) {
if ( rowValue . RowNumber ( ) = = 1 ) {
continue ;
}
Dictionary < String , Object > map = new Dictionary < String , Object > ( ) ;
map . Add ( "id" , Guid . NewGuid ( ) ) ;
int g = 0 ;
foreach ( IXLCell cell in rowValue . CellsUsed ( ) ) {
map . Add ( "cloum" + g , cell . GetString ( ) ) ;
g + + ;
}
listmap . Add ( map ) ;
}
client . Insertable ( listmap ) . AS ( tableName ) . ExecuteCommand ( ) ;
return listTableInfo ;
}
}
[HttpPost]
public string UpdateTable ( [ FromBody ] CreateTableReq req )
{
List < TableInfo > infos = req . TableInfos ;
string sql = "" ;
foreach ( TableInfo info in infos ) {
if ( ! info . YuanName . IsNullOrEmpty ( ) )
{
sql = sql + @"ALTER TABLE ""public""." + req . TableName + "RENAME COLUMN" + info . YuanName + " TO " + info . Name + ";" ;
}
}
if ( ! sql . IsNullOrEmpty ( ) ) { addExplain ( sql ) ; }
return "创建成功" ;
}
public void addExplain ( String sql ) {
client . Ado . ExecuteCommand ( sql ) ;
}
public bool CheckTableExist ( string tableName )