|
|
|
package com.ruoyi.generator.controller;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
...
|
...
|
@@ -17,12 +18,18 @@ import org.springframework.web.bind.annotation.PutMapping; |
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import com.alibaba.druid.DbType;
|
|
|
|
import com.alibaba.druid.sql.SQLUtils;
|
|
|
|
import com.alibaba.druid.sql.ast.SQLStatement;
|
|
|
|
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement;
|
|
|
|
import com.ruoyi.common.annotation.Log;
|
|
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
|
import com.ruoyi.common.core.text.Convert;
|
|
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
|
import com.ruoyi.common.utils.sql.SqlUtil;
|
|
|
|
import com.ruoyi.generator.domain.GenTable;
|
|
|
|
import com.ruoyi.generator.domain.GenTableColumn;
|
|
|
|
import com.ruoyi.generator.service.IGenTableColumnService;
|
|
...
|
...
|
@@ -109,11 +116,48 @@ public class GenController extends BaseController |
|
|
|
String[] tableNames = Convert.toStrArray(tables);
|
|
|
|
// 查询表信息
|
|
|
|
List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames);
|
|
|
|
genTableService.importGenTable(tableList);
|
|
|
|
genTableService.importGenTable(tableList, SecurityUtils.getUsername());
|
|
|
|
return success();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 创建表结构(保存)
|
|
|
|
*/
|
|
|
|
@PreAuthorize("@ss.hasRole('admin')")
|
|
|
|
@Log(title = "创建表", businessType = BusinessType.OTHER)
|
|
|
|
@PostMapping("/createTable")
|
|
|
|
public AjaxResult createTableSave(String sql)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
SqlUtil.filterKeyword(sql);
|
|
|
|
List<SQLStatement> sqlStatements = SQLUtils.parseStatements(sql, DbType.mysql);
|
|
|
|
List<String> tableNames = new ArrayList<>();
|
|
|
|
for (SQLStatement sqlStatement : sqlStatements)
|
|
|
|
{
|
|
|
|
if (sqlStatement instanceof MySqlCreateTableStatement)
|
|
|
|
{
|
|
|
|
MySqlCreateTableStatement createTableStatement = (MySqlCreateTableStatement) sqlStatement;
|
|
|
|
if (genTableService.createTable(createTableStatement.toString()))
|
|
|
|
{
|
|
|
|
String tableName = createTableStatement.getTableName().replaceAll("`", "");
|
|
|
|
tableNames.add(tableName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames.toArray(new String[tableNames.size()]));
|
|
|
|
String operName = SecurityUtils.getUsername();
|
|
|
|
genTableService.importGenTable(tableList, operName);
|
|
|
|
return AjaxResult.success();
|
|
|
|
}
|
|
|
|
catch (Exception e)
|
|
|
|
{
|
|
|
|
logger.error(e.getMessage(), e);
|
|
|
|
return AjaxResult.error("创建表结构异常");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 修改保存代码生成业务
|
|
|
|
*/
|
|
|
|
@PreAuthorize("@ss.hasPermi('tool:gen:edit')")
|
...
|
...
|
|