|
@@ -2,8 +2,12 @@ package com.xzl.web.service.impl;
|
|
|
|
|
|
|
|
|
import com.xzl.web.mapper.DataGovernanceMapper;
|
|
|
+import com.xzl.web.model.dataGovernance.dto.CreateTableDTO;
|
|
|
import com.xzl.web.model.dataGovernance.entity.DatabaseInfo;
|
|
|
+import com.xzl.web.model.dataGovernance.entity.TableColumnParam;
|
|
|
+import com.xzl.web.model.dataGovernance.entity.TableInfo;
|
|
|
import com.xzl.web.service.DataGovernanceService;
|
|
|
+import org.mybatis.spring.SqlSessionTemplate;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -24,22 +28,75 @@ public class DataGovernanceServiceImpl implements DataGovernanceService {
|
|
|
return dataGovernanceMapper.getDatabaseList();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<TableInfo> getTableListByDatabaseName(String databaseName) {
|
|
|
+ Map<String,String> param=new HashMap<>();
|
|
|
+ param.put("databaseName",databaseName);
|
|
|
+ return dataGovernanceMapper.getTableListByDatabaseName(param);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Map<String, String> createDatabase(String databaseName) {
|
|
|
Map<String,String> result = new HashMap<>();
|
|
|
- if(databaseName.isEmpty()){
|
|
|
+ if(verifySQLName(databaseName)){
|
|
|
result.put("message","数据库名称不符合规则");
|
|
|
result.put("type","error");
|
|
|
return result;
|
|
|
}
|
|
|
- if(!databaseName.matches("^[a-zA-Z_][a-zA-Z0-9_]{0,63}$")){
|
|
|
- result.put("message","数据库名称不符合规则");
|
|
|
+
|
|
|
+ try {
|
|
|
+ dataGovernanceMapper.createDatabase(databaseName);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ result.put("message","创建失败!");
|
|
|
result.put("type","error");
|
|
|
return result;
|
|
|
}
|
|
|
+ result.put("message","创建成功!");
|
|
|
+ result.put("type","success");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, String> createTable(CreateTableDTO createTableDTO) {
|
|
|
+ Map<String,String> result = new HashMap<>();
|
|
|
+ String tableName = createTableDTO.getTableName();
|
|
|
+ if(verifySQLName(tableName)){
|
|
|
+ result.put("message","数据表名称不符合规则");
|
|
|
+ result.put("type","error");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ List<TableColumnParam> columns = createTableDTO.getColumns();
|
|
|
+ for (TableColumnParam column : columns) {
|
|
|
+ if(verifySQLName(column.getName())){
|
|
|
+ result.put("message","字段名称不符合规则");
|
|
|
+ result.put("type","error");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ if(!column.getType().equals("text") && column.getLength().isEmpty()){
|
|
|
+ result.put("message","类型为varchar或integer时长度不能为空!");
|
|
|
+ result.put("type","error");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ if(column.getType().equals("varchar") && Integer.parseInt(column.getLength())>255){
|
|
|
+ column.setLength("255");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String,String> param=new HashMap<>();
|
|
|
+ param.put("databaseName",createTableDTO.getDatabaseName());
|
|
|
+ param.put("tableName",createTableDTO.getTableName());
|
|
|
+ List<TableInfo> list = dataGovernanceMapper.getTableListByDatabaseName(param);
|
|
|
+ if(list.size() >0){
|
|
|
+ result.put("message","数据表名称已存在!请更换名称!");
|
|
|
+ result.put("type","error");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
try {
|
|
|
- dataGovernanceMapper.createDatabase(databaseName);
|
|
|
+ dataGovernanceMapper.createTable(createTableDTO);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
result.put("message","创建失败!");
|
|
@@ -50,4 +107,9 @@ public class DataGovernanceServiceImpl implements DataGovernanceService {
|
|
|
result.put("type","success");
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private Boolean verifySQLName(String text){
|
|
|
+ return text.isEmpty() || !text.matches("^[a-zA-Z_][a-zA-Z0-9_]{0,63}$");
|
|
|
+ }
|
|
|
}
|