Kaynağa Gözat

优化代码,替换迭代器代码为增强for

yangll 3 yıl önce
ebeveyn
işleme
9d4d3a9982

+ 114 - 72
tnc-online/src/main/java/org/jeecg/modules/online/cgform/service/impl/OnlCgformHeadServiceImpl.java

@@ -1936,8 +1936,8 @@ public class OnlCgformHeadServiceImpl extends ServiceImpl<OnlCgformHeadMapper, O
 
             while(true) {
                 List<OnlCgformField> dbCgformFieldList;
-                String var13;
-                ArrayList<String> var19;
+//                String var13;
+                ArrayList<String> oldFieldNameList;
                 label108:
                 do {
                     while(cgformHeadIterator.hasNext()) {
@@ -1947,23 +1947,28 @@ public class OnlCgformHeadServiceImpl extends ServiceImpl<OnlCgformHeadMapper, O
 
                         if (dbCgformFieldList != null && dbCgformFieldList.size() != 0) {
                             // 数据库字段map
-                            Map<String, Integer> dbFieldMap = new HashMap<>();
+                            Map<String, Integer> dbFieldNameMap = new HashMap<>();
 
                             for (OnlCgformField dbCgformField : dbCgformFieldList) {
-                                dbFieldMap.put(dbCgformField.getDbFieldName(), 1);
+                                dbFieldNameMap.put(dbCgformField.getDbFieldName(), 1);
                             }
 
                             // 参数字段map
-                            Map<String, Integer> fieldMap = new HashMap<>();
-                            Iterator<OnlCgformField> cgformFieldIterator = cgformFieldList.iterator();
+                            Map<String, Integer> fieldNameMap = new HashMap<>();
+//                            Iterator<OnlCgformField> cgformFieldIterator = cgformFieldList.iterator();
+//
+//                            while(cgformFieldIterator.hasNext()) {
+//                                OnlCgformField cgformField = cgformFieldIterator.next();
+//                                fieldNameMap.put(cgformField.getDbFieldName(), 1);
+//                            }
 
-                            while(cgformFieldIterator.hasNext()) {
-                                OnlCgformField cgformField = cgformFieldIterator.next();
-                                fieldMap.put(cgformField.getDbFieldName(), 1);
+                            for (OnlCgformField cgformField : cgformFieldList) {
+                                fieldNameMap.put(cgformField.getDbFieldName(), 1);
                             }
 
-                            var19 = new ArrayList<>();
-                            List<String> var20 = new ArrayList<>();
+
+                            oldFieldNameList = new ArrayList<>();
+                            List<String> newFieldNameList = new ArrayList<>();
 //                            Iterator<String> keyIterator = fieldMap.keySet().iterator();
 //
 //                            while(keyIterator.hasNext()) {
@@ -1975,47 +1980,62 @@ public class OnlCgformHeadServiceImpl extends ServiceImpl<OnlCgformHeadMapper, O
 //                                }
 //                            }
 
-                            for (String fieldKey : fieldMap.keySet()) {
-                                if (dbFieldMap.get(fieldKey) == null) {
-                                    var20.add(fieldKey);
+                            for (String fieldName : fieldNameMap.keySet()) {
+                                if (dbFieldNameMap.get(fieldName) == null) {
+                                    newFieldNameList.add(fieldName);
                                 } else {
-                                    var19.add(fieldKey);
+                                    oldFieldNameList.add(fieldName);
                                 }
                             }
 
 
-                            List<String>  dbFieldList = new ArrayList<>();
+                            List<String>  removeFieldList = new ArrayList<>();
 
-                            for (String dbField : dbFieldMap.keySet()) {
-                                if (fieldMap.get(dbField) == null) {
-                                    dbFieldList.add(dbField);
+                            for (String dbField : dbFieldNameMap.keySet()) {
+                                if (fieldNameMap.get(dbField) == null) {
+                                    removeFieldList.add(dbField);
                                 }
                             }
 
-                            OnlCgformField var23;
-                            if (dbFieldList.size() > 0) {
-                                Iterator<OnlCgformField> var22 = dbCgformFieldList.iterator();
-
-                                while(var22.hasNext()) {
-                                    var23 = var22.next();
-                                    if (dbFieldList.contains(var23.getDbFieldName())) {
-                                        this.fieldService.removeById(var23.getId());
+//                            OnlCgformField var23;
+                            if (removeFieldList.size() > 0) {
+//                                Iterator<OnlCgformField> var22 = dbCgformFieldList.iterator();
+//
+//                                while(var22.hasNext()) {
+//                                    var23 = var22.next();
+//                                    if (removeFieldList.contains(var23.getDbFieldName())) {
+//                                        this.fieldService.removeById(var23.getId());
+//                                    }
+//                                }
+                                for (OnlCgformField cgformField : dbCgformFieldList) {
+                                    if (removeFieldList.contains(cgformField.getDbFieldName())) {
+                                        this.fieldService.removeById(cgformField.getId());
                                     }
                                 }
                             }
 
-                            if (var20.size() > 0) {
-                                Iterator<OnlCgformField> var22 = cgformFieldList.iterator();
+                            if (newFieldNameList.size() > 0) {
+//                                Iterator<OnlCgformField> var22 = cgformFieldList.iterator();
+//
+//                                while(var22.hasNext()) {
+//                                    OnlCgformField var23 = (OnlCgformField)var22.next();
+//                                    if (newFieldNameList.contains(var23.getDbFieldName())) {
+//                                        OnlCgformField var14 = new OnlCgformField();
+//                                        var14.setCgformHeadId(dbCgformHead.getId());
+//                                        this.copyField(var23, var14);
+//                                        this.fieldService.save(var14);
+//                                    }
+//                                }
 
-                                while(var22.hasNext()) {
-                                    var23 = (OnlCgformField)var22.next();
-                                    if (var20.contains(var23.getDbFieldName())) {
-                                        OnlCgformField var14 = new OnlCgformField();
-                                        var14.setCgformHeadId(dbCgformHead.getId());
-                                        this.copyField(var23, var14);
-                                        this.fieldService.save(var14);
+                                for (OnlCgformField cgformField : cgformFieldList) {
+                                    if (newFieldNameList.contains(cgformField.getDbFieldName())) {
+                                        OnlCgformField newFormField = new OnlCgformField();
+                                        newFormField.setCgformHeadId(dbCgformHead.getId());
+                                        this.copyField(cgformField, newFormField);
+                                        this.fieldService.save(newFormField);
                                     }
                                 }
+
                             }
                             continue label108;
                         }
@@ -2030,63 +2050,85 @@ public class OnlCgformHeadServiceImpl extends ServiceImpl<OnlCgformHeadMapper, O
                     }
 
                     return;
-                } while(var19.size() <= 0);
+                } while(oldFieldNameList.size() <= 0);
 
-                Iterator<String> var22 = var19.iterator();
+//                Iterator<String> var22 = var19.iterator();
+//
+//                while(var22.hasNext()) {
+//                    var13 = var22.next();
+//                    this.b(var13, cgformFieldList, dbCgformFieldList);
+//                }
 
-                while(var22.hasNext()) {
-                    var13 = (String)var22.next();
-                    this.b(var13, cgformFieldList, dbCgformFieldList);
+                for (String oldFieldName : oldFieldNameList) {
+                    this.updateOldField(oldFieldName, cgformFieldList, dbCgformFieldList);
                 }
+
             }
         }
     }
 
-    private void b(String var1, List<OnlCgformField> var2, List<OnlCgformField> var3) {
-        OnlCgformField var4 = null;
-        Iterator var5 = var2.iterator();
-
-        while(var5.hasNext()) {
-            OnlCgformField var6 = (OnlCgformField)var5.next();
-            if (var1.equals(var6.getDbFieldName())) {
-                var4 = var6;
+    /**
+     * 更新已存在字段
+     *
+     * @param oldFieldName 字段名称
+     * @param cgformFieldList 表单中的字段列表
+     * @param dbCgformFieldList 数据库中字段列表
+     */
+    private void updateOldField(String oldFieldName, List<OnlCgformField> cgformFieldList, List<OnlCgformField> dbCgformFieldList) {
+        OnlCgformField newFormField = null;
+//        Iterator var5 = cgformFieldList.iterator();
+//
+//        while(var5.hasNext()) {
+//            OnlCgformField var6 = (OnlCgformField)var5.next();
+//            if (oldFieldName.equals(var6.getDbFieldName())) {
+//                cgformField = var6;
+//            }
+//        }
+        for (OnlCgformField cgformField : cgformFieldList) {
+            if (oldFieldName.equals(cgformField.getDbFieldName())) {
+                newFormField = cgformField;
             }
         }
 
-        OnlCgformField var8 = null;
-        Iterator var9 = var3.iterator();
-
-        while(var9.hasNext()) {
-            OnlCgformField var7 = (OnlCgformField)var9.next();
-            if (var1.equals(var7.getDbFieldName())) {
-                var8 = var7;
+        OnlCgformField oldFormField = null;
+//        Iterator var9 = dbCgformFieldList.iterator();
+//
+//        while(var9.hasNext()) {
+//            OnlCgformField dbFormField = (OnlCgformField)var9.next();
+//            if (oldFieldName.equals(dbFormField.getDbFieldName())) {
+//                oldFormField = dbFormField;
+//            }
+//        }
+        for (OnlCgformField dbFormField : dbCgformFieldList) {
+            if (oldFieldName.equals(dbFormField.getDbFieldName())) {
+                oldFormField = dbFormField;
             }
         }
 
-        if (var4 != null && var8 != null) {
-            boolean var10 = false;
-            if (!var4.getDbType().equals(var8.getDbType())) {
-                var8.setDbType(var4.getDbType());
-                var10 = true;
+        if (newFormField != null && oldFormField != null) {
+            boolean isUpdated = false;
+            if (!Objects.equals(newFormField.getDbType(), oldFormField.getDbType())) {
+                oldFormField.setDbType(newFormField.getDbType());
+                isUpdated = true;
             }
 
-            if (!var4.getDbDefaultVal().equals(var8.getDbDefaultVal())) {
-                var8.setDbDefaultVal(var4.getDbDefaultVal());
-                var10 = true;
+            if (!Objects.equals(newFormField.getDbDefaultVal(), oldFormField.getDbDefaultVal())) {
+                oldFormField.setDbDefaultVal(newFormField.getDbDefaultVal());
+                isUpdated = true;
             }
 
-            if (var4.getDbLength() != var8.getDbLength()) {
-                var8.setDbLength(var4.getDbLength());
-                var10 = true;
+            if (!Objects.equals(newFormField.getDbLength(), oldFormField.getDbLength())) {
+                oldFormField.setDbLength(newFormField.getDbLength());
+                isUpdated = true;
             }
 
-            if (var4.getDbIsNull() != var8.getDbIsNull()) {
-                var8.setDbIsNull(var4.getDbIsNull());
-                var10 = true;
+            if (!Objects.equals(newFormField.getDbIsNull(), oldFormField.getDbIsNull())) {
+                oldFormField.setDbIsNull(newFormField.getDbIsNull());
+                isUpdated = true;
             }
 
-            if (var10) {
-                this.fieldService.updateById(var8);
+            if (isUpdated) {
+                this.fieldService.updateById(oldFormField);
             }
         }