fix: 修复ToolController编译错误,兼容Java 8和lunar库API

This commit is contained in:
xuan-bot committed 2026-03-08 01:32:35 +08:00
1 parent e021ce5bc9
commit dc776ab157
1 file changed
+94 -87
@@ -2,11 +2,7 @@ package xuan.controller;
import com.nlf.calendar.Lunar;
import com.nlf.calendar.Solar;
import com.nlf.calendar.LunarYear;
import com.nlf.calendar.LunarMonth;
import org.springframework.web.bind.annotation.*;
import xuan.core.bazi.BaZi;
import xuan.core.bazi.settings.BaZiJiChuSetting;
import java.util.*;
@@ -40,8 +36,8 @@ public class ToolController {
data.put("lunarMonth", lunar.getMonthInGanZhi());
data.put("lunarDay", lunar.getDayInGanZhi());
data.put("lunarYearName", lunar.getYearShengXiao() + "年");
data.put("lunarMonthName", lunar.getMonthName());
data.put("lunarDayName", lunar.getDayName());
data.put("lunarMonthName", lunar.getMonthInChinese());
data.put("lunarDayName", lunar.getDayInChinese());
data.put("festival", lunar.getFestivals());
data.put("jieQi", lunar.getJieQi());
data.put("week", solar.getWeekInChinese());
@@ -52,7 +48,7 @@ public class ToolController {
int day = Integer.parseInt(params.get("lunarDay").toString());
boolean isLeap = params.containsKey("isLeap") && Boolean.parseBoolean(params.get("isLeap").toString());
Lunar lunar = Lunar.fromYmd(year, month, day, isLeap ? 1 : 0);
Lunar lunar = isLeap ? Lunar.fromYmd(year, -month, day) : Lunar.fromYmd(year, month, day);
Solar solar = lunar.getSolar();
data.put("lunar", lunar.toString());
@@ -123,7 +119,6 @@ public class ToolController {
data.put("year", year);
data.put("shengXiao", shengXiao);
String[] shengXiaoOrder = {"鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"};
Map<String, String> shengXiaoInfo = new HashMap<>();
shengXiaoInfo.put("鼠", "子鼠,五行属水,聪明机智,适应力强");
shengXiaoInfo.put("牛", "丑牛,五行属土,勤劳踏实,责任心强");
@@ -139,9 +134,7 @@ public class ToolController {
shengXiaoInfo.put("猪", "亥猪,五行属水,善良宽厚,乐观豁达");
data.put("info", shengXiaoInfo.getOrDefault(shengXiao, "未知生肖"));
String ganZhi = lunar.getYearInGanZhi();
data.put("ganZhi", ganZhi);
data.put("ganZhi", lunar.getYearInGanZhi());
result.put("success", true);
result.put("data", data);
@@ -168,80 +161,95 @@ public class ToolController {
data.put("xingZuo", xingZuo);
Map<String, Map<String, String>> xingZuoInfo = new HashMap<>();
xingZuoInfo.put("白羊座", Map.of(
"dateRange", "3月21日-4月19日",
"element", "火象星座",
"character", "热情、冲动、自信",
"desc", "白羊座是黄道十二宫的第一宫,代表着新的开始和生命力。白羊座的人充满活力,勇于冒险,具有领导才能。"
));
xingZuoInfo.put("金牛座", Map.of(
"dateRange", "4月20日-5月20日",
"element", "土象星座",
"character", "稳重、务实、固执",
"desc", "金牛座是黄道十二宫的第二宫,代表着物质和财富。金牛座的人踏实可靠,追求稳定,有很强的耐心。"
));
xingZuoInfo.put("双子座", Map.of(
"dateRange", "5月21日-6月21日",
"element", "风象星座",
"character", "聪明、善变、好奇",
"desc", "双子座是黄道十二宫的第三宫,代表着沟通和交流。双子座的人思维敏捷,善于表达,兴趣广泛。"
));
xingZuoInfo.put("巨蟹座", Map.of(
"dateRange", "6月22日-7月22日",
"element", "水象星座",
"character", "敏感、顾家、情绪化",
"desc", "巨蟹座是黄道十二宫的第四宫,代表着家庭和情感。巨蟹座的人重视家庭,情感丰富,有很强的保护欲。"
));
xingZuoInfo.put("狮子座", Map.of(
"dateRange", "7月23日-8月22日",
"element", "火象星座",
"character", "自信、慷慨、霸道",
"desc", "狮子座是黄道十二宫的第五宫,代表着创造力和自我表达。狮子座的人自信大方,有领导才能,喜欢成为焦点。"
));
xingZuoInfo.put("处女座", Map.of(
"dateRange", "8月23日-9月22日",
"element", "土象星座",
"character", "细心、完美主义、挑剔",
"desc", "处女座是黄道十二宫的第六宫,代表着分析和服务。处女座的人注重细节,追求完美,有很强的分析能力。"
));
xingZuoInfo.put("天秤座", Map.of(
"dateRange", "9月23日-10月23日",
"element", "风象星座",
"character", "优雅、公正、犹豫",
"desc", "天秤座是黄道十二宫的第七宫,代表着平衡和和谐。天秤座的人追求公正,善于社交,有很强的审美能力。"
));
xingZuoInfo.put("天蝎座", Map.of(
"dateRange", "10月24日-11月22日",
"element", "水象星座",
"character", "神秘、执着、多疑",
"desc", "天蝎座是黄道十二宫的第八宫,代表着转化和重生。天蝎座的人意志坚定,洞察力强,有很强的直觉。"
));
xingZuoInfo.put("射手座", Map.of(
"dateRange", "11月23日-12月21日",
"element", "火象星座",
"character", "乐观、自由、粗心",
"desc", "射手座是黄道十二宫的第九宫,代表着探索和哲学。射手座的人热爱自由,乐观开朗,有很强的冒险精神。"
));
xingZuoInfo.put("摩羯座", Map.of(
"dateRange", "12月22日-1月19日",
"element", "土象星座",
"character", "务实、有责任感、悲观",
"desc", "摩羯座是黄道十二宫的第十宫,代表着成就和责任。摩羯座的人有很强的责任感,追求成功,脚踏实地。"
));
xingZuoInfo.put("水瓶座", Map.of(
"dateRange", "1月20日-2月18日",
"element", "风象星座",
"character", "独立、创新、叛逆",
"desc", "水瓶座是黄道十二宫的第十一宫,代表着创新和人道主义。水瓶座的人思想前卫,独立自主,有很强的创造力。"
));
xingZuoInfo.put("双鱼座", Map.of(
"dateRange", "2月19日-3月20日",
"element", "水象星座",
"character", "浪漫、敏感、优柔寡断",
"desc", "双鱼座是黄道十二宫的最后一宫,代表着灵性和直觉。双鱼座的人富有想象力,感情丰富,有很强的同理心。"
));
Map<String, String> info = xingZuoInfo.getOrDefault(xingZuo, Map.of("desc", "未知星座"));
Map<String, String> aries = new HashMap<>();
aries.put("dateRange", "3月21日-4月19日");
aries.put("element", "火象星座");
aries.put("character", "热情、冲动、自信");
aries.put("desc", "白羊座是黄道十二宫的第一宫,代表着新的开始和生命力。");
xingZuoInfo.put("白羊座", aries);
Map<String, String> taurus = new HashMap<>();
taurus.put("dateRange", "4月20日-5月20日");
taurus.put("element", "土象星座");
taurus.put("character", "稳重、务实、固执");
taurus.put("desc", "金牛座是黄道十二宫的第二宫,代表着物质和财富。");
xingZuoInfo.put("金牛座", taurus);
Map<String, String> gemini = new HashMap<>();
gemini.put("dateRange", "5月21日-6月21日");
gemini.put("element", "风象星座");
gemini.put("character", "聪明、善变、好奇");
gemini.put("desc", "双子座是黄道十二宫的第三宫,代表着沟通和交流。");
xingZuoInfo.put("双子座", gemini);
Map<String, String> cancer = new HashMap<>();
cancer.put("dateRange", "6月22日-7月22日");
cancer.put("element", "水象星座");
cancer.put("character", "敏感、顾家、情绪化");
cancer.put("desc", "巨蟹座是黄道十二宫的第四宫,代表着家庭和情感。");
xingZuoInfo.put("巨蟹座", cancer);
Map<String, String> leo = new HashMap<>();
leo.put("dateRange", "7月23日-8月22日");
leo.put("element", "火象星座");
leo.put("character", "自信、慷慨、霸道");
leo.put("desc", "狮子座是黄道十二宫的第五宫,代表着创造力和自我表达。");
xingZuoInfo.put("狮子座", leo);
Map<String, String> virgo = new HashMap<>();
virgo.put("dateRange", "8月23日-9月22日");
virgo.put("element", "土象星座");
virgo.put("character", "细心、完美主义、挑剔");
virgo.put("desc", "处女座是黄道十二宫的第六宫,代表着分析和服务。");
xingZuoInfo.put("处女座", virgo);
Map<String, String> libra = new HashMap<>();
libra.put("dateRange", "9月23日-10月23日");
libra.put("element", "风象星座");
libra.put("character", "优雅、公正、犹豫");
libra.put("desc", "天秤座是黄道十二宫的第七宫,代表着平衡和和谐。");
xingZuoInfo.put("天秤座", libra);
Map<String, String> scorpio = new HashMap<>();
scorpio.put("dateRange", "10月24日-11月22日");
scorpio.put("element", "水象星座");
scorpio.put("character", "神秘、执着、多疑");
scorpio.put("desc", "天蝎座是黄道十二宫的第八宫,代表着转化和重生。");
xingZuoInfo.put("天蝎座", scorpio);
Map<String, String> sagittarius = new HashMap<>();
sagittarius.put("dateRange", "11月23日-12月21日");
sagittarius.put("element", "火象星座");
sagittarius.put("character", "乐观、自由、粗心");
sagittarius.put("desc", "射手座是黄道十二宫的第九宫,代表着探索和哲学。");
xingZuoInfo.put("射手座", sagittarius);
Map<String, String> capricorn = new HashMap<>();
capricorn.put("dateRange", "12月22日-1月19日");
capricorn.put("element", "土象星座");
capricorn.put("character", "务实、有责任感、悲观");
capricorn.put("desc", "摩羯座是黄道十二宫的第十宫,代表着成就和责任。");
xingZuoInfo.put("摩羯座", capricorn);
Map<String, String> aquarius = new HashMap<>();
aquarius.put("dateRange", "1月20日-2月18日");
aquarius.put("element", "风象星座");
aquarius.put("character", "独立、创新、叛逆");
aquarius.put("desc", "水瓶座是黄道十二宫的第十一宫,代表着创新和人道主义。");
xingZuoInfo.put("水瓶座", aquarius);
Map<String, String> pisces = new HashMap<>();
pisces.put("dateRange", "2月19日-3月20日");
pisces.put("element", "水象星座");
pisces.put("character", "浪漫、敏感、优柔寡断");
pisces.put("desc", "双鱼座是黄道十二宫的最后一宫,代表着灵性和直觉。");
xingZuoInfo.put("双鱼座", pisces);
Map<String, String> defaultInfo = new HashMap<>();
defaultInfo.put("desc", "未知星座");
Map<String, String> info = xingZuoInfo.getOrDefault(xingZuo, defaultInfo);
data.put("dateRange", info.get("dateRange"));
data.put("element", info.get("element"));
data.put("character", info.get("character"));
@@ -372,10 +380,9 @@ public class ToolController {
data.put("yi", yi);
data.put("ji", ji);
String[] chong = lunar.getDayChong().split(" ");
data.put("chong", chong.length > 0 ? chong[0] : "");
String chong = lunar.getDayChong();
data.put("chong", chong);
data.put("chongGan", lunar.getDayChongGan());
data.put("chongZhi", lunar.getDayChongZhi());
data.put("sha", lunar.getDaySha());
String jieQi = lunar.getJieQi();