QueryAdminMenus10.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import java.sql.*;
  2. import java.nio.file.*;
  3. import java.util.*;
  4. public class QueryAdminMenus10 {
  5. static Set<String> svgs = new HashSet<>();
  6. static Map<String, String> suggest = new LinkedHashMap<>();
  7. static {
  8. suggest.put("user", "user");
  9. suggest.put("peoples", "peoples");
  10. suggest.put("tree", "tree-table");
  11. suggest.put("post", "documentation");
  12. suggest.put("dict", "documentation");
  13. suggest.put("edit", "edit");
  14. suggest.put("message", "message");
  15. suggest.put("education", "education");
  16. suggest.put("share", "guide");
  17. suggest.put("warning", "education");
  18. suggest.put("phone", "message");
  19. suggest.put("wechat", "message");
  20. suggest.put("bug", "education");
  21. suggest.put("upload", "documentation");
  22. suggest.put("job", "time");
  23. suggest.put("log", "documentation");
  24. suggest.put("tool", "build");
  25. suggest.put("shopping", "money");
  26. suggest.put("server", "server");
  27. suggest.put("monitor", "monitor");
  28. suggest.put("nested", "nested");
  29. suggest.put("money", "money");
  30. suggest.put("lock", "lock");
  31. suggest.put("chart", "chart");
  32. suggest.put("list", "list");
  33. suggest.put("table", "table");
  34. suggest.put("star", "star");
  35. suggest.put("eye", "eye");
  36. suggest.put("link", "link");
  37. suggest.put("code", "code");
  38. suggest.put("build", "build");
  39. suggest.put("guide", "guide");
  40. suggest.put("documentation", "documentation");
  41. }
  42. public static void main(String[] args) throws Exception {
  43. Files.list(Paths.get("d:/ylrz_saas_new/adminui/src/assets/icons/svg"))
  44. .forEach(p -> svgs.add(p.getFileName().toString().replace(".svg", "")));
  45. String url = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/ylrz_saas?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8";
  46. try (Connection c = DriverManager.getConnection(url, "root", "Ylrz_1q2w3e4r5t6y");
  47. Statement st = c.createStatement()) {
  48. System.out.println("=== ALL visible C/M menus icon audit ===");
  49. List<String[]> updates = new ArrayList<>();
  50. try (ResultSet rs = st.executeQuery(
  51. "SELECT menu_id, menu_name, icon, component, menu_type FROM sys_menu "
  52. + "WHERE menu_type IN ('C','M') AND visible='0' AND status='0' ORDER BY menu_id")) {
  53. while (rs.next()) {
  54. String id = rs.getString(1);
  55. String name = rs.getString(2);
  56. String icon = rs.getString(3);
  57. String comp = rs.getString(4);
  58. String type = rs.getString(5);
  59. boolean ok = icon != null && !icon.isEmpty() && !icon.equals("#")
  60. && (icon.startsWith("el-icon-") || svgs.contains(icon));
  61. if (!ok) {
  62. String fix = pickIcon(name, icon);
  63. System.out.printf("FIX %s | %s | icon=[%s] -> %s | comp=%s%n", id, name, icon, fix, comp);
  64. if (fix != null) updates.add(new String[]{id, fix});
  65. }
  66. }
  67. }
  68. System.out.println("\n=== SQL updates count: " + updates.size() + " ===");
  69. for (String[] u : updates) {
  70. System.out.printf("UPDATE sys_menu SET icon='%s' WHERE menu_id=%s;%n", u[1], u[0]);
  71. }
  72. }
  73. }
  74. static String pickIcon(String name, String old) {
  75. if (old != null && !old.isEmpty() && !old.equals("#")) {
  76. if (suggest.containsKey(old) && svgs.contains(suggest.get(old))) return suggest.get(old);
  77. if (svgs.contains(old)) return old;
  78. }
  79. if (name == null) return "documentation";
  80. if (name.contains("\u6a21\u677f")) return "documentation";
  81. if (name.contains("\u5de5\u4f5c\u6d41")) return "guide";
  82. if (name.contains("\u5b9e\u4f8b")) return "monitor";
  83. if (name.contains("\u654f\u611f") || name.contains("\u8fdd\u7981") || name.contains("\u6613\u9519") || name.contains("\u8fdd\u89c4")) return "education";
  84. if (name.contains("\u5347\u7ea7")) return "el-icon-upload2";
  85. if (name.contains("\u79df\u6237")) return "peoples";
  86. if (name.contains("\u914d\u7f6e") || name.contains("\u8bbe\u7f6e")) return "build";
  87. if (name.contains("\u65e5\u5fd7")) return "documentation";
  88. if (name.contains("\u4efb\u52a1") || name.contains("\u5b9a\u65f6")) return "time";
  89. if (name.contains("\u8bbe\u5907") || name.contains("CID")) return "server";
  90. if (name.contains("\u5fae\u4fe1") || name.contains("\u4f01\u5fae")) return "message";
  91. if (name.contains("\u8bcd") || name.contains("\u5173\u952e")) return "education";
  92. if (name.contains("\u5b57\u5178")) return "documentation";
  93. if (name.contains("\u8ba2\u5355") || name.contains("\u5546\u54c1")) return "money";
  94. if (name.contains("\u76d1\u63a7") || name.contains("\u7edf\u8ba1")) return "chart";
  95. if (name.contains("\u7528\u6237")) return "user";
  96. if (name.contains("\u89d2\u8272")) return "peoples";
  97. if (name.contains("\u90e8\u95e8")) return "tree-table";
  98. return "documentation";
  99. }
  100. }