|
@@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -109,4 +110,50 @@ public class TableInfoServiceImpl implements ITableInfoService {
|
|
|
public int dmTableExist(String dataBaseName, String tableName) {
|
|
|
return tableInfoMapper.dmTableExist(dataBaseName,tableName);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void createDmDataBase(Map<String, Object> map) {
|
|
|
+ String dataBaseName = (String) map.get("dataBaseName");
|
|
|
+ String tableName = (String) map.get("tableName");
|
|
|
+ List<TableInfo> filedList = JSON.parseArray(JSON.toJSONString(map.get("field")), TableInfo.class);
|
|
|
+ List<String> descriptionList = new ArrayList<>();
|
|
|
+ List<String> list= filedList.stream().map(filed->{
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ stringBuilder.append(filed.getFieldName()+" ")
|
|
|
+ .append(filed.getFieldType()+" ");
|
|
|
+ if(filed.getIsPrimary()){
|
|
|
+ if(filed.getIsAuto()){
|
|
|
+ stringBuilder.append("IDENTITY(1,1) ");
|
|
|
+ }
|
|
|
+ stringBuilder.append("PRIMARY KEY ");
|
|
|
+ }
|
|
|
+ if(filed.getIsNull()){
|
|
|
+ stringBuilder.append("NOT NULL ");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.hasLength(filed.getFieldDescription())){
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ builder.append("COMMENT ON COLUMN \"")
|
|
|
+ .append(dataBaseName)
|
|
|
+ .append("\".\"")
|
|
|
+ .append(tableName)
|
|
|
+ .append("\".\"")
|
|
|
+ .append(filed.getFieldName()+"\" IS ")
|
|
|
+ .append("'"+filed.getFieldDescription()+"'");
|
|
|
+ descriptionList.add(builder.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ return stringBuilder.toString();
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ if(tableInfoMapper.dmDataBaseExist(dataBaseName)>0){
|
|
|
+ tableInfoMapper.useDmDataBase(dataBaseName);
|
|
|
+ tableInfoMapper.createDmTable(tableName,list);
|
|
|
+ descriptionList.stream().forEach(f->tableInfoMapper.addTableDescription(f));
|
|
|
+ }else {
|
|
|
+ tableInfoMapper.createDmDataBase(dataBaseName);
|
|
|
+ tableInfoMapper.useDmDataBase(dataBaseName);
|
|
|
+ tableInfoMapper.createDmTable(tableName,list);
|
|
|
+ descriptionList.stream().forEach(f->tableInfoMapper.addTableDescription(f));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|