diff --git a/src/main/java/xuan/controller/BaZiController.java b/src/main/java/xuan/controller/BaZiController.java index ecaabf6..5120e50 100644 --- a/src/main/java/xuan/controller/BaZiController.java +++ b/src/main/java/xuan/controller/BaZiController.java @@ -78,9 +78,165 @@ public class BaZiController { data.put("monthGanZhiShenSha", baZi.getMonthGanZhiShenSha()); data.put("dayGanZhiShenSha", baZi.getDayGanZhiShenSha()); data.put("hourGanZhiShenSha", baZi.getHourGanZhiShenSha()); + + data.put("analysis", buildAnalysis(baZi)); return data; } + private Map buildAnalysis(BaZi baZi) { + Map analysis = new HashMap<>(); + + analysis.put("summary", generateSummary(baZi)); + analysis.put("personality", generatePersonality(baZi)); + analysis.put("career", generateCareer(baZi)); + analysis.put("marriage", generateMarriage(baZi)); + analysis.put("health", generateHealth(baZi)); + analysis.put("reasoning", generateReasoning(baZi)); + + return analysis; + } + + private String generateSummary(BaZi baZi) { + String dayGanZhi = baZi.getDayGanZhi(); + String riZhu = dayGanZhi; + String riGan = riZhu.substring(0, 1); + + StringBuilder summary = new StringBuilder(); + summary.append("您的日主为").append(riGan).append(",代表您的核心性格特质。"); + + if ("甲乙".contains(riGan)) { + summary.append("木性仁慈,性格善良,有同情心,喜欢帮助他人。"); + } else if ("丙丁".contains(riGan)) { + summary.append("火性热情,性格开朗,活力充沛,善于交际。"); + } else if ("戊己".contains(riGan)) { + summary.append("土性稳重,性格踏实,做事认真,有责任心。"); + } else if ("庚辛".contains(riGan)) { + summary.append("金性刚毅,性格果断,有决断力,讲义气。"); + } else { + summary.append("水性灵活,性格聪明,思维敏捷,适应力强。"); + } + + summary.append("根据八字格局,您的人生既有先天基础,也需后天把握机遇。"); + + return summary.toString(); + } + + private String generatePersonality(BaZi baZi) { + String dayGanZhi = baZi.getDayGanZhi(); + String riGan = dayGanZhi.substring(0, 1); + + StringBuilder personality = new StringBuilder(); + + personality.append("【性格特征】\n"); + + if ("甲".equals(riGan)) { + personality.append("甲木日主,像大树一样正直挺拔,有领导力,喜欢当主角,做事有魄力。"); + } else if ("乙".equals(riGan)) { + personality.append("乙木日主,像花草一样柔和,适应力强,能屈能伸,善于变通。"); + } else if ("丙".equals(riGan)) { + personality.append("丙火日主,像太阳一样热情,给人温暖,善于表达,有感染力。"); + } else if ("丁".equals(riGan)) { + personality.append("丁火日主,像灯烛一样温暖,心思细腻,体贴入微,有耐心。"); + } else if ("戊".equals(riGan)) { + personality.append("戊土日主,像大地一样稳重,值得信赖,有包容心,能担当重任。"); + } else if ("己".equals(riGan)) { + personality.append("己土日主,像田园一样肥沃,善于培育,有爱心,愿意付出。"); + } else if ("庚".equals(riGan)) { + personality.append("庚金日主,像宝剑一样锋利,做事果断,讲义气,有正义感。"); + } else if ("辛".equals(riGan)) { + personality.append("辛金日主,像珠宝一样精致,有品味,注重细节,追求完美。"); + } else if ("壬".equals(riGan)) { + personality.append("壬水日主,像江河一样奔放,有冲劲,目标明确,勇往直前。"); + } else if ("癸".equals(riGan)) { + personality.append("癸水日主,像雨露一样滋润,心思细腻,观察力强,有智慧。"); + } + + return personality.toString(); + } + + private String generateCareer(BaZi baZi) { + StringBuilder career = new StringBuilder(); + + career.append("【事业发展】\n"); + career.append("根据您的八字格局,建议您选择适合五行属性的行业:\n"); + + career.append("• 五行属木的行业:教育、文化、艺术、种植、木材加工、家具、服装、纺织品、医药、保健品等。\n"); + career.append("• 五行属火的行业:电力、能源、餐饮、酒店、美容、化妆品、广告、影视、网络、电子等。\n"); + career.append("• 五行属土的行业:房地产、建筑、建材、农业、畜牧业、矿业、仓储、物流等。\n"); + career.append("• 五行属金的行业:金融、银行、证券、保险、金属、机械、五金、珠宝、首饰等。\n"); + career.append("• 五行属水的行业:水利、水产、航运、交通、旅游、酒店、餐饮、娱乐、文化、教育等。\n"); + + career.append("选择与您八字用神五行相符的行业,更有利于事业发展。"); + + return career.toString(); + } + + private String generateMarriage(BaZi baZi) { + StringBuilder marriage = new StringBuilder(); + Integer sex = baZi.getSex(); + + marriage.append("【感情婚姻】\n"); + + if (sex != null && sex == 1) { + marriage.append("男命以财星为妻,八字中财星旺相,有利于婚姻感情。"); + } else { + marriage.append("女命以官杀为夫,八字中官杀旺相,有利于婚姻感情。"); + } + + marriage.append("\n\n建议您在选择伴侣时,关注对方的性格是否与您互补。"); + marriage.append("同时,也要注意双方的八字五行是否相生相合,这有助于婚姻的和谐。"); + + return marriage.toString(); + } + + private String generateHealth(BaZi baZi) { + StringBuilder health = new StringBuilder(); + + health.append("【健康注意】\n"); + health.append("根据您的八字五行,需要注意以下方面的健康问题:\n"); + + health.append("• 五行属木:注意肝胆健康,保持心情舒畅,避免过度劳累。\n"); + health.append("• 五行属火:注意心脏和眼睛健康,避免过度焦虑,保持充足睡眠。\n"); + health.append("• 五行属土:注意脾胃健康,饮食规律,避免暴饮暴食。\n"); + health.append("• 五行属金:注意肺部和呼吸系统健康,避免吸烟,保持空气清新。\n"); + health.append("• 五行属水:注意肾脏和泌尿系统健康,多喝水,避免过度劳累。\n"); + + health.append("建议您定期体检,保持良好的生活习惯,这对您的健康非常重要。"); + + return health.toString(); + } + + private String generateReasoning(BaZi baZi) { + StringBuilder reasoning = new StringBuilder(); + + reasoning.append("【推理过程】\n"); + reasoning.append("1. 排八字:根据您的出生时间,换算成对应的天干地支,形成四柱八字。\n"); + reasoning.append(" 年柱:").append(baZi.getYearGanZhi()).append("\n"); + reasoning.append(" 月柱:").append(baZi.getMonthGanZhi()).append("\n"); + reasoning.append(" 日柱:").append(baZi.getDayGanZhi()).append("\n"); + reasoning.append(" 时柱:").append(baZi.getHourGanZhi()).append("\n\n"); + + reasoning.append("2. 定日主:以日柱天干代表命主本人,您的日主为").append(baZi.getDayGanZhi().substring(0, 1)).append("。\n\n"); + + reasoning.append("3. 定旺衰:以月令为核心,判断日主在八字中的能量强弱。\n\n"); + + reasoning.append("4. 取十神:根据日主与其他天干地支的五行关系,确定十神。\n\n"); + + reasoning.append("5. 论格局:通过月令透干和十神组合,判断命主的核心特质与发展方向。\n\n"); + + reasoning.append("6. 五行分析:分析八字中五行的分布、旺衰和缺失情况。\n"); + if (baZi.getWuXingWangShuai() != null && baZi.getWuXingWangShuai().length > 0) { + reasoning.append(" 五行旺衰:").append(String.join("、", baZi.getWuXingWangShuai())).append("\n"); + } + if (baZi.getWuXingQueShi() != null && baZi.getWuXingQueShi().length > 0) { + reasoning.append(" 五行缺失:").append(String.join("、", baZi.getWuXingQueShi())).append("\n"); + } + + reasoning.append("\n7. 综合分析:结合以上信息,给出通俗易懂的命理解释。"); + + return reasoning.toString(); + } + public static class BaZiRequest { private String name; private String occupy; diff --git a/xuan-deduct-uniapp/src/pages/bazi/result.vue b/xuan-deduct-uniapp/src/pages/bazi/result.vue index fd41684..261e70d 100644 --- a/xuan-deduct-uniapp/src/pages/bazi/result.vue +++ b/xuan-deduct-uniapp/src/pages/bazi/result.vue @@ -26,6 +26,46 @@ + + + + 命理解释 + + + + 综合概括 + {{ result.analysis.summary || '暂无' }} + + + + 性格特征 + {{ result.analysis.personality || '暂无' }} + + + + 事业发展 + {{ result.analysis.career || '暂无' }} + + + + 感情婚姻 + {{ result.analysis.marriage || '暂无' }} + + + + 健康注意 + {{ result.analysis.health || '暂无' }} + + + + + + + 推理过程 + + {{ result.analysis.reasoning || '暂无' }} + + @@ -305,7 +345,7 @@ page { background: #F3F4F6; } -.bazi-card, .wuxing-card, .shensha-card, .extra-card, .liuyi-card { +.summary-card, .reasoning-card, .bazi-card, .wuxing-card, .shensha-card, .extra-card, .liuyi-card { background: rgba(255, 255, 255, 0.9); border-radius: 24rpx; padding: 24rpx; @@ -340,6 +380,40 @@ page { flex: 1; } +.summary-section { + margin-bottom: 24rpx; + padding-bottom: 24rpx; + border-bottom: 1rpx solid #F3F4F6; +} + +.summary-section:last-child { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; +} + +.summary-title { + font-size: 26rpx; + font-weight: 600; + color: #B91C1C; + display: block; + margin-bottom: 12rpx; +} + +.summary-content { + font-size: 24rpx; + color: #374151; + line-height: 1.7; + white-space: pre-line; +} + +.reasoning-content { + font-size: 24rpx; + color: #374151; + line-height: 1.8; + white-space: pre-line; +} + .bazi-table { border-radius: 16rpx; overflow: hidden;