VerifyMenuSyncFinal.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import java.io.*;
  2. import java.sql.*;
  3. public class VerifyMenuSyncFinal {
  4. public static void main(String[] a) throws Exception {
  5. Class.forName("com.mysql.cj.jdbc.Driver");
  6. new File("output").mkdirs();
  7. try (PrintWriter out = new PrintWriter(new OutputStreamWriter(
  8. new FileOutputStream("output/verify-menu-sync-final.txt"), "UTF-8"))) {
  9. dump(open("fs_tenant_cs1"), out, "TENANT sys_menu");
  10. dump(open("fs_tenant_cs1"), out, "TENANT company_menu");
  11. dump(open("ylrz_saas"), out, "MASTER tenant_sys_menu");
  12. dump(open("ylrz_saas"), out, "MASTER tenant_company_menu");
  13. }
  14. System.out.println("ok");
  15. }
  16. static void dump(Connection c, PrintWriter out, String label) throws Exception {
  17. String table = label.contains("company") ? "company_menu" : "sys_menu";
  18. if (label.startsWith("MASTER tenant_sys")) table = "tenant_sys_menu";
  19. if (label.startsWith("MASTER tenant_company")) table = "tenant_company_menu";
  20. out.println("\n=== " + label + " ===");
  21. try (Statement st = c.createStatement();
  22. ResultSet rs = st.executeQuery(
  23. "SELECT menu_id, menu_name, parent_id, order_num, menu_type, visible, HEX(menu_name) hx "
  24. + "FROM " + table + " WHERE menu_id=29900 OR parent_id=29900 ORDER BY parent_id, order_num, menu_id")) {
  25. int n = 0;
  26. while (rs.next()) {
  27. n++;
  28. out.printf("[%d] %s | parent=%d order=%d type=%s visible=%s hx=%s%n",
  29. rs.getLong(1), rs.getString(2), rs.getLong(3), rs.getInt(4),
  30. rs.getString(5), rs.getString(6), rs.getString(7));
  31. }
  32. out.println("count=" + n);
  33. }
  34. try (Statement st = c.createStatement();
  35. ResultSet rs = st.executeQuery(
  36. "SELECT COUNT(*) FROM " + table + " WHERE parent_id=29900 AND menu_type='C' AND visible='0'")) {
  37. rs.next();
  38. out.println("visible_leaf_count=" + rs.getInt(1));
  39. }
  40. }
  41. static Connection open(String db) throws SQLException {
  42. return DriverManager.getConnection(
  43. "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/" + db
  44. + "?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8",
  45. "root", "Ylrz_1q2w3e4r5t6y");
  46. }
  47. }