diff --git a/src/main/java/xuan/controller/ShareController.java b/src/main/java/xuan/controller/ShareController.java index 3c34582..3748250 100644 --- a/src/main/java/xuan/controller/ShareController.java +++ b/src/main/java/xuan/controller/ShareController.java @@ -1,76 +1,402 @@ package xuan.controller; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import xuan.entity.ShareRecord; -import xuan.repository.ShareRecordRepository; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; +import java.util.*; @RestController @RequestMapping("/api/share") public class ShareController { - - @Autowired - private ShareRecordRepository shareRecordRepository; - - @PostMapping("/create") - public Map createShare(@RequestBody Map params) { + + @PostMapping("/bazi") + public Map shareBazi(@RequestBody ShareRequest request) { Map result = new HashMap<>(); - try { - String type = (String) params.get("type"); - String resultData = (String) params.get("resultData"); - String name = (String) params.get("name"); + Map data = request.getData(); - ShareRecord shareRecord = new ShareRecord(); - shareRecord.setShareId(UUID.randomUUID().toString().replace("-", "").substring(0, 16)); - shareRecord.setType(type); - shareRecord.setResultData(resultData); - shareRecord.setName(name); + StringBuilder shareText = new StringBuilder(); + shareText.append("【八字命理分析】\n\n"); - shareRecordRepository.save(shareRecord); + if (data.containsKey("name")) { + shareText.append("👤 姓名:").append(data.get("name")).append("\n"); + } + if (data.containsKey("solar")) { + shareText.append("📅 出生时间:").append(data.get("solar")).append("\n"); + } + if (data.containsKey("bazi")) { + Map bazi = (Map) data.get("bazi"); + shareText.append("\n【八字排盘】\n"); + shareText.append("年柱:").append(bazi.get("yearGan")).append(bazi.get("yearZhi")).append("\n"); + shareText.append("月柱:").append(bazi.get("monthGan")).append(bazi.get("monthZhi")).append("\n"); + shareText.append("日柱:").append(bazi.get("dayGan")).append(bazi.get("dayZhi")).append("\n"); + shareText.append("时柱:").append(bazi.get("hourGan")).append(bazi.get("hourZhi")).append("\n"); + } + + if (data.containsKey("interpretation")) { + Map interpretation = (Map) data.get("interpretation"); + shareText.append("\n【命理解读】\n"); + if (interpretation.containsKey("personality")) { + shareText.append("\n性格特质:\n").append(interpretation.get("personality")).append("\n"); + } + if (interpretation.containsKey("career")) { + shareText.append("\n事业发展:\n").append(interpretation.get("career")).append("\n"); + } + if (interpretation.containsKey("marriage")) { + shareText.append("\n婚姻感情:\n").append(interpretation.get("marriage")).append("\n"); + } + if (interpretation.containsKey("wealth")) { + shareText.append("\n财运状况:\n").append(interpretation.get("wealth")).append("\n"); + } + if (interpretation.containsKey("health")) { + shareText.append("\n健康建议:\n").append(interpretation.get("health")).append("\n"); + } + if (interpretation.containsKey("advice")) { + shareText.append("\n人生建议:\n").append(interpretation.get("advice")).append("\n"); + } + } + + shareText.append("\n——来自玄学测算APP"); result.put("success", true); - result.put("shareId", shareRecord.getShareId()); - result.put("message", "分享链接创建成功"); + result.put("data", shareText.toString()); } catch (Exception e) { result.put("success", false); - result.put("error", "创建分享链接失败:" + e.getMessage()); + result.put("error", e.getMessage()); } - return result; } - - @GetMapping("/view/{shareId}") - public Map viewShare(@PathVariable String shareId) { + + @PostMapping("/ziwei") + public Map shareZiwei(@RequestBody ShareRequest request) { Map result = new HashMap<>(); - try { - ShareRecord shareRecord = shareRecordRepository.findByShareId(shareId) - .orElse(null); + Map data = request.getData(); - if (shareRecord == null) { - result.put("success", false); - result.put("error", "分享链接不存在或已过期"); - return result; + StringBuilder shareText = new StringBuilder(); + shareText.append("【紫微斗数命盘】\n\n"); + + if (data.containsKey("name")) { + shareText.append("👤 姓名:").append(data.get("name")).append("\n"); + } + if (data.containsKey("solar")) { + shareText.append("📅 出生时间:").append(data.get("solar")).append("\n"); } - if (shareRecord.getExpireTime() != null && shareRecord.getExpireTime().before(new java.util.Date())) { - result.put("success", false); - result.put("error", "分享链接已过期"); - return result; + if (data.containsKey("mingGong")) { + shareText.append("\n【命宫主星】\n").append(data.get("mingGong")).append("\n"); } + if (data.containsKey("interpretation")) { + Map interpretation = (Map) data.get("interpretation"); + shareText.append("\n【命理解读】\n"); + if (interpretation.containsKey("personality")) { + shareText.append("\n性格特质:\n").append(interpretation.get("personality")).append("\n"); + } + if (interpretation.containsKey("career")) { + shareText.append("\n事业发展:\n").append(interpretation.get("career")).append("\n"); + } + if (interpretation.containsKey("wealth")) { + shareText.append("\n财运状况:\n").append(interpretation.get("wealth")).append("\n"); + } + if (interpretation.containsKey("marriage")) { + shareText.append("\n婚姻感情:\n").append(interpretation.get("marriage")).append("\n"); + } + } + + shareText.append("\n——来自玄学测算APP"); + result.put("success", true); - result.put("data", shareRecord); + result.put("data", shareText.toString()); } catch (Exception e) { result.put("success", false); - result.put("error", "获取分享数据失败:" + e.getMessage()); + result.put("error", e.getMessage()); } - return result; } + + @PostMapping("/zhanxing") + public Map shareZhanxing(@RequestBody ShareRequest request) { + Map result = new HashMap<>(); + try { + Map data = request.getData(); + + StringBuilder shareText = new StringBuilder(); + shareText.append("【星盘解析】\n\n"); + + if (data.containsKey("name")) { + shareText.append("👤 姓名:").append(data.get("name")).append("\n"); + } + + shareText.append("\n【核心星座】\n"); + if (data.containsKey("sunSign")) { + shareText.append("☀️ 太阳星座:").append(data.get("sunSign")).append("\n"); + } + if (data.containsKey("moonSign")) { + shareText.append("🌙 月亮星座:").append(data.get("moonSign")).append("\n"); + } + if (data.containsKey("risingSign")) { + shareText.append("⬆️ 上升星座:").append(data.get("risingSign")).append("\n"); + } + + if (data.containsKey("interpretation")) { + Map interpretation = (Map) data.get("interpretation"); + shareText.append("\n【命理解读】\n"); + if (interpretation.containsKey("personality")) { + shareText.append("\n性格特质:\n").append(interpretation.get("personality")).append("\n"); + } + if (interpretation.containsKey("love")) { + shareText.append("\n感情运势:\n").append(interpretation.get("love")).append("\n"); + } + if (interpretation.containsKey("career")) { + shareText.append("\n事业发展:\n").append(interpretation.get("career")).append("\n"); + } + if (interpretation.containsKey("wealth")) { + shareText.append("\n财运状况:\n").append(interpretation.get("wealth")).append("\n"); + } + if (interpretation.containsKey("health")) { + shareText.append("\n健康建议:\n").append(interpretation.get("health")).append("\n"); + } + if (interpretation.containsKey("advice")) { + shareText.append("\n人生建议:\n").append(interpretation.get("advice")).append("\n"); + } + } + + shareText.append("\n——来自玄学测算APP"); + + result.put("success", true); + result.put("data", shareText.toString()); + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + @PostMapping("/taluo") + public Map shareTaluo(@RequestBody ShareRequest request) { + Map result = new HashMap<>(); + try { + Map data = request.getData(); + + StringBuilder shareText = new StringBuilder(); + shareText.append("【塔罗牌占卜结果】\n\n"); + + if (data.containsKey("spreadName")) { + shareText.append("🔮 牌阵:").append(data.get("spreadName")).append("\n"); + } + if (data.containsKey("question")) { + shareText.append("❓ 问题:").append(data.get("question")).append("\n"); + } + + if (data.containsKey("cards")) { + List> cards = (List>) data.get("cards"); + shareText.append("\n【抽到的牌】\n"); + for (Map card : cards) { + String position = (Boolean) card.get("isReversed") ? "逆位" : "正位"; + shareText.append(card.get("positionMeaning")).append(":") + .append(card.get("name")).append("(").append(position).append(")\n"); + } + } + + if (data.containsKey("interpretation")) { + shareText.append("\n【牌义解读】\n").append(data.get("interpretation")).append("\n"); + } + + if (data.containsKey("summary")) { + Map summary = (Map) data.get("summary"); + shareText.append("\n【综合解读】\n"); + if (summary.containsKey("personality")) { + shareText.append("\n性格特质:\n").append(summary.get("personality")).append("\n"); + } + if (summary.containsKey("emotion")) { + shareText.append("\n感情运势:\n").append(summary.get("emotion")).append("\n"); + } + if (summary.containsKey("career")) { + shareText.append("\n事业发展:\n").append(summary.get("career")).append("\n"); + } + if (summary.containsKey("overall")) { + shareText.append("\n总体建议:\n").append(summary.get("overall")).append("\n"); + } + } + + shareText.append("\n——来自玄学测算APP"); + + result.put("success", true); + result.put("data", shareText.toString()); + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + @PostMapping("/meihua") + public Map shareMeihua(@RequestBody ShareRequest request) { + Map result = new HashMap<>(); + try { + Map data = request.getData(); + + StringBuilder shareText = new StringBuilder(); + shareText.append("【梅花易数占卜结果】\n\n"); + + if (data.containsKey("name")) { + shareText.append("👤 占卜者:").append(data.get("name")).append("\n"); + } + if (data.containsKey("solar")) { + shareText.append("📅 时间:").append(data.get("solar")).append("\n"); + } + if (data.containsKey("lunar")) { + shareText.append("🌙 农历:").append(data.get("lunar")).append("\n"); + } + + shareText.append("\n【卦象总览】\n"); + if (data.containsKey("benGuaName")) { + shareText.append("本卦:").append(data.get("benGuaName")); + if (data.containsKey("benGuaAs")) { + shareText.append(" ").append(data.get("benGuaAs")); + } + shareText.append("\n"); + } + if (data.containsKey("bianGuaName")) { + shareText.append("变卦:").append(data.get("bianGuaName")); + if (data.containsKey("bianGuaAs")) { + shareText.append(" ").append(data.get("bianGuaAs")); + } + shareText.append("\n"); + } + if (data.containsKey("huGuaName")) { + shareText.append("互卦:").append(data.get("huGuaName")); + if (data.containsKey("huGuaAs")) { + shareText.append(" ").append(data.get("huGuaAs")); + } + shareText.append("\n"); + } + if (data.containsKey("dongYaoStr")) { + shareText.append("动爻:").append(data.get("dongYaoStr")).append("爻\n"); + } + + if (data.containsKey("benGuaGuaCi")) { + shareText.append("\n【本卦卦辞】\n").append(data.get("benGuaGuaCi")).append("\n"); + } + if (data.containsKey("bianGuaGuaCi")) { + shareText.append("\n【变卦卦辞】\n").append(data.get("bianGuaGuaCi")).append("\n"); + } + + shareText.append("\n——来自玄学测算APP"); + + result.put("success", true); + result.put("data", shareText.toString()); + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + @PostMapping("/liuyao") + public Map shareLiuyao(@RequestBody ShareRequest request) { + Map result = new HashMap<>(); + try { + Map data = request.getData(); + + StringBuilder shareText = new StringBuilder(); + shareText.append("【六爻占卜结果】\n\n"); + + if (data.containsKey("name")) { + shareText.append("👤 占卜者:").append(data.get("name")).append("\n"); + } + if (data.containsKey("solar")) { + shareText.append("📅 时间:").append(data.get("solar")).append("\n"); + } + + if (data.containsKey("guaName")) { + shareText.append("\n【卦象】\n").append(data.get("guaName")).append("\n"); + } + + if (data.containsKey("interpretation")) { + shareText.append("\n【卦辞解读】\n").append(data.get("interpretation")).append("\n"); + } + + shareText.append("\n——来自玄学测算APP"); + + result.put("success", true); + result.put("data", shareText.toString()); + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + @PostMapping("/qimen") + public Map shareQimen(@RequestBody ShareRequest request) { + Map result = new HashMap<>(); + try { + Map data = request.getData(); + + StringBuilder shareText = new StringBuilder(); + shareText.append("【奇门遁甲排盘】\n\n"); + + if (data.containsKey("name")) { + shareText.append("👤 占卜者:").append(data.get("name")).append("\n"); + } + if (data.containsKey("solar")) { + shareText.append("📅 时间:").append(data.get("solar")).append("\n"); + } + + if (data.containsKey("juName")) { + shareText.append("\n【局数】\n").append(data.get("juName")).append("\n"); + } + + if (data.containsKey("interpretation")) { + shareText.append("\n【盘面解读】\n").append(data.get("interpretation")).append("\n"); + } + + shareText.append("\n——来自玄学测算APP"); + + result.put("success", true); + result.put("data", shareText.toString()); + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + @PostMapping("/daliuren") + public Map shareDaliuren(@RequestBody ShareRequest request) { + Map result = new HashMap<>(); + try { + Map data = request.getData(); + + StringBuilder shareText = new StringBuilder(); + shareText.append("【大六壬排盘】\n\n"); + + if (data.containsKey("name")) { + shareText.append("👤 占卜者:").append(data.get("name")).append("\n"); + } + if (data.containsKey("solar")) { + shareText.append("📅 时间:").append(data.get("solar")).append("\n"); + } + + if (data.containsKey("interpretation")) { + shareText.append("\n【盘面解读】\n").append(data.get("interpretation")).append("\n"); + } + + shareText.append("\n——来自玄学测算APP"); + + result.put("success", true); + result.put("data", shareText.toString()); + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + public static class ShareRequest { + private Map data; + + public Map getData() { return data; } + public void setData(Map data) { this.data = data; } + } } diff --git a/xuan-deduct-uniapp/src/pages/zhanxing/result.vue b/xuan-deduct-uniapp/src/pages/zhanxing/result.vue index 0ac285c..a6b7d8d 100644 --- a/xuan-deduct-uniapp/src/pages/zhanxing/result.vue +++ b/xuan-deduct-uniapp/src/pages/zhanxing/result.vue @@ -213,6 +213,7 @@