|
@@ -1,9 +1,12 @@
|
|
|
package com.customer.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.customer.config.DynamicDataSource;
|
|
|
+import com.customer.config.GenConfig;
|
|
|
import com.customer.mapper.TableInfoMapper;
|
|
|
import com.customer.pojo.TableInfo;
|
|
|
import com.customer.service.ITableInfoService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -16,29 +19,68 @@ import java.util.stream.Collectors;
|
|
|
public class TableInfoServiceImpl implements ITableInfoService {
|
|
|
|
|
|
@Resource
|
|
|
- private TableInfoMapper testMapper;
|
|
|
+ private TableInfoMapper tableInfoMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DynamicDataSource dynamicDataSource;
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void createDataBase(Map<String,Object> map) {
|
|
|
+ public void createMysqlDataBase(Map<String, Object> map) {
|
|
|
String dataBaseName = (String) map.get("dataBaseName");
|
|
|
- testMapper.createDataBase(dataBaseName);
|
|
|
- testMapper.useDataBase(dataBaseName);
|
|
|
String tableName = (String) map.get("tableName");
|
|
|
List<TableInfo> filedList = JSON.parseArray(JSON.toJSONString(map.get("field")), TableInfo.class);
|
|
|
List<String> list= filedList.stream().map(filed->{
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
stringBuilder.append(filed.getFieldName()+" ")
|
|
|
- .append(filed.getFieldType()+"(10) ");
|
|
|
+ .append(filed.getFieldType()+" ");
|
|
|
if(filed.getIsNull()){
|
|
|
stringBuilder.append("NOT NULL ");
|
|
|
}
|
|
|
if(filed.getIsPrimary()){
|
|
|
stringBuilder.append("PRIMARY KEY ");
|
|
|
+ if(filed.getIsAuto()){
|
|
|
+ stringBuilder.append("AUTO_INCREMENT ");
|
|
|
+ }
|
|
|
}
|
|
|
stringBuilder.append("COMMENT '"+filed.getFieldDescription()+"'");
|
|
|
return stringBuilder.toString();
|
|
|
}).collect(Collectors.toList());
|
|
|
- testMapper.createTable(tableName,list);
|
|
|
+ tableInfoMapper.createMysqlDataBase(dataBaseName,tableName,list);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void createSqlServerDataBase(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> list= filedList.stream().map(filed->{
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ stringBuilder.append(filed.getFieldName()+" ")
|
|
|
+ .append(filed.getFieldType()+" ");
|
|
|
+ if(filed.getIsNull()){
|
|
|
+ stringBuilder.append("NOT NULL ");
|
|
|
+ }
|
|
|
+ if(filed.getIsPrimary()){
|
|
|
+ stringBuilder.append("PRIMARY KEY ");
|
|
|
+ if(filed.getIsAuto()){
|
|
|
+ stringBuilder.append("IDENTITY(1,1) ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return stringBuilder.toString();
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if(tableInfoMapper.existOrNot(dataBaseName)>0){
|
|
|
+ tableInfoMapper.useDataBase(dataBaseName);
|
|
|
+ tableInfoMapper.createSqlServerTable(tableName,list);
|
|
|
+ }else {
|
|
|
+ tableInfoMapper.createSqlServerDataBase(dataBaseName);
|
|
|
+ tableInfoMapper.useDataBase(dataBaseName);
|
|
|
+ tableInfoMapper.createSqlServerTable(tableName,list);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|