| 12345678910111213141516171819202122232425262728293031323334 |
- import java.sql.*;
- public class FixTwo {
- static final String U = "root"; static final String P = "Ylrz_1q2w3e4r5t6y";
- public static void main(String[] a) throws Exception {
- Class.forName("com.mysql.cj.jdbc.Driver");
- fix("fs_tenant_t202606124273");
- fix("fs_tenant_t202606154320");
- }
- static void fix(String db) throws Exception {
- String url = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/"+db+"?allowMultiQueries=true&serverTimezone=Asia/Shanghai";
- try (Connection c = DriverManager.getConnection(url,U,P); Statement s = c.createStatement()) {
- // Check state
- ResultSet r = s.executeQuery("SELECT COUNT(1), MIN(company_id) FROM company_menu WHERE menu_id=29900");
- r.next(); System.out.println(db+": cnt="+r.getInt(1)+" cid="+r.getString(2));
- // Force insert root if missing
- s.executeUpdate("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) VALUES (29900,'数字员工',0,100,'/lobster','',0,0,'M','0','0',NULL,'el-icon-cpu','admin',NOW(),1,'Lobster Engine')");
- // Now all NULL cid → 1
- s.executeUpdate("UPDATE company_menu SET company_id = 1 WHERE company_id IS NULL");
- // Now re-run the V08 INSERT IGNORE parts (the sys_menu sync already worked)
- int[] ids = {32481,29949,29905,29907,29925,29923,29944,29936,29909,29908,29912,29935,29947,29934,29933,29924,29946,29906,3008,29938,29937,29939,29920,29941,29950,29948,29922};
- for (int id : ids) {
- s.executeUpdate("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 m.menu_id,m.menu_name,m.parent_id,m.order_num,m.path,m.component,m.is_frame,m.is_cache,m.menu_type,m.visible,m.status,m.perms,m.icon,m.create_by,m.create_time,1,m.remark FROM sys_menu m WHERE m.menu_id="+id+" AND NOT EXISTS (SELECT 1 FROM company_menu x WHERE x.menu_id="+id+")");
- }
- r = s.executeQuery("SELECT COUNT(1) FROM company_menu WHERE menu_id BETWEEN 29900 AND 29999");
- r.next(); System.out.println(" -> company_menu count: "+r.getInt(1));
- }
- }
- }
|