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 xuan.service.HunYuanAiService; import xuan.service.PromptTemplates; import java.util.*; @RestController @RequestMapping("/api/daliuren") public class DaLiuRenController { private final HunYuanAiService aiService = new HunYuanAiService(); @PostMapping("/paipan") public Map paiPan(@RequestBody DaLiuRenRequest request) { Map 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()); Map data = buildDaLiuRenData(daLiuRen); String aiAnalysis = aiService.chat( PromptTemplates.getDaLiuRenSystemPrompt(), PromptTemplates.getDaLiuRenUserPrompt(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()); e.printStackTrace(); } return result; } private Map buildDaLiuRenData(DaLiuRen daLiuRen) { Map 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("shengXiao", daLiuRen.getShengXiao()); data.put("yearGanZhi", daLiuRen.getYearGanZhi()); data.put("monthGanZhi", daLiuRen.getMonthGanZhi()); data.put("dayGanZhi", daLiuRen.getDayGanZhi()); data.put("hourGanZhi", daLiuRen.getHourGanZhi()); data.put("chuShengJie", daLiuRen.getChuShengJie()); data.put("yueJiang", daLiuRen.getYueJiang()); data.put("tianDiPanType", daLiuRen.getTianDiPanType()); data.put("tianPan", daLiuRen.getTianPan()); data.put("diPan", daLiuRen.getDiPan()); data.put("siKe", daLiuRen.getSiKe()); data.put("sanChuan", daLiuRen.getSanChuan()); data.put("sanChuanDunGan", daLiuRen.getSanChuanDunGan()); data.put("sanChuanLiuQin", daLiuRen.getSanChuanLiuQin()); 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; } } }