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

2 years ago
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;
2 years ago
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
2 years ago
import java.io.IOException;
import java.util.*;
2 years ago
public class XT_GenerateMenu {
2 years ago
//用途根据Excel为湘潭项目生成菜单
//办法用Navicat Prenium的导入功能将Excel导入到Mysql中然后针对表进行读取
2 years ago
/***
* 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);
}
2 years ago
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<>();
2 years ago
String sql = "select * from t1";
2 years ago
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) {
2 years ago
String rt1, rt2 = "";
2 years ago
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)) {
2 years ago
rt2 = rt2 + t2.replace("{{level_2_name}}", l2).replace("{{level_2_url}}", "./20230323/" + directory + "/index.html");
2 years ago
}
}
//一级名称
rt1 = t1.replace("{{level_1_name}}", level_1_name).replace("{{level_2_content}}", rt2);
2 years ago
if (result.length() > 0) result = result + "\n" + rt1;
else result = rt1;
}
//删除空行
2 years ago
// result = deleteCRLF(result);
2 years ago
//保存
FileWriter writer = new FileWriter("c:\\菜单.html");
writer.write(result);
System.out.println("恭喜,菜单成功生成!");
}
}