提交 847f9218 authored 作者: inroi's avatar inroi

微调

上级 32e71503
package com.system.dao;
import com.system.transfer.configure.TableStructureListOutVoRecords;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
@Mapper
public interface DatabaseTableMapper {
/**
* 表单表结构列表
*
* @return 列表
*/
List<TableStructureListOutVoRecords> tableStructureList();
/**
* 表单配置
*
* @param formId 表单标识
* @return 表单配置
*/
TableStructureListOutVoRecords tableStructureOne(String formId);
/**
* 数据库表数据创建
*
* @param dbTableName 数据库表名称
* @param dbFiledList 数据库表字段列表
* @param dataList 数据库表数据列表
*/
void databaseTableDataCreate(@Param("dbTableName") String dbTableName, @Param("dbFiledList") List<String> dbFiledList, @Param("dataList") List<Map<String, Object>> dataList);
/**
* 数据库表数据删除
*
* @param dbTableName 数据库表名称
* @param queueId 唯一标识
*/
void databaseTableDataDelete(@Param("dbTableName") String dbTableName, @Param("queueId") String queueId);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.system.dao.DatabaseTableMapper">
<select id="tableStructureList" resultType="com.system.transfer.configure.TableStructureListOutVoRecords">
SELECT
id, form_id, db_table_name, db_table_comment, form_json
FROM tb_form_table_structure
</select>
<select id="tableStructureOne" parameterType="java.lang.String" resultType="com.system.transfer.configure.TableStructureListOutVoRecords">
SELECT
id, form_id, db_table_name, db_table_comment, form_json
FROM tb_form_table_structure WHERE form_id = #{formId}
</select>
<insert id="databaseTableDataCreate" parameterType="java.lang.Object">
INSERT INTO ${dbTableName} (
<foreach collection="dbFiledList" item="item" separator=",">
${item}
</foreach>
) VALUES
<foreach collection="dataList" item="item" separator=",">
<foreach collection="item.values" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</foreach>
</insert>
<delete id="databaseTableDataDelete" parameterType="java.lang.String">
DELETE FROM ${dbTableName} WHERE queue_id = #{queueId}
</delete>
</mapper>
\ No newline at end of file
...@@ -4,9 +4,12 @@ import com.system.api.CommonApi; ...@@ -4,9 +4,12 @@ import com.system.api.CommonApi;
import com.system.api.CommonHttpApi; import com.system.api.CommonHttpApi;
import com.system.constants.Constants; import com.system.constants.Constants;
import com.system.constants.MallConstants; import com.system.constants.MallConstants;
import com.system.dao.DatabaseTableMapper;
import com.system.transfer.configure.TableStructureListOutVoRecords;
import com.system.transfer.form.MallFieldMappingListOutVoRecords; import com.system.transfer.form.MallFieldMappingListOutVoRecords;
import com.system.utils.FormFieldMappingUtil; import com.system.utils.FormFieldMappingUtil;
import com.system.utils.JsonUtil; import com.system.utils.JsonUtil;
import com.system.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -25,6 +28,9 @@ public class MallCommonSyncApi { ...@@ -25,6 +28,9 @@ public class MallCommonSyncApi {
@Autowired @Autowired
private CommonHttpApi commonHttpApi; private CommonHttpApi commonHttpApi;
@Autowired
private DatabaseTableMapper databaseTableMapper;
public Map<String, Object> synchronization(Map<String, String> config, String queueId, String name, Map<String, Object> where) { public Map<String, Object> synchronization(Map<String, String> config, String queueId, String name, Map<String, Object> where) {
Map<String, Object> result = new HashMap<>(3); Map<String, Object> result = new HashMap<>(3);
...@@ -40,6 +46,7 @@ public class MallCommonSyncApi { ...@@ -40,6 +46,7 @@ public class MallCommonSyncApi {
List<Object> objectList = JsonUtil.toList(JsonUtil.toString(map.get("data")), Object.class); 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()); 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);
result.put("data", CommonApi.encapsulationData(config, dataList, fieldList)); result.put("data", CommonApi.encapsulationData(config, dataList, fieldList));
result.put("success", true); result.put("success", true);
} }
...@@ -54,6 +61,13 @@ public class MallCommonSyncApi { ...@@ -54,6 +61,13 @@ public class MallCommonSyncApi {
return result; return result;
} }
private void databaseTableDataCreate(String sFormId, String queueId, List<Map<String, Object>> dataList, List<MallFieldMappingListOutVoRecords> fieldList) {
TableStructureListOutVoRecords records = databaseTableMapper.tableStructureOne(sFormId);
if (StringUtil.isNotNull(records)) {
}
}
/** /**
* 同步至第三方 * 同步至第三方
*/ */
...@@ -61,5 +75,12 @@ public class MallCommonSyncApi { ...@@ -61,5 +75,12 @@ public class MallCommonSyncApi {
return commonHttpApi.sendThirdParty(data, 1); return commonHttpApi.sendThirdParty(data, 1);
} }
/**
* 删除表数据
*/
public void databaseTableDataDelete(String dbTableName, String queueId) {
databaseTableMapper.databaseTableDataDelete(dbTableName, queueId);
}
} }
...@@ -38,15 +38,15 @@ public class InitConnectParam { ...@@ -38,15 +38,15 @@ public class InitConnectParam {
/** /**
* 定时任务时长/分钟 * 接收地址
*/ */
private Integer duration; public String receiveAddress;
/** /**
* 接收地址 * 适配器地址
*/ */
public String receiveAddress; private String adapterAddress;
/** /**
...@@ -96,14 +96,6 @@ public class InitConnectParam { ...@@ -96,14 +96,6 @@ public class InitConnectParam {
this.password = password; this.password = password;
} }
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
public String getReceiveAddress() { public String getReceiveAddress() {
return receiveAddress; return receiveAddress;
} }
...@@ -112,6 +104,14 @@ public class InitConnectParam { ...@@ -112,6 +104,14 @@ public class InitConnectParam {
this.receiveAddress = receiveAddress; this.receiveAddress = receiveAddress;
} }
public String getAdapterAddress() {
return adapterAddress;
}
public void setAdapterAddress(String adapterAddress) {
this.adapterAddress = adapterAddress;
}
public String getCreateTime() { public String getCreateTime() {
return createTime; return createTime;
} }
......
...@@ -40,7 +40,7 @@ public class MallLoginScheduler { ...@@ -40,7 +40,7 @@ public class MallLoginScheduler {
Map<String, Object> request = new HashMap<>(2); Map<String, Object> request = new HashMap<>(2);
request.put("mobile", initConnectParam.getAccount()); request.put("mobile", initConnectParam.getAccount());
request.put("password", initConnectParam.getPassword()); request.put("password", initConnectParam.getPassword());
String response = HttpUtil.httpPost(initConnectParam.getMallAddress() + "auth/login_by_mobile", JsonUtil.toString(request)).getBody(); String response = HttpUtil.httpPost(initConnectParam.getMallAddress() + "wx/auth/login_by_mobile", JsonUtil.toString(request)).getBody();
Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class); Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class);
if (!CollectionUtils.isEmpty(map)) { if (!CollectionUtils.isEmpty(map)) {
......
...@@ -3,10 +3,11 @@ package com.system.serivce.impl; ...@@ -3,10 +3,11 @@ package com.system.serivce.impl;
import com.system.constants.Constants; import com.system.constants.Constants;
import com.system.constants.MallCommonSyncConstants; import com.system.constants.MallCommonSyncConstants;
import com.system.constants.MallConstants; import com.system.constants.MallConstants;
import com.system.constants.SynchronizationOperationConstants; import com.system.dao.DatabaseTableMapper;
import com.system.dao.SynchronizationRecordsMapper; import com.system.dao.SynchronizationRecordsMapper;
import com.system.mall.MallCommonSyncApi; import com.system.mall.MallCommonSyncApi;
import com.system.serivce.IMallSyncService; import com.system.serivce.IMallSyncService;
import com.system.transfer.configure.TableStructureListOutVoRecords;
import com.system.transfer.mall.SynchronizationRecordsUpdateInVo; import com.system.transfer.mall.SynchronizationRecordsUpdateInVo;
import com.system.utils.JsonUtil; import com.system.utils.JsonUtil;
import com.system.utils.ProductLogUtil; import com.system.utils.ProductLogUtil;
...@@ -30,10 +31,10 @@ public class IMallSyncServiceImpl implements IMallSyncService { ...@@ -30,10 +31,10 @@ public class IMallSyncServiceImpl implements IMallSyncService {
private MallCommonSyncConstants mallCommonSyncConstants; private MallCommonSyncConstants mallCommonSyncConstants;
@Autowired @Autowired
private SynchronizationOperationConstants synchronizationOperationConstants; private MallCommonSyncApi mallCommonSyncApi;
@Autowired @Autowired
private MallCommonSyncApi mallCommonSyncApi; private DatabaseTableMapper databaseTableMapper;
@Autowired @Autowired
private SynchronizationRecordsMapper synchronizationRecordsMapper; private SynchronizationRecordsMapper synchronizationRecordsMapper;
...@@ -84,11 +85,21 @@ public class IMallSyncServiceImpl implements IMallSyncService { ...@@ -84,11 +85,21 @@ public class IMallSyncServiceImpl implements IMallSyncService {
//记录第三方日志 //记录第三方日志
productLogUtil.productHttpLogCreate(Integer.valueOf(config.get("productId")), queueId, id, config.get("name"), config.get("docType"), config.get("direction"), JsonUtil.toString(request), response); productLogUtil.productHttpLogCreate(Integer.valueOf(config.get("productId")), queueId, id, config.get("name"), config.get("docType"), config.get("direction"), JsonUtil.toString(request), response);
TableStructureListOutVoRecords records = databaseTableMapper.tableStructureOne(config.get("sFormId"));
Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class); Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class);
if (!CollectionUtils.isEmpty(map)) { if (!CollectionUtils.isEmpty(map)) {
if (!MallConstants.SUCCESS_CODE.equals(map.get(MallConstants.CODE_NAME))) {
if (StringUtil.isNotNull(records)) {
mallCommonSyncApi.databaseTableDataDelete(records.getDbTableName(), queueId);
}
}
if (MallConstants.OVERTIME_CODE.equals(map.get(MallConstants.CODE_NAME))) { if (MallConstants.OVERTIME_CODE.equals(map.get(MallConstants.CODE_NAME))) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} }
}else {
if (StringUtil.isNotNull(records)) {
mallCommonSyncApi.databaseTableDataDelete(records.getDbTableName(), queueId);
}
} }
} }
......
...@@ -44,7 +44,7 @@ public class MallCommonSyncConfigServiceImpl implements IMallCommonSyncConfigSer ...@@ -44,7 +44,7 @@ public class MallCommonSyncConfigServiceImpl implements IMallCommonSyncConfigSer
Map<String, Object> request = new HashMap<>(2); Map<String, Object> request = new HashMap<>(2);
request.put("mobile", inVo.getAccount()); request.put("mobile", inVo.getAccount());
request.put("password", inVo.getPassword()); request.put("password", inVo.getPassword());
String response = HttpUtil.httpPost(inVo.getMallAddress() + "auth/login_by_mobile", JsonUtil.toString(request)).getBody(); String response = HttpUtil.httpPost(inVo.getMallAddress() + "wx/auth/login_by_mobile", JsonUtil.toString(request)).getBody();
Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class); Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class);
if (!CollectionUtils.isEmpty(map)) { if (!CollectionUtils.isEmpty(map)) {
...@@ -68,7 +68,7 @@ public class MallCommonSyncConfigServiceImpl implements IMallCommonSyncConfigSer ...@@ -68,7 +68,7 @@ public class MallCommonSyncConfigServiceImpl implements IMallCommonSyncConfigSer
Map<String, Object> request = new HashMap<>(2); Map<String, Object> request = new HashMap<>(2);
request.put("mobile", inVo.getAccount()); request.put("mobile", inVo.getAccount());
request.put("password", inVo.getPassword()); request.put("password", inVo.getPassword());
String response = HttpUtil.httpPost(inVo.getMallAddress() + "auth/login_by_mobile", JsonUtil.toString(request)).getBody(); String response = HttpUtil.httpPost(inVo.getMallAddress() + "wx/auth/login_by_mobile", JsonUtil.toString(request)).getBody();
Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class); Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class);
if (CollectionUtils.isEmpty(map) || HttpStatus.OK.value() != Integer.parseInt(String.valueOf(map.get(Constants.CODE_NAME)))) { if (CollectionUtils.isEmpty(map) || HttpStatus.OK.value() != Integer.parseInt(String.valueOf(map.get(Constants.CODE_NAME)))) {
......
package com.system.transfer.configure;
import lombok.Data;
/**
* @author Inori
*/
@Data
public class TableStructureCreateInVoRecords {
/**
* 标识
*/
private String key;
/**
* 数据库表名称
*/
private String dbTableName;
/**
* 数据库表字段名称
*/
private String dbFieldName;
/**
* 旧数据库表字段名称
*/
private String oldDbFileName;
/**
* 数据库表字段类型
*/
private String dbFieldType;
/**
* 数据库表字段默认值
*/
private String dbFieldDefault;
/**
* 数据库表字段注释
*/
private String dbFieldComment;
}
package com.system.transfer.configure;
import lombok.Data;
/**
* 表单记录
*
* @author Inori
*/
@Data
public class TableStructureListOutVoRecords {
/**
* ID
*/
private Integer id;
/**
* 表单标识
*/
private String formId;
/**
* 数据库表名称
*/
private String dbTableName;
/**
* 数据库表注释
*/
private String dbTableComment;
/**
* 前端表单Json
*/
private String formJson;
}
\ No newline at end of file
...@@ -24,12 +24,12 @@ public class HttpUtil { ...@@ -24,12 +24,12 @@ public class HttpUtil {
/** /**
* 连接超时时间 * 连接超时时间
*/ */
private static final int CONN_TIMEOUT = 10000; private static final int CONN_TIMEOUT = 20000;
/** /**
* 请求超时时间 * 请求超时时间
*/ */
private static final int READ_TIMEOUT = 10000; private static final int READ_TIMEOUT = 20000;
/** /**
* 请求工具 * 请求工具
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论