|
@@ -0,0 +1,89 @@
|
|
|
|
|
+package com.etotem.cfc.controller.mind;
|
|
|
|
|
+
|
|
|
|
|
+import com.etotem.cfc.common.Result;
|
|
|
|
|
+import com.etotem.cfc.dto.InnatePortraitReportVO;
|
|
|
|
|
+import com.etotem.cfc.dto.InnatePortraitVO;
|
|
|
|
|
+import com.etotem.cfc.dto.InnateTrajectoryVO;
|
|
|
|
|
+import com.etotem.cfc.dto.NumSoulDetailVO;
|
|
|
|
|
+import com.etotem.cfc.service.InnatePortraitService;
|
|
|
|
|
+import com.etotem.cfc.util.ParamUtils;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
|
+
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+
|
|
|
|
|
+@Slf4j
|
|
|
|
|
+@RestController
|
|
|
|
|
+@RequestMapping("/api/mind/innate")
|
|
|
|
|
+public class InnatePortraitController {
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private InnatePortraitService innatePortraitService;
|
|
|
|
|
+
|
|
|
|
|
+ @PostMapping("/portrait")
|
|
|
|
|
+ public Result<InnatePortraitVO> portrait(@RequestBody Map<String, Object> params) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Long memberId = ParamUtils.getLong(params.get("memberId"));
|
|
|
|
|
+ String memberType = params.containsKey("memberType") ? params.get("memberType").toString() : "child";
|
|
|
|
|
+ InnatePortraitVO vo = innatePortraitService.getInnatePortrait(memberId, memberType);
|
|
|
|
|
+ if (vo == null) {
|
|
|
|
|
+ return Result.error("成员不存在或未设置出生信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.success(vo);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("获取先天画像失败", e);
|
|
|
|
|
+ return Result.error(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @PostMapping("/reading")
|
|
|
|
|
+ public Result<InnatePortraitReportVO> reading(@RequestBody Map<String, Object> params) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Long memberId = ParamUtils.getLong(params.get("memberId"));
|
|
|
|
|
+ String memberType = params.containsKey("memberType") ? params.get("memberType").toString() : "child";
|
|
|
|
|
+ Long familyId = ParamUtils.getLong(params.get("familyId"));
|
|
|
|
|
+ InnatePortraitReportVO vo = innatePortraitService.generateAiReading(memberId, memberType, familyId);
|
|
|
|
|
+ if (vo == null) {
|
|
|
|
|
+ return Result.error("成员不存在或未设置出生信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.success(vo);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("生成AI解读失败", e);
|
|
|
|
|
+ return Result.error(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @PostMapping("/numsoul")
|
|
|
|
|
+ public Result<NumSoulDetailVO> numsoul(@RequestBody Map<String, Object> params) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Integer year = params.get("year") instanceof Number ? ((Number) params.get("year")).intValue() : null;
|
|
|
|
|
+ Integer month = params.get("month") instanceof Number ? ((Number) params.get("month")).intValue() : null;
|
|
|
|
|
+ Integer day = params.get("day") instanceof Number ? ((Number) params.get("day")).intValue() : null;
|
|
|
|
|
+ if (year == null || month == null || day == null) {
|
|
|
|
|
+ return Result.error("请提供出生年月日");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.success(innatePortraitService.calculateNumSoul(year, month, day));
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("获取数字能量失败", e);
|
|
|
|
|
+ return Result.error(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @PostMapping("/trajectory")
|
|
|
|
|
+ public Result<InnateTrajectoryVO> trajectory(@RequestBody Map<String, Object> params) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Long memberId = ParamUtils.getLong(params.get("memberId"));
|
|
|
|
|
+ String memberType = params.containsKey("memberType") ? params.get("memberType").toString() : "child";
|
|
|
|
|
+ Long familyId = ParamUtils.getLong(params.get("familyId"));
|
|
|
|
|
+ InnateTrajectoryVO vo = innatePortraitService.getTrajectory(memberId, memberType, familyId);
|
|
|
|
|
+ if (vo == null) {
|
|
|
|
|
+ return Result.error("成员不存在或未设置出生信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.success(vo);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("获取成长轨迹失败", e);
|
|
|
|
|
+ return Result.error(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|