- 移除所有测算模块的金币逻辑 - 删除权限相关页面和功能 - 统一奇门遁甲、大六壬、六爻结果页色系 - 修复六爻结果页数据加载问题 - 添加调试日志便于排查问题
210 lines
11 KiB
Java
210 lines
11 KiB
Java
package xuan.controller;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import xuan.core.liuyao.LiuYao;
|
|
import xuan.core.liuyao.settings.LiuYaoJiChuSetting;
|
|
import xuan.core.liuyao.settings.LiuYaoShenShaSetting;
|
|
import xuan.service.HunYuanAiService;
|
|
import xuan.service.PromptTemplates;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/liuyao")
|
|
public class LiuYaoController {
|
|
|
|
private final HunYuanAiService aiService = new HunYuanAiService();
|
|
|
|
@PostMapping("/paipan")
|
|
public Map<String, Object> paiPan(@RequestBody LiuYaoRequest request) {
|
|
Map<String, Object> result = new HashMap<>();
|
|
try {
|
|
LiuYaoJiChuSetting setting = new LiuYaoJiChuSetting();
|
|
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.setYearGanZhiType(request.getYearGanZhiType() != null ? request.getYearGanZhiType() : 2);
|
|
setting.setMonthGanZhiType(request.getMonthGanZhiType() != null ? request.getMonthGanZhiType() : 1);
|
|
setting.setDayGanZhiType(request.getDayGanZhiType() != null ? request.getDayGanZhiType() : 0);
|
|
setting.setPaiPanType(request.getPaiPanType() != null ? request.getPaiPanType() : 0);
|
|
|
|
if (request.getLiuYaoYaoXiang() != null) {
|
|
String[] yaoXiang = request.getLiuYaoYaoXiang().split(",");
|
|
if (yaoXiang.length >= 6) {
|
|
setting.setLiuYao(yaoXiang[0].equals("—") || yaoXiang[0].equals("阳") ? 1 : 0);
|
|
setting.setWuYao(yaoXiang[1].equals("—") || yaoXiang[1].equals("阳") ? 1 : 0);
|
|
setting.setSiYao(yaoXiang[2].equals("—") || yaoXiang[2].equals("阳") ? 1 : 0);
|
|
setting.setSanYao(yaoXiang[3].equals("—") || yaoXiang[3].equals("阳") ? 1 : 0);
|
|
setting.setErYao(yaoXiang[4].equals("—") || yaoXiang[4].equals("阳") ? 1 : 0);
|
|
setting.setYiYao(yaoXiang[5].equals("—") || yaoXiang[5].equals("阳") ? 1 : 0);
|
|
}
|
|
}
|
|
|
|
LiuYao liuYao = new LiuYao(setting);
|
|
liuYao.liuYaoShenShaSetting(new LiuYaoShenShaSetting());
|
|
|
|
Map<String, Object> data = buildLiuYaoData(liuYao);
|
|
|
|
String aiAnalysis = aiService.chat(
|
|
PromptTemplates.getLiuYaoSystemPrompt(),
|
|
PromptTemplates.getLiuYaoUserPrompt(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> buildLiuYaoData(LiuYao liuYao) {
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
data.put("name", liuYao.getName());
|
|
data.put("occupy", liuYao.getOccupy());
|
|
data.put("sex", liuYao.getSex());
|
|
data.put("age", liuYao.getAge());
|
|
data.put("solar", liuYao.getSolarStr2());
|
|
data.put("lunar", liuYao.getLunarStr2());
|
|
data.put("xingQi", liuYao.getXingQi());
|
|
data.put("jiJie", liuYao.getJiJie());
|
|
data.put("shengXiao", liuYao.getShengXiao());
|
|
data.put("xingZuo", liuYao.getXingZuo());
|
|
data.put("yueXiang", liuYao.getYueXiang());
|
|
data.put("yueJiang", liuYao.getYueJiang());
|
|
data.put("yueJiangShen", liuYao.getYueJiangShen());
|
|
data.put("wuBuYuShi", liuYao.getWuBuYuShi());
|
|
|
|
data.put("yearGanZhi", liuYao.getYearGanZhi());
|
|
data.put("monthGanZhi", liuYao.getMonthGanZhi());
|
|
data.put("dayGanZhi", liuYao.getDayGanZhi());
|
|
data.put("hourGanZhi", liuYao.getHourGanZhi());
|
|
|
|
data.put("shangGuaName", liuYao.getShangGuaName());
|
|
data.put("shangGuaAs", liuYao.getShangGuaAs());
|
|
data.put("xiaGuaName", liuYao.getXiaGuaName());
|
|
data.put("xiaGuaAs", liuYao.getXiaGuaAs());
|
|
data.put("benGuaName", liuYao.getBenGuaName());
|
|
data.put("benGuaType", liuYao.getBenGuaType());
|
|
data.put("bianGuaName", liuYao.getBianGuaName());
|
|
data.put("huGuaName", liuYao.getHuGuaName());
|
|
data.put("cuoGuaName", liuYao.getCuoGuaName());
|
|
data.put("zongGuaName", liuYao.getZongGuaName());
|
|
data.put("fuGuaName", liuYao.getFuGuaName());
|
|
|
|
data.put("benGuaGuaCi", liuYao.getBenGuaGuaCi());
|
|
data.put("bianGuaGuaCi", liuYao.getBianGuaGuaCi());
|
|
|
|
data.put("benGuaLiuYaoName", liuYao.getBenGuaLiuYaoName());
|
|
data.put("benGuaLiuYaoShiYing", liuYao.getBenGuaLiuYaoShiYing());
|
|
data.put("benGuaLiuYaoLiuQin", liuYao.getBenGuaLiuYaoLiuQin());
|
|
data.put("benGuaLiuYaoLiuShen", liuYao.getBenGuaLiuYaoLiuShen());
|
|
|
|
data.put("benGuaAs", liuYao.getBenGuaAs());
|
|
data.put("bianGuaAs", liuYao.getBianGuaAs());
|
|
data.put("huGuaAs", liuYao.getHuGuaAs());
|
|
data.put("cuoGuaAs", liuYao.getCuoGuaAs());
|
|
data.put("zongGuaAs", liuYao.getZongGuaAs());
|
|
data.put("fuGuaAs", liuYao.getFuGuaAs());
|
|
|
|
data.put("benGuaGuaShen", liuYao.getBenGuaGuaShen());
|
|
data.put("bianGuaGuaShen", liuYao.getBianGuaGuaShen());
|
|
data.put("huGuaGuaShen", liuYao.getHuGuaGuaShen());
|
|
data.put("cuoGuaGuaShen", liuYao.getCuoGuaGuaShen());
|
|
data.put("zongGuaGuaShen", liuYao.getZongGuaGuaShen());
|
|
data.put("fuGuaGuaShen", liuYao.getFuGuaGuaShen());
|
|
|
|
data.put("benGuaLiuYaoAs", liuYao.getBenGuaLiuYaoAs());
|
|
data.put("bianGuaLiuYaoAs", liuYao.getBianGuaLiuYaoAs());
|
|
data.put("huGuaLiuYaoAs", liuYao.getHuGuaLiuYaoAs());
|
|
data.put("cuoGuaLiuYaoAs", liuYao.getCuoGuaLiuYaoAs());
|
|
data.put("zongGuaLiuYaoAs", liuYao.getZongGuaLiuYaoAs());
|
|
data.put("fuGuaLiuYaoAs", liuYao.getFuGuaLiuYaoAs());
|
|
|
|
data.put("benGuaLiuYaoGanZhi", liuYao.getBenGuaLiuYaoGanZhi());
|
|
data.put("bianGuaLiuYaoGanZhi", liuYao.getBianGuaLiuYaoGanZhi());
|
|
data.put("huGuaLiuYaoGanZhi", liuYao.getHuGuaLiuYaoGanZhi());
|
|
data.put("cuoGuaLiuYaoGanZhi", liuYao.getCuoGuaLiuYaoGanZhi());
|
|
data.put("zongGuaLiuYaoGanZhi", liuYao.getZongGuaLiuYaoGanZhi());
|
|
data.put("fuGuaLiuYaoGanZhi", liuYao.getFuGuaLiuYaoGanZhi());
|
|
|
|
data.put("benGuaLiuYaoWuXing", liuYao.getBenGuaLiuYaoWuXing());
|
|
data.put("bianGuaLiuYaoWuXing", liuYao.getBianGuaLiuYaoWuXing());
|
|
data.put("huGuaLiuYaoWuXing", liuYao.getHuGuaLiuYaoWuXing());
|
|
data.put("cuoGuaLiuYaoWuXing", liuYao.getCuoGuaLiuYaoWuXing());
|
|
data.put("zongGuaLiuYaoWuXing", liuYao.getZongGuaLiuYaoWuXing());
|
|
data.put("fuGuaLiuYaoWuXing", liuYao.getFuGuaLiuYaoWuXing());
|
|
|
|
data.put("benGuaLiuYaoNaYin", liuYao.getBenGuaLiuYaoNaYin());
|
|
data.put("bianGuaLiuYaoNaYin", liuYao.getBianGuaLiuYaoNaYin());
|
|
data.put("huGuaLiuYaoNaYin", liuYao.getHuGuaLiuYaoNaYin());
|
|
data.put("cuoGuaLiuYaoNaYin", liuYao.getCuoGuaLiuYaoNaYin());
|
|
data.put("zongGuaLiuYaoNaYin", liuYao.getZongGuaLiuYaoNaYin());
|
|
data.put("fuGuaLiuYaoNaYin", liuYao.getFuGuaLiuYaoNaYin());
|
|
|
|
data.put("benGuaLiuYaoYaoCi", liuYao.getBenGuaLiuYaoYaoCi());
|
|
data.put("bianGuaLiuYaoYaoCi", liuYao.getBianGuaLiuYaoYaoCi());
|
|
data.put("huGuaLiuYaoYaoCi", liuYao.getHuGuaLiuYaoYaoCi());
|
|
data.put("cuoGuaLiuYaoYaoCi", liuYao.getCuoGuaLiuYaoYaoCi());
|
|
data.put("zongGuaLiuYaoYaoCi", liuYao.getZongGuaLiuYaoYaoCi());
|
|
data.put("fuGuaLiuYaoYaoCi", liuYao.getFuGuaLiuYaoYaoCi());
|
|
|
|
data.put("benGuaGuaShen", liuYao.getBenGuaGuaShen());
|
|
data.put("bianGuaGuaShen", liuYao.getBianGuaGuaShen());
|
|
|
|
return data;
|
|
}
|
|
|
|
public static class LiuYaoRequest {
|
|
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 yearGanZhiType;
|
|
private Integer monthGanZhiType;
|
|
private Integer dayGanZhiType;
|
|
private Integer paiPanType;
|
|
private String liuYaoYaoXiang;
|
|
|
|
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 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; }
|
|
public Integer getPaiPanType() { return paiPanType; }
|
|
public void setPaiPanType(Integer paiPanType) { this.paiPanType = paiPanType; }
|
|
public String getLiuYaoYaoXiang() { return liuYaoYaoXiang; }
|
|
public void setLiuYaoYaoXiang(String liuYaoYaoXiang) { this.liuYaoYaoXiang = liuYaoYaoXiang; }
|
|
}
|
|
}
|