Forráskód Böngészése

准生产环境的交付数据,同步至客户生产环境 优化

lvxianyun 3 éve
szülő
commit
a15ef1fd46

+ 11 - 3
src/main/java/com/persagy/proxy/migration/controller/DataMigrationController.java

@@ -131,9 +131,19 @@ public class DataMigrationController {
             }
         } catch (Exception e) {
             e.printStackTrace();
+            return AdmResponse.failure(MigrationConstant.ERROR +":"+ e.getMessage());
         }
 
         dataMigrationHandler.handleAndSaveLog(context, migrationInfo);
+
+        AdmQueryCriteria admQueryCriteria = new AdmQueryCriteria();
+        admQueryCriteria.addFilters("targetId = 'error'");
+        admQueryCriteria.addFilters("projectId = '" + context.getProjectId() + "'");
+        admQueryCriteria.setOnlyCount(true);
+        AdmResponse response = queryMigrateForLog(admQueryCriteria);
+        if(response.getMessage().equals(DmpResult.SUCCESS) && response.getCount() > 5){
+            return AdmResponse.failure("出现错误次数:"+ response.getCount()+"次,请使用导出检查数据是否迁移成功");
+        }
         return AdmResponse.success();
     }
 
@@ -161,8 +171,6 @@ public class DataMigrationController {
     public AdmResponse queryMigrateForLog(@RequestBody AdmQueryCriteria request) {
         QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(request);
         InstanceUrlParam context = AdmContextUtil.toDmpContext();
-        //TODO 去掉数据
-        //context.setGroupCode("JDCS");
         CommonResult<List<SyncData>> result = DigitalMigrateLogFacade.query(context.getGroupCode(),context.getProjectId(),context.getAppId(), context.getUserId(),queryCriteria);
         if(result.getResult().equals(DmpResult.SUCCESS)){
             if(CollUtil.isEmpty(result.getData())){
@@ -227,7 +235,7 @@ public class DataMigrationController {
             return false;
         }
         CommonResult<List> commonResult = JSONUtil.toBean(response, CommonResult.class);
-        if(commonResult.getResult().equals(DmpResult.SUCCESS) && commonResult.getCount() == 1 ){
+        if(commonResult.getResult().equals(DmpResult.SUCCESS)){
             return true;
         }
         return false;

+ 21 - 12
src/main/java/com/persagy/proxy/migration/service/Impl/MigrationAbstractServiceImpl.java

@@ -337,10 +337,10 @@ public class MigrationAbstractServiceImpl<T> implements MigrationAbstractService
         if(CollUtil.isEmpty(difference)){
             return null;
         }
-        difference.forEach(set1 -> System.out.println(set1));
+        /*difference.forEach(set1 -> System.out.println(set1));
         System.out.println("-------------------------------------------------------------------------");
         Sets.SetView<String> difference2 = Sets.difference(toSets, formSets);
-        difference2.forEach(set2 -> System.out.println(set2));
+        difference2.forEach(set2 -> System.out.println(set2));*/
 
         Set<String> diff = difference.stream().map(entity -> StrUtil.subBefore(entity, MigrationConstant.SPLITER_UNION, true)).collect(Collectors.toSet());
         Map<String, Object> results = getValueForMapByKeys(diff, from);
@@ -406,18 +406,27 @@ public class MigrationAbstractServiceImpl<T> implements MigrationAbstractService
             log.error(ResponseCode.C0001.toString());
             return DataMigrationResponse.error(ResponseCode.C0001.toString());
         }
-        String response = commitDataByHttp(url, body);
-        CommonResult<List> commonResult = JSONUtil.toBean(response, CommonResult.class);
-        if(commonResult.getResult().equals(DmpResult.SUCCESS)){
-            ArrayNode arrayNode = JsonNodeUtils.toArrayNode(commonResult.getData(), null, null);
-            if(arrayNode == null){
-                return DataMigrationResponse.success();
+        try{
+            String response = commitDataByHttp(url, body);
+            if(response.equals("Bad Gateway")){
+                return DataMigrationResponse.error("Bad Gateway");
             }
-            return DataMigrationResponse.success(JsonNodeUtils.toEntity(arrayNode, clazz, null));
-        }else {
-            log.error(commonResult.getMessage());
-            return DataMigrationResponse.error(commonResult.getMessage());
+            CommonResult<List> commonResult = JSONUtil.toBean(response, CommonResult.class);
+            if(commonResult.getResult().equals(DmpResult.SUCCESS)){
+                ArrayNode arrayNode = JsonNodeUtils.toArrayNode(commonResult.getData(), null, null);
+                if(arrayNode == null){
+                    return DataMigrationResponse.success();
+                }
+                return DataMigrationResponse.success(JsonNodeUtils.toEntity(arrayNode, clazz, null));
+            }else {
+                log.error(commonResult.getMessage());
+                return DataMigrationResponse.error(commonResult.getMessage());
+            }
+        }catch (Exception e){
+            log.error(e.getMessage());
+            return DataMigrationResponse.error(e.getMessage());
         }
+
     }
 
     @Override