InspectHiddenMenus.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import java.sql.*;
  2. public class InspectHiddenMenus {
  3. static final String TENANT_URL = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/fs_tenant_cs1?useSSL=false&serverTimezone=GMT%2B8";
  4. static final String MASTER_URL = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/ylrz_saas?useSSL=false&serverTimezone=GMT%2B8";
  5. static final String USER = "root";
  6. static final String PASS = "Ylrz_1q2w3e4r5t6y";
  7. public static void main(String[] args) throws Exception {
  8. Class.forName("com.mysql.cj.jdbc.Driver");
  9. System.out.println("=== fs_tenant_cs1 sys_menu hidden under 29900 ===");
  10. countHidden(TENANT_URL, "sys_menu", 29900L);
  11. System.out.println("\n=== ylrz_saas tenant_sys_menu hidden under 29900 ===");
  12. countHidden(MASTER_URL, "tenant_sys_menu", 29900L);
  13. System.out.println("\n=== fs_tenant_cs1 all hidden menus (any root) ===");
  14. countAllHidden(TENANT_URL, "sys_menu");
  15. System.out.println("\n=== tenant_sys_menu all hidden ===");
  16. countAllHidden(MASTER_URL, "tenant_sys_menu");
  17. }
  18. static void countHidden(String url, String table, long rootId) throws SQLException {
  19. try (Connection c = DriverManager.getConnection(url, USER, PASS)) {
  20. String sql = "SELECT menu_id, menu_name, path, visible FROM " + table
  21. + " WHERE (menu_id = ? OR parent_id = ? OR parent_id IN "
  22. + "(SELECT menu_id FROM " + table + " WHERE parent_id = ?)) "
  23. + "AND visible = '1' ORDER BY menu_id";
  24. try (PreparedStatement ps = c.prepareStatement(sql)) {
  25. ps.setLong(1, rootId);
  26. ps.setLong(2, rootId);
  27. ps.setLong(3, rootId);
  28. try (ResultSet rs = ps.executeQuery()) {
  29. int n = 0;
  30. while (rs.next()) {
  31. n++;
  32. System.out.printf(" id=%d path=%s name=%s%n", rs.getLong(1), rs.getString(3), rs.getString(2));
  33. }
  34. System.out.println(" hidden count=" + n);
  35. }
  36. }
  37. }
  38. }
  39. static void countAllHidden(String url, String table) throws SQLException {
  40. try (Connection c = DriverManager.getConnection(url, USER, PASS)) {
  41. try (Statement st = c.createStatement();
  42. ResultSet rs = st.executeQuery(
  43. "SELECT COUNT(*) FROM " + table + " WHERE visible = '1' AND status = '0'")) {
  44. rs.next();
  45. System.out.println(" total hidden visible=1 status=0: " + rs.getInt(1));
  46. }
  47. }
  48. }
  49. }