SyncCompanyMenuAll.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. public class SyncCompanyMenuAll {
  6. private static final String URL =
  7. "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/fs_tenant_cs1"
  8. + "?useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8&allowMultiQueries=true";
  9. private static final String KEEP =
  10. "29900,32481,29949,29905,29950,29934,29906,3008,29912";
  11. public static void main(String[] args) throws Exception {
  12. Class.forName("com.mysql.cj.jdbc.Driver");
  13. String sql =
  14. "INSERT 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 (" + KEEP + ") "
  19. + "AND NOT EXISTS (SELECT 1 FROM company_menu x WHERE x.menu_id=s.menu_id);"
  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.is_frame=sm.is_frame, cm.is_cache=sm.is_cache, "
  23. + "cm.menu_type=sm.menu_type, cm.visible=sm.visible, cm.status=sm.status, cm.perms=sm.perms, "
  24. + "cm.icon=sm.icon, cm.remark=sm.remark, cm.company_id=338 "
  25. + "WHERE sm.menu_id IN (" + KEEP + ");"
  26. + "DELETE FROM company_menu WHERE (parent_id=29900 OR parent_id=29901) "
  27. + "AND menu_id NOT IN (" + KEEP + ");";
  28. try (Connection c = DriverManager.getConnection(URL, "root", "Ylrz_1q2w3e4r5t6y");
  29. Statement st = c.createStatement()) {
  30. st.execute(sql);
  31. ResultSet rs = st.executeQuery(
  32. "SELECT COUNT(*) FROM company_menu WHERE parent_id=29900 AND menu_type='C' AND visible='0' AND status='0'");
  33. rs.next();
  34. System.out.println("company_menu visible leaf count: " + rs.getInt(1));
  35. }
  36. }
  37. }