feat: 实现大六壬排盘功能

- 新增后端DaLiuRenController控制器
- 实现大六壬排盘API接口
- 新增前端大六壬输入页面(daliuren.vue)
- 新增前端大六壬结果展示页面(result.vue)
- 更新API接口支持大六壬模块
- 更新pages.json配置

大六壬功能包括:
- 天地盘计算
- 四课推演
- 三传取法
- 十二天将排列
- 月将加时计算
- 五行旺衰分析
- 空亡信息展示
This commit is contained in:
H1d3rOne committed 2026-03-06 04:27:58 +08:00
1 parent 25ce9c22e1
commit bba9ad46de
5 files changed
+1197 -25

No files matched your search

@@ -0,0 +1,177 @@
package xuan.controller;
import org.springframework.web.bind.annotation.*;
import xuan.core.daliuren.DaLiuRen;
import xuan.core.daliuren.settings.DaLiuRenJiChuSetting;
import xuan.core.daliuren.settings.DaLiuRenShenShaSetting;
import java.util.*;
@RestController
@RequestMapping("/api/daliuren")
public class DaLiuRenController {
@PostMapping("/paipan")
public Map<String, Object> paiPan(@RequestBody DaLiuRenRequest request) {
Map<String, Object> result = new HashMap<>();
try {
DaLiuRenJiChuSetting setting = new DaLiuRenJiChuSetting();
setting.setName(request.getName() != null ? request.getName() : "某人");
setting.setOccupy(request.getOccupy() != null ? request.getOccupy() : "某事");
setting.setSex(request.getSex() != null ? request.getSex() : 1);
setting.setDate(request.getDate() != null ? request.getDate() : "2024-01-01 00:00:00");
setting.setDateType(request.getDateType() != null ? request.getDateType() : 0);
setting.setLeapMonthType(request.getLeapMonthType() != null ? request.getLeapMonthType() : 0);
setting.setXuShiSuiType(request.getXuShiSuiType() != null ? request.getXuShiSuiType() : 0);
setting.setJieQiType(request.getJieQiType() != null ? request.getJieQiType() : 1);
setting.setGuiRenType(request.getGuiRenType() != null ? request.getGuiRenType() : 0);
setting.setYearGanZhiType(request.getYearGanZhiType() != null ? request.getYearGanZhiType() : 2);
setting.setMonthGanZhiType(request.getMonthGanZhiType() != null ? request.getMonthGanZhiType() : 1);
setting.setDayGanZhiType(request.getDayGanZhiType() != null ? request.getDayGanZhiType() : 0);
DaLiuRen daLiuRen = new DaLiuRen(setting);
daLiuRen.daLiuRenShenShaSetting(new DaLiuRenShenShaSetting());
result.put("success", true);
result.put("data", buildDaLiuRenData(daLiuRen));
} catch (Exception e) {
result.put("success", false);
result.put("error", e.getMessage());
e.printStackTrace();
}
return result;
}
private Map<String, Object> buildDaLiuRenData(DaLiuRen daLiuRen) {
Map<String, Object> data = new HashMap<>();
data.put("name", daLiuRen.getName());
data.put("sex", daLiuRen.getSex());
data.put("age", daLiuRen.getAge());
data.put("occupy", daLiuRen.getOccupy());
data.put("solar", daLiuRen.getSolarStr2());
data.put("lunar", daLiuRen.getLunarStr2());
data.put("xingQi", daLiuRen.getXingQi());
data.put("jiJie", daLiuRen.getJiJie());
data.put("shengXiao", daLiuRen.getShengXiao());
data.put("xingZuo", daLiuRen.getXingZuo());
data.put("yearGanZhi", daLiuRen.getYearGanZhi());
data.put("monthGanZhi", daLiuRen.getMonthGanZhi());
data.put("dayGanZhi", daLiuRen.getDayGanZhi());
data.put("hourGanZhi", daLiuRen.getHourGanZhi());
data.put("yearGan", daLiuRen.getYearGan());
data.put("monthGan", daLiuRen.getMonthGan());
data.put("dayGan", daLiuRen.getDayGan());
data.put("hourGan", daLiuRen.getHourGan());
data.put("yearZhi", daLiuRen.getYearZhi());
data.put("monthZhi", daLiuRen.getMonthZhi());
data.put("dayZhi", daLiuRen.getDayZhi());
data.put("hourZhi", daLiuRen.getHourZhi());
data.put("yearGanWuXing", daLiuRen.getYearGanWuXing());
data.put("monthGanWuXing", daLiuRen.getMonthGanWuXing());
data.put("dayGanWuXing", daLiuRen.getDayGanWuXing());
data.put("hourGanWuXing", daLiuRen.getHourGanWuXing());
data.put("yearZhiWuXing", daLiuRen.getYearZhiWuXing());
data.put("monthZhiWuXing", daLiuRen.getMonthZhiWuXing());
data.put("dayZhiWuXing", daLiuRen.getDayZhiWuXing());
data.put("hourZhiWuXing", daLiuRen.getHourZhiWuXing());
data.put("yearGanZhiNaYin", daLiuRen.getYearGanZhiNaYin());
data.put("monthGanZhiNaYin", daLiuRen.getMonthGanZhiNaYin());
data.put("dayGanZhiNaYin", daLiuRen.getDayGanZhiNaYin());
data.put("hourGanZhiNaYin", daLiuRen.getHourGanZhiNaYin());
data.put("yearGanZhiKongWang", daLiuRen.getYearGanZhiKongWang());
data.put("monthGanZhiKongWang", daLiuRen.getMonthGanZhiKongWang());
data.put("dayGanZhiKongWang", daLiuRen.getDayGanZhiKongWang());
data.put("hourGanZhiKongWang", daLiuRen.getHourGanZhiKongWang());
data.put("wuXingWangShuai", daLiuRen.getWuXingWangShuai());
data.put("prevJie", daLiuRen.getPrevJie());
data.put("nextJie", daLiuRen.getNextJie());
data.put("prevJieDateStr", daLiuRen.getPrevJieDateStr());
data.put("nextJieDateStr", daLiuRen.getNextJieDateStr());
data.put("prevJieDay", daLiuRen.getPrevJieDay());
data.put("nextJieDay", daLiuRen.getNextJieDay());
data.put("chuShengJie", daLiuRen.getChuShengJie());
data.put("prevQi", daLiuRen.getPrevQi());
data.put("nextQi", daLiuRen.getNextQi());
data.put("prevQiDateStr", daLiuRen.getPrevQiDateStr());
data.put("nextQiDateStr", daLiuRen.getNextQiDateStr());
data.put("prevQiDay", daLiuRen.getPrevQiDay());
data.put("nextQiDay", daLiuRen.getNextQiDay());
data.put("chuShengQi", daLiuRen.getChuShengQi());
data.put("yueXiang", daLiuRen.getYueXiang());
data.put("yueJiang", daLiuRen.getYueJiang());
data.put("yueJiangShen", daLiuRen.getYueJiangShen());
data.put("wuBuYuShi", daLiuRen.getWuBuYuShi());
data.put("tianDiPanType", daLiuRen.getTianDiPanType());
data.put("tianGan", daLiuRen.getTianGan());
data.put("diPan", daLiuRen.getDiPan());
data.put("tianPan", daLiuRen.getTianPan());
data.put("shenPan", daLiuRen.getShenPan());
data.put("siKe", daLiuRen.getSiKe());
data.put("siKeDunGan", daLiuRen.getSiKeDunGan());
data.put("siKeShenJiang", daLiuRen.getSiKeShenJiang());
data.put("sanChuan", daLiuRen.getSanChuan());
data.put("sanChuanDunGan", daLiuRen.getSanChuanDunGan());
data.put("sanChuanShenJiang", daLiuRen.getSanChuanShenJiang());
data.put("sanChuanLiuQin", daLiuRen.getSanChuanLiuQin());
data.put("sanChuanQuFa", daLiuRen.getSanChuanQuFa());
return data;
}
public static class DaLiuRenRequest {
private String name;
private String occupy;
private Integer sex;
private String date;
private Integer dateType;
private Integer leapMonthType;
private Integer xuShiSuiType;
private Integer jieQiType;
private Integer guiRenType;
private Integer yearGanZhiType;
private Integer monthGanZhiType;
private Integer dayGanZhiType;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getOccupy() { return occupy; }
public void setOccupy(String occupy) { this.occupy = occupy; }
public Integer getSex() { return sex; }
public void setSex(Integer sex) { this.sex = sex; }
public String getDate() { return date; }
public void setDate(String date) { this.date = date; }
public Integer getDateType() { return dateType; }
public void setDateType(Integer dateType) { this.dateType = dateType; }
public Integer getLeapMonthType() { return leapMonthType; }
public void setLeapMonthType(Integer leapMonthType) { this.leapMonthType = leapMonthType; }
public Integer getXuShiSuiType() { return xuShiSuiType; }
public void setXuShiSuiType(Integer xuShiSuiType) { this.xuShiSuiType = xuShiSuiType; }
public Integer getJieQiType() { return jieQiType; }
public void setJieQiType(Integer jieQiType) { this.jieQiType = jieQiType; }
public Integer getGuiRenType() { return guiRenType; }
public void setGuiRenType(Integer guiRenType) { this.guiRenType = guiRenType; }
public Integer getYearGanZhiType() { return yearGanZhiType; }
public void setYearGanZhiType(Integer yearGanZhiType) { this.yearGanZhiType = yearGanZhiType; }
public Integer getMonthGanZhiType() { return monthGanZhiType; }
public void setMonthGanZhiType(Integer monthGanZhiType) { this.monthGanZhiType = monthGanZhiType; }
public Integer getDayGanZhiType() { return dayGanZhiType; }
public void setDayGanZhiType(Integer dayGanZhiType) { this.dayGanZhiType = dayGanZhiType; }
}
}