zhangbin il y a 1 an
Parent
commit
f952d6b7b3

+ 12 - 7
xpgx-admin/src/main/java/com/miaxis/app/controller/gan/GanZhiController.java

@@ -94,9 +94,16 @@ public class GanZhiController extends BaseController {
         List<GanZhiRowVo> ganZhiRowVoList = ganZhiService.selectGanZhiRowVoList(ganZhiDto); //拼装
         Map<String, Integer> fiveCountMap = ganZhiService.getGanZhiRowVoCount(ganZhiRowVoList, reportMap); //五行数量
         Map<String, Object> riYuanQrMap = ganZhiService.getRiYuanQr(ganZhiRowVoList, fiveCountMap);  //查出日元强弱
-        String xifangWei = ganZhiService.getXiFangWei(ganZhiDaYunVo.getLunar()); //喜用的方位
-        Map<String, String> chenGuMap = ganZhiService.getChenGu(ganZhiDaYunVo.getLunar(), ganZhiDto.getSex());
 
+        Map<Integer, String> xifangWeiMap = null;
+        if (ganZhiDaYunVo.getLunarAdjust() != null) {
+            xifangWeiMap = ganZhiService.getXiFangWei(ganZhiDaYunVo.getLunarAdjust()); //喜用的方位
+        } else {
+            xifangWeiMap = ganZhiService.getXiFangWei(ganZhiDaYunVo.getLunar()); //喜用的方位
+        }
+
+        //称骨算命,只需要用原来的
+        Map<String, String> chenGuMap = ganZhiService.getChenGu(ganZhiDaYunVo.getLunar(), ganZhiDto.getSex());
 
         String guiren = ganZhiService.getGuiren(ganZhiRowVoList);  //贵人
 
@@ -118,11 +125,10 @@ public class GanZhiController extends BaseController {
 
         String caiYun = ganZhiService.getCaiYun(ganZhiRowVoList, riYuanQrMap, shiShenCountMap);
 
-        String qingGan = ganZhiService.getQingGanYun(ganZhiRowVoList,riYuanQrMap, shiShenCountMap, fiveCountMap, geju); //情感
+        String qingGan = ganZhiService.getQingGanYun(ganZhiRowVoList, riYuanQrMap, shiShenCountMap, fiveCountMap, geju); //情感
         String piQi = ganZhiService.getPiQi(ganZhiRowVoList); //脾气
 
 
-
         GanZhiVo ganZhiVo = new GanZhiVo();
         ganZhiVo.setNongDay(lunar.getYear() + "年(生肖" + lunar.getYearShengXiao() + ")" + lunar.getMonth() + "月" + lunar.getDay() + "日" + lunar.getTime() + "时");
         ganZhiVo.setBirthday(ganZhiDto.getBirthday());
@@ -141,17 +147,16 @@ public class GanZhiController extends BaseController {
         ganZhiVo.setDaYunList(ganZhiDaYunVo.getDaYunList());
         ganZhiVo.setGeJuMap(geJuMap);
         ganZhiVo.setGuoGuanMap(guoGuanMap);
-        ganZhiVo.setXiFangWei(xifangWei);
+        ganZhiVo.setXiFangWei(xifangWeiMap);
         ganZhiVo.setIndustry(industry);
         ganZhiVo.setGuiren(guiren);
         ganZhiVo.setChenGuMap(chenGuMap);
         ganZhiVo.setPiQi(piQi);
         ganZhiVo.setQingGan(qingGan);
 
-        reportMap.put("财运",caiYun);
+        reportMap.put("财运", caiYun);
         ganZhiVo.setReportMap(reportMap);
 
-
         // 输出结果
         return Response.success(ganZhiVo);
     }

+ 60 - 0
xpgx-admin/src/test/java/com/miaxis/test/Test3.java

@@ -0,0 +1,60 @@
+package com.miaxis.test;
+
+import com.miaxis.common.config.ShiShenConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Test3 {
+
+
+    public static void main(String[] args) {
+
+        String targetDizhi = null;
+
+        int day = 32;
+        ShiShenConfig shiShenConfig = new ShiShenConfig();
+        shiShenConfig.init();
+
+        List<String> circularList = new ArrayList<String>();
+        circularList.addAll(shiShenConfig.getDizhi());
+        // 指定要重复的次数
+        int repeatCount = 4;
+        int index = 0;
+        boolean isFind = false;
+        // 当作为圆形列表使用
+        for (int i = 0; i < repeatCount; i++) {
+            // 循环输出列表元素
+            for (String element : circularList) {
+                if("亥".equals(element)) {
+                    isFind = true;
+                }
+                if(isFind) {
+                    index++;
+                }
+                if(index==day) {
+                    System.out.println("找到对应的地支"+element);
+                    targetDizhi=element;
+                    break;
+                }
+            }
+            if(index==day) {
+                break;
+            }
+            //System.out.println(); // 换行
+            // 将列表的最后一个元素移到列表的开头
+            String lastElement = circularList.remove(circularList.size() - 1);
+            circularList.add(0, lastElement);
+        }
+
+        String fangWeiA = shiShenConfig.getDizhiFangWei().get(targetDizhi);
+        String fangWeiB = shiShenConfig.getFangWeiDui().get(fangWeiA);
+
+        System.out.println("你的配偶和你的方位是"+fangWeiA+"————"+fangWeiB+"(你们的出生地的家为准,两点连线。)");
+
+    }
+}
+
+
+

+ 46 - 4
xpgx-common/src/main/java/com/miaxis/common/config/ShiShenConfig.java

@@ -136,13 +136,17 @@ public class ShiShenConfig {
     //长相朴素
     private final List<String> zhangXiangCha = new ArrayList<String>();
 
-    //五行
-    //private final List<String> five = new ArrayList<String>();
-
     //配偶比自己年龄大还是年龄小
     private final Map<String,String> peiouOld = new TreeMap<String, String>();
 
+    //12地支
+    private final List<String> dizhi = new ArrayList<String>();
+
+    //12地支方位
+    private final Map<String, String> dizhiFangWei = new TreeMap<String, String>();
 
+    //方位对向
+    private final Map<String, String> fangWeiDui = new TreeMap<String, String>();
 
     @PostConstruct
     public void init() {
@@ -1232,7 +1236,7 @@ public class ShiShenConfig {
 
         peiouOld.put("伤官","伤官代表了外向才华和才气的发挥,性格外向多情,多才多艺,往往不受世谷礼法的约束,常常违返伦理,不授受长辈批评,我行我素,因此一般来说伤官旺的人,特别喜欢接近年龄差距大的人,一般来说你的另一半年龄要比你大。");
         peiouOld.put("食神","食神虽没有伤官的那种叛逆,但也不喜欢受到束缚,可以说不论男女都不喜欢官杀的克制,会比较喜欢选择年龄差距大的人来相处。");
-        peiouOld.put("偏财","偏财个性慷慨而圆滑,风流多情,特别是男生,容易接触外面的女性,这些年来的包二奶和婚外情很多是一些贪财旺而透合的人,因些偏财旺的人,其配偶的");
+        peiouOld.put("偏财","偏财个性慷慨而圆滑,风流多情,特别是男生,容易接触外面的女性,这些年来的包二奶和婚外情很多是一些贪财旺而透合的人,因些偏财旺的人,其配偶的年龄一般比自己小很多岁。");
         peiouOld.put("七杀","七杀代表了权威和冒险,有魄力,但也有刚愎自用的一面,在女生中七杀为夫星,适合找年长的丈夫,用兄长般爱护弟妹的感情,使感情上更充实,否则在你的生涯中,在感情方面难免多有纷争或波折,正因为七杀有冒险并且独断专行的一面,反传统,因此你的配偶和你之间的年龄会有较大的差距,对方年龄上会比你大很多。");
         peiouOld.put("偏印","偏印代表学士才华,虽然十神有偏印的人思想带点奇怪,挑选配偶有点与众不同,不过偏印是克制食神和伤官的,所以你的配偶年龄和你之间差距是比较小的,你们之间一般相差2-3岁。");
         peiouOld.put("劫财","劫财代表对外的感情,经常隐藏自己的真面目,自我本性潜在,是一种复杂的性格,男人婚后对妻子不够体贴,对外面女人却慷慨。因此寻找配偶的年龄不宜太小,但也不宜太大,2-3岁比较适合。");
@@ -1240,6 +1244,44 @@ public class ShiShenConfig {
         peiouOld.put("正官","正官代表地位名望,约束力,做事一板一眼,因此正官较为成熟,你和配偶的年龄差距也不会很大,而你往往会有比配偶大的倾向。");
         peiouOld.put("正财","正财重视信用,勤劳节俭,安守本分,因此你和配偶年龄差距会很小,同岁或大一岁左右。");
         peiouOld.put("比肩","比肩代表着对内的感情友谊,性情光明,不过六亲缘分浅薄,男女都不宜早婚,配偶年龄差距也不会很大,一般是在一两岁之间。");
+
+        dizhi.add("子");
+        dizhi.add("丑");
+        dizhi.add("寅");
+        dizhi.add("卯");
+        dizhi.add("辰");
+        dizhi.add("巳");
+        dizhi.add("午");
+        dizhi.add("未");
+        dizhi.add("申");
+        dizhi.add("酉");
+        dizhi.add("戌");
+        dizhi.add("亥");
+
+        dizhiFangWei.put("子","北");
+        dizhiFangWei.put("丑","东北");
+        dizhiFangWei.put("寅","东北");
+        dizhiFangWei.put("卯","东");
+        dizhiFangWei.put("辰","东南");
+        dizhiFangWei.put("巳","东南");
+        dizhiFangWei.put("午","南");
+        dizhiFangWei.put("未","西南");
+        dizhiFangWei.put("申","西南");
+        dizhiFangWei.put("酉","西");
+        dizhiFangWei.put("戌","西北");
+        dizhiFangWei.put("亥","西北");
+
+        fangWeiDui.put("北","南");
+        fangWeiDui.put("南","北");
+        fangWeiDui.put("西","东");
+        fangWeiDui.put("东","西");
+        fangWeiDui.put("东北","西南");
+        fangWeiDui.put("西南","东北");
+        fangWeiDui.put("东南","西北");
+        fangWeiDui.put("西北","东南");
+
+
+
     }
 
 

+ 1 - 1
xpgx-service/src/main/java/com/miaxis/gan/service/IGanZhiService.java

@@ -104,7 +104,7 @@ public interface IGanZhiService extends IService<GanZhi>{
 
     Map<Integer, String> getGuo3Guan(List<GanZhiRowVo> list, String qr);
 
-    String getXiFangWei(Lunar lunar);
+    Map<Integer, String> getXiFangWei(Lunar lunar);
 
     String getIndustry(Map<String, Object> riYuanQrMap,String geju);
 

+ 144 - 57
xpgx-service/src/main/java/com/miaxis/gan/service/impl/GanZhiServiceImpl.java

@@ -708,27 +708,27 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
                 ganZhiDto.setMonthGan(lunar2.getMonthGan());
                 ganZhiDto.setMonthZhi(lunar2.getMonthZhi());
                 System.out.println(lunar2.getYearGan() + "," + lunar2.getYearZhi() + "," + lunar2.getMonthGan() + "," + lunar2.getMonthZhi() + "," + lunar2.getDayGan() + "," + lunar2.getDayZhi() + "," + lunar2.getTimeGan() + "," + lunar2.getTimeZhi());
-
+                ganZhiDaYunVo.setLunarAdjust(lunar2);
             }
         }
         System.out.println(ganZhiDto.getYearGan() + "," + ganZhiDto.getYearZhi() + "," + ganZhiDto.getMonthGan() + "," + ganZhiDto.getMonthZhi() + "," + ganZhiDto.getDayGan() + "," + ganZhiDto.getDayZhi() + "," + ganZhiDto.getTimeGan() + "," + ganZhiDto.getTimeZhi());
 
 
         //在子时生的人,系统直接算到下一天
-//        int hours = d1.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalTime().getHour();
-//        if (hours >= 23 || hours < 0) {
-//            //判断输入的时间是否是23点以后
-//            Calendar calendar = Calendar.getInstance();
-//            calendar.setTime(d1);
-//            calendar.add(Calendar.HOUR, 1);
-//            Date d3 = calendar.getTime();
-//            //重新导入
-//            Lunar lunar3 = Lunar.fromDate(d3);
-//            ganZhiDto.setDayGan(lunar3.getDayGan());
-//            ganZhiDto.setDayZhi(lunar3.getDayZhi());
-//            ganZhiDaYunVo.setLunar(lunar3);
-//            System.out.println(lunar3.getYearGan() + "," + lunar3.getYearZhi() + "," + lunar3.getMonthGan() + "," + lunar3.getMonthZhi() + "," + lunar3.getDayGan() + "," + lunar3.getDayZhi() + "," + lunar3.getTimeGan() + "," + lunar3.getTimeZhi());
-//        }
+        int hours = d1.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalTime().getHour();
+        if (hours >= 23 || hours < 0) {
+            //判断输入的时间是否是23点以后
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(d1);
+            calendar.add(Calendar.HOUR, 1);
+            Date d3 = calendar.getTime();
+            //重新导入
+            Lunar lunar3 = Lunar.fromDate(d3);
+            ganZhiDto.setDayGan(lunar3.getDayGan());
+            ganZhiDto.setDayZhi(lunar3.getDayZhi());
+            ganZhiDaYunVo.setLunarAdjust(lunar3);
+            System.out.println(lunar3.getYearGan() + "," + lunar3.getYearZhi() + "," + lunar3.getMonthGan() + "," + lunar3.getMonthZhi() + "," + lunar3.getDayGan() + "," + lunar3.getDayZhi() + "," + lunar3.getTimeGan() + "," + lunar3.getTimeZhi());
+        }
 
 
         if (daYun == 1) { //大运顺
@@ -1669,16 +1669,19 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
 
     @Override
-    public String getXiFangWei(Lunar lunar) {
-        String str = lunar.toFullString();
-        String[] s = str.split(" ");
-        StringBuffer fangWei = new StringBuffer();
+    public Map<Integer, String> getXiFangWei(Lunar lunar) {
+        int x = 0;  //序号
 
+        Map<Integer, String> xiFangMap = new TreeMap<Integer, String>();
+        String str = lunar.toFullString();
         str = str.substring(str.indexOf("喜神方位"));
+        String[] xiFang = str.split(" ");
 
-        System.out.println(str);
+        for (int i = 0; i < xiFang.length; i++) {
+            xiFangMap.put(x++, xiFang[i]);
+        }
 
-        return str;
+        return xiFangMap;
 
     }
 
@@ -1851,68 +1854,101 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         List<String> xiYongOld = (List<String>) riYuanQrMap.get("xiYongOld");
         List<String> xiYongShiShen = (List<String>) riYuanQrMap.get("xiYongShiShen");
 
+        int x = 0;  //序号
+        Map<Integer, String> qiangGanMap = new TreeMap<Integer, String>();
         StringBuffer qiangGanContent = new StringBuffer();
 
         String sex = ganZhiRowVoList.get(4).getShiShen1();
         String five = ganZhiRowVoList.get(5).getFive();
         if ("元男".equals(sex)) {
+            StringBuffer zhengCaiContent = new StringBuffer();
             //正财、偏财为男人的老婆
             int zhengCaiCount = shiShenCountMap.get("正财");
             int pianCaiCount = shiShenCountMap.get("偏财");
             int total = zhengCaiCount + pianCaiCount;
             if (total == 0) {
+                zhengCaiContent.append("男人四柱无财,找老婆会比较困难,自己也可能不太想结婚。");
                 qiangGanContent.append("男人四柱无财,找老婆会比较困难,自己也可能不太想结婚。");
             }
 
             if (qr.contains("强")) {
+                zhengCaiContent.append("男人四柱无财,找老婆会比较困难,自己也可能不太想结婚。");
                 qiangGanContent.append("夫妻星为喜用,婚后夫妻关系还不错;");
             } else if (qr.contains("弱")) {
+                zhengCaiContent.append("男人四柱无财,找老婆会比较困难,自己也可能不太想结婚。");
                 qiangGanContent.append("夫妻星为忌凶,婚后夫妻关系不是很幸福;");
             }
             if (qr.contains("强") && xiYongOld.contains(five)) {  //强喜
+                zhengCaiContent.append("而且能够得到老婆家族的帮助。");
                 qiangGanContent.append("而且能够得到老婆家族的帮助。");
             } else if (qr.contains("弱") && xiYongOld.contains(five)) {  //弱喜
+                zhengCaiContent.append("不过是能够得到老婆家族的帮助。");
                 qiangGanContent.append("不过是能够得到老婆家族的帮助。");
             } else if (qr.contains("强") && !xiYongOld.contains(five)) {  //强忌
+                zhengCaiContent.append("但能不太能够得到老婆家族的帮助。");
                 qiangGanContent.append("但能不太能够得到老婆家族的帮助。");
             } else if (qr.contains("弱") && !xiYongOld.contains(five)) {   //弱忌
+                zhengCaiContent.append("也能不太能够得到老婆家族的帮助。");
                 qiangGanContent.append("也能不太能够得到老婆家族的帮助。");
             }
 
+            if(zhengCaiContent.toString().length()>0) {     //如果有内容写进去
+                qiangGanMap.put(x++, zhengCaiContent.toString());
+            }
+
+
+            //夫妻宫落 劫财、伤官、偏印
+            StringBuffer jieCaiContent = new StringBuffer();
             String dayGanShiShen1 = ganZhiRowVoList.get(5).getShiShen1();
             String dayGanShiShen2 = ganZhiRowVoList.get(5).getShiShen2();
             String dayGanShiShen3 = ganZhiRowVoList.get(5).getShiShen3();
 
             if (dayGanShiShen1 != null && dayGanShiShen1.contains("劫财")) {
+                jieCaiContent.append("在夫妻宫本气坐落劫财,有克妻之相,会影响到夫妻感情。");
                 qiangGanContent.append("在夫妻宫本气坐落劫财,有克妻之相,会影响到夫妻感情。");
             }
             if (dayGanShiShen2 != null && dayGanShiShen2.contains("劫财")) {
+                jieCaiContent.append("在夫妻宫中气坐落劫财,有中度克妻之相,会影响到夫妻感情。");
                 qiangGanContent.append("在夫妻宫中气坐落劫财,有中度克妻之相,会影响到夫妻感情。");
             }
             if (dayGanShiShen3 != null && dayGanShiShen3.contains("劫财")) {
+                jieCaiContent.append("在夫妻宫余气坐落劫财,有轻微克妻之相,会影响到夫妻感情。");
                 qiangGanContent.append("在夫妻宫余气坐落劫财,有轻微克妻之相,会影响到夫妻感情。");
             }
 
             if (dayGanShiShen1 != null && dayGanShiShen1.contains("伤官")) {
+                jieCaiContent.append("在夫妻宫本气坐落劫财,夫妻不和睦之相。");
                 qiangGanContent.append("在夫妻宫本气坐落劫财,夫妻不和睦之相。");
             }
             if (dayGanShiShen2 != null && dayGanShiShen2.contains("伤官")) {
+                jieCaiContent.append("在夫妻宫中气坐落劫财,夫妻不和睦之相。");
                 qiangGanContent.append("在夫妻宫中气坐落劫财,夫妻不和睦之相。");
             }
             if (dayGanShiShen3 != null && dayGanShiShen3.contains("伤官")) {
+                jieCaiContent.append("在夫妻宫余气坐落劫财,夫妻不和睦之相。");
                 qiangGanContent.append("在夫妻宫余气坐落劫财,夫妻不和睦之相。");
             }
 
             if (dayGanShiShen1 != null && dayGanShiShen1.contains("偏印")) {
+                jieCaiContent.append("在夫妻宫本气坐落偏印,夫妻不和睦之相。");
                 qiangGanContent.append("在夫妻宫本气坐落偏印,夫妻不和睦之相。");
             }
             if (dayGanShiShen2 != null && dayGanShiShen2.contains("偏印")) {
+                jieCaiContent.append("在夫妻宫中气坐落偏印,夫妻不和睦之相。");
                 qiangGanContent.append("在夫妻宫中气坐落偏印,夫妻不和睦之相。");
             }
             if (dayGanShiShen3 != null && dayGanShiShen3.contains("偏印")) {
+                jieCaiContent.append("在夫妻宫余气坐落偏印,夫妻不和睦之相。");
                 qiangGanContent.append("在夫妻宫余气坐落偏印,夫妻不和睦之相。");
             }
 
+            if(jieCaiContent.toString().length()>0) {     //如果有内容写进去
+                qiangGanMap.put(x++, jieCaiContent.toString());
+            }
+
+
+            //全阴全阳
+            StringBuffer quangContent = new StringBuffer();
             String yearGan = ganZhiRowVoList.get(0).getName();
             String monthGan = ganZhiRowVoList.get(2).getName();
             String dayGan = ganZhiRowVoList.get(4).getName();
@@ -1924,9 +1960,16 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             String timeGanYY = shiShenConfig.getTianGanYY().get(timeGan);
 
             if ("阴".equals(yearGanYY) && "阴".equals(monthGanYY) && "阴".equals(dayGanYY) && "阴".equals(timeGanYY)) {
+                quangContent.append("男性四柱全阴,体现出较女性化,可能有同性取向的趋向。");
                 qiangGanContent.append("男性四柱全阴,体现出较女性化,可能有同性取向的趋向。");
             }
 
+            if(quangContent.toString().length()>0) {     //如果有内容写进去
+                qiangGanMap.put(x++, quangContent.toString());
+            }
+
+
+            StringBuffer fuqiGongBiContent = new StringBuffer();
             int fuqiGongBiCount = 0;  //夫妻宫比肩 劫财的数量
             for (int i = 2; i < ganZhiRowVoList.size(); i++) {
                 String shiShen1 = ganZhiRowVoList.get(i).getShiShen1();
@@ -1944,9 +1987,13 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             }
 
             if (fuqiGongBiCount >= 3) {
+                fuqiGongBiContent.append("男命夫妻宫周围过多的比劫,可能出现夫妻感情不和睦的情况。");
                 qiangGanContent.append("男命夫妻宫周围过多的比劫,可能出现夫妻感情不和睦的情况。");
             }
 
+            if(fuqiGongBiContent.toString().length()>0) {     //如果有内容写进去
+                qiangGanMap.put(x++, fuqiGongBiContent.toString());
+            }
 
         } else if ("元女".equals(sex)) {
             //正官、七杀为女人的老公
@@ -2124,36 +2171,36 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
         if ("元男".equals(sex)) {
             String keFive = ShiShenConfig.getKeRelationship(ganZhiRowVoList.get(4).getFive()); //我克者为财
-            if("火".equals(keFive)) {
+            if ("火".equals(keFive)) {
                 qiangGanContent.append("夫妻星为火,配偶外形亮丽面红润。");
             }
-            if("木".equals(keFive)) {
+            if ("木".equals(keFive)) {
                 qiangGanContent.append("夫妻星为木,配偶外形长得高,发秀、端庄。");
             }
-            if("水".equals(keFive)) {
+            if ("水".equals(keFive)) {
                 qiangGanContent.append("夫妻星为水,配偶外形微胖,圆活面黑,人机玲,相貌普通。");
             }
-            if("土".equals(keFive)) {
+            if ("土".equals(keFive)) {
                 qiangGanContent.append("夫妻星为土,配偶外形微胖,圆活面黑,人机玲,相貌普通。");
             }
-            if("金".equals(keFive)) {
+            if ("金".equals(keFive)) {
                 qiangGanContent.append("夫妻星为金,配偶外形白晰端庄。");
             }
         } else if ("元女".equals(sex)) {
             String keWoFive = ShiShenConfig.getKeWoRelationship(ganZhiRowVoList.get(4).getFive()); //我克者为财
-            if("火".equals(keWoFive)) {
+            if ("火".equals(keWoFive)) {
                 qiangGanContent.append("夫妻星为火,配偶外形亮丽面红润。");
             }
-            if("木".equals(keWoFive)) {
+            if ("木".equals(keWoFive)) {
                 qiangGanContent.append("夫妻星为木,配偶外形长得高,发秀、端庄。");
             }
-            if("水".equals(keWoFive)) {
+            if ("水".equals(keWoFive)) {
                 qiangGanContent.append("夫妻星为水,配偶外形微胖,圆活面黑,人机玲,相貌普通。");
             }
-            if("土".equals(keWoFive)) {
+            if ("土".equals(keWoFive)) {
                 qiangGanContent.append("夫妻星为土,配偶外形敦厚、结实身高较矮。");
             }
-            if("金".equals(keWoFive)) {
+            if ("金".equals(keWoFive)) {
                 qiangGanContent.append("夫妻星为金,配偶外形白晰端庄。");
             }
         }
@@ -2163,112 +2210,112 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         String dayZhiShiShen2 = ganZhiRowVoList.get(5).getShiShen2();
         String dayZhiShiShen3 = ganZhiRowVoList.get(5).getShiShen3();
 
-        if("火".equals(dayZhiFive)) {
+        if ("火".equals(dayZhiFive)) {
             qiangGanContent.append("夫妻宫落了火,代表皮肤不是很白。");
         }
-        if("木".equals(dayZhiFive)) {
+        if ("木".equals(dayZhiFive)) {
             qiangGanContent.append("夫妻宫落了木,代表个子高。");
         }
-        if("水".equals(dayZhiFive)) {
+        if ("水".equals(dayZhiFive)) {
             qiangGanContent.append("夫妻宫落了水,代表不容易上火。");
         }
-        if("土".equals(dayZhiFive)) {
+        if ("土".equals(dayZhiFive)) {
             qiangGanContent.append("夫妻宫落了土,代表敦厚。");
         }
-        if("金".equals(dayZhiFive)) {
+        if ("金".equals(dayZhiFive)) {
             qiangGanContent.append("夫妻宫落了金,代表身材不高。");
         }
 
         //配偶性格
 
         //印枭
-        if(dayZhiShiShen1 != null && ((dayGanShiShen1.contains("正印") || dayGanShiShen1.contains("偏印")))) {
+        if (dayZhiShiShen1 != null && ((dayGanShiShen1.contains("正印") || dayGanShiShen1.contains("偏印")))) {
             qiangGanContent.append("夫妻宫本气落了印枭代表配偶学历高,气质儒雅。但口才不是很好,没有商人冲劲。");
         }
 
-        if(dayZhiShiShen2 != null && ((dayZhiShiShen2.contains("正印") || dayZhiShiShen2.contains("偏印")))) {
+        if (dayZhiShiShen2 != null && ((dayZhiShiShen2.contains("正印") || dayZhiShiShen2.contains("偏印")))) {
             qiangGanContent.append("夫妻宫中气落了印枭代配偶表学历高,气质儒雅。但口才不是很好,没有商人冲劲。");
         }
 
-        if(dayZhiShiShen3 != null && ((dayZhiShiShen3.contains("正印") || dayZhiShiShen3.contains("偏印")))) {
+        if (dayZhiShiShen3 != null && ((dayZhiShiShen3.contains("正印") || dayZhiShiShen3.contains("偏印")))) {
             qiangGanContent.append("夫妻宫余气落了印枭代配偶表学历高,气质儒雅。但口才不是很好,没有商人冲劲。");
         }
 
         //官杀
-        if(dayGanShiShen1 != null && ((dayGanShiShen1.contains("正官") || dayGanShiShen1.contains("七杀")))) {
+        if (dayGanShiShen1 != null && ((dayGanShiShen1.contains("正官") || dayGanShiShen1.contains("七杀")))) {
             qiangGanContent.append("夫妻宫本气落了官杀代表了配偶领导层或管理岗,但真心朋友不多。");
         }
 
-        if(dayZhiShiShen2 != null && ((dayZhiShiShen2.contains("正官") || dayZhiShiShen2.contains("七杀")))) {
+        if (dayZhiShiShen2 != null && ((dayZhiShiShen2.contains("正官") || dayZhiShiShen2.contains("七杀")))) {
             qiangGanContent.append("夫妻宫中气落了官杀代表了配偶领导层或管理岗,但真心朋友不多。");
         }
 
-        if(dayZhiShiShen3 != null && ((dayZhiShiShen3.contains("正官") || dayZhiShiShen3.contains("七杀")))) {
+        if (dayZhiShiShen3 != null && ((dayZhiShiShen3.contains("正官") || dayZhiShiShen3.contains("七杀")))) {
             qiangGanContent.append("夫妻宫余气落了官杀代表了配偶领导层或管理岗,但真心朋友不多。");
         }
 
         //财才
-        if(dayGanShiShen1 != null && ((dayGanShiShen1.contains("正财") || dayGanShiShen1.contains("偏财")))) {
+        if (dayGanShiShen1 != null && ((dayGanShiShen1.contains("正财") || dayGanShiShen1.contains("偏财")))) {
             qiangGanContent.append("夫妻宫本气落了财才代表了配偶收入较高,但学历不是很高。");
         }
 
-        if(dayZhiShiShen2 != null && ((dayZhiShiShen2.contains("正财") || dayZhiShiShen2.contains("偏财")))) {
+        if (dayZhiShiShen2 != null && ((dayZhiShiShen2.contains("正财") || dayZhiShiShen2.contains("偏财")))) {
             qiangGanContent.append("夫妻宫中气落了财才代表了配偶收入较高,但学历不是很高。");
         }
 
-        if(dayZhiShiShen3 != null && ((dayZhiShiShen3.contains("正财") || dayZhiShiShen3.contains("偏财")))) {
+        if (dayZhiShiShen3 != null && ((dayZhiShiShen3.contains("正财") || dayZhiShiShen3.contains("偏财")))) {
             qiangGanContent.append("夫妻宫余气落了财才代表了配偶收入较高,但学历不是很高。");
         }
 
         //食神
-        if(dayGanShiShen1 != null && dayGanShiShen1.contains("食神")) {
+        if (dayGanShiShen1 != null && dayGanShiShen1.contains("食神")) {
             qiangGanContent.append("夫妻宫本气落了食神代表了配偶喜好玩乐、口才好,但不好当上领导层或官员。");
         }
 
-        if(dayZhiShiShen2 != null && dayGanShiShen2.contains("食神")) {
+        if (dayZhiShiShen2 != null && dayGanShiShen2.contains("食神")) {
             qiangGanContent.append("夫妻宫中气落了食神代表了配偶喜好玩乐、口才好,但不好当上领导层或官员。");
         }
 
-        if(dayZhiShiShen3 != null && dayGanShiShen3.contains("食神")) {
+        if (dayZhiShiShen3 != null && dayGanShiShen3.contains("食神")) {
             qiangGanContent.append("夫妻宫余气落了食神代表了配偶喜好玩乐、口才好,但不好当上领导层或官员。");
         }
 
         //伤官
-        if(dayGanShiShen1 != null && dayGanShiShen1.contains("伤官")) {
+        if (dayGanShiShen1 != null && dayGanShiShen1.contains("伤官")) {
             qiangGanContent.append("夫妻宫本气落了伤官代表了配偶上进心强。");
         }
 
-        if(dayZhiShiShen2 != null && dayGanShiShen2.contains("伤官")) {
+        if (dayZhiShiShen2 != null && dayGanShiShen2.contains("伤官")) {
             qiangGanContent.append("夫妻宫中气落了伤官代表了配偶上进心强。");
         }
 
-        if(dayZhiShiShen3 != null && dayGanShiShen3.contains("伤官")) {
+        if (dayZhiShiShen3 != null && dayGanShiShen3.contains("伤官")) {
             qiangGanContent.append("夫妻宫余气落了伤官代表了配偶上进心强。");
         }
 
         //比肩
-        if(dayGanShiShen1 != null && dayGanShiShen1.contains("比肩")) {
+        if (dayGanShiShen1 != null && dayGanShiShen1.contains("比肩")) {
             qiangGanContent.append("夫妻宫本气落了比肩代表了配偶朋友多,但收入不太稳定。");
         }
 
-        if(dayZhiShiShen2 != null && dayGanShiShen2.contains("比肩")) {
+        if (dayZhiShiShen2 != null && dayGanShiShen2.contains("比肩")) {
             qiangGanContent.append("夫妻宫中气落了比肩代表了配偶朋友多,但收入不太稳定。");
         }
 
-        if(dayZhiShiShen3 != null && dayGanShiShen3.contains("比肩")) {
+        if (dayZhiShiShen3 != null && dayGanShiShen3.contains("比肩")) {
             qiangGanContent.append("夫妻宫余气落了比肩代表了配偶朋友多,但收入不太稳定。");
         }
 
         //劫财
-        if(dayGanShiShen1 != null && dayGanShiShen1.contains("劫财")) {
+        if (dayGanShiShen1 != null && dayGanShiShen1.contains("劫财")) {
             qiangGanContent.append("夫妻宫本气落了劫财代表了配偶比较滑头,收入不太稳定。");
         }
 
-        if(dayZhiShiShen2 != null && dayGanShiShen2.contains("劫财")) {
+        if (dayZhiShiShen2 != null && dayGanShiShen2.contains("劫财")) {
             qiangGanContent.append("夫妻宫中气落了劫财代表了配偶比较滑头,收入不太稳定。");
         }
 
-        if(dayZhiShiShen3 != null && dayGanShiShen3.contains("劫财")) {
+        if (dayZhiShiShen3 != null && dayGanShiShen3.contains("劫财")) {
             qiangGanContent.append("夫妻宫余气落了劫财代表了配偶比较滑头,收入不太稳定。");
         }
 
@@ -2276,6 +2323,46 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         qiangGanContent.append("配偶比自己年龄大还是年龄小?");
         String peiouOld = shiShenConfig.getPeiouOld().get(geju);
         qiangGanContent.append(peiouOld);
+
+
+        //八字看配偶的方向
+        String monthZhi = ganZhiRowVoList.get(3).getName();
+        String targetDizhi = null;
+        int day = 32;
+        List<String> circularList = new ArrayList<String>();
+        circularList.addAll(shiShenConfig.getDizhi());
+        // 指定要重复的次数
+        int repeatCount = 4;
+        int index = 0;
+        boolean isFind = false;
+        // 当作为圆形列表使用
+        for (int i = 0; i < repeatCount; i++) {
+            // 循环输出列表元素
+            for (String element : circularList) {
+                if (monthZhi.equals(element)) {
+                    isFind = true;
+                }
+                if (isFind) {
+                    index++;
+                }
+                if (index == day) {
+                    System.out.println("找到对应的地支" + element);
+                    targetDizhi = element;
+                    break;
+                }
+            }
+            if (index == day) {
+                break;
+            }
+            //System.out.println(); // 换行
+            // 将列表的最后一个元素移到列表的开头
+            String lastElement = circularList.remove(circularList.size() - 1);
+            circularList.add(0, lastElement);
+        }
+        String fangWeiA = shiShenConfig.getDizhiFangWei().get(targetDizhi);
+        String fangWeiB = shiShenConfig.getFangWeiDui().get(fangWeiA);
+
+        qiangGanContent.append("你的配偶和你的方位是" + fangWeiA + "————" + fangWeiB + "(你们的出生地的家为准,两点连线。)");
         return qiangGanContent.toString();
     }
 

+ 4 - 3
xpgx-service/src/main/java/com/miaxis/gan/vo/GanZhiDaYunVo.java

@@ -1,12 +1,9 @@
 package com.miaxis.gan.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.miaxis.disease.domain.DiseasePart;
 import com.nlf.calendar.Lunar;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -27,4 +24,8 @@ public class GanZhiDaYunVo {
 
     @ApiModelProperty(value = "农历对象")
     private Lunar lunar;
+
+    @ApiModelProperty(value = "调整后农历对象")
+    private Lunar lunarAdjust;
+
 }

+ 1 - 1
xpgx-service/src/main/java/com/miaxis/gan/vo/GanZhiVo.java

@@ -71,7 +71,7 @@ public class GanZhiVo {
     private List<DiseasePart> diseasePartList;
 
     @ApiModelProperty(value = "喜用方位")
-    private String xiFangWei;
+    private Map<Integer,String> xiFangWei;
 
     @ApiModelProperty(value = "推荐行业")
     private String industry;