Procházet zdrojové kódy

fix(home): shortcut save 兼容前端 Boolean/Number 两种 locked/sortOrder 类型

Xiaogang Liao před 1 dnem
rodič
revize
2ee01d6236

+ 9 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/HomeShortcutService.java

@@ -61,8 +61,8 @@ public class HomeShortcutService {
             UserShortcutConfig c = new UserShortcutConfig();
             c.setUserId(userId);
             c.setAppKey(appKey);
-            c.setLocked(item.get("locked") != null ? ((Number) item.get("locked")).intValue() : 0);
-            c.setSortOrder(item.get("sortOrder") != null ? ((Number) item.get("sortOrder")).intValue() : 0);
+            c.setLocked(item.get("locked") != null ? parseNumber(item.get("locked")) : 0);
+            c.setSortOrder(item.get("sortOrder") != null ? parseNumber(item.get("sortOrder")) : 0);
             userShortcutConfigMapper.insert(c);
         }
         return Result.success(null);
@@ -95,4 +95,11 @@ public class HomeShortcutService {
                         .eq("user_id", userId));
         return Result.success(null);
     }
+
+    /** 兼容前端传 Boolean(true/false) 或 Number 两种类型,统一转为 int */
+    private int parseNumber(Object v) {
+        if (v instanceof Boolean) return (Boolean) v ? 1 : 0;
+        if (v instanceof Number) return ((Number) v).intValue();
+        throw new IllegalArgumentException("expected Boolean or Number, got: " + v.getClass().getName());
+    }
 }