Przeglądaj źródła

添加菜单bugfix

chao 3 lat temu
rodzic
commit
b73f7de770

+ 22 - 20
src/main/java/com/caimei365/manager/service/sys/impl/SysMenuServiceImpl.java

@@ -170,12 +170,12 @@ public class SysMenuServiceImpl implements SysMenuService {
         // 根据路由名称查询菜单
         // 根据路由名称查询菜单
         SysMenu dbMenu = systemDao.getMenuByName(menu.getName());
         SysMenu dbMenu = systemDao.getMenuByName(menu.getName());
         if (null == dbMenu) {
         if (null == dbMenu) {
-            systemDao.insertMenu(menu);
             // 按钮权限JSON数据解析
             // 按钮权限JSON数据解析
             ResponseJson<Void> error = parsePermissionJson(menu.getId(), menu.getPermissionJson());
             ResponseJson<Void> error = parsePermissionJson(menu.getId(), menu.getPermissionJson());
             if (error != null) {
             if (error != null) {
                 return error;
                 return error;
             }
             }
+            systemDao.insertMenu(menu);
         } else if (!Integer.valueOf(0).equals(dbMenu.getDelFlag())){
         } else if (!Integer.valueOf(0).equals(dbMenu.getDelFlag())){
             // 更新已删除菜单
             // 更新已删除菜单
             return updateMenu(dbMenu.getId(), menu);
             return updateMenu(dbMenu.getId(), menu);
@@ -209,26 +209,28 @@ public class SysMenuServiceImpl implements SysMenuService {
         // 按钮权限JSON数据解析
         // 按钮权限JSON数据解析
         JSONArray permissionJson = null;
         JSONArray permissionJson = null;
         List<SysPermission> permissionList = new ArrayList<>();
         List<SysPermission> permissionList = new ArrayList<>();
-        try {
-            permissionJson = parseArray(jsonStr);
-            if (null == permissionJson || permissionJson.isEmpty()) {
-                return ResponseJson.error("按钮权限JSON数据异常!", null);
-            }
-            for (Object permissionObject : permissionJson) {
-                JSONObject detail = (JSONObject) permissionObject;
-                Integer permissionId = (Integer) detail.get("id");
-                String permissionName = (String) detail.get("name");
-                String permissionTitle = (String) detail.get("title");
-                SysPermission item = new SysPermission();
-                item.setId(permissionId);
-                item.setMenuId(menuId);
-                item.setName(permissionName);
-                item.setTitle(permissionTitle);
-                permissionList.add(item);
+        if (StringUtils.hasLength(jsonStr) && !"[]".equals(jsonStr)) {
+            try {
+                permissionJson = parseArray(jsonStr);
+                if (null != permissionJson && !permissionJson.isEmpty()) {
+                    return ResponseJson.error("按钮权限JSON数据异常!", null);
+                }
+                for (Object permissionObject : permissionJson) {
+                    JSONObject detail = (JSONObject) permissionObject;
+                    Integer permissionId = (Integer) detail.get("id");
+                    String permissionName = (String) detail.get("name");
+                    String permissionTitle = (String) detail.get("title");
+                    SysPermission item = new SysPermission();
+                    item.setId(permissionId);
+                    item.setMenuId(menuId);
+                    item.setName(permissionName);
+                    item.setTitle(permissionTitle);
+                    permissionList.add(item);
+                }
+            } catch (Exception e) {
+                log.error("按钮权限JSON数据解析异常try-catch:", e);
+                return ResponseJson.error("按钮权限JSON数据解析异常!", null);
             }
             }
-        } catch (Exception e) {
-            log.error("按钮权限JSON数据解析异常try-catch:", e);
-            return ResponseJson.error("按钮权限JSON数据解析异常!", null);
         }
         }
         List<Integer> dbPermissionIds = systemDao.getPermissionIds(menuId);
         List<Integer> dbPermissionIds = systemDao.getPermissionIds(menuId);
         List<Integer> permissionIds = new ArrayList<>();
         List<Integer> permissionIds = new ArrayList<>();