package Tools; import cn.hutool.core.io.file.FileReader; import cn.hutool.core.io.file.FileWriter; import com.jfinal.kit.PropKit; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.druid.DruidPlugin; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import java.io.IOException; import java.util.*; public class XT_GenerateMenu { //用途:根据Excel为湘潭项目生成菜单 //办法:用Navicat Prenium的导入功能,将Excel导入到Mysql中,然后针对表进行读取 /*** * delete CRLF; delete empty line ;delete blank lines * * @param input * @return */ private static String deleteCRLFOnce(String input) { return input.replaceAll("((\r\n)|\n)[\\s\t ]*(\\1)+", "$1"); } /** * delete CRLF; delete empty line ;delete blank lines * * @param input * @return */ public static String deleteCRLF(String input) { input = deleteCRLFOnce(input); return deleteCRLFOnce(input); } public static void main(String[] args) throws IOException { //1、配置数据库 PropKit.use("application.properties"); String jdbcUrl = "jdbc:mysql://10.10.14.199:22066/xt_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; DruidPlugin druid = new DruidPlugin(jdbcUrl, "root", "DsideaL147258369", "com.mysql.cj.jdbc.Driver"); druid.start(); // 配置ActiveRecord插件 ActiveRecordPlugin arp = new ActiveRecordPlugin(druid); arp.start(); //读取模板内容 String level_1_template = "xt_template_level1.txt"; String level_2_template = "xt_template_level2.txt"; FileReader f1 = new FileReader(level_1_template); String t1 = f1.readString(); FileReader f2 = new FileReader(level_2_template); String t2 = f2.readString(); //开始读表 Set _set = new HashSet<>(); String sql = "select * from t1"; List list = Db.find(sql); for (Record record : list) { _set.add(record.getStr("level_1_name")); } String result = ""; for (String level_1_name : _set) { String rt1, rt2 = ""; for (Record record : list) { String l1 = record.getStr("level_1_name"); String l2 = record.getStr("level_2_name"); String directory = record.getStr("directory"); //二级名称 if (l1.equals(level_1_name)) { rt2 = rt2 + t2.replace("{{level_2_name}}", l2).replace("{{level_2_url}}", "./20230323/" + directory + "/index.html"); } } //一级名称 rt1 = t1.replace("{{level_1_name}}", level_1_name).replace("{{level_2_content}}", rt2); if (result.length() > 0) result = result + "\n" + rt1; else result = rt1; } //删除空行 // result = deleteCRLF(result); //保存 FileWriter writer = new FileWriter("c:\\菜单.html"); writer.write(result); System.out.println("恭喜,菜单成功生成!"); } }