import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** Ensure company_menu has all canonical lobster menus for company 338. */ public class SyncCompanyMenu338 { private static final String URL = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/fs_tenant_cs1" + "?useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8&allowMultiQueries=true"; public static void main(String[] args) throws Exception { Class.forName("com.mysql.cj.jdbc.Driver"); String sql = "UPDATE company_menu SET company_id=338 WHERE company_id IS NULL AND menu_id BETWEEN 29900 AND 33000;" + "INSERT IGNORE INTO company_menu (menu_id, menu_name, parent_id, order_num, path, component, " + "is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, company_id, remark) " + "SELECT s.menu_id, s.menu_name, s.parent_id, s.order_num, s.path, s.component, s.is_frame, s.is_cache, " + "s.menu_type, s.visible, s.status, s.perms, s.icon, s.create_by, s.create_time, 338, s.remark " + "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) " + "AND NOT EXISTS (SELECT 1 FROM company_menu x WHERE x.menu_id=s.menu_id AND x.company_id=338);" + "UPDATE company_menu cm INNER JOIN sys_menu sm ON cm.menu_id=sm.menu_id " + "SET cm.menu_name=sm.menu_name, cm.parent_id=sm.parent_id, cm.order_num=sm.order_num, " + "cm.path=sm.path, cm.component=sm.component, cm.visible=sm.visible, cm.status=sm.status, " + "cm.perms=sm.perms, cm.icon=sm.icon, cm.remark=sm.remark " + "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);"; try (Connection c = DriverManager.getConnection(URL, "root", "Ylrz_1q2w3e4r5t6y"); Statement st = c.createStatement()) { st.execute(sql); ResultSet rs = st.executeQuery( "SELECT COUNT(*) FROM company_menu WHERE company_id=338 AND parent_id=29900 AND visible='0' AND menu_type='C'"); rs.next(); System.out.println("company 338 visible lobster leaf menus: " + rs.getInt(1)); } } }