Sfoglia il codice sorgente

空亡 纳音 十神

zhangbin 1 anno fa
parent
commit
6b3c1a7f8d

+ 6 - 4
xpgx-admin/src/main/java/com/miaxis/app/controller/gan/GanZhiController.java

@@ -10,13 +10,10 @@ import com.miaxis.common.utils.poi.ExcelUtil;
 import com.miaxis.gan.domain.GanZhi;
 import com.miaxis.gan.dto.GanZhiDto;
 import com.miaxis.gan.service.IGanZhiService;
-import com.miaxis.gan.vo.GanZhiFiveVo;
-import com.miaxis.gan.vo.GanZhiRowVo;
-import com.miaxis.gan.vo.GanZhiVo;
+import com.miaxis.gan.vo.*;
 import com.nlf.calendar.Lunar;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Arrays;
@@ -80,6 +77,8 @@ public class GanZhiController extends BaseController{
 
         List<GanZhiRowVo> ganZhiRowVoList = ganZhiService.selectGanZhiRowVoList(ganZhiDto);
         List<GanZhiFiveVo> ganZhiFiveVoList = ganZhiService.selectGanZhiFiveVoCount(ganZhiDto);
+        List<GanZhiNaYinVo> ganZhiNaYinVoList = ganZhiService.selectGanZhiNaYinList(ganZhiDto);
+        List<GanZhiKongWangVo> ganZhiKongWangVoList = ganZhiService.selectGanZhiKongWangList(ganZhiDto);
 
 
         GanZhiVo ganZhiVo = new GanZhiVo();
@@ -87,6 +86,9 @@ public class GanZhiController extends BaseController{
         ganZhiVo.setBirthDay(ganZhiDto.getBirthDay());
         ganZhiVo.setGanZhiRowVoList(ganZhiRowVoList);
         ganZhiVo.setGanZhiFiveVoList(ganZhiFiveVoList);
+        ganZhiVo.setGanZhiNaYinVoList(ganZhiNaYinVoList);
+        ganZhiVo.setGanZhiKongWangVoList(ganZhiKongWangVoList);
+
         ganZhiVo.setUsername(ganZhiDto.getUsename());
         ganZhiVo.setSex(ganZhiDto.getSex());
 

+ 143 - 74
xpgx-common/src/main/java/com/miaxis/common/config/ShiShenConfig.java

@@ -45,6 +45,8 @@ public class ShiShenConfig {
     //空亡
     private Map<String, String> kongWang = new TreeMap<String, String>();
 
+    //纳音
+    private Map<String, String> naYin = new TreeMap<String, String>();
 
 
     @PostConstruct
@@ -209,80 +211,147 @@ public class ShiShenConfig {
 
 
         //空亡
-        //1甲子
-        kongWang.put("甲子","戌亥");
-        kongWang.put("乙丑","戌亥");
-        kongWang.put("丙寅","戌亥");
-        kongWang.put("丁卯","戌亥");
-        kongWang.put("戊辰","戌亥");
-        kongWang.put("己巳","戌亥");
-        kongWang.put("庚午","戌亥");
-        kongWang.put("辛未","戌亥");
-        kongWang.put("壬申","戌亥");
-        kongWang.put("癸酉","戌亥");
-
-        //2甲子
-        kongWang.put("甲戌","申酉");
-        kongWang.put("乙亥","申酉");
-        kongWang.put("丙子","申酉");
-        kongWang.put("丁丑","申酉");
-        kongWang.put("戊寅","申酉");
-        kongWang.put("己卯","申酉");
-        kongWang.put("庚辰","申酉");
-        kongWang.put("辛巳","申酉");
-        kongWang.put("壬午","申酉");
-        kongWang.put("癸未","申酉");
-
-        //3甲子
-        kongWang.put("甲申","午未");
-        kongWang.put("乙酉","午未");
-        kongWang.put("丙戌","午未");
-        kongWang.put("丁亥","午未");
-        kongWang.put("戊子","午未");
-        kongWang.put("己丑","午未");
-        kongWang.put("庚寅","午未");
-        kongWang.put("辛卯","午未");
-        kongWang.put("壬辰","午未");
-        kongWang.put("癸巳","午未");
-
-
-        //4甲子
-        kongWang.put("甲午","辰巳");
-        kongWang.put("乙未","辰巳");
-        kongWang.put("丙申","辰巳");
-        kongWang.put("丁酉","辰巳");
-        kongWang.put("戊戌","辰巳");
-        kongWang.put("己亥","辰巳");
-        kongWang.put("庚子","辰巳");
-        kongWang.put("辛丑","辰巳");
-        kongWang.put("壬寅","辰巳");
-        kongWang.put("癸卯","辰巳");
-
-
-        //5甲子
-        kongWang.put("甲辰","寅卯");
-        kongWang.put("乙巳","寅卯");
-        kongWang.put("丙午","寅卯");
-        kongWang.put("丁未","寅卯");
-        kongWang.put("戊申","寅卯");
-        kongWang.put("己酉","寅卯");
-        kongWang.put("庚戌","寅卯");
-        kongWang.put("辛亥","寅卯");
-        kongWang.put("壬子","寅卯");
-        kongWang.put("癸丑","寅卯");
-
-        //6甲子
-        kongWang.put("甲寅","子丑");
-        kongWang.put("乙卯","子丑");
-        kongWang.put("丙辰","子丑");
-        kongWang.put("丁巳","子丑");
-        kongWang.put("戊午","子丑");
-        kongWang.put("己未","子丑");
-        kongWang.put("庚申","子丑");
-        kongWang.put("辛酉","子丑");
-        kongWang.put("壬戌","子丑");
-        kongWang.put("癸亥","子丑");
-
+        //1甲子旬
+        kongWang.put("甲子", "戌亥");
+        kongWang.put("乙丑", "戌亥");
+        kongWang.put("丙寅", "戌亥");
+        kongWang.put("丁卯", "戌亥");
+        kongWang.put("戊辰", "戌亥");
+        kongWang.put("己巳", "戌亥");
+        kongWang.put("庚午", "戌亥");
+        kongWang.put("辛未", "戌亥");
+        kongWang.put("壬申", "戌亥");
+        kongWang.put("癸酉", "戌亥");
+
+        //2甲戌旬
+        kongWang.put("甲戌", "申酉");
+        kongWang.put("乙亥", "申酉");
+        kongWang.put("丙子", "申酉");
+        kongWang.put("丁丑", "申酉");
+        kongWang.put("戊寅", "申酉");
+        kongWang.put("己卯", "申酉");
+        kongWang.put("庚辰", "申酉");
+        kongWang.put("辛巳", "申酉");
+        kongWang.put("壬午", "申酉");
+        kongWang.put("癸未", "申酉");
+
+        //3甲申旬
+        kongWang.put("甲申", "午未");
+        kongWang.put("乙酉", "午未");
+        kongWang.put("丙戌", "午未");
+        kongWang.put("丁亥", "午未");
+        kongWang.put("戊子", "午未");
+        kongWang.put("己丑", "午未");
+        kongWang.put("庚寅", "午未");
+        kongWang.put("辛卯", "午未");
+        kongWang.put("壬辰", "午未");
+        kongWang.put("癸巳", "午未");
+
+
+        //4甲午旬
+        kongWang.put("甲午", "辰巳");
+        kongWang.put("乙未", "辰巳");
+        kongWang.put("丙申", "辰巳");
+        kongWang.put("丁酉", "辰巳");
+        kongWang.put("戊戌", "辰巳");
+        kongWang.put("己亥", "辰巳");
+        kongWang.put("庚子", "辰巳");
+        kongWang.put("辛丑", "辰巳");
+        kongWang.put("壬寅", "辰巳");
+        kongWang.put("癸卯", "辰巳");
+
+
+        //5甲辰旬
+        kongWang.put("甲辰", "寅卯");
+        kongWang.put("乙巳", "寅卯");
+        kongWang.put("丙午", "寅卯");
+        kongWang.put("丁未", "寅卯");
+        kongWang.put("戊申", "寅卯");
+        kongWang.put("己酉", "寅卯");
+        kongWang.put("庚戌", "寅卯");
+        kongWang.put("辛亥", "寅卯");
+        kongWang.put("壬子", "寅卯");
+        kongWang.put("癸丑", "寅卯");
+
+        //6甲寅旬
+        kongWang.put("甲寅", "子丑");
+        kongWang.put("乙卯", "子丑");
+        kongWang.put("丙辰", "子丑");
+        kongWang.put("丁巳", "子丑");
+        kongWang.put("戊午", "子丑");
+        kongWang.put("己未", "子丑");
+        kongWang.put("庚申", "子丑");
+        kongWang.put("辛酉", "子丑");
+        kongWang.put("壬戌", "子丑");
+        kongWang.put("癸亥", "子丑");
+
+
+        //纳音
+        naYin.put("甲子", "海中金");
+        naYin.put("乙丑", "海中金");
+        naYin.put("丙寅", "炉中火");
+        naYin.put("丁卯", "炉中火");
+        naYin.put("戊辰", "大林木");
+        naYin.put("己巳", "大林木");
+        naYin.put("庚午", "路旁土");
+        naYin.put("辛未", "路帝土");
+        naYin.put("壬申", "剑锋金");
+        naYin.put("癸酉", "剑锋金");
+
+        naYin.put("甲戌", "山头火");
+        naYin.put("乙亥", "山头火");
+        naYin.put("丙子", "洞下水");
+        naYin.put("丁丑", "洞下水");
+        naYin.put("戊寅", "城墙土");
+        naYin.put("己卯", "城墙土");
+        naYin.put("庚辰", "白腊金");
+        naYin.put("辛巳", "白腊金");
+        naYin.put("壬午", "杨柳木");
+        naYin.put("癸未", "杨柳木");
+
+        naYin.put("甲申", "泉中水");
+        naYin.put("乙酉", "泉中水");
+        naYin.put("丙戌", "屋上土");
+        naYin.put("丁亥", "屋上土");
+        naYin.put("戊子", "霹雷火");
+        naYin.put("己丑", "霹雷火");
+        naYin.put("庚寅", "松柏木");
+        naYin.put("辛卯", "松柏木");
+        naYin.put("壬辰", "常流水");
+        naYin.put("癸巳", "常流水");
+
+        naYin.put("甲午", "沙中金");
+        naYin.put("乙未", "沙中金");
+        naYin.put("丙申", "山下火");
+        naYin.put("丁酉", "山下火");
+        naYin.put("戊戌", "平地木");
+        naYin.put("己亥", "平地木");
+        naYin.put("庚子", "壁上土");
+        naYin.put("辛丑", "壁上土");
+        naYin.put("壬寅", "金箔金");
+        naYin.put("癸卯", "金箔金");
+
+        naYin.put("甲辰", "佛灯火");
+        naYin.put("乙巳", "佛灯火");
+        naYin.put("丙午", "天河水");
+        naYin.put("丁未", "天河水");
+        naYin.put("戊申", "大驿土");
+        naYin.put("己酉", "大驿土");
+        naYin.put("庚戌", "钗钏金");
+        naYin.put("辛亥", "钗钏金");
+        naYin.put("壬子", "桑松木");
+        naYin.put("癸丑", "桑松木");
+
+        naYin.put("甲寅", "大溪水");
+        naYin.put("乙卯", "大溪水");
+        naYin.put("丙辰", "沙中土");
+        naYin.put("丁巳", "沙中土");
+        naYin.put("戊午", "天上火");
+        naYin.put("己未", "天上火");
+        naYin.put("庚申", "石榴木");
+        naYin.put("辛酉", "石榴木");
+        naYin.put("壬戌", "大海水");
+        naYin.put("癸亥", "大海水");
 
     }
 

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

@@ -21,7 +21,7 @@ public class GanZhiDto {
     @ApiModelProperty(value = "姓名")
     private String usename;
 
-    @ApiModelProperty(value = "性别")
+    @ApiModelProperty(value = "性别 1:男  2:女")
     private Integer sex;
 
     @ApiModelProperty(value = "出生日期")

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

@@ -5,6 +5,8 @@ import com.miaxis.gan.domain.GanZhi;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.gan.dto.GanZhiDto;
 import com.miaxis.gan.vo.GanZhiFiveVo;
+import com.miaxis.gan.vo.GanZhiKongWangVo;
+import com.miaxis.gan.vo.GanZhiNaYinVo;
 import com.miaxis.gan.vo.GanZhiRowVo;
 
 /**
@@ -20,11 +22,14 @@ public interface IGanZhiService extends IService<GanZhi>{
      * @param ganZhi 天干地支
      * @return 天干地支集合
      */
-    public List<GanZhi> selectGanZhiList(GanZhi ganZhi);
+    List<GanZhi> selectGanZhiList(GanZhi ganZhi);
 
+    List<GanZhiRowVo> selectGanZhiRowVoList(GanZhiDto ganZhiDto);
 
-    public List<GanZhiRowVo> selectGanZhiRowVoList(GanZhiDto ganZhiDto);
+    List<GanZhiFiveVo> selectGanZhiFiveVoCount(GanZhiDto ganZhiDto);
 
+    List<GanZhiNaYinVo> selectGanZhiNaYinList(GanZhiDto ganZhiDto);
+
+    List<GanZhiKongWangVo> selectGanZhiKongWangList(GanZhiDto ganZhiDto);
 
-    public List<GanZhiFiveVo> selectGanZhiFiveVoCount(GanZhiDto ganZhiDto);
 }

+ 299 - 12
xpgx-service/src/main/java/com/miaxis/gan/service/impl/GanZhiServiceImpl.java

@@ -1,18 +1,13 @@
 package com.miaxis.gan.service.impl;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.*;
 
-import cn.hutool.core.lang.tree.Tree;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.miaxis.common.config.ShiShenConfig;
-import com.miaxis.common.utils.DateUtils;
 import com.miaxis.gan.dto.GanZhiDto;
 import com.miaxis.gan.vo.GanZhiFiveVo;
+import com.miaxis.gan.vo.GanZhiKongWangVo;
+import com.miaxis.gan.vo.GanZhiNaYinVo;
 import com.miaxis.gan.vo.GanZhiRowVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -42,18 +37,240 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
      * @return 天干地支
      */
     @Override
-    public List<GanZhi> selectGanZhiList(GanZhi ganZhi){
+    public List<GanZhi> selectGanZhiList(GanZhi ganZhi) {
         return ganZhiMapper.selectGanZhiList(ganZhi);
     }
 
     @Override
     public List<GanZhiRowVo> selectGanZhiRowVoList(GanZhiDto ganZhiDto) {
 
+
         List<GanZhiRowVo> list = ganZhiMapper.selectGanZhiRowVoList(ganZhiDto);
-        Map<String,String>  shiShenMap = shiShenConfig.getShiShen();
-        String zi = shiShenMap.get("甲");
 
-        System.out.println(zi);
+
+        if (ganZhiDto.getSex()==1) {
+            list.get(4).setShiShen1("元男");
+        } else if (ganZhiDto.getSex()==2) {
+            list.get(4).setShiShen1("元女");
+        }
+
+
+
+
+        /*-----------------------十神 开始-------------------*/
+        for (int i = 0; i < list.size(); i++) {
+
+            if ((i == 0 || i == 2 || i == 6) && i != 4) {
+
+                String zhengYin = shiShenConfig.getZhengYin().get(list.get(i).getName()); //正印
+                String shiShen = shiShenConfig.getShiShen().get(list.get(i).getName());  //食神
+                String zhengGuan = shiShenConfig.getZhengGuan().get(list.get(i).getName()); //正官
+                String zhengCai = shiShenConfig.getZhengCai().get(list.get(i).getName()); //正财
+                String qiSha = shiShenConfig.getQiSha().get(list.get(i).getName());  //七杀
+                String pianYin = shiShenConfig.getPianYin().get(list.get(i).getName()); //偏印
+                String shangGuan = shiShenConfig.getShangGuan().get(list.get(i).getName()); // 伤官
+                String jieCai = shiShenConfig.getJieCai().get(list.get(i).getName()); // 劫财
+                String biJian = shiShenConfig.getBiJian().get(list.get(i).getName()); // 比肩
+                String pianCai = shiShenConfig.getPianCai().get(list.get(i).getName()); // 偏财
+
+                if (list.get(4).getName().equals(zhengYin)) { //比对出正印
+                    list.get(i).setShiShen1("正印");
+                }
+                if (list.get(4).getName().equals(shiShen)) { //比对出食神
+                    list.get(i).setShiShen1("食神");
+                }
+                if (list.get(4).getName().equals(zhengGuan)) { //比对出正官
+                    list.get(i).setShiShen1("正官");
+                }
+                if (list.get(4).getName().equals(zhengCai)) { //比对出正财
+                    list.get(i).setShiShen1("正财");
+                }
+                if (list.get(4).getName().equals(qiSha)) { //比对出七杀
+                    list.get(i).setShiShen1("七杀");
+                }
+                if (list.get(4).getName().equals(pianYin)) { //比对出偏印
+                    list.get(i).setShiShen1("偏印");
+                }
+                if (list.get(4).getName().equals(shangGuan)) { //比对出伤官
+                    list.get(i).setShiShen1("伤官");
+                }
+                if (list.get(4).getName().equals(jieCai)) { //比对出劫财
+                    list.get(i).setShiShen1("劫财");
+                }
+                if (list.get(4).getName().equals(biJian)) { //比对出比肩
+                    list.get(i).setShiShen1("比肩");
+                }
+                if (list.get(4).equals(pianCai)) { //比对出偏财
+                    list.get(i).setShiShen1("偏财");
+                }
+
+            }
+
+            if ((i == 1 || i == 3 || i == 5 || i == 7) && i != 4){   //地支
+
+                String benQi = shiShenConfig.getBenQi().get(list.get(i).getName());    //戊
+                String zhongQi = shiShenConfig.getZhongQi().get(list.get(i).getName()); //乙
+                String yuQi = shiShenConfig.getYuQi().get(list.get(i).getName());   //癸
+
+                /*------------------------正印--------------------------*/
+                String zhengYinBenQi = (benQi != null) ? shiShenConfig.getZhengYin().get(benQi) : null; //正印本气
+                String zhengYinZhongQi = (zhongQi != null) ? shiShenConfig.getZhengYin().get(zhongQi) : null; //正印中余
+                String zhengYinYuQi = (yuQi != null) ? shiShenConfig.getZhengYin().get(yuQi) : null; //正印余气
+
+                if (StringUtils.isNotEmpty(zhengYinBenQi) && list.get(4).getName().equals(zhengYinBenQi)) { //比对出正印
+                    list.get(i).setShiShen1(benQi+"(正印)");
+                }
+                if (StringUtils.isNotEmpty(zhengYinZhongQi) && list.get(4).getName().equals(zhengYinZhongQi)) { //比对出正印
+                    list.get(i).setShiShen2(zhongQi+"(正印)");
+                }
+                if (StringUtils.isNotEmpty(zhengYinYuQi) && list.get(4).getName().equals(zhengYinYuQi)) { //比对出正印
+                    list.get(i).setShiShen3(yuQi+"(正印)");
+                }
+
+
+                /*------------------------食神-----------------------------*/
+                String shiShenBenQi = (benQi != null) ? shiShenConfig.getShiShen().get(benQi) : null; //食神本气
+                String shiShenZhongQi = (zhongQi != null) ? shiShenConfig.getShiShen().get(zhongQi) : null; //食神中气
+                String shiShenYuQi = (yuQi != null) ? shiShenConfig.getShiShen().get(yuQi) : null; //食神余气
+
+                if (StringUtils.isNotEmpty(shiShenBenQi) && list.get(4).getName().equals(shiShenBenQi)) { //比对出食神
+                    list.get(i).setShiShen1(benQi+"(食神)");
+                }
+                if (StringUtils.isNotEmpty(shiShenZhongQi) && list.get(4).getName().equals(shiShenZhongQi)) { //比对出食神
+                    list.get(i).setShiShen2(zhongQi+"(食神)");
+                }
+                if (StringUtils.isNotEmpty(shiShenYuQi) && list.get(4).getName().equals(shiShenYuQi)) { //比对出食神
+                    list.get(i).setShiShen3(yuQi+"(食神)");
+                }
+
+                /*------------------------正官-----------------------------*/
+                String zhengGuanBenQi = (benQi != null) ? shiShenConfig.getZhengGuan().get(benQi) : null; //正官本气
+                String zhengGuanZhongQi = (zhongQi != null) ? shiShenConfig.getZhengGuan().get(zhongQi) : null; //正官中气
+                String zhengGuanYuQi = (yuQi != null) ? shiShenConfig.getZhengGuan().get(yuQi) : null; //正官 余气
+
+                if (StringUtils.isNotEmpty(zhengGuanBenQi) && list.get(4).getName().equals(zhengGuanBenQi)) { //比对出正官
+                    list.get(i).setShiShen1(benQi+"(正官)");
+                }
+                if (StringUtils.isNotEmpty(zhengGuanZhongQi) && list.get(4).getName().equals(zhengGuanZhongQi)) { //比对出正官
+                    list.get(i).setShiShen2(zhongQi+"(正官)");
+                }
+                if (StringUtils.isNotEmpty(zhengGuanYuQi) && list.get(4).getName().equals(zhengGuanYuQi)) { //比对出正官
+                    list.get(i).setShiShen3(yuQi+"(正官)");
+                }
+
+                /*------------------------正财-----------------------------*/
+                String zhengCaiBenQi = (benQi != null) ? shiShenConfig.getZhengCai().get(benQi) : null; //正财本气
+                String zhengCaiZhongQi = (zhongQi != null) ? shiShenConfig.getZhengCai().get(zhongQi) : null; //正财中气
+                String zhengCaiYuQi = (yuQi != null) ? shiShenConfig.getZhengCai().get(yuQi) : null; //正财余气
+
+                if (StringUtils.isNotEmpty(zhengCaiBenQi) && list.get(4).getName().equals(zhengCaiBenQi)) { //比对出正财
+                    list.get(i).setShiShen1(benQi+"(正财)");
+                }
+                if (StringUtils.isNotEmpty(zhengCaiZhongQi) && list.get(4).getName().equals(zhengCaiZhongQi)) { //比对出正财
+                    list.get(i).setShiShen2(zhongQi+"(正财)");
+                }
+                if (StringUtils.isNotEmpty(zhengCaiYuQi) && list.get(4).getName().equals(zhengCaiYuQi)) { //比对出正财
+                    list.get(i).setShiShen3(yuQi+"(正财)");
+                }
+
+
+                /*------------------------七杀-----------------------------*/
+                String qiShaBenQi = (benQi != null) ? shiShenConfig.getQiSha().get(benQi) : null; //七杀本气
+                String qiShaZhongQi = (zhongQi != null) ? shiShenConfig.getQiSha().get(zhongQi) : null; //七杀中气
+                String qiShaYuQi = (yuQi != null) ? shiShenConfig.getQiSha().get(yuQi) : null; //七杀余气
+
+                if (StringUtils.isNotEmpty(qiShaBenQi) && list.get(4).getName().equals(qiShaBenQi)) { //比对出七杀
+                    list.get(i).setShiShen1(benQi+"(七杀)");
+                }
+                if (StringUtils.isNotEmpty(qiShaZhongQi) && list.get(4).getName().equals(qiShaZhongQi)) { //比对出七杀
+                    list.get(i).setShiShen2(zhongQi+"(七杀)");
+                }
+                if (StringUtils.isNotEmpty(qiShaYuQi) && list.get(4).getName().equals(qiShaYuQi)) { //比对出七杀
+                    list.get(i).setShiShen3(yuQi+"(七杀)");
+                }
+
+
+                /*------------------------偏印-----------------------------*/
+                String pianYinBenQi = (benQi != null) ? shiShenConfig.getPianYin().get(benQi) : null; //偏印本气
+                String pianYinZhongQi = (zhongQi != null) ? shiShenConfig.getPianYin().get(zhongQi) : null; //偏印中气
+                String pianYinYuQi = (yuQi != null) ? shiShenConfig.getPianYin().get(yuQi) : null; //偏印余气
+
+                if (StringUtils.isNotEmpty(pianYinBenQi) && list.get(4).getName().equals(pianYinBenQi)) { //比对出七杀
+                    list.get(i).setShiShen1(benQi+"(偏印)");
+                }
+                if (StringUtils.isNotEmpty(pianYinZhongQi) && list.get(4).getName().equals(pianYinZhongQi)) { //比对出七杀
+                    list.get(i).setShiShen2(zhongQi+"(偏印)");
+                }
+                if (StringUtils.isNotEmpty(pianYinYuQi) && list.get(4).getName().equals(pianYinYuQi)) { //比对出七杀
+                    list.get(i).setShiShen3(yuQi+"(偏印)");
+                }
+
+                /*------------------------伤官-----------------------------*/
+                String shangGuanBenQi = (benQi != null) ? shiShenConfig.getShangGuan().get(benQi) : null; //伤官本气
+                String shangGuanZhongQi = (zhongQi != null) ? shiShenConfig.getShangGuan().get(zhongQi) : null; //伤官中气
+                String shangGuanYuQi = (yuQi != null) ? shiShenConfig.getShangGuan().get(yuQi) : null; //伤官余气
+
+                if (StringUtils.isNotEmpty(shangGuanBenQi) && list.get(4).getName().equals(shangGuanBenQi)) { //比对出伤官
+                    list.get(i).setShiShen1(benQi+"(伤官)");
+                }
+                if (StringUtils.isNotEmpty(shangGuanZhongQi) && list.get(4).getName().equals(shangGuanZhongQi)) { //比对出伤官
+                    list.get(i).setShiShen2(zhongQi+"(伤官)");
+                }
+                if (StringUtils.isNotEmpty(shangGuanYuQi) && list.get(4).getName().equals(shangGuanYuQi)) { //比对出伤官
+                    list.get(i).setShiShen3(yuQi+"(伤官)");
+                }
+
+
+                /*------------------------劫财-----------------------------*/
+                String jieCaiBenQi = (benQi != null) ? shiShenConfig.getJieCai().get(benQi) : null; //劫财本气
+                String jieCaiZhongQi = (zhongQi != null) ? shiShenConfig.getJieCai().get(zhongQi) : null; //劫财中气
+                String jieCaiYuQi = (yuQi != null) ? shiShenConfig.getJieCai().get(yuQi) : null; //劫财余气
+
+                if (StringUtils.isNotEmpty(jieCaiBenQi) && list.get(4).getName().equals(jieCaiBenQi)) { //比对出劫财
+                    list.get(i).setShiShen1(benQi+"(劫财)");
+                }
+                if (StringUtils.isNotEmpty(jieCaiZhongQi) && list.get(4).getName().equals(jieCaiZhongQi)) { //比对出劫财
+                    list.get(i).setShiShen2(zhongQi+"(劫财)");
+                }
+                if (StringUtils.isNotEmpty(jieCaiYuQi) && list.get(4).getName().equals(jieCaiYuQi)) { //比对出劫财
+                    list.get(i).setShiShen3(yuQi+"(劫财)");
+                }
+
+                /*------------------------比肩-----------------------------*/
+                String biJianBenQi = (benQi != null) ? shiShenConfig.getBiJian().get(benQi) : null; //比肩本气
+                String biJianZhongQi = (zhongQi != null) ? shiShenConfig.getBiJian().get(zhongQi) : null; //比肩中气
+                String biJianYuQi = (yuQi != null) ? shiShenConfig.getBiJian().get(yuQi) : null; //比肩余气
+
+                if (StringUtils.isNotEmpty(biJianBenQi) && list.get(4).getName().equals(biJianBenQi)) {
+                    list.get(i).setShiShen1(benQi+"(比肩)");
+                }
+                if (StringUtils.isNotEmpty(biJianZhongQi) && list.get(4).getName().equals(biJianZhongQi)) {
+                    list.get(i).setShiShen2(zhongQi+"(比肩)");
+                }
+                if (StringUtils.isNotEmpty(biJianYuQi) && list.get(4).getName().equals(biJianYuQi)) {
+                    list.get(i).setShiShen3(yuQi+"(比肩)");
+                }
+
+                /*------------------------偏财-----------------------------*/
+                String pianCaiBenQi = (benQi != null) ? shiShenConfig.getPianCai().get(benQi) : null; //偏财本气
+                String pianCaiZhongQi = (zhongQi != null) ? shiShenConfig.getPianCai().get(zhongQi) : null; //偏财中气
+                String pianCaiYuQi = (yuQi != null) ? shiShenConfig.getPianCai().get(yuQi) : null; //偏财余气
+
+                if (StringUtils.isNotEmpty(pianCaiBenQi) && list.get(4).getName().equals(pianCaiBenQi)) { //比对出偏财
+                    list.get(i).setShiShen1(benQi+"(偏财)");
+                }
+                if (StringUtils.isNotEmpty(pianCaiZhongQi) && list.get(4).getName().equals(pianCaiZhongQi)) { //比对出偏财
+                    list.get(i).setShiShen2(zhongQi+"(偏财)");
+                }
+                if (StringUtils.isNotEmpty(pianCaiYuQi) && list.get(4).getName().equals(pianCaiYuQi)) { //比对出偏财
+                    list.get(i).setShiShen3(yuQi+"(偏财)");
+                }
+
+            }
+
+
+        }
+        /*-----------------------十神 结束-------------------*/
         return list;
     }
 
@@ -61,4 +278,74 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
     public List<GanZhiFiveVo> selectGanZhiFiveVoCount(GanZhiDto ganZhiDto) {
         return ganZhiMapper.selectGanZhiFiveVoCount(ganZhiDto);
     }
+
+    @Override
+    public List<GanZhiNaYinVo> selectGanZhiNaYinList(GanZhiDto ganZhiDto) {
+
+        String yearZhuNaYinKey = ganZhiDto.getYearGan()+ganZhiDto.getYearZhi();
+        String monthZhuNaYinKey = ganZhiDto.getMonthGan()+ganZhiDto.getMonthZhi();
+        String dayZhuNaYinKey = ganZhiDto.getDayGan()+ganZhiDto.getDayZhi();
+        String timeZhuNaYinKey = ganZhiDto.getTimeGan()+ganZhiDto.getTimeZhi();
+
+        String yearZhuNaYin = shiShenConfig.getNaYin().get(yearZhuNaYinKey);
+        String monthZhuNaYin = shiShenConfig.getNaYin().get(monthZhuNaYinKey);
+        String dayZhuNaYin = shiShenConfig.getNaYin().get(dayZhuNaYinKey);
+        String timeZhuNaYin = shiShenConfig.getNaYin().get(timeZhuNaYinKey);
+
+        GanZhiNaYinVo yearNaYinVo = new GanZhiNaYinVo();
+        yearNaYinVo.setZhu("年");
+        yearNaYinVo.setNaYin(yearZhuNaYin);
+        GanZhiNaYinVo monthNaYinVo = new GanZhiNaYinVo();
+        monthNaYinVo.setZhu("月");
+        monthNaYinVo.setNaYin(monthZhuNaYin);
+        GanZhiNaYinVo dayNaYinVo = new GanZhiNaYinVo();
+        dayNaYinVo.setZhu("日");
+        dayNaYinVo.setNaYin(dayZhuNaYin);
+        GanZhiNaYinVo timeNaYinVo = new GanZhiNaYinVo();
+        timeNaYinVo.setZhu("时");
+        timeNaYinVo.setNaYin(timeZhuNaYin);
+
+        List<GanZhiNaYinVo> list = new ArrayList<GanZhiNaYinVo>();
+        list.add(yearNaYinVo);
+        list.add(monthNaYinVo);
+        list.add(dayNaYinVo);
+        list.add(timeNaYinVo);
+        return list;
+    }
+
+
+    @Override
+    public List<GanZhiKongWangVo> selectGanZhiKongWangList(GanZhiDto ganZhiDto) {
+
+        String yearZhuKongWangKey = ganZhiDto.getYearGan()+ganZhiDto.getYearZhi();
+        String monthZhuKongWangKey = ganZhiDto.getMonthGan()+ganZhiDto.getMonthZhi();
+        String dayZhuNaKongWangKey = ganZhiDto.getDayGan()+ganZhiDto.getDayZhi();
+        String timeZhuNaKongWangKey = ganZhiDto.getTimeGan()+ganZhiDto.getTimeZhi();
+
+        String yearZhuKongWang = shiShenConfig.getKongWang().get(yearZhuKongWangKey);
+        String monthZhuKongWang = shiShenConfig.getKongWang().get(monthZhuKongWangKey);
+        String dayZhuKongWang = shiShenConfig.getKongWang().get(dayZhuNaKongWangKey);
+        String timeZhuKongWang = shiShenConfig.getKongWang().get(timeZhuNaKongWangKey);
+
+        GanZhiKongWangVo yearKongWangVo = new GanZhiKongWangVo();
+        yearKongWangVo.setZhu("年");
+        yearKongWangVo.setKongWang(yearZhuKongWang);
+        GanZhiKongWangVo monthKongWangVo = new GanZhiKongWangVo();
+        monthKongWangVo.setZhu("月");
+        monthKongWangVo.setKongWang(monthZhuKongWang);
+        GanZhiKongWangVo dayKongWangVo = new GanZhiKongWangVo();
+        dayKongWangVo.setZhu("日");
+        dayKongWangVo.setKongWang(dayZhuKongWang);
+        GanZhiKongWangVo timeKongWangVo = new GanZhiKongWangVo();
+        timeKongWangVo.setZhu("时");
+        timeKongWangVo.setKongWang(timeZhuKongWang);
+
+        List<GanZhiKongWangVo> list = new ArrayList<GanZhiKongWangVo>();
+        list.add(yearKongWangVo);
+        list.add(monthKongWangVo);
+        list.add(dayKongWangVo);
+        list.add(timeKongWangVo);
+        return list;
+    }
+
 }

+ 16 - 0
xpgx-service/src/main/java/com/miaxis/gan/vo/GanZhiKongWangVo.java

@@ -0,0 +1,16 @@
+package com.miaxis.gan.vo;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class GanZhiKongWangVo {
+
+    @ApiModelProperty(value = "柱")
+    private String zhu;
+    @ApiModelProperty(value = "空亡")
+    private String kongWang;
+
+
+}

+ 16 - 0
xpgx-service/src/main/java/com/miaxis/gan/vo/GanZhiNaYinVo.java

@@ -0,0 +1,16 @@
+package com.miaxis.gan.vo;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class GanZhiNaYinVo {
+
+    @ApiModelProperty(value = "柱")
+    private String zhu;
+    @ApiModelProperty(value = "纳音")
+    private String naYin;
+
+
+}

+ 6 - 2
xpgx-service/src/main/java/com/miaxis/gan/vo/GanZhiRowVo.java

@@ -20,10 +20,14 @@ public class GanZhiRowVo {
 
     @ApiModelProperty(value = "十神1",hidden = true)
     private String shiShen1;
-
     @ApiModelProperty(value = "十神2",hidden = true)
     private String shiShen2;
-
     @ApiModelProperty(value = "十神2",hidden = true)
     private String shiShen3;
+
+    @ApiModelProperty(value = "纳音",hidden = true)
+    private String naYin;
+    @ApiModelProperty(value = "空亡",hidden = true)
+    private String kongWang;
+
 }

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

@@ -38,4 +38,10 @@ public class GanZhiVo {
     @ApiModelProperty(value = "八字五行个数集合")
     private List<GanZhiFiveVo> ganZhiFiveVoList;
 
+    @ApiModelProperty(value = "八字纳音")
+    private List<GanZhiNaYinVo> ganZhiNaYinVoList;
+
+    @ApiModelProperty(value = "八字空亡")
+    private List<GanZhiKongWangVo> ganZhiKongWangVoList;
+
 }