SyncCompanyMenu338.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. /** Ensure company_menu has all canonical lobster menus for company 338. */
  6. public class SyncCompanyMenu338 {
  7. private static final String URL =
  8. "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/fs_tenant_cs1"
  9. + "?useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8&allowMultiQueries=true";
  10. public static void main(String[] args) throws Exception {
  11. Class.forName("com.mysql.cj.jdbc.Driver");
  12. String sql =
  13. "UPDATE company_menu SET company_id=338 WHERE company_id IS NULL AND menu_id BETWEEN 29900 AND 33000;"
  14. + "INSERT IGNORE INTO company_menu (menu_id, menu_name, parent_id, order_num, path, component, "
  15. + "is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, company_id, remark) "
  16. + "SELECT s.menu_id, s.menu_name, s.parent_id, s.order_num, s.path, s.component, s.is_frame, s.is_cache, "
  17. + "s.menu_type, s.visible, s.status, s.perms, s.icon, s.create_by, s.create_time, 338, s.remark "
  18. + "FROM sys_menu s WHERE s.menu_id IN (29900,32481,29949,29905,29909,29925,29964,29963,29907,29908,29933,29950,29906,3008,29951,29912,29926) "
  19. + "AND NOT EXISTS (SELECT 1 FROM company_menu x WHERE x.menu_id=s.menu_id AND x.company_id=338);"
  20. + "UPDATE company_menu cm INNER JOIN sys_menu sm ON cm.menu_id=sm.menu_id "
  21. + "SET cm.menu_name=sm.menu_name, cm.parent_id=sm.parent_id, cm.order_num=sm.order_num, "
  22. + "cm.path=sm.path, cm.component=sm.component, cm.visible=sm.visible, cm.status=sm.status, "
  23. + "cm.perms=sm.perms, cm.icon=sm.icon, cm.remark=sm.remark "
  24. + "WHERE cm.company_id=338 AND sm.menu_id IN (29900,32481,29949,29905,29909,29925,29964,29963,29907,29908,29933,29950,29906,3008,29951,29912,29926);";
  25. try (Connection c = DriverManager.getConnection(URL, "root", "Ylrz_1q2w3e4r5t6y");
  26. Statement st = c.createStatement()) {
  27. st.execute(sql);
  28. ResultSet rs = st.executeQuery(
  29. "SELECT COUNT(*) FROM company_menu WHERE company_id=338 AND parent_id=29900 AND visible='0' AND menu_type='C'");
  30. rs.next();
  31. System.out.println("company 338 visible lobster leaf menus: " + rs.getInt(1));
  32. }
  33. }
  34. }