You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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("恭喜,菜单成功生成!");
}
}