233 lines
12 KiB
Java
233 lines
12 KiB
Java
package xuan.controller;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import xuan.core.qimen.zhuan.QiMenZhuanPan;
|
|
import xuan.core.qimen.zhuan.settings.QiMenZhuanPanJiChuSetting;
|
|
import xuan.service.HunYuanAiService;
|
|
import xuan.service.PromptTemplates;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/qimen")
|
|
public class QiMenController {
|
|
|
|
private final HunYuanAiService aiService = new HunYuanAiService();
|
|
|
|
@PostMapping("/paipan")
|
|
public Map<String, Object> paiPan(@RequestBody QiMenRequest request) {
|
|
Map<String, Object> result = new HashMap<>();
|
|
try {
|
|
QiMenZhuanPanJiChuSetting setting = new QiMenZhuanPanJiChuSetting();
|
|
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.setPaiPanType(request.getPaiPanType() != null ? request.getPaiPanType() : 3);
|
|
setting.setZhiShiType(request.getZhiShiType() != null ? request.getZhiShiType() : 0);
|
|
setting.setYueJiaQiJuType(request.getYueJiaQiJuType() != null ? request.getYueJiaQiJuType() : 1);
|
|
setting.setYearGanZhiType(request.getYearGanZhiType() != null ? request.getYearGanZhiType() : 2);
|
|
setting.setMonthGanZhiType(request.getMonthGanZhiType() != null ? request.getMonthGanZhiType() : 1);
|
|
setting.setDayGanZhiType(request.getDayGanZhiType() != null ? request.getDayGanZhiType() : 0);
|
|
|
|
QiMenZhuanPan qiMen = new QiMenZhuanPan(setting);
|
|
|
|
Map<String, Object> data = buildQiMenData(qiMen);
|
|
|
|
String aiAnalysis = aiService.chat(
|
|
PromptTemplates.getQiMenSystemPrompt(),
|
|
PromptTemplates.getQiMenUserPrompt(data)
|
|
);
|
|
data.put("aiAnalysis", aiAnalysis);
|
|
|
|
result.put("success", true);
|
|
result.put("data", data);
|
|
} catch (Exception e) {
|
|
result.put("success", false);
|
|
result.put("error", e.getMessage());
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private Map<String, Object> buildQiMenData(QiMenZhuanPan qiMen) {
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
data.put("name", qiMen.getName());
|
|
data.put("occupy", qiMen.getOccupy());
|
|
data.put("sex", qiMen.getSex());
|
|
data.put("age", qiMen.getAge());
|
|
data.put("solar", qiMen.getSolarStr2());
|
|
data.put("lunar", qiMen.getLunarStr2());
|
|
data.put("xingQi", qiMen.getXingQi());
|
|
data.put("jiJie", qiMen.getJiJie());
|
|
data.put("shengXiao", qiMen.getShengXiao());
|
|
data.put("xingZuo", qiMen.getXingZuo());
|
|
data.put("yueXiang", qiMen.getYueXiang());
|
|
data.put("yueJiang", qiMen.getYueJiang());
|
|
data.put("yueJiangShen", qiMen.getYueJiangShen());
|
|
data.put("wuBuYuShi", qiMen.getWuBuYuShi());
|
|
|
|
data.put("yearGan", qiMen.getYearGan());
|
|
data.put("monthGan", qiMen.getMonthGan());
|
|
data.put("dayGan", qiMen.getDayGan());
|
|
data.put("hourGan", qiMen.getHourGan());
|
|
data.put("yearZhi", qiMen.getYearZhi());
|
|
data.put("monthZhi", qiMen.getMonthZhi());
|
|
data.put("dayZhi", qiMen.getDayZhi());
|
|
data.put("hourZhi", qiMen.getHourZhi());
|
|
data.put("yearGanZhi", qiMen.getYearGanZhi());
|
|
data.put("monthGanZhi", qiMen.getMonthGanZhi());
|
|
data.put("dayGanZhi", qiMen.getDayGanZhi());
|
|
data.put("hourGanZhi", qiMen.getHourGanZhi());
|
|
|
|
data.put("yearGanWuXing", qiMen.getYearGanWuXing());
|
|
data.put("monthGanWuXing", qiMen.getMonthGanWuXing());
|
|
data.put("dayGanWuXing", qiMen.getDayGanWuXing());
|
|
data.put("hourGanWuXing", qiMen.getHourGanWuXing());
|
|
data.put("yearZhiWuXing", qiMen.getYearZhiWuXing());
|
|
data.put("monthZhiWuXing", qiMen.getMonthZhiWuXing());
|
|
data.put("dayZhiWuXing", qiMen.getDayZhiWuXing());
|
|
data.put("hourZhiWuXing", qiMen.getHourZhiWuXing());
|
|
data.put("yearGanZhiWuXing", qiMen.getYearGanZhiWuXing());
|
|
data.put("monthGanZhiWuXing", qiMen.getMonthGanZhiWuXing());
|
|
data.put("dayGanZhiWuXing", qiMen.getDayGanZhiWuXing());
|
|
data.put("hourGanZhiWuXing", qiMen.getHourGanZhiWuXing());
|
|
|
|
data.put("yearGanZhiNaYin", qiMen.getYearGanZhiNaYin());
|
|
data.put("monthGanZhiNaYin", qiMen.getMonthGanZhiNaYin());
|
|
data.put("dayGanZhiNaYin", qiMen.getDayGanZhiNaYin());
|
|
data.put("hourGanZhiNaYin", qiMen.getHourGanZhiNaYin());
|
|
data.put("yearGanZhiKongWang", qiMen.getYearGanZhiKongWang());
|
|
data.put("monthGanZhiKongWang", qiMen.getMonthGanZhiKongWang());
|
|
data.put("dayGanZhiKongWang", qiMen.getDayGanZhiKongWang());
|
|
data.put("hourGanZhiKongWang", qiMen.getHourGanZhiKongWang());
|
|
|
|
data.put("prevJie", qiMen.getPrevJie());
|
|
data.put("prevJieDateStr", qiMen.getPrevJieDateStr());
|
|
data.put("prevJieDay", qiMen.getPrevJieDay());
|
|
data.put("nextJie", qiMen.getNextJie());
|
|
data.put("nextJieDateStr", qiMen.getNextJieDateStr());
|
|
data.put("nextJieDay", qiMen.getNextJieDay());
|
|
data.put("chuShengJie", qiMen.getChuShengJie());
|
|
data.put("prevQi", qiMen.getPrevQi());
|
|
data.put("prevQiDateStr", qiMen.getPrevQiDateStr());
|
|
data.put("prevQiDay", qiMen.getPrevQiDay());
|
|
data.put("nextQi", qiMen.getNextQi());
|
|
data.put("nextQiDateStr", qiMen.getNextQiDateStr());
|
|
data.put("nextQiDay", qiMen.getNextQiDay());
|
|
data.put("chuShengQi", qiMen.getChuShengQi());
|
|
|
|
data.put("fuTou", qiMen.getFuTou());
|
|
data.put("jieQi", qiMen.getJieQi());
|
|
data.put("sanYuan", qiMen.getSanYuan());
|
|
data.put("juShu", qiMen.getJuShu());
|
|
data.put("yinYangDun", qiMen.getYinYangDun());
|
|
data.put("xunShou", qiMen.getXunShou());
|
|
data.put("xunShouYiZhang", qiMen.getXunShouYiZhang());
|
|
data.put("zhiFu", qiMen.getZhiFu());
|
|
data.put("zhiShi", qiMen.getZhiShi());
|
|
|
|
data.put("liuJiaXunKong", qiMen.getLiuJiaXunKong());
|
|
data.put("liuJiaXunKongGongWei", qiMen.getLiuJiaXunKongGongWei());
|
|
data.put("liuJiaXunKongGongWeiMark", qiMen.getLiuJiaXunKongGongWeiMark());
|
|
data.put("yiMa", qiMen.getYiMa());
|
|
data.put("yiMaGongWei", qiMen.getYiMaGongWei());
|
|
data.put("yiMaGongWeiMark", qiMen.getYiMaGongWeiMark());
|
|
|
|
data.put("diPan", qiMen.getDiPan());
|
|
data.put("tianPan", qiMen.getTianPan());
|
|
data.put("renPan", qiMen.getRenPan());
|
|
data.put("shenPan", qiMen.getShenPan());
|
|
data.put("tianPanQiYiTianQinNo", qiMen.getTianPanQiYiTianQinNo());
|
|
data.put("tianPanQiYiTianQinYes", qiMen.getTianPanQiYiTianQinYes());
|
|
|
|
data.put("tianYi", qiMen.getTianYi());
|
|
data.put("diYi", qiMen.getDiYi());
|
|
data.put("taiYi", qiMen.getTaiYi());
|
|
data.put("jiuDun", qiMen.getJiuDun());
|
|
data.put("neiWaiGongWeiMark", qiMen.getNeiWaiGongWeiMark());
|
|
data.put("neiWaiGongWeiInfo", qiMen.getNeiWaiGongWeiInfo());
|
|
data.put("tianMen", qiMen.getTianMen());
|
|
data.put("diHu", qiMen.getDiHu());
|
|
|
|
data.put("fuYin", qiMen.getFuYin());
|
|
data.put("fanYin", qiMen.getFanYin());
|
|
data.put("liuYiJiXing", qiMen.getLiuYiJiXing());
|
|
data.put("qiYiRuMu", qiMen.getQiYiRuMu());
|
|
data.put("liuYiJiXingRuMuTianQinNoStatus", qiMen.getLiuYiJiXingRuMuTianQinNoStatus());
|
|
data.put("liuYiJiXingRuMuTianQinYesStatus", qiMen.getLiuYiJiXingRuMuTianQinYesStatus());
|
|
data.put("menPoStatus", qiMen.getMenPoStatus());
|
|
|
|
data.put("shiGanKeYing", qiMen.getShiGanKeYing());
|
|
data.put("baMenKeYing", qiMen.getBaMenKeYing());
|
|
data.put("baMenJingYing", qiMen.getBaMenJingYing());
|
|
data.put("baMenDongYing", qiMen.getBaMenDongYing());
|
|
data.put("xingMenKeYing", qiMen.getXingMenKeYing());
|
|
data.put("jiuXingShiYing", qiMen.getJiuXingShiYing());
|
|
|
|
data.put("baGuaWangShuai", qiMen.getBaGuaWangShuai());
|
|
data.put("baMenWangShuai", qiMen.getBaMenWangShuai());
|
|
data.put("jiuXingWangShuai", qiMen.getJiuXingWangShuai());
|
|
data.put("baShenLuoGongStatus", qiMen.getBaShenLuoGongStatus());
|
|
data.put("baMenLuoGongStatus", qiMen.getBaMenLuoGongStatus());
|
|
data.put("jiuXingLuoGongStatus", qiMen.getJiuXingLuoGongStatus());
|
|
|
|
data.put("diPanQiYiLuoGongLink", qiMen.getDiPanQiYiLuoGongLink());
|
|
data.put("tianPanQiYiLuoGongTianQinNoLink", qiMen.getTianPanQiYiLuoGongTianQinNoLink());
|
|
data.put("tianPanQiYiLuoGongTianQinYesLink", qiMen.getTianPanQiYiLuoGongTianQinYesLink());
|
|
|
|
return data;
|
|
}
|
|
|
|
public static class QiMenRequest {
|
|
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 paiPanType;
|
|
private Integer zhiShiType;
|
|
private Integer yueJiaQiJuType;
|
|
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 getPaiPanType() { return paiPanType; }
|
|
public void setPaiPanType(Integer paiPanType) { this.paiPanType = paiPanType; }
|
|
public Integer getZhiShiType() { return zhiShiType; }
|
|
public void setZhiShiType(Integer zhiShiType) { this.zhiShiType = zhiShiType; }
|
|
public Integer getYueJiaQiJuType() { return yueJiaQiJuType; }
|
|
public void setYueJiaQiJuType(Integer yueJiaQiJuType) { this.yueJiaQiJuType = yueJiaQiJuType; }
|
|
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; }
|
|
}
|
|
}
|