diff --git a/src/main/java/xuan/controller/ToolController.java b/src/main/java/xuan/controller/ToolController.java index c03ebd8..92b4fc1 100644 --- a/src/main/java/xuan/controller/ToolController.java +++ b/src/main/java/xuan/controller/ToolController.java @@ -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 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> 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 info = xingZuoInfo.getOrDefault(xingZuo, Map.of("desc", "未知星座")); + Map aries = new HashMap<>(); + aries.put("dateRange", "3月21日-4月19日"); + aries.put("element", "火象星座"); + aries.put("character", "热情、冲动、自信"); + aries.put("desc", "白羊座是黄道十二宫的第一宫,代表着新的开始和生命力。"); + xingZuoInfo.put("白羊座", aries); + + Map taurus = new HashMap<>(); + taurus.put("dateRange", "4月20日-5月20日"); + taurus.put("element", "土象星座"); + taurus.put("character", "稳重、务实、固执"); + taurus.put("desc", "金牛座是黄道十二宫的第二宫,代表着物质和财富。"); + xingZuoInfo.put("金牛座", taurus); + + Map gemini = new HashMap<>(); + gemini.put("dateRange", "5月21日-6月21日"); + gemini.put("element", "风象星座"); + gemini.put("character", "聪明、善变、好奇"); + gemini.put("desc", "双子座是黄道十二宫的第三宫,代表着沟通和交流。"); + xingZuoInfo.put("双子座", gemini); + + Map cancer = new HashMap<>(); + cancer.put("dateRange", "6月22日-7月22日"); + cancer.put("element", "水象星座"); + cancer.put("character", "敏感、顾家、情绪化"); + cancer.put("desc", "巨蟹座是黄道十二宫的第四宫,代表着家庭和情感。"); + xingZuoInfo.put("巨蟹座", cancer); + + Map leo = new HashMap<>(); + leo.put("dateRange", "7月23日-8月22日"); + leo.put("element", "火象星座"); + leo.put("character", "自信、慷慨、霸道"); + leo.put("desc", "狮子座是黄道十二宫的第五宫,代表着创造力和自我表达。"); + xingZuoInfo.put("狮子座", leo); + + Map virgo = new HashMap<>(); + virgo.put("dateRange", "8月23日-9月22日"); + virgo.put("element", "土象星座"); + virgo.put("character", "细心、完美主义、挑剔"); + virgo.put("desc", "处女座是黄道十二宫的第六宫,代表着分析和服务。"); + xingZuoInfo.put("处女座", virgo); + + Map libra = new HashMap<>(); + libra.put("dateRange", "9月23日-10月23日"); + libra.put("element", "风象星座"); + libra.put("character", "优雅、公正、犹豫"); + libra.put("desc", "天秤座是黄道十二宫的第七宫,代表着平衡和和谐。"); + xingZuoInfo.put("天秤座", libra); + + Map scorpio = new HashMap<>(); + scorpio.put("dateRange", "10月24日-11月22日"); + scorpio.put("element", "水象星座"); + scorpio.put("character", "神秘、执着、多疑"); + scorpio.put("desc", "天蝎座是黄道十二宫的第八宫,代表着转化和重生。"); + xingZuoInfo.put("天蝎座", scorpio); + + Map sagittarius = new HashMap<>(); + sagittarius.put("dateRange", "11月23日-12月21日"); + sagittarius.put("element", "火象星座"); + sagittarius.put("character", "乐观、自由、粗心"); + sagittarius.put("desc", "射手座是黄道十二宫的第九宫,代表着探索和哲学。"); + xingZuoInfo.put("射手座", sagittarius); + + Map capricorn = new HashMap<>(); + capricorn.put("dateRange", "12月22日-1月19日"); + capricorn.put("element", "土象星座"); + capricorn.put("character", "务实、有责任感、悲观"); + capricorn.put("desc", "摩羯座是黄道十二宫的第十宫,代表着成就和责任。"); + xingZuoInfo.put("摩羯座", capricorn); + + Map aquarius = new HashMap<>(); + aquarius.put("dateRange", "1月20日-2月18日"); + aquarius.put("element", "风象星座"); + aquarius.put("character", "独立、创新、叛逆"); + aquarius.put("desc", "水瓶座是黄道十二宫的第十一宫,代表着创新和人道主义。"); + xingZuoInfo.put("水瓶座", aquarius); + + Map pisces = new HashMap<>(); + pisces.put("dateRange", "2月19日-3月20日"); + pisces.put("element", "水象星座"); + pisces.put("character", "浪漫、敏感、优柔寡断"); + pisces.put("desc", "双鱼座是黄道十二宫的最后一宫,代表着灵性和直觉。"); + xingZuoInfo.put("双鱼座", pisces); + + Map defaultInfo = new HashMap<>(); + defaultInfo.put("desc", "未知星座"); + + Map 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();