Browse Source

fix(backend): AdminArticleController.create 修复ArrayList强转String — visibility/visibleTo/articleType字段可能为JSON数组

Xiaogang Liao 2 months ago
parent
commit
189c33edf2

+ 19 - 3
cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminArticleController.java

@@ -70,9 +70,25 @@ public class AdminArticleController {
         } else if (rd instanceof String) {
             article.setRelatedDimensions((String) rd);
         }
-        article.setVisibility((String) body.get("visibility"));
-        article.setVisibleTo((String) body.get("visibleTo"));
-        article.setArticleType((String) body.get("articleType"));
+        // visibility, visibleTo, articleType may also come as array
+        Object visibility = body.get("visibility");
+        if (visibility instanceof List) {
+            article.setVisibility(String.join(",", (List<String>) visibility));
+        } else if (visibility instanceof String) {
+            article.setVisibility((String) visibility);
+        }
+        Object visibleTo = body.get("visibleTo");
+        if (visibleTo instanceof List) {
+            article.setVisibleTo(String.join(",", (List<String>) visibleTo));
+        } else if (visibleTo instanceof String) {
+            article.setVisibleTo((String) visibleTo);
+        }
+        Object articleType = body.get("articleType");
+        if (articleType instanceof List) {
+            article.setArticleType(String.join(",", (List<String>) articleType));
+        } else if (articleType instanceof String) {
+            article.setArticleType((String) articleType);
+        }
         if (body.get("status") != null) {
             article.setStatus((String) body.get("status"));
         }