diff --git a/src/main/java/xuan/controller/ZiWeiController.java b/src/main/java/xuan/controller/ZiWeiController.java index b4edf92..68704b6 100644 --- a/src/main/java/xuan/controller/ZiWeiController.java +++ b/src/main/java/xuan/controller/ZiWeiController.java @@ -4,14 +4,45 @@ import org.springframework.web.bind.annotation.*; import xuan.core.ziwei.ZiWei; import xuan.core.ziwei.settings.ZiWeiJiChuSetting; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @RestController @RequestMapping("/api/ziwei") public class ZiWeiController { + private static final Map ZHU_XING_JIE_DU = new HashMap<>(); + private static final Map GONG_WEI_JIE_DU = new HashMap<>(); + + static { + ZHU_XING_JIE_DU.put("紫微", "帝王之星,主权威领导,性格稳重有魄力,适合管理岗位,天生具有统御能力"); + ZHU_XING_JIE_DU.put("天机", "智慧之星,主聪明机敏,善于策划分析,适合参谋顾问,思维活跃多变"); + ZHU_XING_JIE_DU.put("太阳", "光明之星,主外向热情,事业心强,利于公职发展,贵人运旺"); + ZHU_XING_JIE_DU.put("武曲", "财星,主刚毅果断,理财能力强,适合金融商业,财运亨通"); + ZHU_XING_JIE_DU.put("天同", "福星,主温和仁慈,人缘好福气厚,适合服务行业,生活安逸"); + ZHU_XING_JIE_DU.put("廉贞", "桃花星,主才华艺术,感情丰富,适合文艺创作,魅力十足"); + ZHU_XING_JIE_DU.put("天府", "财库星,主稳重守成,善于理财积累,适合财务管理,财源稳定"); + ZHU_XING_JIE_DU.put("太阴", "阴柔之星,主细腻敏感,直觉力强,适合文艺创作,财运平稳"); + ZHU_XING_JIE_DU.put("贪狼", "欲望之星,主多才多艺,交际能力强,适合演艺销售,但需防贪欲"); + ZHU_XING_JIE_DU.put("巨门", "口舌之星,主能言善辩,适合律师教师,但易招是非口舌"); + ZHU_XING_JIE_DU.put("天相", "印星,主正直公正,适合公务员法律,贵人运佳,事业平稳"); + ZHU_XING_JIE_DU.put("天梁", "荫星,主慈悲为怀,适合医疗教育,有长辈贵人,福泽深厚"); + ZHU_XING_JIE_DU.put("七杀", "将星,主刚强果断,适合军警创业,有领导才能,但需防冲动"); + ZHU_XING_JIE_DU.put("破军", "变动之星,主开创冒险,适合创业改革,变动多端,需稳中求进"); + + GONG_WEI_JIE_DU.put("命宫", "代表核心性格、人生基调、先天特质"); + GONG_WEI_JIE_DU.put("兄弟宫", "代表兄弟姐妹关系、同辈交往、合作能力"); + GONG_WEI_JIE_DU.put("夫妻宫", "代表婚姻感情、配偶特质、婚姻质量"); + GONG_WEI_JIE_DU.put("子女宫", "代表子女运势、后代情况、桃花缘分"); + GONG_WEI_JIE_DU.put("财帛宫", "代表财富来源、理财能力、财运起伏"); + GONG_WEI_JIE_DU.put("疾厄宫", "代表健康状况、易患疾病、养生方向"); + GONG_WEI_JIE_DU.put("迁移宫", "代表外出运势、人际交往、贵人运"); + GONG_WEI_JIE_DU.put("交友宫", "代表朋友关系、下属能力、人际网络"); + GONG_WEI_JIE_DU.put("官禄宫", "代表事业发展、职业方向、官运仕途"); + GONG_WEI_JIE_DU.put("田宅宫", "代表房产运势、家庭环境、祖业继承"); + GONG_WEI_JIE_DU.put("福德宫", "代表精神状态、福报厚薄、晚年运势"); + GONG_WEI_JIE_DU.put("父母宫", "代表父母关系、长辈助力、学历背景"); + } + @PostMapping("/paipan") public Map paiPan(@RequestBody ZiWeiRequest request) { Map result = new HashMap<>(); @@ -117,7 +148,8 @@ public class ZiWeiController { data.put("liuNianSuiQianZhuXing", ziWei.getLiuNianSuiQianZhuXing()); data.put("liuNianJiangQianZhuXing", ziWei.getLiuNianJiangQianZhuXing()); - data.put("shiErGongZhuXing", ziWei.getShiErGongZhuXing(false)); + List> shiErGongZhuXing = ziWei.getShiErGongZhuXing(false); + data.put("shiErGongZhuXing", shiErGongZhuXing); data.put("shiErGongZhuXingGuanXi", ziWei.getShiErGongZhuXingGuanXi()); data.put("huaLuXingGongWei", ziWei.getHuaLuXingGongWei()); @@ -145,8 +177,145 @@ public class ZiWeiController { data.put("nextQi", ziWei.getNextQi()); data.put("chuShengQi", ziWei.getChuShengQi()); + List shiErMingGong = ziWei.getShiErMingGong(); + int mingGongIndex = ziWei.getMingGongGongWei() - 1; + List mingGongStars = shiErGongZhuXing.get(mingGongIndex); + + data.put("jieDu", buildJieDu(ziWei, shiErMingGong, shiErGongZhuXing)); + return data; } + + private Map buildJieDu(ZiWei ziWei, List shiErMingGong, List> shiErGongZhuXing) { + Map jieDu = new HashMap<>(); + + int mingGongIndex = ziWei.getMingGongGongWei() - 1; + List mingGongStars = shiErGongZhuXing.get(mingGongIndex); + + List mainStars = new ArrayList<>(); + for (String star : mingGongStars) { + if (ZHU_XING_JIE_DU.containsKey(star)) { + mainStars.add(star); + } + } + + StringBuilder summary = new StringBuilder(); + summary.append("【命盘总览】\n"); + summary.append("命主").append(ziWei.getMingZhu()).append(",身主").append(ziWei.getShenZhu()).append(","); + summary.append("五行局为").append(ziWei.getWuXingJu()).append(","); + summary.append("命宫在").append(ziWei.getMingGongDiZhi()).append("宫"); + + if (!mainStars.isEmpty()) { + summary.append(",命宫主星:").append(String.join("、", mainStars)); + } + summary.append("。"); + + jieDu.put("summary", summary.toString()); + + List> mingGongJieDu = new ArrayList<>(); + for (String star : mingGongStars) { + if (ZHU_XING_JIE_DU.containsKey(star)) { + Map starJieDu = new HashMap<>(); + starJieDu.put("star", star); + starJieDu.put("meaning", ZHU_XING_JIE_DU.get(star)); + mingGongJieDu.add(starJieDu); + } + } + jieDu.put("mingGongStars", mingGongJieDu); + + List> gongWeiJieDuList = new ArrayList<>(); + String[] zhuYaoGongWei = {"命宫", "财帛宫", "官禄宫", "夫妻宫", "迁移宫", "福德宫"}; + + for (String gongWei : zhuYaoGongWei) { + int gongIndex = -1; + for (int i = 0; i < shiErMingGong.size(); i++) { + if (gongWei.equals(shiErMingGong.get(i))) { + gongIndex = i; + break; + } + } + + if (gongIndex >= 0) { + Map gongJieDu = new HashMap<>(); + gongJieDu.put("gongWei", gongWei); + gongJieDu.put("diZhi", ziWei.getShiErGongDiZhi().get(gongIndex)); + gongJieDu.put("meaning", GONG_WEI_JIE_DU.get(gongWei)); + + List gongStars = shiErGongZhuXing.get(gongIndex); + List gongMainStars = new ArrayList<>(); + for (String star : gongStars) { + if (ZHU_XING_JIE_DU.containsKey(star)) { + gongMainStars.add(star); + } + } + gongJieDu.put("stars", gongMainStars); + + gongWeiJieDuList.add(gongJieDu); + } + } + jieDu.put("gongWeiJieDu", gongWeiJieDuList); + + List> siHuaJieDu = new ArrayList<>(); + + Map huaLu = new HashMap<>(); + huaLu.put("type", "化禄"); + huaLu.put("gongWei", ziWei.getHuaLuXingGongWeiJieDu()); + huaLu.put("meaning", "主财运亨通,机遇顺遂,利于求财发展"); + siHuaJieDu.add(huaLu); + + Map huaQuan = new HashMap<>(); + huaQuan.put("type", "化权"); + huaQuan.put("gongWei", ziWei.getHuaQuanXingGongWeiJieDu()); + huaQuan.put("meaning", "主权势掌控,竞争有力,利于事业掌权"); + siHuaJieDu.add(huaQuan); + + Map huaKe = new HashMap<>(); + huaKe.put("type", "化科"); + huaKe.put("gongWei", ziWei.getHuaKeXingGongWeiJieDu()); + huaKe.put("meaning", "主名声学历,贵人相助,利于学业考试"); + siHuaJieDu.add(huaKe); + + Map huaJi = new HashMap<>(); + huaJi.put("type", "化忌"); + huaJi.put("gongWei", ziWei.getHuaJiXingGongWeiJieDu()); + huaJi.put("meaning", "主波折阻滞,需谨慎行事,注意防范风险"); + siHuaJieDu.add(huaJi); + + jieDu.put("siHuaJieDu", siHuaJieDu); + + String advice = generateAdvice(ziWei, mainStars); + jieDu.put("advice", advice); + + return jieDu; + } + + private String generateAdvice(ZiWei ziWei, List mainStars) { + StringBuilder advice = new StringBuilder(); + + advice.append("【人生建议】\n"); + + if (mainStars.contains("紫微") || mainStars.contains("天府")) { + advice.append("命带帝王之星,天生具有领导才能,适合从事管理工作或自主创业。"); + } else if (mainStars.contains("七杀") || mainStars.contains("破军")) { + advice.append("命带将星变动之星,性格刚毅果断,适合开创性事业,但需注意稳中求进。"); + } else if (mainStars.contains("天机") || mainStars.contains("太阴")) { + advice.append("命带智慧之星,思维敏捷细腻,适合从事策划、咨询、文艺创作等工作。"); + } else if (mainStars.contains("太阳") || mainStars.contains("天相")) { + advice.append("命带光明之星,外向正直,适合从事公职、法律、教育等事业。"); + } else if (mainStars.contains("武曲") || mainStars.contains("贪狼")) { + advice.append("命带财星欲望之星,善于理财交际,适合金融、销售、演艺等行业。"); + } else { + advice.append("命格独特,各有千秋,宜发挥自身优势,扬长避短。"); + } + + advice.append("\n\n【四化飞星指引】\n"); + advice.append(ziWei.getHuaLuXingGongWeiJieDu()).append("\n"); + advice.append(ziWei.getHuaQuanXingGongWeiJieDu()).append("\n"); + advice.append(ziWei.getHuaKeXingGongWeiJieDu()).append("\n"); + advice.append(ziWei.getHuaJiXingGongWeiJieDu()); + + return advice.toString(); + } public static class ZiWeiRequest { private String name; diff --git a/xuan-deduct-uniapp/src/pages.json b/xuan-deduct-uniapp/src/pages.json index 8c882c2..8189c0b 100644 --- a/xuan-deduct-uniapp/src/pages.json +++ b/xuan-deduct-uniapp/src/pages.json @@ -3,7 +3,7 @@ { "path": "pages/index/index", "style": { - "navigationBarTitleText": "命理测算", + "navigationBarTitleText": "玄机排盘", "navigationBarBackgroundColor": "#DB2777", "navigationBarTextStyle": "white", "navigationStyle": "custom" @@ -12,7 +12,7 @@ { "path": "pages/bazi/bazi", "style": { - "navigationBarTitleText": "四柱八字", + "navigationBarTitleText": "八字排盘", "navigationBarBackgroundColor": "#DC2626", "navigationBarTextStyle": "white" } @@ -61,15 +61,7 @@ "path": "pages/qimen/qimen", "style": { "navigationBarTitleText": "奇门遁甲排盘", - "navigationBarBackgroundColor": "#6366F1", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/qimen/result", - "style": { - "navigationBarTitleText": "奇门遁甲命盘", - "navigationBarBackgroundColor": "#6366F1", + "navigationBarBackgroundColor": "#D97706", "navigationBarTextStyle": "white" } }, @@ -104,43 +96,11 @@ "navigationBarBackgroundColor": "#7C3AED", "navigationBarTextStyle": "white" } - }, - { - "path": "pages/zhanxing/zhanxing", - "style": { - "navigationBarTitleText": "占星术", - "navigationBarBackgroundColor": "#9333EA", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/zhanxing/result", - "style": { - "navigationBarTitleText": "星盘解析", - "navigationBarBackgroundColor": "#9333EA", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/taluo/taluo", - "style": { - "navigationBarTitleText": "塔罗牌占卜", - "navigationBarBackgroundColor": "#8B5CF6", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/taluo/result", - "style": { - "navigationBarTitleText": "塔罗牌解读", - "navigationBarBackgroundColor": "#8B5CF6", - "navigationBarTextStyle": "white" - } } ], "globalStyle": { "navigationBarTextStyle": "white", - "navigationBarTitleText": "命理测算", + "navigationBarTitleText": "玄机排盘", "navigationBarBackgroundColor": "#DB2777", "backgroundColor": "#FDF2F8" } diff --git a/xuan-deduct-uniapp/src/pages/ziwei/result.vue b/xuan-deduct-uniapp/src/pages/ziwei/result.vue index ece1161..c5c2f31 100644 --- a/xuan-deduct-uniapp/src/pages/ziwei/result.vue +++ b/xuan-deduct-uniapp/src/pages/ziwei/result.vue @@ -1,85 +1,126 @@