|
@@ -0,0 +1,2116 @@
|
|
|
+package com.miaxis.gan.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.miaxis.common.config.ShiShenConfig;
|
|
|
+import com.miaxis.common.utils.DateUtils;
|
|
|
+import com.miaxis.disease.domain.DiseasePart;
|
|
|
+import com.miaxis.disease.dto.DiseasePartDto;
|
|
|
+import com.miaxis.disease.mapper.DiseasePartMapper;
|
|
|
+import com.miaxis.gan.domain.GanZhi;
|
|
|
+import com.miaxis.gan.dto.GanZhiDto;
|
|
|
+import com.miaxis.gan.dto.LiuNianDto;
|
|
|
+import com.miaxis.gan.mapper.GanZhiMapper;
|
|
|
+import com.miaxis.gan.service.IGanZhiService;
|
|
|
+import com.miaxis.gan.vo.GanZhiDaYunVo;
|
|
|
+import com.miaxis.gan.vo.GanZhiKongWangVo;
|
|
|
+import com.miaxis.gan.vo.GanZhiNaYinVo;
|
|
|
+import com.miaxis.gan.vo.GanZhiRowVo;
|
|
|
+import com.miaxis.ge.domain.GeJu;
|
|
|
+import com.miaxis.ge.mapper.GeJuMapper;
|
|
|
+import com.miaxis.jie.mapper.JieQiMapper;
|
|
|
+import com.miaxis.jie.vo.JieQiVo;
|
|
|
+import com.miaxis.number.domain.NumberYun;
|
|
|
+import com.miaxis.number.mapper.NumberYunMapper;
|
|
|
+import com.nlf.calendar.Lunar;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 天干地支Service业务层处理
|
|
|
+ *
|
|
|
+ * @author miaxis
|
|
|
+ * @date 2023-11-16
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> implements IGanZhiService {
|
|
|
+ @Autowired
|
|
|
+ private GanZhiMapper ganZhiMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private NumberYunMapper numberYunMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DiseasePartMapper diseasePartMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ShiShenConfig shiShenConfig;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private JieQiMapper jieQiMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private GeJuMapper geJuMapper;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询天干地支列表
|
|
|
+ *
|
|
|
+ * @param ganZhi 天干地支
|
|
|
+ * @return 天干地支
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<GanZhi> selectGanZhiList(GanZhi ganZhi) {
|
|
|
+ return ganZhiMapper.selectGanZhiList(ganZhi);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<GanZhiRowVo> selectGanZhiRowVoList(GanZhiDto ganZhiDto) {
|
|
|
+
|
|
|
+ List<GanZhiRowVo> list = this.getGanZhiRowVoList(ganZhiDto);
|
|
|
+ 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).getName().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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @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;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getRiYuanQr(List<GanZhiRowVo> list, Map<String, Integer> fiveCountMap) {
|
|
|
+ /*-------------------日元身强身弱---------------------*/
|
|
|
+ int yearGanQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(0).getFive());
|
|
|
+ int yearZhiQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(1).getFive());
|
|
|
+ int monthGanQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(2).getFive());
|
|
|
+ int monthZhiQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(3).getFive());
|
|
|
+ // int dayGanQR = ShiShenConfig.generateRelationship(list.get(4).getFive(),list.get(4).getFive());
|
|
|
+ int dayZhiQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(5).getFive());
|
|
|
+ int timeGanQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(6).getFive());
|
|
|
+ int timeZhiQR = ShiShenConfig.generateRelationship(list.get(4).getFive(), list.get(7).getFive());
|
|
|
+
|
|
|
+ int score = 0;
|
|
|
+ if (yearGanQR > 0) {
|
|
|
+ score += 8;
|
|
|
+ }
|
|
|
+ if (yearZhiQR > 0) {
|
|
|
+ score += 4;
|
|
|
+ }
|
|
|
+ if (monthGanQR > 0) {
|
|
|
+ score += 12;
|
|
|
+ }
|
|
|
+ if (monthZhiQR > 0) {
|
|
|
+ score += 40;
|
|
|
+ }
|
|
|
+ if (dayZhiQR > 0) {
|
|
|
+ score += 12;
|
|
|
+ }
|
|
|
+ if (timeGanQR > 0) {
|
|
|
+ score += 12;
|
|
|
+ }
|
|
|
+ if (timeZhiQR > 0) {
|
|
|
+ score += 12;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> xiYong = null;
|
|
|
+ List<String> xiYongShiShen = new ArrayList<String>();
|
|
|
+ String fiveQr = null;
|
|
|
+ if (score > 50) {
|
|
|
+ fiveQr = list.get(4).getFive() + "强";
|
|
|
+ xiYong = shiShenConfig.getXiYong().get(fiveQr);
|
|
|
+ xiYongShiShen.addAll(shiShenConfig.getXiYongShiShenQ());
|
|
|
+ } else {
|
|
|
+ fiveQr = list.get(4).getFive() + "弱";
|
|
|
+ xiYong = shiShenConfig.getXiYong().get(fiveQr);
|
|
|
+ xiYongShiShen.addAll(shiShenConfig.getXiYongShiShenR());
|
|
|
+ }
|
|
|
+ List<String> xiYongOld = new ArrayList<>();
|
|
|
+ xiYongOld.addAll(xiYong);
|
|
|
+
|
|
|
+ String xi1 = xiYong.get(0);
|
|
|
+ String xi2 = xiYong.get(1);
|
|
|
+
|
|
|
+ int xi1Count = fiveCountMap.get(xi1);
|
|
|
+ int xi2Count = fiveCountMap.get(xi2);
|
|
|
+
|
|
|
+ if (xi1Count > 3) {
|
|
|
+ xiYong.remove(xi1);
|
|
|
+ }
|
|
|
+ if (xi2Count > 3) {
|
|
|
+ xiYong.remove(xi2);
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println("喜用:" + xiYong);
|
|
|
+
|
|
|
+ Map<String, Object> qr = new TreeMap<String, Object>();
|
|
|
+ qr.put("score", score);
|
|
|
+ qr.put("qr", fiveQr);
|
|
|
+ qr.put("xiYong", xiYong);
|
|
|
+ qr.put("xiYongOld", xiYongOld);
|
|
|
+ qr.put("xiYongShiShen", xiYongShiShen);
|
|
|
+ return qr;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<DiseasePart> getJiBing(List<GanZhiRowVo> ganZhiRowVoList, Map<String, Integer> fiveCountMap) {
|
|
|
+ String sex = ganZhiRowVoList.get(4).getShiShen1();
|
|
|
+
|
|
|
+ String gender = null;
|
|
|
+ if ("元男".equals(sex)) { //男性疾病
|
|
|
+ sex = "1,3";
|
|
|
+ } else if ("元女".equals(sex)) { //女性疾病
|
|
|
+ sex = "2,3";
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> partZ = new ArrayList<String>();
|
|
|
+ List<String> partQ = new ArrayList<String>();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /*--------------------------年柱---------------------------*/
|
|
|
+ //天干 头
|
|
|
+ String yearGanShiShen = ganZhiRowVoList.get(0).getShiShen1();
|
|
|
+ if ("七杀".contains(yearGanShiShen)) { //存在七杀
|
|
|
+ partZ.add("头");
|
|
|
+ }
|
|
|
+ if ("偏印".contains(yearGanShiShen)) { //存在七杀
|
|
|
+ partQ.add("头");
|
|
|
+ }
|
|
|
+ //地支 脖子
|
|
|
+ String yearZhiShiShen1 = ganZhiRowVoList.get(1).getShiShen1(); //脖子
|
|
|
+ String yearZhiShiShen2 = ganZhiRowVoList.get(1).getShiShen2(); //脖子
|
|
|
+ String yearZhiShiShen3 = ganZhiRowVoList.get(1).getShiShen3(); //脖子
|
|
|
+ if (yearZhiShiShen1 != null && yearZhiShiShen1.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("脖子");
|
|
|
+ }
|
|
|
+ if (yearZhiShiShen2 != null && yearZhiShiShen2.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("脖子");
|
|
|
+ }
|
|
|
+ if (yearZhiShiShen3 != null && yearZhiShiShen3.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("脖子");
|
|
|
+ }
|
|
|
+ if (yearZhiShiShen1 != null && yearZhiShiShen1.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("脖子");
|
|
|
+ }
|
|
|
+ if (yearZhiShiShen2 != null && yearZhiShiShen2.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("脖子");
|
|
|
+ }
|
|
|
+ if (yearZhiShiShen3 != null && yearZhiShiShen3.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("脖子");
|
|
|
+ }
|
|
|
+
|
|
|
+ /*--------------------------月柱---------------------------*/
|
|
|
+
|
|
|
+ //天干 胸部
|
|
|
+ String monthGanShiShen = ganZhiRowVoList.get(2).getShiShen1();
|
|
|
+ if (monthGanShiShen != null && monthGanShiShen.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("胸部");
|
|
|
+ }
|
|
|
+ if (monthGanShiShen != null && monthGanShiShen.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("胸部");
|
|
|
+ }
|
|
|
+ //地支 脖子
|
|
|
+ String monthZhiShiShen1 = ganZhiRowVoList.get(3).getShiShen1();
|
|
|
+ String monthZhiShiShen2 = ganZhiRowVoList.get(3).getShiShen2();
|
|
|
+ String monthZhiShiShen3 = ganZhiRowVoList.get(3).getShiShen3();
|
|
|
+ if (monthZhiShiShen1 != null && monthZhiShiShen1.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("腹部");
|
|
|
+ }
|
|
|
+ if (monthZhiShiShen2 != null && monthZhiShiShen2.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("腹部");
|
|
|
+ }
|
|
|
+ if (monthZhiShiShen3 != null && monthZhiShiShen3.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("腹部");
|
|
|
+ }
|
|
|
+ if (monthZhiShiShen1 != null && monthZhiShiShen1.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("腹部");
|
|
|
+ }
|
|
|
+ if (monthZhiShiShen2 != null && monthZhiShiShen2.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("腹部");
|
|
|
+ }
|
|
|
+ if (monthZhiShiShen3 != null && monthZhiShiShen3.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("腹部");
|
|
|
+ }
|
|
|
+
|
|
|
+ /*--------------------------日柱---------------------------*/
|
|
|
+ //天干
|
|
|
+ String dayGanShiShen = ganZhiRowVoList.get(4).getShiShen1();
|
|
|
+ if (dayGanShiShen != null && "七杀".contains(dayGanShiShen)) { //存在七杀
|
|
|
+ partZ.add("小腹");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen != null && "偏印".contains(dayGanShiShen)) { //存在七杀
|
|
|
+ partQ.add("小腹");
|
|
|
+ }
|
|
|
+ //地支 脖子
|
|
|
+ String dayZhiShiShen1 = ganZhiRowVoList.get(5).getShiShen1();
|
|
|
+ String dayZhiShiShen2 = ganZhiRowVoList.get(5).getShiShen2();
|
|
|
+ String dayZhiShiShen3 = ganZhiRowVoList.get(5).getShiShen3();
|
|
|
+ if (dayZhiShiShen1 != null && dayZhiShiShen1.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("屁股");
|
|
|
+ }
|
|
|
+ if (dayZhiShiShen2 != null && dayZhiShiShen2.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("屁股");
|
|
|
+ }
|
|
|
+ if (dayZhiShiShen3 != null && dayZhiShiShen3.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("屁股");
|
|
|
+ }
|
|
|
+ if (dayZhiShiShen1 != null && dayZhiShiShen1.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("屁股");
|
|
|
+ }
|
|
|
+ if (dayZhiShiShen2 != null && dayZhiShiShen2.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("屁股");
|
|
|
+ }
|
|
|
+ if (dayZhiShiShen3 != null && dayZhiShiShen3.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("屁股");
|
|
|
+ }
|
|
|
+
|
|
|
+ /*--------------------------时柱---------------------------*/
|
|
|
+ //天干
|
|
|
+ String timeGanShiShen = ganZhiRowVoList.get(6).getShiShen1();
|
|
|
+ if (timeGanShiShen != null && timeGanShiShen.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("小腹");
|
|
|
+ }
|
|
|
+ if (timeGanShiShen != null && timeGanShiShen.contains("偏印")) { //存在七杀
|
|
|
+ partQ.add("小腹");
|
|
|
+ }
|
|
|
+ //地支 脖子
|
|
|
+ String timeZhiShiShen1 = ganZhiRowVoList.get(7).getShiShen1();
|
|
|
+ String timeZhiShiShen2 = ganZhiRowVoList.get(7).getShiShen2();
|
|
|
+ String timeZhiShiShen3 = ganZhiRowVoList.get(7).getShiShen3();
|
|
|
+ if (timeZhiShiShen1 != null && timeZhiShiShen1.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("小腿");
|
|
|
+ }
|
|
|
+ if (timeZhiShiShen2 != null && timeZhiShiShen2.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("小腿");
|
|
|
+ }
|
|
|
+ if (timeZhiShiShen3 != null && timeZhiShiShen3.contains("七杀")) { //存在七杀
|
|
|
+ partZ.add("小腿");
|
|
|
+ }
|
|
|
+ if (timeZhiShiShen1 != null && timeZhiShiShen1.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("小腿");
|
|
|
+ }
|
|
|
+ if (timeZhiShiShen2 != null && timeZhiShiShen2.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("小腿");
|
|
|
+ }
|
|
|
+ if (timeZhiShiShen3 != null && timeZhiShiShen3.contains("偏印")) { //存在偏印
|
|
|
+ partQ.add("小腿");
|
|
|
+ }
|
|
|
+
|
|
|
+ DiseasePartDto diseasePartQDto = new DiseasePartDto();
|
|
|
+ diseasePartQDto.setSex(sex);
|
|
|
+ diseasePartQDto.setDegree("轻症");
|
|
|
+ diseasePartQDto.setParts(partQ);
|
|
|
+
|
|
|
+ DiseasePartDto diseasePartZDto = new DiseasePartDto();
|
|
|
+ diseasePartZDto.setSex(sex);
|
|
|
+ diseasePartZDto.setDegree("严重");
|
|
|
+ diseasePartZDto.setParts(partZ);
|
|
|
+
|
|
|
+ List<DiseasePart> diseasePartQList = new ArrayList<DiseasePart>();
|
|
|
+ List<DiseasePart> diseasePartZList = new ArrayList<DiseasePart>();
|
|
|
+ List<DiseasePart> diseasePartAllList = new ArrayList<DiseasePart>();
|
|
|
+ if (partQ.size() > 0) {
|
|
|
+ diseasePartQList = diseasePartMapper.selectDiseasePartList(diseasePartQDto);
|
|
|
+ diseasePartAllList.addAll(diseasePartQList);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (partZ.size() > 0) {
|
|
|
+ diseasePartZList = diseasePartMapper.selectDiseasePartList(diseasePartZDto);
|
|
|
+ diseasePartAllList.addAll(diseasePartZList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //五行得出疾病
|
|
|
+ List<DiseasePart> fivePartList = new ArrayList<DiseasePart>();
|
|
|
+ for (String key : fiveCountMap.keySet()) {
|
|
|
+ int count = 0;
|
|
|
+ if (fiveCountMap.get(key) instanceof Number) {
|
|
|
+ // 如果是数值类型,可以进行相应的操作
|
|
|
+ count = ((Number) fiveCountMap.get(key)).intValue(); // 通过 intValue() 转换成 int
|
|
|
+ } else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (count >= 3) {
|
|
|
+ List<String> partList = shiShenConfig.getFiveBuWei().get(key);
|
|
|
+ DiseasePartDto fivePartDto = new DiseasePartDto();
|
|
|
+ fivePartDto.setSex(sex);
|
|
|
+ fivePartDto.setParts(partList);
|
|
|
+ fivePartList = diseasePartMapper.selectDiseasePartList(fivePartDto);
|
|
|
+ diseasePartAllList.addAll(fivePartList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return diseasePartAllList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getNumberYun(Map<String, Object> qr) {
|
|
|
+
|
|
|
+ List<String> numberList = new ArrayList<String>();
|
|
|
+ List<String> xiYong = (List<String>) qr.get("xiYong");
|
|
|
+
|
|
|
+ for (int i = 0; i < xiYong.size(); i++) {
|
|
|
+ List<String> numList = shiShenConfig.getXiNumber().get(xiYong.get(i));
|
|
|
+ numberList.addAll(numList);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<NumberYun> numberYunList = numberYunMapper.getNumberYunByIds(numberList);
|
|
|
+
|
|
|
+
|
|
|
+ //转字符串
|
|
|
+ StringJoiner joiner = new StringJoiner(",");
|
|
|
+ for (String number : numberList) {
|
|
|
+ joiner.add(number);
|
|
|
+ }
|
|
|
+ String numbers = joiner.toString();
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultMap = new TreeMap<String, Object>();
|
|
|
+ resultMap.put("numberYuns", numbers);
|
|
|
+ resultMap.put("numberYunList", numberYunList);
|
|
|
+
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断出生日期是否在节气内
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public GanZhiDaYunVo getDaYun(GanZhiDto ganZhiDto, GanZhiDaYunVo ganZhiDaYunVo) {
|
|
|
+ int daYun = 0;
|
|
|
+ String tianGan = ganZhiDto.getYearGan();
|
|
|
+ String yy = shiShenConfig.getTianGanYY().get(tianGan);
|
|
|
+
|
|
|
+ if ("阳".equals(yy)) {
|
|
|
+ if (ganZhiDto.getSex() == 1) {
|
|
|
+ //顺行
|
|
|
+ daYun = 1;
|
|
|
+ } else if (ganZhiDto.getSex() == 2) {
|
|
|
+ //逆行
|
|
|
+ daYun = 2;
|
|
|
+ }
|
|
|
+ } else if ("阴".equals(yy)) {
|
|
|
+ if (ganZhiDto.getSex() == 1) {
|
|
|
+ //逆行
|
|
|
+ daYun = 2;
|
|
|
+ } else if (ganZhiDto.getSex() == 2) {
|
|
|
+ //顺行
|
|
|
+ daYun = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断当天是否是节气,如果在节前前, 月柱修改
|
|
|
+ Date d1 = ganZhiDto.getBirthDay();
|
|
|
+ Lunar lunar = Lunar.fromDate(d1);
|
|
|
+ List<JieQiVo> list = jieQiMapper.selectJiiQiFb(d1);
|
|
|
+ if (lunar.getJieQi() != null && !"".equals(lunar.getJieQi())) {
|
|
|
+ //存在节气,如果第二个节气刚好当天相同
|
|
|
+ if (list.get(1).getJieqiName().equals(lunar.getJieQi())) {
|
|
|
+ //把月时间清空,再取一次月柱
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(d1);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
+ Date d2 = calendar.getTime();
|
|
|
+ //重新导入
|
|
|
+ Lunar lunar2 = Lunar.fromDate(d2);
|
|
|
+ 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());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (daYun == 1) { //大运顺
|
|
|
+ int daYunCount = 0;
|
|
|
+ double dayDiff = Math.abs(list.get(1).getDaysDifference());
|
|
|
+ double qiYunSuiDB = (dayDiff / 3); //计算起运岁数
|
|
|
+ int qiYunSui = (int) Math.ceil(qiYunSuiDB);
|
|
|
+ System.out.println("大运顺起运岁数:" + qiYunSui);
|
|
|
+
|
|
|
+ int year = lunar.getYear() + qiYunSui;
|
|
|
+ System.out.println("大运顺起运岁年份数:" + year + "岁");
|
|
|
+
|
|
|
+ String monthZhu = ganZhiDto.getMonthGan() + ganZhiDto.getMonthZhi();
|
|
|
+ List<String> jiaziList = new ArrayList<String>(shiShenConfig.getLiushijiazi());
|
|
|
+
|
|
|
+ List<Map<String, String>> daYunList = new ArrayList<Map<String, String>>();
|
|
|
+ boolean flag = false;
|
|
|
+ for (int i = 60; i < jiaziList.size(); i++) {
|
|
|
+ if (flag) {
|
|
|
+ daYunCount++;
|
|
|
+ int daYunYear = year + (10 * daYunCount) - 10; //大运年份
|
|
|
+ int daYunSui = qiYunSui + (10 * daYunCount) - 10; // 大运岁数
|
|
|
+
|
|
|
+ Map<String, String> daYumMap = new TreeMap<String, String>();
|
|
|
+ daYumMap.put("daYunYear", daYunYear + "");
|
|
|
+ daYumMap.put("daYunSui", daYunSui + "岁");
|
|
|
+ daYumMap.put("daYunGanZhi", jiaziList.get(i));
|
|
|
+
|
|
|
+ daYunList.add(daYumMap);
|
|
|
+ if (daYunList.size() >= 10) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (monthZhu.equals(jiaziList.get(i)) && flag == false) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ganZhiDaYunVo.setDaYunList(daYunList);
|
|
|
+ } else if (daYun == 2) { //大运逆
|
|
|
+ int daYunCount = 0;
|
|
|
+ double dayDiff = Math.abs(list.get(0).getDaysDifference());
|
|
|
+ double qiYunSuiDB = (dayDiff / 3); //计算起运岁数
|
|
|
+ int qiYunSui = (int) Math.ceil(qiYunSuiDB);
|
|
|
+ System.out.println("大运顺起运岁数:" + qiYunSui);
|
|
|
+
|
|
|
+ int year = lunar.getYear() + qiYunSui;
|
|
|
+ System.out.println("大运顺起运岁年份数:" + year + "岁");
|
|
|
+
|
|
|
+ String monthZhu = ganZhiDto.getMonthGan() + ganZhiDto.getMonthZhi();
|
|
|
+ List<String> jiaziList = new ArrayList<String>(shiShenConfig.getLiushijiazi());
|
|
|
+ List<Map<String, String>> daYunList = new ArrayList<Map<String, String>>();
|
|
|
+ boolean flag = false;
|
|
|
+ for (int i = 119; i >= 0; i--) {
|
|
|
+ if (flag) {
|
|
|
+ daYunCount++;
|
|
|
+ int daYunYear = year + (10 * daYunCount) - 10; //大运年份
|
|
|
+ int daYunSui = qiYunSui + (10 * daYunCount) - 10; // 大运岁数
|
|
|
+ Map<String, String> daYumMap = new TreeMap<String, String>();
|
|
|
+ daYumMap.put("daYunYear", daYunYear + "");
|
|
|
+ daYumMap.put("daYunSui", daYunSui + "岁");
|
|
|
+ daYumMap.put("daYunGanZhi", jiaziList.get(i));
|
|
|
+ daYunList.add(daYumMap);
|
|
|
+ if (daYunList.size() >= 9) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (monthZhu.equals(jiaziList.get(i)) && flag == false) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ganZhiDaYunVo.setDaYunList(daYunList);
|
|
|
+ }
|
|
|
+ return ganZhiDaYunVo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, String>> getLiuNian(LiuNianDto linNianDto) {
|
|
|
+ //yyyy-MM-dd HH:mm:ss
|
|
|
+ List<Map<String, String>> liuNianList = new ArrayList<Map<String, String>>();
|
|
|
+
|
|
|
+ int year = 0;
|
|
|
+ for (int i = 0; i < 10; i++) {
|
|
|
+ year = linNianDto.getYear() + i;
|
|
|
+ Map<String, String> liuNianMap = new TreeMap<String, String>();
|
|
|
+ String date = year + "-03-01 01:00:00";
|
|
|
+ Lunar lunar = Lunar.fromDate(DateUtils.parseDate(date));
|
|
|
+ liuNianMap.put("liuNianYear", year + "");
|
|
|
+ liuNianMap.put("liuNianSui", linNianDto.getQiYunOld() + i + "岁");
|
|
|
+ liuNianMap.put("liuNianGanZhi", lunar.getYearGan() + lunar.getYearZhi());
|
|
|
+ liuNianList.add(liuNianMap);
|
|
|
+ }
|
|
|
+ return liuNianList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 干支组装
|
|
|
+ *
|
|
|
+ * @param ganZhiDto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<GanZhiRowVo> getGanZhiRowVoList(GanZhiDto ganZhiDto) {
|
|
|
+
|
|
|
+ String yearGanFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getYearGan());
|
|
|
+ String yearZhiFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getYearZhi());
|
|
|
+ String monthGanFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getMonthGan());
|
|
|
+ String monthZhiFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getMonthZhi());
|
|
|
+ String dayGanFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getDayGan());
|
|
|
+ String dayZhiFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getDayZhi());
|
|
|
+ String timeGanFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getTimeGan());
|
|
|
+ String timeZhiFive = shiShenConfig.getGanZhiFive().get(ganZhiDto.getTimeZhi());
|
|
|
+
|
|
|
+
|
|
|
+ String yearGanColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getYearGan());
|
|
|
+ String yearZhiColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getYearZhi());
|
|
|
+ String monthGanColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getMonthGan());
|
|
|
+ String monthZhiColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getMonthZhi());
|
|
|
+ String dayGanColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getDayGan());
|
|
|
+ String dayZhiColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getDayZhi());
|
|
|
+ String timeGanColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getTimeGan());
|
|
|
+ String timeZhiColor = shiShenConfig.getGanZhiColor().get(ganZhiDto.getTimeZhi());
|
|
|
+
|
|
|
+ GanZhiRowVo yearGan = new GanZhiRowVo();
|
|
|
+ yearGan.setGongWei("年干");
|
|
|
+ yearGan.setFive(yearGanFive);
|
|
|
+ yearGan.setColor(yearGanColor);
|
|
|
+ yearGan.setName(ganZhiDto.getYearGan());
|
|
|
+
|
|
|
+ GanZhiRowVo yearZhi = new GanZhiRowVo();
|
|
|
+ yearZhi.setGongWei("年支");
|
|
|
+ yearZhi.setFive(yearZhiFive);
|
|
|
+ yearZhi.setColor(yearZhiColor);
|
|
|
+ yearZhi.setName(ganZhiDto.getYearZhi());
|
|
|
+
|
|
|
+ GanZhiRowVo monthGan = new GanZhiRowVo();
|
|
|
+ monthGan.setGongWei("月干");
|
|
|
+ monthGan.setFive(monthGanFive);
|
|
|
+ monthGan.setColor(monthGanColor);
|
|
|
+ monthGan.setName(ganZhiDto.getMonthGan());
|
|
|
+
|
|
|
+
|
|
|
+ GanZhiRowVo monthZhi = new GanZhiRowVo();
|
|
|
+ monthZhi.setGongWei("月支");
|
|
|
+ monthZhi.setFive(monthZhiFive);
|
|
|
+ monthZhi.setColor(monthZhiColor);
|
|
|
+ monthZhi.setName(ganZhiDto.getMonthZhi());
|
|
|
+
|
|
|
+ GanZhiRowVo dayGan = new GanZhiRowVo();
|
|
|
+ dayGan.setGongWei("日干");
|
|
|
+ dayGan.setFive(dayGanFive);
|
|
|
+ dayGan.setColor(dayGanColor);
|
|
|
+ dayGan.setName(ganZhiDto.getDayGan());
|
|
|
+
|
|
|
+
|
|
|
+ GanZhiRowVo dayZhi = new GanZhiRowVo();
|
|
|
+ dayZhi.setGongWei("日支");
|
|
|
+ dayZhi.setFive(dayZhiFive);
|
|
|
+ dayZhi.setColor(dayZhiColor);
|
|
|
+ dayZhi.setName(ganZhiDto.getDayZhi());
|
|
|
+
|
|
|
+ GanZhiRowVo timeGan = new GanZhiRowVo();
|
|
|
+ timeGan.setGongWei("时干");
|
|
|
+ timeGan.setFive(timeGanFive);
|
|
|
+ timeGan.setColor(timeGanColor);
|
|
|
+ timeGan.setName(ganZhiDto.getTimeGan());
|
|
|
+
|
|
|
+ GanZhiRowVo timeZhi = new GanZhiRowVo();
|
|
|
+ timeZhi.setGongWei("时支");
|
|
|
+ timeZhi.setFive(timeZhiFive);
|
|
|
+ timeZhi.setColor(timeZhiColor);
|
|
|
+ timeZhi.setName(ganZhiDto.getTimeZhi());
|
|
|
+
|
|
|
+ List<GanZhiRowVo> list = new ArrayList<GanZhiRowVo>();
|
|
|
+ list.add(yearGan);
|
|
|
+ list.add(yearZhi);
|
|
|
+ list.add(monthGan);
|
|
|
+ list.add(monthZhi);
|
|
|
+ list.add(dayGan);
|
|
|
+ list.add(dayZhi);
|
|
|
+ list.add(timeGan);
|
|
|
+ list.add(timeZhi);
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取五行数量
|
|
|
+ *
|
|
|
+ * @param list
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Integer> getGanZhiRowVoCount(List<GanZhiRowVo> list, Map<String, String> reportMap) {
|
|
|
+
|
|
|
+ Map<String, Integer> fiveCount = new TreeMap<String, Integer>();
|
|
|
+ fiveCount.put("木", 0);
|
|
|
+ fiveCount.put("火", 0);
|
|
|
+ fiveCount.put("土", 0);
|
|
|
+ fiveCount.put("金", 0);
|
|
|
+ fiveCount.put("水", 0);
|
|
|
+
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ String five = list.get(i).getFive();
|
|
|
+ Integer fiveC = fiveCount.get(five) + 1;
|
|
|
+ fiveCount.put(five, fiveC);
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuffer zeroCotent = new StringBuffer();
|
|
|
+ fiveCount.forEach((key, value) -> {
|
|
|
+ if (value == 0) {
|
|
|
+ zeroCotent.append(shiShenConfig.getZeroFive().get(key));
|
|
|
+ zeroCotent.append(";");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (zeroCotent.toString().length() > 0) {
|
|
|
+ zeroCotent.deleteCharAt(zeroCotent.length() - 1);
|
|
|
+ reportMap.put("缺失五行评语", zeroCotent.toString());
|
|
|
+ } else {
|
|
|
+ reportMap.put("缺失五行评语", "命格中五行没有缺失,五行比较全面。");
|
|
|
+ }
|
|
|
+
|
|
|
+ return fiveCount;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取十神数量
|
|
|
+ *
|
|
|
+ * @param list
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Integer> getShiShenCount(List<GanZhiRowVo> list, Map<String, String> reportMap) {
|
|
|
+ Map<String, Integer> shiShenCount = new TreeMap<String, Integer>();
|
|
|
+ shiShenCount.put("正印", 0);
|
|
|
+ shiShenCount.put("食神", 0);
|
|
|
+ shiShenCount.put("正官", 0);
|
|
|
+ shiShenCount.put("正财", 0);
|
|
|
+ shiShenCount.put("七杀", 0);
|
|
|
+ shiShenCount.put("偏印", 0);
|
|
|
+ shiShenCount.put("偏财", 0);
|
|
|
+ shiShenCount.put("伤官", 0);
|
|
|
+ shiShenCount.put("劫财", 0);
|
|
|
+ shiShenCount.put("比肩", 0);
|
|
|
+
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ String shiShen1 = list.get(i).getShiShen1();
|
|
|
+ String shiShen2 = list.get(i).getShiShen2();
|
|
|
+ String shiShen3 = list.get(i).getShiShen3();
|
|
|
+ //正印
|
|
|
+ if (shiShen1 != null && shiShen1.contains("正印")) {
|
|
|
+ Integer count = shiShenCount.get("正印") + 1;
|
|
|
+ shiShenCount.put("正印", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("正印")) {
|
|
|
+ Integer count = shiShenCount.get("正印") + 1;
|
|
|
+ shiShenCount.put("正印", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("正印")) {
|
|
|
+ Integer count = shiShenCount.get("正印") + 1;
|
|
|
+ shiShenCount.put("正印", count);
|
|
|
+ }
|
|
|
+ //食神
|
|
|
+ if (shiShen1 != null && shiShen1.contains("食神")) {
|
|
|
+ Integer count = shiShenCount.get("食神") + 1;
|
|
|
+ shiShenCount.put("食神", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("食神")) {
|
|
|
+ Integer count = shiShenCount.get("食神") + 1;
|
|
|
+ shiShenCount.put("食神", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("食神")) {
|
|
|
+ Integer count = shiShenCount.get("食神") + 1;
|
|
|
+ shiShenCount.put("食神", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //正官
|
|
|
+ if (shiShen1 != null && shiShen1.contains("正官")) {
|
|
|
+ Integer count = shiShenCount.get("正官") + 1;
|
|
|
+ shiShenCount.put("正官", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("正官")) {
|
|
|
+ Integer count = shiShenCount.get("正官") + 1;
|
|
|
+ shiShenCount.put("正官", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("正官")) {
|
|
|
+ Integer count = shiShenCount.get("正官") + 1;
|
|
|
+ shiShenCount.put("正官", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //正财
|
|
|
+ if (shiShen1 != null && shiShen1.contains("正财")) {
|
|
|
+ Integer count = shiShenCount.get("正财") + 1;
|
|
|
+ shiShenCount.put("正财", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("正财")) {
|
|
|
+ Integer count = shiShenCount.get("正财") + 1;
|
|
|
+ shiShenCount.put("正财", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("正财")) {
|
|
|
+ Integer count = shiShenCount.get("正财") + 1;
|
|
|
+ shiShenCount.put("正财", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //七杀
|
|
|
+ if (shiShen1 != null && shiShen1.contains("七杀")) {
|
|
|
+ Integer count = shiShenCount.get("七杀") + 1;
|
|
|
+ shiShenCount.put("七杀", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("七杀")) {
|
|
|
+ Integer count = shiShenCount.get("七杀") + 1;
|
|
|
+ shiShenCount.put("七杀", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("七杀")) {
|
|
|
+ Integer count = shiShenCount.get("七杀") + 1;
|
|
|
+ shiShenCount.put("七杀", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //偏印
|
|
|
+ if (shiShen1 != null && shiShen1.contains("偏印")) {
|
|
|
+ Integer count = shiShenCount.get("偏印") + 1;
|
|
|
+ shiShenCount.put("偏印", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("偏印")) {
|
|
|
+ Integer count = shiShenCount.get("偏印") + 1;
|
|
|
+ shiShenCount.put("偏印", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("偏印")) {
|
|
|
+ Integer count = shiShenCount.get("偏印") + 1;
|
|
|
+ shiShenCount.put("偏印", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //偏财
|
|
|
+ if (shiShen1 != null && shiShen1.contains("偏财")) {
|
|
|
+ Integer count = shiShenCount.get("偏财") + 1;
|
|
|
+ shiShenCount.put("偏财", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("偏财")) {
|
|
|
+ Integer count = shiShenCount.get("偏财") + 1;
|
|
|
+ shiShenCount.put("偏财", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("偏财")) {
|
|
|
+ Integer count = shiShenCount.get("偏财") + 1;
|
|
|
+ shiShenCount.put("偏财", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //伤官
|
|
|
+ if (shiShen1 != null && shiShen1.contains("伤官")) {
|
|
|
+ Integer count = shiShenCount.get("伤官") + 1;
|
|
|
+ shiShenCount.put("伤官", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("伤官")) {
|
|
|
+ Integer count = shiShenCount.get("伤官") + 1;
|
|
|
+ shiShenCount.put("伤官", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("伤官")) {
|
|
|
+ Integer count = shiShenCount.get("伤官") + 1;
|
|
|
+ shiShenCount.put("伤官", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //劫财
|
|
|
+ if (shiShen1 != null && shiShen1.contains("劫财")) {
|
|
|
+ Integer count = shiShenCount.get("劫财") + 1;
|
|
|
+ shiShenCount.put("劫财", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("劫财")) {
|
|
|
+ Integer count = shiShenCount.get("劫财") + 1;
|
|
|
+ shiShenCount.put("劫财", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("劫财")) {
|
|
|
+ Integer count = shiShenCount.get("劫财") + 1;
|
|
|
+ shiShenCount.put("劫财", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ //比肩
|
|
|
+ if (shiShen1 != null && shiShen1.contains("比肩")) {
|
|
|
+ Integer count = shiShenCount.get("比肩") + 1;
|
|
|
+ shiShenCount.put("比肩", count);
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("比肩")) {
|
|
|
+ Integer count = shiShenCount.get("比肩") + 1;
|
|
|
+ shiShenCount.put("比肩", count);
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("比肩")) {
|
|
|
+ Integer count = shiShenCount.get("比肩") + 1;
|
|
|
+ shiShenCount.put("比肩", count);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ StringBuffer zeroCotent = new StringBuffer();
|
|
|
+
|
|
|
+ shiShenCount.forEach((key, value) -> {
|
|
|
+ System.out.println(key + " " + value);
|
|
|
+ if (value == 0) {
|
|
|
+ zeroCotent.append(shiShenConfig.getZeroShiShen().get(key));
|
|
|
+ zeroCotent.append(";");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (zeroCotent.toString().length() > 0) {
|
|
|
+ zeroCotent.deleteCharAt(zeroCotent.length() - 1);
|
|
|
+ reportMap.put("缺失十神评语", zeroCotent.toString() + "。");
|
|
|
+ } else {
|
|
|
+ reportMap.put("缺失十神评语", "命格中十神没有缺失,性格比较全面。");
|
|
|
+ }
|
|
|
+ return shiShenCount;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 潮湿平衡
|
|
|
+ *
|
|
|
+ * @param list
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Integer> getZaoShiCount(List<GanZhiRowVo> list, Map<String, Integer> fiveCount, Map<String, String> reportMap) {
|
|
|
+
|
|
|
+ Map<String, Integer> fiveCountMap = new TreeMap<String, Integer>();
|
|
|
+ fiveCountMap.putAll(fiveCount);
|
|
|
+
|
|
|
+ int huoCount = fiveCountMap.get("火");
|
|
|
+ int shuiCount = fiveCountMap.get("水");
|
|
|
+
|
|
|
+ for (int i = 1; i < list.size(); i += 2) {
|
|
|
+ String five = list.get(i).getFive();
|
|
|
+ if ("土".equals(five)) {
|
|
|
+ if (huoCount > shuiCount) {
|
|
|
+ String name = list.get(i).getName();
|
|
|
+ if ("戌".equals(name) || "未".equals(name)) {
|
|
|
+ Integer fiveC = (Integer) fiveCountMap.get("火") + 1;
|
|
|
+ fiveCountMap.put("火", fiveC);
|
|
|
+ }
|
|
|
+ } else if (huoCount < shuiCount) {
|
|
|
+ String name = list.get(i).getName();
|
|
|
+ if ("辰".equals(name) || "丑".equals(name)) {
|
|
|
+ Integer fiveC = (Integer) fiveCountMap.get("水") + 1;
|
|
|
+ fiveCountMap.put("水", fiveC);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fiveCountMap.remove("土");
|
|
|
+ fiveCountMap.remove("金");
|
|
|
+ fiveCountMap.remove("木");
|
|
|
+
|
|
|
+
|
|
|
+ int huoCount2 = fiveCountMap.get("火");
|
|
|
+ int shuiCoun2 = fiveCountMap.get("水");
|
|
|
+
|
|
|
+ Map<String, Integer> zaoShiMap = new TreeMap<String, Integer>();
|
|
|
+ zaoShiMap.putAll(fiveCountMap);
|
|
|
+
|
|
|
+
|
|
|
+ if (huoCount2 - shuiCoun2 >= 2) { //火过旺
|
|
|
+ reportMap.put("潮湿平衡", "过于干燥,火特别多,性情比较暴躁,容易上火,内心上火容易产生无名火,容易被“点燃”生气,身体也容易上火。");
|
|
|
+ } else if (huoCount2 - shuiCoun2 == 1) { //火轻微过旺
|
|
|
+ reportMap.put("潮湿平衡", "偏干燥,火特别多,性情相对比较急躁。");
|
|
|
+ } else if (huoCount2 - shuiCoun2 <= -2) {
|
|
|
+ reportMap.put("潮湿平衡", "过于湿润,大便不成形,湿气太重了,比较会容易肚子,手脚冰凉,气血不活。");
|
|
|
+ } else if (huoCount2 - shuiCoun2 == -1) {
|
|
|
+ reportMap.put("潮湿平衡", "偏湿润,大便不成形,湿气较重,气血不活。");
|
|
|
+ } else if (huoCount2 - shuiCoun2 == 0) {
|
|
|
+ reportMap.put("潮湿平衡", "各个宫位,燥湿达到平衡。不会过湿,过燥。");
|
|
|
+ }
|
|
|
+
|
|
|
+ return zaoShiMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回能量最强的天干
|
|
|
+ *
|
|
|
+ * @param ganZhiDto
|
|
|
+ * @return 1 天干 2月干 3时干
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int getMaxTianGan(GanZhiDto ganZhiDto) {
|
|
|
+ /*-------------------能量最强天干---------------------*/
|
|
|
+ List<GanZhiRowVo> list = this.getGanZhiRowVoList(ganZhiDto);
|
|
|
+
|
|
|
+ //年干 得分
|
|
|
+// int yearGanQR = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(0).getFive());
|
|
|
+ int yearZhiQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(1).getFive());
|
|
|
+ int monthGanQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(2).getFive());
|
|
|
+ int monthZhiQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(3).getFive());
|
|
|
+ int dayGanQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(4).getFive());
|
|
|
+ int dayZhiQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(5).getFive());
|
|
|
+ int timeGanQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(6).getFive());
|
|
|
+ int timeZhiQR1 = ShiShenConfig.generateRelationship(list.get(0).getFive(), list.get(7).getFive());
|
|
|
+
|
|
|
+ int yearGanScore = 0;
|
|
|
+ if (yearZhiQR1 > 0) {
|
|
|
+ yearGanScore += 12;
|
|
|
+ }
|
|
|
+ if (monthGanQR1 > 0) {
|
|
|
+ yearGanScore += 12;
|
|
|
+ }
|
|
|
+ if (monthZhiQR1 > 0) {
|
|
|
+ yearGanScore += 40;
|
|
|
+ }
|
|
|
+ if (dayGanQR1 > 0) {
|
|
|
+ yearGanScore += 12;
|
|
|
+ }
|
|
|
+ if (dayZhiQR1 > 0) {
|
|
|
+ yearGanScore += 12;
|
|
|
+ }
|
|
|
+ if (timeGanQR1 > 0) {
|
|
|
+ yearGanScore += 8;
|
|
|
+ }
|
|
|
+ if (timeZhiQR1 > 0) {
|
|
|
+ yearGanScore += 4;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*-------------------能量最强天干---------------------*/
|
|
|
+
|
|
|
+ //月干 得分
|
|
|
+ int yearGanQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(0).getFive());
|
|
|
+ int yearZhiQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(1).getFive());
|
|
|
+// int monthGanQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(2).getFive());
|
|
|
+ int monthZhiQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(3).getFive());
|
|
|
+ int dayGanQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(4).getFive());
|
|
|
+ int dayZhiQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(5).getFive());
|
|
|
+ int timeGanQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(6).getFive());
|
|
|
+ int timeZhiQR2 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(7).getFive());
|
|
|
+
|
|
|
+ int monthGanScore = 0;
|
|
|
+ if (yearGanQR2 > 0) {
|
|
|
+ monthGanScore += 12;
|
|
|
+ }
|
|
|
+ if (yearZhiQR2 > 0) {
|
|
|
+ monthGanScore += 12;
|
|
|
+ }
|
|
|
+ if (monthZhiQR2 > 0) {
|
|
|
+ monthGanScore += 40;
|
|
|
+ }
|
|
|
+ if (dayGanQR2 > 0) {
|
|
|
+ monthGanScore += 12;
|
|
|
+ }
|
|
|
+ if (dayZhiQR2 > 0) {
|
|
|
+ monthGanScore += 12;
|
|
|
+ }
|
|
|
+ if (timeGanQR2 > 0) {
|
|
|
+ monthGanScore += 8;
|
|
|
+ }
|
|
|
+ if (timeZhiQR2 > 0) {
|
|
|
+ monthGanScore += 4;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //时干 得分
|
|
|
+ int yearGanQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(0).getFive());
|
|
|
+ int yearZhiQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(1).getFive());
|
|
|
+ int monthGanQR3 = ShiShenConfig.generateRelationship(list.get(2).getFive(), list.get(2).getFive());
|
|
|
+ int monthZhiQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(3).getFive());
|
|
|
+ int dayGanQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(4).getFive());
|
|
|
+ int dayZhiQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(5).getFive());
|
|
|
+ //int timeGanQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(6).getFive());
|
|
|
+ int timeZhiQR3 = ShiShenConfig.generateRelationship(list.get(6).getFive(), list.get(7).getFive());
|
|
|
+
|
|
|
+ int timeGanScore = 0;
|
|
|
+ if (yearGanQR3 > 0) {
|
|
|
+ timeGanScore += 8;
|
|
|
+ }
|
|
|
+ if (yearZhiQR3 > 0) {
|
|
|
+ timeGanScore += 4;
|
|
|
+ }
|
|
|
+ if (monthGanQR3 > 0) {
|
|
|
+ timeGanScore += 40;
|
|
|
+ }
|
|
|
+ if (monthZhiQR3 > 0) {
|
|
|
+ timeGanScore += 12;
|
|
|
+ }
|
|
|
+ if (dayGanQR3 > 0) {
|
|
|
+ timeGanScore += 12;
|
|
|
+ }
|
|
|
+ if (dayZhiQR3 > 0) {
|
|
|
+ timeGanScore += 12;
|
|
|
+ }
|
|
|
+ if (timeZhiQR3 > 0) {
|
|
|
+ timeGanScore += 12;
|
|
|
+ }
|
|
|
+ int maxGan = ShiShenConfig.getMax(yearGanScore, monthGanScore, timeGanScore);
|
|
|
+ ganZhiDto.setMaxGan(maxGan);
|
|
|
+ return maxGan;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getGeJu(List<GanZhiRowVo> list, int maxTianGan, String qr) {
|
|
|
+
|
|
|
+ String yearGan = list.get(0).getShiShen1();
|
|
|
+ String monthGan = list.get(2).getShiShen1();
|
|
|
+ String timeGan = list.get(6).getShiShen1();
|
|
|
+
|
|
|
+ String geju = null;
|
|
|
+
|
|
|
+ if (list.get(3).getShiShen1() != null && list.get(3).getShiShen1().contains(yearGan)) { //月令十神1在 年干透出
|
|
|
+ geju = yearGan;
|
|
|
+ } else if (list.get(3).getShiShen1() != null && list.get(3).getShiShen1().contains(monthGan)) { //月令十神1在 月干透出
|
|
|
+ geju = monthGan;
|
|
|
+ } else if (list.get(3).getShiShen1() != null && list.get(3).getShiShen1().contains(timeGan)) { //月令十神1在 时干透出
|
|
|
+ geju = timeGan;
|
|
|
+ } else if (list.get(3).getShiShen2() != null && list.get(3).getShiShen2().contains(yearGan)) { //月令十神2在 年干透出
|
|
|
+ geju = yearGan;
|
|
|
+ } else if (list.get(3).getShiShen2() != null && list.get(3).getShiShen2().contains(monthGan)) { //月令十神2在 月干透出
|
|
|
+ geju = monthGan;
|
|
|
+ } else if (list.get(3).getShiShen2() != null && list.get(3).getShiShen2().contains(timeGan)) { //月令十神2在 时干透出
|
|
|
+ geju = timeGan;
|
|
|
+ } else if (list.get(3).getShiShen3() != null && list.get(3).getShiShen3().contains(yearGan)) { //月令十神3在 年干透出
|
|
|
+ geju = yearGan;
|
|
|
+ } else if (list.get(3).getShiShen3() != null && list.get(3).getShiShen3().contains(monthGan)) { //月令十神3在 月干透出
|
|
|
+ geju = monthGan;
|
|
|
+ } else if (list.get(3).getShiShen3() != null && list.get(3).getShiShen3().contains(timeGan)) { //月令十神3在 时干透出
|
|
|
+ geju = timeGan;
|
|
|
+ } else {
|
|
|
+ geju = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (geju == null) {
|
|
|
+ if (maxTianGan == 1) {
|
|
|
+ geju = yearGan;
|
|
|
+ } else if (maxTianGan == 2) {
|
|
|
+ geju = monthGan;
|
|
|
+ } else if (maxTianGan == 3) {
|
|
|
+ geju = timeGan;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ GeJu geJu = new GeJu();
|
|
|
+ geJu.setShiShen(geju);
|
|
|
+ if (qr.contains("强")) {
|
|
|
+ geJu.setQr("3,1");
|
|
|
+ } else if (qr.contains("弱")) {
|
|
|
+ geJu.setQr("3,2");
|
|
|
+ }
|
|
|
+
|
|
|
+ String sex = list.get(4).getShiShen1();
|
|
|
+ if ("元男".equals(sex)) {
|
|
|
+ geJu.setSex("1,3");
|
|
|
+ } else if ("元女".equals(sex)) {
|
|
|
+ geJu.setSex("2,3");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<GeJu> geJuList = geJuMapper.selectGeJuList2(geJu);
|
|
|
+
|
|
|
+ StringBuffer content = new StringBuffer();
|
|
|
+ for (int i = 0; i < geJuList.size(); i++) {
|
|
|
+ content.append(geJuList.get(i).getContent());
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, String> geJuMap = new TreeMap<String, String>();
|
|
|
+ geJuMap.put("geju", geju);
|
|
|
+ geJuMap.put("content", content.toString());
|
|
|
+ return geJuMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<Integer, String> getGuo3Guan(List<GanZhiRowVo> list, String qr) {
|
|
|
+
|
|
|
+ int x = 1; //用来做序号
|
|
|
+ Map<Integer, String> guo3GuanMap = new TreeMap<Integer, String>();
|
|
|
+
|
|
|
+ //1.八字带午火脾气最不好
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if ((i == 1 || i == 3 || i == 5 || i == 7) && i != 4) { //地支
|
|
|
+ if ("午".equals(list.get(i).getName())) {
|
|
|
+ guo3GuanMap.put(x++, "脾气比较大,容易发火。");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //2.身强身弱
|
|
|
+ if (qr.contains("强")) {
|
|
|
+ guo3GuanMap.put(x++, "容易破财,被人劫财。");
|
|
|
+ } else if (qr.contains("弱")) {
|
|
|
+ guo3GuanMap.put(x++, "不太好赚钱,看着别人发财,自己却不容易挣钱。");
|
|
|
+ }
|
|
|
+
|
|
|
+ //3.有甲有金,面部有伤或者头部有伤
|
|
|
+ boolean jia = false;
|
|
|
+ boolean jin = false;
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if ("甲".equals(list.get(i).getName())) {
|
|
|
+ jia = true;
|
|
|
+ }
|
|
|
+ if ("庚".equals(list.get(i).getName())) {
|
|
|
+ jin = true;
|
|
|
+ }
|
|
|
+ if ("辛".equals(list.get(i).getName())) {
|
|
|
+ jin = true;
|
|
|
+ }
|
|
|
+ if ("申".equals(list.get(i).getName())) {
|
|
|
+ jin = true;
|
|
|
+ }
|
|
|
+ if ("酉".equals(list.get(i).getName())) {
|
|
|
+ jin = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (jia == true && jin == true) {
|
|
|
+ guo3GuanMap.put(x++, "面部有伤或者头部有伤。");
|
|
|
+ }
|
|
|
+
|
|
|
+ //4.八字那个宫位有土,哪里有坑痕疤痣。
|
|
|
+ StringBuffer tuContent = new StringBuffer();
|
|
|
+ String tu = "戊己丑戌辰未";
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if (tu.contains(list.get(i).getName())) {
|
|
|
+ tuContent.append(shiShenConfig.getBody().get(i));
|
|
|
+ tuContent.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tuContent.toString().length() > 0) {
|
|
|
+ tuContent.deleteCharAt(tuContent.length() - 1);
|
|
|
+ tuContent.append("身体部位存在伤疤或痣。");
|
|
|
+ guo3GuanMap.put(x++, tuContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ //5.卯为电脑,显示类的东西(需要住满3年以上)
|
|
|
+ StringBuffer maoContent = new StringBuffer();
|
|
|
+ StringBuffer maoC = new StringBuffer();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if ("卯".equals(list.get(i).getName())) {
|
|
|
+ maoC.append(shiShenConfig.getPosition().get(i));
|
|
|
+ maoC.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (maoC.toString().length() > 0) {
|
|
|
+ maoC.deleteCharAt(maoC.length() - 1);
|
|
|
+ maoContent.append("如果在当前住所居住满3年以上,");
|
|
|
+ maoContent.append(maoC);
|
|
|
+ maoContent.append("存在电脑或显示器类的物品。");
|
|
|
+ guo3GuanMap.put(x++, maoContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ //6.偏印为翅膀,羽毛,会飞的东西(需要住满3年以上)
|
|
|
+ StringBuffer pianContent = new StringBuffer();
|
|
|
+ StringBuffer pianC = new StringBuffer();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if (list.get(i).getShiShen1().contains("偏印")
|
|
|
+ || (list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("偏印"))
|
|
|
+ || (list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("偏印"))) {
|
|
|
+ pianC.append(shiShenConfig.getPosition().get(i));
|
|
|
+ pianC.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (pianC.toString().length() > 0) {
|
|
|
+ pianC.deleteCharAt(pianC.length() - 1);
|
|
|
+ pianContent.append("如果在当前住所居住满3年以上,");
|
|
|
+ pianContent.append(pianC);
|
|
|
+ pianContent.append("存在带有翅膀,羽毛,会飞的东西物品或摆件。");
|
|
|
+ guo3GuanMap.put(x++, pianContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //7.正财代表女人,钱,珠宝
|
|
|
+ StringBuffer zhengcaiContent = new StringBuffer();
|
|
|
+ StringBuffer zhengcaiC = new StringBuffer();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if (list.get(i).getShiShen1().contains("正财")
|
|
|
+ || (list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("正财"))
|
|
|
+ || (list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("正财"))) {
|
|
|
+ zhengcaiC.append(shiShenConfig.getPosition().get(i));
|
|
|
+ zhengcaiC.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (zhengcaiC.toString().length() > 0) {
|
|
|
+ zhengcaiC.deleteCharAt(zhengcaiC.length() - 1);
|
|
|
+ zhengcaiContent.append("如果在当前住所居住满3年以上,");
|
|
|
+ zhengcaiContent.append(zhengcaiC);
|
|
|
+ zhengcaiContent.append("存在带有女性照片,结婚证,金钱,珠宝,较有价值的物品。");
|
|
|
+ guo3GuanMap.put(x++, zhengcaiContent.toString());
|
|
|
+ System.out.println(zhengcaiContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //8.正印代表文件,书籍
|
|
|
+ StringBuffer zhengyinContent = new StringBuffer();
|
|
|
+ StringBuffer zhengyinC = new StringBuffer();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if (list.get(i).getShiShen1().contains("正印")
|
|
|
+ || (list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("正印"))
|
|
|
+ || (list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("正印"))) {
|
|
|
+ zhengyinC.append(shiShenConfig.getPosition().get(i));
|
|
|
+ zhengyinC.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (zhengyinC.toString().length() > 0) {
|
|
|
+ zhengyinC.deleteCharAt(zhengyinC.length() - 1);
|
|
|
+ zhengyinContent.append("如果在当前住所居住满3年以上,");
|
|
|
+ zhengyinContent.append(zhengyinC);
|
|
|
+ zhengyinContent.append("存在文件、书籍等物品。");
|
|
|
+ guo3GuanMap.put(x++, zhengyinContent.toString());
|
|
|
+ System.out.println(zhengyinContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //9.丁火喜欢熬夜
|
|
|
+ if (list.get(4).getName().equals("丁")) {
|
|
|
+ guo3GuanMap.put(x++, "你比较喜欢熬夜,到晚上会比较有精神。");
|
|
|
+ }
|
|
|
+ if (list.get(6).getName().equals("丁")) {
|
|
|
+ guo3GuanMap.put(x++, "你的孩子比较喜欢熬夜,到晚上会比较有精神。");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //10.八字那个宫位有土,哪里有坑痕疤痣。
|
|
|
+ StringBuffer shenContent = new StringBuffer();
|
|
|
+ StringBuffer shenC = new StringBuffer();
|
|
|
+ String shen = "辰戌丑未";
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if (shen.contains(list.get(i).getName())) {
|
|
|
+ shenC.append(shiShenConfig.getPosition().get(i));
|
|
|
+ shenC.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (shenC.toString().length() > 0) {
|
|
|
+ shenC.deleteCharAt(shenC.length() - 1);
|
|
|
+ shenContent.append("如果在当前住所居住满3年以上,");
|
|
|
+ shenContent.append(shenC);
|
|
|
+ shenContent.append("存在神佛类物品或摆件(包含中西方诸神,佛主、耶稣等等)。");
|
|
|
+ guo3GuanMap.put(x++, shenContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //11.酉金为瓶瓶罐罐,能发出声音的物品
|
|
|
+ StringBuffer youContent = new StringBuffer();
|
|
|
+ StringBuffer youC = new StringBuffer();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if ("酉".equals(list.get(i).getName())) {
|
|
|
+ youC.append(shiShenConfig.getBody().get(i));
|
|
|
+ youC.append("、");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (youContent.toString().length() > 0) {
|
|
|
+ youC.deleteCharAt(youC.length() - 1);
|
|
|
+ youContent.append("如果在当前住所居住满3年以上,");
|
|
|
+ youContent.append(youC);
|
|
|
+ youContent.append("存在瓶瓶罐罐,能发出声音的物品,如耳机音箱之类。");
|
|
|
+ guo3GuanMap.put(x++, youContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //12.酉金带食神
|
|
|
+ boolean sing = false;
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if ("酉".equals(list.get(i).getName()) &&
|
|
|
+ ((list.get(i).getShiShen1() != null && list.get(i).getShiShen1().contains("食神"))
|
|
|
+ ||
|
|
|
+ (list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("食神"))
|
|
|
+ ||
|
|
|
+ (list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("食神")))) {
|
|
|
+ sing = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sing) {
|
|
|
+ System.out.println("你在唱歌方面表现出色,嗓音优美动人,超越了一般水平。");
|
|
|
+ guo3GuanMap.put(x++, "你在唱歌方面表现出色,嗓音优美动人,超越了一般水平。");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //13.庚金暴力
|
|
|
+ StringBuffer genContent = new StringBuffer();
|
|
|
+ if (list.get(2).getName().equals("庚")) {
|
|
|
+ genContent.append("父亲比较有暴力倾向,可能有对母亲动手过。");
|
|
|
+ }
|
|
|
+ if (list.get(3).getName().equals("申")) {
|
|
|
+ genContent.append("母亲比较有暴力倾向,可能有对父亲动手过。");
|
|
|
+ }
|
|
|
+ if (list.get(4).getName().equals("庚")) {
|
|
|
+ //性别
|
|
|
+ if (list.get(4).getShiShen1().contains("男")) {
|
|
|
+ genContent.append("你比较有暴力倾向,可能对老婆家暴。");
|
|
|
+ } else if (list.get(4).getShiShen1().contains("女")) {
|
|
|
+ genContent.append("你比较有暴力倾向,可能对老公家暴。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (list.get(5).getName().equals("申")) {
|
|
|
+ //性别
|
|
|
+ if (list.get(4).getShiShen1().contains("男")) {
|
|
|
+ genContent.append("你的老婆比较暴力,可能对你家暴。");
|
|
|
+ } else if (list.get(4).getShiShen1().contains("女")) {
|
|
|
+ genContent.append("你的老公比较暴力,可能对你家暴。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (genContent.toString().length() > 0) {
|
|
|
+ genContent.insert(0, "较暴力,真发火时可能会动手。");
|
|
|
+ guo3GuanMap.put(x++, genContent.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //14.有甲有金,面部有伤或者头部有伤
|
|
|
+ boolean bi = false;
|
|
|
+ boolean cai = false;
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ //性别
|
|
|
+ if (list.get(4).getShiShen1().contains("男")) {
|
|
|
+ if ((i == 1 || i == 3 || i == 5 || i == 7) && i != 4) {
|
|
|
+ if (list.get(i).getShiShen1() != null && list.get(i).getShiShen1().contains("比肩") || list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("比肩") || list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("比肩")) {
|
|
|
+ bi = true;
|
|
|
+ }
|
|
|
+ if (list.get(i).getShiShen1() != null && list.get(i).getShiShen1().contains("正财") || list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("正财") || list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("正财")) {
|
|
|
+ cai = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (list.get(4).getShiShen1().contains("女")) {
|
|
|
+ if ((i == 1 || i == 3 || i == 5 || i == 7) && i != 4) {
|
|
|
+ if (list.get(i).getShiShen1() != null && list.get(i).getShiShen1().contains("比肩") || list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("比肩") || list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("比肩")) {
|
|
|
+ bi = true;
|
|
|
+ }
|
|
|
+ if (list.get(i).getShiShen1() != null && list.get(i).getShiShen1().contains("正官") || list.get(i).getShiShen2() != null && list.get(i).getShiShen2().contains("正官") || list.get(i).getShiShen3() != null && list.get(i).getShiShen3().contains("正官")) {
|
|
|
+ cai = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (bi == true && cai == true) {
|
|
|
+ //性别
|
|
|
+ if (list.get(4).getShiShen1().contains("男")) {
|
|
|
+ guo3GuanMap.put(x++, "大概率跟老婆在一个公司或单位,一起工作过。(过去或未来)");
|
|
|
+ } else if (list.get(4).getShiShen1().contains("女")) {
|
|
|
+ guo3GuanMap.put(x++, "大概率跟老婆在一个公司或单位,一起工作过。(过去或未来)");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String dayZhu = list.get(4).getName() + list.get(5).getName();
|
|
|
+ if (dayZhu.equals("甲辰") || dayZhu.equals("乙巳") || dayZhu.equals("丙申") || dayZhu.equals("丁亥") || dayZhu.equals("庚辰")
|
|
|
+ || dayZhu.equals("戊戌") || dayZhu.equals("癸亥") || dayZhu.equals("辛巳") || dayZhu.equals("壬申") || dayZhu.equals("己丑")
|
|
|
+ ) {
|
|
|
+ guo3GuanMap.put(x++, "十恶大败日生人,入不敷出,花钱多,进钱少。可能欠有银行贷款等外债。");
|
|
|
+ }
|
|
|
+
|
|
|
+ return guo3GuanMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getXiFangWei(Lunar lunar) {
|
|
|
+ String str = lunar.toFullString();
|
|
|
+ String[] s = str.split(" ");
|
|
|
+ StringBuffer fangWei = new StringBuffer();
|
|
|
+
|
|
|
+ str = str.substring(str.indexOf("喜神方位"));
|
|
|
+
|
|
|
+ System.out.println(str);
|
|
|
+
|
|
|
+ return str;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getIndustry(Map<String, Object> riYuanQrMap, String geju) {
|
|
|
+
|
|
|
+ List<String> xiYongList = (List) riYuanQrMap.get("xiYong");
|
|
|
+ StringBuffer industry = new StringBuffer();
|
|
|
+ if (geju != null && !"".equals(geju)) {
|
|
|
+ industry.append("根据十神格局分析出推荐行业:");
|
|
|
+ industry.append(shiShenConfig.getShiShenIndustry().get(geju));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ industry.append("根据五行喜用推荐行业:");
|
|
|
+ for (int i = 0; i < xiYongList.size(); i++) {
|
|
|
+ industry.append(shiShenConfig.getFiveIndustry().get(xiYongList.get(i)));
|
|
|
+ }
|
|
|
+
|
|
|
+ return industry.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getGuiren(List<GanZhiRowVo> ganZhiRowVoList) {
|
|
|
+
|
|
|
+ ganZhiRowVoList.get(0).getName();
|
|
|
+ ganZhiRowVoList.get(4).getName();
|
|
|
+
|
|
|
+ String guiren = shiShenConfig.getTianyiGuiren().get(ganZhiRowVoList.get(0).getName());
|
|
|
+ String guiren2 = shiShenConfig.getTianyiGuiren().get(ganZhiRowVoList.get(4).getName());
|
|
|
+
|
|
|
+ String guirenShengXiao = shiShenConfig.getTianyiGuirenShengXiao().get(ganZhiRowVoList.get(0).getName());
|
|
|
+ String guirenShengXiao2 = shiShenConfig.getTianyiGuirenShengXiao().get(ganZhiRowVoList.get(4).getName());
|
|
|
+
|
|
|
+
|
|
|
+ StringBuffer guiRenStr = new StringBuffer();
|
|
|
+ guiRenStr.append("建议多与八字中带有");
|
|
|
+ guiRenStr.append(guiren + "、");
|
|
|
+ guiRenStr.append(guiren2);
|
|
|
+ guiRenStr.append("的人相处。或者属相为");
|
|
|
+ guiRenStr.append(guirenShengXiao + "、");
|
|
|
+ guiRenStr.append(guirenShengXiao2);
|
|
|
+ guiRenStr.append("的人相处,容易得到帮助。");
|
|
|
+
|
|
|
+ return guiRenStr.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getChenGu(Lunar lunar, Integer sex) {
|
|
|
+
|
|
|
+ System.out.println(lunar.getYear()); //年
|
|
|
+ System.out.println(lunar.getMonth()); //月
|
|
|
+ System.out.println(lunar.getDay()); //日
|
|
|
+ // String time = lunar.getTime().toString().substring(lunar.getTime().toString().length() - 1); //时
|
|
|
+ // System.out.println(time);
|
|
|
+
|
|
|
+ int yearZhong = shiShenConfig.getGuZhong().get(lunar.getYearGan() + lunar.getYearZhi());
|
|
|
+ int monthZhong = shiShenConfig.getGuZhong().get(lunar.getMonth() + "月");
|
|
|
+ int dayZhong = shiShenConfig.getGuZhong().get(lunar.getDay() + "日");
|
|
|
+ String time = lunar.getTime().toString().substring(lunar.getTime().toString().length() - 1); //时
|
|
|
+ int timeZhong = shiShenConfig.getGuZhong().get(time);
|
|
|
+
|
|
|
+ System.out.println(yearZhong);
|
|
|
+ System.out.println(monthZhong);
|
|
|
+ System.out.println(dayZhong);
|
|
|
+ System.out.println(timeZhong);
|
|
|
+
|
|
|
+ int total = yearZhong + monthZhong + dayZhong + timeZhong;
|
|
|
+
|
|
|
+ Map<String, String> chenGuMap = new TreeMap<String, String>();
|
|
|
+ String chenGuContent = null;
|
|
|
+ if (sex == 1) {
|
|
|
+ chenGuContent = shiShenConfig.getGuZhongPingYuMan().get(String.valueOf(total));
|
|
|
+ } else if (sex == 2) {
|
|
|
+ chenGuContent = shiShenConfig.getGuZhongPingYuWoman().get(String.valueOf(total));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ String liang = String.valueOf(total).substring(0, 1);
|
|
|
+ String qiang = String.valueOf(total).substring(1, 2);
|
|
|
+
|
|
|
+ String[] liangArray = {"零两", "一两", "二两", "三两", "四两", "五两", "六两", "七两", "八两", "九两"};
|
|
|
+ String[] qiangArray = {"零钱", "一钱", "二钱", "三钱", "四钱", "五钱", "六钱", "七钱", "八钱", "九钱"};
|
|
|
+
|
|
|
+ int shi = Integer.parseInt(liang);
|
|
|
+ int ge = Integer.parseInt(qiang);
|
|
|
+
|
|
|
+ String shiStr = liangArray[shi];
|
|
|
+ String geStr = qiangArray[ge];
|
|
|
+
|
|
|
+ chenGuMap.put("称骨重量", shiStr + geStr);
|
|
|
+ chenGuMap.put("称骨评语", chenGuContent);
|
|
|
+
|
|
|
+ return chenGuMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getPiQi(List<GanZhiRowVo> ganZhiRowVoList) {
|
|
|
+ String shiShen1 = ganZhiRowVoList.get(5).getShiShen1();
|
|
|
+ String shiShen = shiShen1.substring(2, 4);
|
|
|
+ String piqi = shiShenConfig.getPiQi().get(shiShen);
|
|
|
+ return piqi;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getCaiYun(List<GanZhiRowVo> ganZhiRowVoList, Map<String, Object> riYuanQrMap, Map<String, Integer> shiShenCountMap) {
|
|
|
+ String qr = (String) riYuanQrMap.get("qr");
|
|
|
+ List<String> xiYong = (List<String>) riYuanQrMap.get("xiYong");
|
|
|
+ List<String> xiYongOld = (List<String>) riYuanQrMap.get("xiYongOld");
|
|
|
+
|
|
|
+ StringBuffer caiContent = new StringBuffer();
|
|
|
+ if (qr.contains("强")) {
|
|
|
+ caiContent.append("身强");
|
|
|
+ } else if (qr.contains("弱")) {
|
|
|
+ caiContent.append("身弱");
|
|
|
+ }
|
|
|
+
|
|
|
+ int pianCaiCount = shiShenCountMap.get("偏财");
|
|
|
+ int zhengCaiCount = shiShenCountMap.get("正财");
|
|
|
+
|
|
|
+ int totalCount = pianCaiCount + zhengCaiCount;
|
|
|
+ if (totalCount >= 2) {
|
|
|
+ caiContent.append("财旺;");
|
|
|
+ } else if (totalCount >= 1) {
|
|
|
+ caiContent.append("财弱;");
|
|
|
+ } else if (totalCount == 0) {
|
|
|
+ caiContent.append("四柱无财;");
|
|
|
+ }
|
|
|
+ if (totalCount != 0) {
|
|
|
+ if (pianCaiCount == 0) {
|
|
|
+ caiContent.append("八字无偏财,尽量不要做投机性生意;");
|
|
|
+ }
|
|
|
+ if (zhengCaiCount == 0) {
|
|
|
+ caiContent.append("八字没有正财,有偏财,投资要谨慎,不要借贷;");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (caiContent.toString().contains("身强") && caiContent.toString().contains("财旺")) {
|
|
|
+ caiContent.append("遇大运流年,见食伤财才则发大财。年份为" + xiYongOld.get(0) + "、" + xiYongOld.get(1) + "均带有食伤财才。");
|
|
|
+ } else if (caiContent.toString().contains("身强") && caiContent.toString().contains("财弱")) {
|
|
|
+ caiContent.append("遇大运流年,见食伤财才则发中财。年份为" + xiYongOld.get(0) + "、" + xiYongOld.get(1) + "均带有食伤财才。");
|
|
|
+ } else if (caiContent.toString().contains("身弱") && caiContent.toString().contains("财旺")) {
|
|
|
+ caiContent.append("遇大运流年,见印枭比劫则发大财。年份为" + xiYongOld.get(0) + "、" + xiYongOld.get(1) + "均带有印枭比劫。");
|
|
|
+ } else if (caiContent.toString().contains("身弱") && caiContent.toString().contains("财弱")) {
|
|
|
+ caiContent.append("遇大运流年,见印枭比劫则发中财。年份为" + xiYongOld.get(0) + "、" + xiYongOld.get(1) + "均带有印枭比劫。");
|
|
|
+ } else if (caiContent.toString().contains("身强") && caiContent.toString().contains("四柱无财")) {
|
|
|
+ caiContent.append("遇大运流年,见财则有钱进账,但不长久。");
|
|
|
+ } else if (caiContent.toString().contains("身弱") && caiContent.toString().contains("四柱无财")) {
|
|
|
+ caiContent.append("不好发财,俗称和尚命。");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ String monthZhi = ganZhiRowVoList.get(3).getName();
|
|
|
+ String nian = shiShenConfig.getWuGui().get(monthZhi);
|
|
|
+ String shengXiao = shiShenConfig.getWuGuiShengXiao().get(monthZhi);
|
|
|
+
|
|
|
+ caiContent.append("遇到" + shengXiao + "年(" + nian + "年),遇五鬼神煞比较容易得到偏财,但是同时也较易惹上小人、是非和灾害等。五鬼煞入命,会出现莫名其妙无风起浪的危险,因此一定要防患于未然,于官府当中更应该提防,在交友方面也应该小心,否则会有刑讼官司、破财牢狱之灾。");
|
|
|
+
|
|
|
+ return caiContent.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getQingGanYun(List<GanZhiRowVo> ganZhiRowVoList, Map<String, Object> riYuanQrMap, Map<String, Integer> shiShenCountMap, Map<String, Integer> fiveCountMap) {
|
|
|
+ String qr = (String) riYuanQrMap.get("qr");
|
|
|
+ List<String> xiYong = (List<String>) riYuanQrMap.get("xiYong");
|
|
|
+ List<String> xiYongOld = (List<String>) riYuanQrMap.get("xiYongOld");
|
|
|
+ List<String> xiYongShiShen = (List<String>) riYuanQrMap.get("xiYongShiShen");
|
|
|
+
|
|
|
+ StringBuffer qiangGanContent = new StringBuffer();
|
|
|
+
|
|
|
+ String sex = ganZhiRowVoList.get(4).getShiShen1();
|
|
|
+ String five = ganZhiRowVoList.get(5).getFive();
|
|
|
+ if ("元男".equals(sex)) {
|
|
|
+ //正财、偏财为男人的老婆
|
|
|
+ int zhengCaiCount = shiShenCountMap.get("正财");
|
|
|
+ int pianCaiCount = shiShenCountMap.get("偏财");
|
|
|
+ int total = zhengCaiCount + pianCaiCount;
|
|
|
+ if (total == 0) {
|
|
|
+ qiangGanContent.append("男人四柱无财,找老婆会比较困难,自己也可能不太想结婚。");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (qr.contains("强")) {
|
|
|
+ qiangGanContent.append("夫妻星为喜用,婚后夫妻关系还不错;");
|
|
|
+ } else if (qr.contains("弱")) {
|
|
|
+ qiangGanContent.append("夫妻星为忌凶,婚后夫妻关系不是很幸福;");
|
|
|
+ }
|
|
|
+ if (qr.contains("强") && xiYongOld.contains(five)) { //强喜
|
|
|
+ qiangGanContent.append("而且能够得到老婆家族的帮助。");
|
|
|
+ } else if (qr.contains("弱") && xiYongOld.contains(five)) { //弱喜
|
|
|
+ qiangGanContent.append("不过是能够得到老婆家族的帮助。");
|
|
|
+ } else if (qr.contains("强") && !xiYongOld.contains(five)) { //强忌
|
|
|
+ qiangGanContent.append("但能不太能够得到老婆家族的帮助。");
|
|
|
+ } else if (qr.contains("弱") && !xiYongOld.contains(five)) { //弱忌
|
|
|
+ qiangGanContent.append("也能不太能够得到老婆家族的帮助。");
|
|
|
+ }
|
|
|
+
|
|
|
+ String dayGanShiShen1 = ganZhiRowVoList.get(5).getShiShen1();
|
|
|
+ String dayGanShiShen2 = ganZhiRowVoList.get(5).getShiShen2();
|
|
|
+ String dayGanShiShen3 = ganZhiRowVoList.get(5).getShiShen3();
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && dayGanShiShen1.contains("劫财")) {
|
|
|
+ qiangGanContent.append("在夫妻宫本气坐落劫财,有克妻之相,会影响到夫妻感情。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && dayGanShiShen2.contains("劫财")) {
|
|
|
+ qiangGanContent.append("在夫妻宫中气坐落劫财,有中度克妻之相,会影响到夫妻感情。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && dayGanShiShen3.contains("劫财")) {
|
|
|
+ qiangGanContent.append("在夫妻宫余气坐落劫财,有轻微克妻之相,会影响到夫妻感情。");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && dayGanShiShen1.contains("伤官")) {
|
|
|
+ qiangGanContent.append("在夫妻宫本气坐落劫财,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && dayGanShiShen2.contains("伤官")) {
|
|
|
+ qiangGanContent.append("在夫妻宫中气坐落劫财,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && dayGanShiShen3.contains("伤官")) {
|
|
|
+ qiangGanContent.append("在夫妻宫余气坐落劫财,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && dayGanShiShen1.contains("偏印")) {
|
|
|
+ qiangGanContent.append("在夫妻宫本气坐落偏印,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && dayGanShiShen2.contains("偏印")) {
|
|
|
+ qiangGanContent.append("在夫妻宫中气坐落偏印,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && dayGanShiShen3.contains("偏印")) {
|
|
|
+ qiangGanContent.append("在夫妻宫余气坐落偏印,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+
|
|
|
+ String yearGan = ganZhiRowVoList.get(0).getName();
|
|
|
+ String monthGan = ganZhiRowVoList.get(2).getName();
|
|
|
+ String dayGan = ganZhiRowVoList.get(4).getName();
|
|
|
+ String timeGan = ganZhiRowVoList.get(6).getName();
|
|
|
+
|
|
|
+ String yearGanYY = shiShenConfig.getTianGanYY().get(yearGan);
|
|
|
+ String monthGanYY = shiShenConfig.getTianGanYY().get(monthGan);
|
|
|
+ String dayGanYY = shiShenConfig.getTianGanYY().get(dayGan);
|
|
|
+ String timeGanYY = shiShenConfig.getTianGanYY().get(timeGan);
|
|
|
+
|
|
|
+ if ("阴".equals(yearGanYY) && "阴".equals(monthGanYY) && "阴".equals(dayGanYY) && "阴".equals(timeGanYY)) {
|
|
|
+ qiangGanContent.append("男性四柱全阴,体现出较女性化,可能有同性取向的趋向。");
|
|
|
+ }
|
|
|
+
|
|
|
+ int fuqiGongBiCount = 0; //夫妻宫比肩 劫财的数量
|
|
|
+ for (int i = 2; i < ganZhiRowVoList.size(); i++) {
|
|
|
+ String shiShen1 = ganZhiRowVoList.get(i).getShiShen1();
|
|
|
+ String shiShen2 = ganZhiRowVoList.get(i).getShiShen2();
|
|
|
+ String shiShen3 = ganZhiRowVoList.get(i).getShiShen3();
|
|
|
+ if (shiShen1 != null && (shiShen1.contains("比肩") || shiShen1.contains("劫财"))) {
|
|
|
+ fuqiGongBiCount++;
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && (shiShen2.contains("比肩") || shiShen2.contains("劫财"))) {
|
|
|
+ fuqiGongBiCount++;
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && (shiShen3.contains("比肩") || shiShen3.contains("劫财"))) {
|
|
|
+ fuqiGongBiCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(fuqiGongBiCount>=3) {
|
|
|
+ qiangGanContent.append("男命夫妻宫周围过多的比劫,可能出现夫妻感情不和睦的情况。");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } else if ("元女".equals(sex)) {
|
|
|
+ //正官、七杀为女人的老公
|
|
|
+ int zhengCaiCount = shiShenCountMap.get("正官");
|
|
|
+ int pianCaiCount = shiShenCountMap.get("七杀");
|
|
|
+ int total = zhengCaiCount + pianCaiCount;
|
|
|
+ if (total == 0) {
|
|
|
+ qiangGanContent.append("女人四柱无官杀,找老公会比较困难,自己也不太愿意结婚。");
|
|
|
+ }
|
|
|
+ if (qr.contains("强")) {
|
|
|
+ qiangGanContent.append("夫妻星为喜用,婚后夫妻关系还不错;");
|
|
|
+ } else if (qr.contains("弱")) {
|
|
|
+ qiangGanContent.append("夫妻星为忌凶,婚后夫妻关系不是很幸福;");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (qr.contains("强") && xiYong.contains(five)) { //强喜
|
|
|
+ qiangGanContent.append("而且能够得到老公家族的帮助。");
|
|
|
+ } else if (qr.contains("弱") && xiYong.contains(five)) { //弱喜
|
|
|
+ qiangGanContent.append("不过是能够得到老公家族的帮助。");
|
|
|
+ } else if (qr.contains("强") && !xiYong.contains(five)) { //强忌
|
|
|
+ qiangGanContent.append("但能不太能够得到老公家族的帮助。");
|
|
|
+ } else if (qr.contains("弱") && !xiYong.contains(five)) { //弱忌
|
|
|
+ qiangGanContent.append("也能不太能够得到老公家族的帮助。");
|
|
|
+ }
|
|
|
+
|
|
|
+ String dayGanShiShen1 = ganZhiRowVoList.get(5).getShiShen1();
|
|
|
+ String dayGanShiShen2 = ganZhiRowVoList.get(5).getShiShen2();
|
|
|
+ String dayGanShiShen3 = ganZhiRowVoList.get(5).getShiShen3();
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && dayGanShiShen1.contains("伤官")) {
|
|
|
+ qiangGanContent.append("在夫妻宫本气坐落伤官,有克夫之相,会影响到夫妻感情。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && dayGanShiShen2.contains("伤官")) {
|
|
|
+ qiangGanContent.append("在夫妻宫中气坐落伤官,有中度克夫之相,会影响到夫妻感情。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && dayGanShiShen3.contains("伤官")) {
|
|
|
+ qiangGanContent.append("在夫妻宫余气坐落伤官,有轻微克夫之相,会影响到夫妻感情。");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && dayGanShiShen1.contains("偏印")) {
|
|
|
+ qiangGanContent.append("在夫妻宫本气坐落偏印,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && dayGanShiShen2.contains("偏印")) {
|
|
|
+ qiangGanContent.append("在夫妻宫中气坐落偏印,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && dayGanShiShen3.contains("偏印")) {
|
|
|
+ qiangGanContent.append("在夫妻宫余气坐落偏印,夫妻不和睦之相。");
|
|
|
+ }
|
|
|
+
|
|
|
+ String yearGan = ganZhiRowVoList.get(0).getName();
|
|
|
+ String monthGan = ganZhiRowVoList.get(2).getName();
|
|
|
+ String dayGan = ganZhiRowVoList.get(4).getName();
|
|
|
+ String timeGan = ganZhiRowVoList.get(6).getName();
|
|
|
+
|
|
|
+ String yearGanYY = shiShenConfig.getTianGanYY().get(yearGan);
|
|
|
+ String monthGanYY = shiShenConfig.getTianGanYY().get(monthGan);
|
|
|
+ String dayGanYY = shiShenConfig.getTianGanYY().get(dayGan);
|
|
|
+ String timeGanYY = shiShenConfig.getTianGanYY().get(timeGan);
|
|
|
+
|
|
|
+ if ("阳".equals(yearGanYY) && "阳".equals(monthGanYY) && "阳".equals(dayGanYY) && "阳".equals(timeGanYY)) {
|
|
|
+ qiangGanContent.append("女性四柱全阳,体现出较男性化,可能有同性取向的趋向。");
|
|
|
+ }
|
|
|
+
|
|
|
+ int fuqiGongShangCount = 0; //夫妻宫伤官的数量
|
|
|
+ for (int i = 2; i < ganZhiRowVoList.size(); i++) {
|
|
|
+ String shiShen1 = ganZhiRowVoList.get(i).getShiShen1();
|
|
|
+ String shiShen2 = ganZhiRowVoList.get(i).getShiShen2();
|
|
|
+ String shiShen3 = ganZhiRowVoList.get(i).getShiShen3();
|
|
|
+ if (shiShen1 != null && shiShen1.contains("伤官")) {
|
|
|
+ fuqiGongShangCount++;
|
|
|
+ }
|
|
|
+ if (shiShen2 != null && shiShen2.contains("伤官")) {
|
|
|
+ fuqiGongShangCount++;
|
|
|
+ }
|
|
|
+ if (shiShen3 != null && shiShen3.contains("伤官")) {
|
|
|
+ fuqiGongShangCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(fuqiGongShangCount>=3) {
|
|
|
+ qiangGanContent.append("女命夫妻宫周围过多的伤官,可能出现夫妻感情不和睦的情况。");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ int taoHuaZiCount = 0;
|
|
|
+ if (shiShenConfig.getTaoHuaZi().contains(ganZhiRowVoList.get(1).getName())) {
|
|
|
+ taoHuaZiCount++;
|
|
|
+ }
|
|
|
+ if (shiShenConfig.getTaoHuaZi().contains(ganZhiRowVoList.get(2).getName())) {
|
|
|
+ taoHuaZiCount++;
|
|
|
+ }
|
|
|
+ if (shiShenConfig.getTaoHuaZi().contains(ganZhiRowVoList.get(3).getName())) {
|
|
|
+ taoHuaZiCount++;
|
|
|
+ }
|
|
|
+ if (shiShenConfig.getTaoHuaZi().contains(ganZhiRowVoList.get(4).getName())) {
|
|
|
+ taoHuaZiCount++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (taoHuaZiCount == 4) {
|
|
|
+ qiangGanContent.append("地支中子午卯酉,非常之旺。桃花非常多,俗称桃花命。要小心一定因桃花引发的灾祸。");
|
|
|
+ }
|
|
|
+ if (taoHuaZiCount == 3) {
|
|
|
+ qiangGanContent.append("地支中子午卯酉,比较旺。桃花非常多,要小心一定因桃花引发的灾祸。");
|
|
|
+ }
|
|
|
+ if (taoHuaZiCount == 2) {
|
|
|
+ qiangGanContent.append("地支中子午卯酉,相对比较旺。流年容易遇桃花之事。");
|
|
|
+ }
|
|
|
+
|
|
|
+ //性冷淡
|
|
|
+ String dayGanShiShen1 = ganZhiRowVoList.get(5).getShiShen1();
|
|
|
+ String dayGanShiShen2 = ganZhiRowVoList.get(5).getShiShen2();
|
|
|
+ String dayGanShiShen3 = ganZhiRowVoList.get(5).getShiShen3();
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && dayGanShiShen1.contains("食神")) {
|
|
|
+ qiangGanContent.append("夫妻宫坐了食神,比较喜欢性爱之事。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && dayGanShiShen2.contains("食神")) {
|
|
|
+ qiangGanContent.append("夫妻宫坐了食神,比较喜欢性爱之事。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && dayGanShiShen3.contains("食神")) {
|
|
|
+ qiangGanContent.append("夫妻宫坐了食神,比较喜欢性爱之事。");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dayGanShiShen1 != null && (dayGanShiShen1.contains("正印") || dayGanShiShen1.contains("偏印"))) {
|
|
|
+ qiangGanContent.append("夫妻宫坐了印,性欲有被克制之相,会性较冷淡。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen2 != null && (dayGanShiShen2.contains("正印") || dayGanShiShen2.contains("偏印"))) {
|
|
|
+ qiangGanContent.append("夫妻宫坐了印,性欲有被克制之相,会性较冷淡。");
|
|
|
+ }
|
|
|
+ if (dayGanShiShen3 != null && (dayGanShiShen3.contains("正印") || dayGanShiShen3.contains("偏印"))) {
|
|
|
+ qiangGanContent.append("夫妻宫坐了印,性欲有被克制之相,会性较冷淡。");
|
|
|
+ }
|
|
|
+
|
|
|
+ String monthGanShiShen1 = ganZhiRowVoList.get(3).getShiShen1();
|
|
|
+ String monthGanShiShen2 = ganZhiRowVoList.get(3).getShiShen2();
|
|
|
+ String monthGanShiShen3 = ganZhiRowVoList.get(3).getShiShen3();
|
|
|
+
|
|
|
+ if (monthGanShiShen1 != null && monthGanShiShen1.contains("正印")) {
|
|
|
+ qiangGanContent.append("月令坐了正印,性欲有被克制之相,会性较冷淡,对学业工作会花较多精力。");
|
|
|
+ }
|
|
|
+ if (monthGanShiShen2 != null && monthGanShiShen2.contains("正印")) {
|
|
|
+ qiangGanContent.append("月令坐了正印,性欲有被克制之相,会性较冷淡,对学业工作会花较多精力。");
|
|
|
+ }
|
|
|
+ if (monthGanShiShen3 != null && monthGanShiShen3.contains("正印")) {
|
|
|
+ qiangGanContent.append("月令坐了正印,性欲有被克制之相,会性较冷淡,对学业工作会花较多精力。");
|
|
|
+ }
|
|
|
+
|
|
|
+ //水主肾
|
|
|
+ int shuiCount = fiveCountMap.get("水");
|
|
|
+
|
|
|
+ if(shuiCount>=4) {
|
|
|
+ qiangGanContent.append("八字中水主肾,水过旺,喜性爱,需要克制。");
|
|
|
+ }
|
|
|
+ if(shuiCount>=1 && shuiCount<=3) {
|
|
|
+ qiangGanContent.append("八字中水主肾,水占了1-3个肾功能强,喜性爱。");
|
|
|
+ }
|
|
|
+ if(shuiCount==0){
|
|
|
+ qiangGanContent.append("八字中无水,对性爱之事不是很上头,偶有乏力之相。");
|
|
|
+ }
|
|
|
+
|
|
|
+ return qiangGanContent.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|