From 2cdc12055d597c7c25e2e83b24ebf32053f18757 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 16 六月 2021 13:15:18 +0800
Subject: [PATCH] fix 修复 JsonUtils 参数为空报错

---
 ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java |   13 +++++++------
 ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java                   |   10 ++++++++++
 ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java          |   10 +++++-----
 3 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java
index 2607636..ae6cc11 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java
@@ -1,5 +1,6 @@
 package com.ruoyi.common.utils;
 
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -32,6 +33,9 @@
     }
 
     public static String toJsonString(Object object) {
+		if (Validator.isEmpty(object)) {
+			return null;
+		}
         try {
             return objectMapper.writeValueAsString(object);
         } catch (JsonProcessingException e) {
@@ -62,6 +66,9 @@
     }
 
     public static <T> T parseObject(String text, TypeReference<T> typeReference) {
+		if (StrUtil.isBlank(text)) {
+			return null;
+		}
         try {
             return objectMapper.readValue(text, typeReference);
         } catch (IOException e) {
@@ -70,6 +77,9 @@
     }
 
 	public static <T> Map<String, T> parseMap(String text) {
+		if (StrUtil.isBlank(text)) {
+			return null;
+		}
 		try {
 			return objectMapper.readValue(text, new TypeReference<Map<String, T>>() {});
 		} catch (IOException e) {
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
index 961bf31..d67ef79 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.generator.service;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -423,13 +424,13 @@
      * @param genTable 璁剧疆鍚庣殑鐢熸垚瀵硅薄
      */
     public void setTableFromOptions(GenTable genTable) {
-		Map<String, String> paramsObj = JsonUtils.parseMap(genTable.getOptions());
+		Map<String, Object> paramsObj = JsonUtils.parseMap(genTable.getOptions());
         if (Validator.isNotNull(paramsObj)) {
-            String treeCode = paramsObj.get(GenConstants.TREE_CODE);
-            String treeParentCode = paramsObj.get(GenConstants.TREE_PARENT_CODE);
-            String treeName = paramsObj.get(GenConstants.TREE_NAME);
-            String parentMenuId = paramsObj.get(GenConstants.PARENT_MENU_ID);
-            String parentMenuName = paramsObj.get(GenConstants.PARENT_MENU_NAME);
+            String treeCode = Convert.toStr(paramsObj.get(GenConstants.TREE_CODE));
+            String treeParentCode = Convert.toStr(paramsObj.get(GenConstants.TREE_PARENT_CODE));
+            String treeName = Convert.toStr(paramsObj.get(GenConstants.TREE_NAME));
+            String parentMenuId = Convert.toStr(paramsObj.get(GenConstants.PARENT_MENU_ID));
+            String parentMenuName = Convert.toStr(paramsObj.get(GenConstants.PARENT_MENU_NAME));
 
             genTable.setTreeCode(treeCode);
             genTable.setTreeParentCode(treeParentCode);
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
index 5b4bff8..76073c7 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
@@ -319,7 +319,7 @@
      */
     public static String getTreecode(Map<String, Object> paramsObj)
     {
-        if (paramsObj.containsKey(GenConstants.TREE_CODE))
+        if (Validator.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.TREE_CODE))
         {
             return StrUtil.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_CODE)));
         }
@@ -334,7 +334,7 @@
      */
     public static String getTreeParentCode(Map<String, Object> paramsObj)
     {
-        if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE))
+        if (Validator.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.TREE_PARENT_CODE))
         {
             return StrUtil.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_PARENT_CODE)));
         }
@@ -349,7 +349,7 @@
      */
     public static String getTreeName(Map<String, Object> paramsObj)
     {
-        if (paramsObj.containsKey(GenConstants.TREE_NAME))
+        if (Validator.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.TREE_NAME))
         {
             return StrUtil.toCamelCase(Convert.toStr(paramsObj.get(GenConstants.TREE_NAME)));
         }
@@ -365,8 +365,8 @@
     public static int getExpandColumn(GenTable genTable)
     {
         String options = genTable.getOptions();
-        Map<String, String> paramsObj = JsonUtils.parseMap(options);
-        String treeName = paramsObj.get(GenConstants.TREE_NAME);
+        Map<String, Object> paramsObj = JsonUtils.parseMap(options);
+        String treeName = Convert.toStr(paramsObj.get(GenConstants.TREE_NAME));
         int num = 0;
         for (GenTableColumn column : genTable.getColumns())
         {

--
Gitblit v1.9.3