|
|
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<String> _set = new HashSet<>();
|
|
|
String sql = "select * from t1";
|
|
|
List<Record> 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("恭喜,菜单成功生成!");
|
|
|
}
|
|
|
} |