提交 320a9559 authored 作者: inroi's avatar inroi

微调

上级 847f9218
......@@ -5,18 +5,18 @@ import com.system.api.CommonHttpApi;
import com.system.constants.Constants;
import com.system.constants.MallConstants;
import com.system.dao.DatabaseTableMapper;
import com.system.transfer.configure.TableStructureCreateInVoRecords;
import com.system.transfer.configure.TableStructureListOutVoRecords;
import com.system.transfer.form.MallFieldMappingListOutVoRecords;
import com.system.utils.FormFieldMappingUtil;
import com.system.utils.JsonUtil;
import com.system.utils.StringUtil;
import com.system.utils.TableStructureUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -46,7 +46,7 @@ public class MallCommonSyncApi {
List<Object> objectList = JsonUtil.toList(JsonUtil.toString(map.get("data")), Object.class);
List<Map<String, Object>> dataList = objectList.stream().map(m -> JsonUtil.toMap(JsonUtil.toString(m), String.class, Object.class)).collect(Collectors.toList());
this.databaseTableDataCreate(config.get("sFormId"), queueId, dataList, fieldList);
this.databaseTableDataCreate(config.get("sFormId"), queueId, dataList);
result.put("data", CommonApi.encapsulationData(config, dataList, fieldList));
result.put("success", true);
}
......@@ -61,10 +61,28 @@ public class MallCommonSyncApi {
return result;
}
private void databaseTableDataCreate(String sFormId, String queueId, List<Map<String, Object>> dataList, List<MallFieldMappingListOutVoRecords> fieldList) {
private void databaseTableDataCreate(String sFormId, String queueId, List<Map<String, Object>> dataList) {
TableStructureListOutVoRecords records = databaseTableMapper.tableStructureOne(sFormId);
if (StringUtil.isNotNull(records)) {
List<TableStructureCreateInVoRecords> recordsList = TableStructureUtil.getFieldList(records.getFormJson());
List<String> dbFieldList = recordsList.stream().map(TableStructureCreateInVoRecords::getDbFieldName).collect(Collectors.toList());
List<Map<String, Object>> tempList = new ArrayList<>();
for (Map<String, Object> data : dataList) {
Map<String, Object> map = new LinkedHashMap<>();
for (String fieldName : dbFieldList) {
map.put(fieldName, data.get(fieldName));
}
tempList.add(map);
}
if (!CollectionUtils.isEmpty(tempList)) {
try {
databaseTableMapper.databaseTableDataCreate(records.getDbTableName(), dbFieldList, tempList);
} catch (Exception e) {
System.out.println("数据库表: " + sFormId.toLowerCase() + " 唯一标识: " + queueId + " 的数据创建失败");
}
}
}
}
......
package com.system.utils;
import com.system.transfer.configure.TableStructureCreateInVoRecords;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
public class TableStructureUtil {
public static List<TableStructureCreateInVoRecords> getFieldList(String json) {
List<TableStructureCreateInVoRecords> recordsList = new ArrayList<>();
Map<String, Object> map = JsonUtil.toMap(json, String.class, Object.class);
String listJson = JsonUtil.toString(map.get("list"));
List<Object> objectList = JsonUtil.toList(listJson, Object.class);
for (Object object : objectList) {
TableStructureCreateInVoRecords records = new TableStructureCreateInVoRecords();
Map<String, Object> temp = JsonUtil.toMap(JsonUtil.toString(object), String.class, Object.class);
records.setKey((String) temp.get("key"));
records.setDbFieldName((String) temp.get("dbFieldName"));
records.setDbFieldDefault("NULL");
records.setDbFieldComment("'" + temp.get("dbFieldComment") + "'");
recordsList.add(records);
}
return recordsList;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论