diff --git a/README.md b/README.md index a7e4f59..6b18a20 100644 --- a/README.md +++ b/README.md @@ -1,273 +1,257 @@ -

- 排盘工具 - 升级版 -

+

玄机测算

+

- - - - - - + 中国传统术数与西方占卜术 + AI 智能解读 | 微信小程序 & H5

+

- 在线地址: - - https://www.muxuange.cn/paipan - -

-

- 版本:v2.2.0 | 运行环境:jdk8 + + + + +

-``` -公历2025年8月22日更新 +--- -此仓库唯一,开源免费、不售卖、仅供参考使用 -https://gitee.com/shan-dai/xuan-utils-pro -``` +## 项目介绍 -## **八字排盘** +玄机测算是一款集中国传统术数与西方占卜术、AI 智能解读、实用工具于一体的应用,支持微信小程序和 H5 双端运行。 -🔈八字排盘提供基础数据,如:八字、主星、地势、空亡、神煞等。 +### 核心功能 -### 代码示例 +**排盘模块(8种)** -```java -public class BaZiTest { - public static void main(String[] args) { +1. 四柱八字 — 八字、主星、地势、空亡、神煞、大运流年等 +2. 六爻排盘 — 五行、世应、六亲、六神、卦辞等 +3. 大六壬 — 天地盘、四课、三传、天将等 +4. 奇门遁甲(转盘)— 地盘、天盘、人盘、神盘、克应、动应等 +5. 梅花易数 — 本卦、变卦、互卦、错卦、综卦等 +6. 紫微斗数 — 命宫、身宫、四化、诸星等 +7. 占星术 — 太阳/月亮/上升星座、行星、宫位、相位 +8. 塔罗牌 — 单牌/三牌/凯尔特十字牌阵 - // 1、基础设置(可选) - BaZiJiChuSetting baZiJiChuSetting = new BaZiJiChuSetting(); - baZiJiChuSetting.setSex(1); // 性别(0:女。1:男) - // 更多基础设置... +**AI 智能解读** - // 2、神煞设置(可选) - BaZiShenShaSetting baZiShenShaSetting = new BaZiShenShaSetting(); - baZiShenShaSetting.setTaiJiGuiRen(0); // 太极贵人(0:显示。1:关闭) - // 更多神煞设置... +- 支持 OpenAI Compatible 接口(OpenAI、DeepSeek、Moonshot、智谱 ChatGLM、SiliconFlow、Ollama 等) +- 支持腾讯混元(Tencent Hunyuan) +- 每种排盘均有专属 AI 提示词模板,输出专业解读 - // 3、干支留意设置(可选) - BaZiGanZhiLiuYiSetting baZiGanZhiLiuYiSetting = new BaZiGanZhiLiuYiSetting(); - baZiGanZhiLiuYiSetting.setTianGanXiangSheng(0); // 天干相生(0:显示。1:关闭) - // 更多干支留意设置... +**实用工具** - // 4、初始化 - BaZi baZi = new BaZi(baZiJiChuSetting); // 使用基础设置初始化 - baZi.baZiShenShaSetting(baZiShenShaSetting); // 神煞设置 - baZi.baZiGanZhiLiuYiSetting(baZiGanZhiLiuYiSetting); // 干支留意设置 +- 农历查询、干支查询、生肖查询、星座查询、五行查询、吉日查询 +- 取名神器 — AI 根据姓氏、性别、要求智能取名 - // 5、输出结果 - System.out.println(baZi); +**用户体系** - } -} -``` +- 微信小程序登录 / H5 注册登录 +- 金币消费 + VIP 会员 +- 测算记录管理 +- 测算结果微信分享 -输出结果(部分数据): +--- + +## 技术栈 + +| 层 | 技术 | +|---|---| +| 后端 | Spring Boot 2.7 + Spring Data JPA + MySQL 8.0 | +| 前端 | uni-app (Vue 2) + Vite | +| AI | OkHttp + OpenAI Compatible API / 腾讯混元 | +| 部署 | JDK 8 + Maven + Nginx | + +--- + +## 项目结构 ``` -公历:2024年01月01日00时00分00秒 农历:二〇二三年冬月二十(早)子时 星期:周一 季节:仲冬 生肖:兔 星座:摩羯座 月相:更待 月将:丑 月将神:大吉 五不遇时:false 年干支主星:正印 月干支主星:比肩 日干支主星:元男 时干支主星:比肩 年支藏干:[乙] 月支藏干:[癸] 日支藏干:[癸] 时支藏干:[癸] 年干支副星:[劫财] 月干支副星:[正印] 日干支副星:[正印] 时干支副星:[正印] 年干支自坐:长生 月干支自坐:沐浴 日干支自坐:沐浴 时干支自坐:沐浴 年干支星运:帝旺 月干支星运:沐浴 日干支星运:沐浴 时干支星运:沐浴年干支神煞:[天乙贵人, 福星贵人, 文昌贵人, 天厨贵人, 德秀贵人, 羊刃] 月干支神煞:[太极贵人, 福星贵人, 德秀贵人, 将星, 桃花, 红鸾, 披麻] 日干支神煞:[太极贵人, 福星贵人, 德秀贵人, 阴注阳受, 冲天煞, 桃花, 红鸾, 天赦, 披麻] 时干支神煞:[太极贵人, 福星贵人, 德秀贵人, 阴注阳受, 冲天煞, 将星, 桃花, 红鸾, 披麻] +xuan-deduct/ +├── src/main/java/xuan/ # Spring Boot 后端 +│ ├── config/ # 配置类(AI、CORS) +│ ├── controller/ # REST 控制器(14个) +│ ├── core/ # 排盘核心算法 +│ │ ├── bazi/ # 八字 +│ │ ├── daliuren/ # 大六壬 +│ │ ├── liuyao/ # 六爻 +│ │ ├── meihua/ # 梅花易数 +│ │ ├── qimen/ # 奇门遁甲 +│ │ └── ziwei/ # 紫微斗数 +│ ├── entity/ # JPA 实体 +│ ├── repository/ # 数据访问层 +│ ├── service/ # 业务逻辑 + AI 服务 +│ └── utils/ # 工具类 +├── src/main/resources/ +│ └── application.properties.template # 配置模板 +├── xuan-deduct-uniapp/ # uni-app 前端 +│ ├── src/pages/ # 页面(35个路由) +│ ├── src/components/ # 自定义组件 +│ ├── src/utils/ # API 请求、工具函数 +│ └── src/mixins/ # 分享混入 +└── pom.xml # Maven 配置 ``` -### 效果预览 +--- -![paipan](https://xuan-utils-pro.oss-cn-qingdao.aliyuncs.com/pic/440701d3-3fcd-455b-95fb-ef301a6f757c.png) +## 安装部署 -========================================================= +### 环境要求 -## **六爻排盘** +- JDK 1.8+ +- Maven 3.6+ +- MySQL 8.0+ +- Node.js 16+(前端开发) +- HBuilderX 或微信开发者工具(小程序开发) -🔈六爻排盘提供基础数据,如:八字、五行、空亡、世应、六亲等。 +### 1. 克隆项目 -### 代码示例 - -```java -public class LiuYaoTest { - public static void main(String[] args) { - - // 1、基础设置(可选) - LiuYaoJiChuSetting liuYaoJiChuSetting = new LiuYaoJiChuSetting(); - baZiJiChuSetting.setSex(1); // 性别(0:女。1:男) - // 更多基础设置... - - // 2、神煞设置(可选) - LiuYaoShenShaSetting liuYaoShenShaSetting = new LiuYaoShenShaSetting(); - liuYaoShenShaSetting.setTaiJiGuiRen(0); // 太极贵人(0:显示。1:关闭) - // 更多神煞设置... - - // 3、初始化 - LiuYao liuYao = new LiuYao(liuYaoJiChuSetting); // 使用基础设置初始化 - liuYao.liuYaoShenShaSetting(liuYaoShenShaSetting); // 神煞设置 - - // 4、输出结果 - System.out.println(liuYao); - - } -} +```bash +git clone https://gitee.com/farway-cc/xuan-deduct.git +cd xuan-deduct ``` -输出结果(部分数据): +### 2. 配置后端 -``` -公历:2024年01月01日00时00分00秒 农历:二〇二三年冬月二十(早)子时 星期:周一 季节:仲冬 生肖:兔 星座:摩羯座 月相:更待 月将:丑 月将神:大吉 五不遇时:false 上卦:离(☲) 下卦:震(☳) 本卦:火雷噬嗑(䷔) 变卦:震为雷(䷲) 互卦:水山蹇(䷦) 错卦:水风井(䷯) 综卦:山火贲(䷕) 伏卦:巽为风(䷸) +```bash +cp src/main/resources/application.properties.template src/main/resources/application.properties ``` -### 效果预览 +编辑 `application.properties`,填入实际配置: -![paipan](https://xuan-utils-pro.oss-cn-qingdao.aliyuncs.com/pic/fcc3ae97-2e46-4907-8ad2-f8705785a77b.png) +```properties +# 数据库 +spring.datasource.url=jdbc:mysql://localhost:3306/xuan_deduct?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true +spring.datasource.username=你的数据库用户名 +spring.datasource.password=你的数据库密码 -========================================================= +# 微信小程序 +wechat.appid=你的微信AppID +wechat.secret=你的微信AppSecret -## **大六壬排盘** +# AI 配置(二选一) -🔈大六壬排盘提供基础数据,如:地盘、天盘、人盘、四课、三传等。 +# 方式一:OpenAI Compatible(推荐) +ai.provider=openai-compatible +ai.api-key=你的API密钥 +ai.base-url=https://api.openai.com +ai.model=gpt-3.5-turbo -### 代码示例 - -```java -public class DaLiuRenTest { - public static void main(String[] args) { - - // 1、基础设置(可选) - DaLiuRenJiChuSetting daLiuRenJiChuSetting = new DaLiuRenJiChuSetting(); - daLiuRenJiChuSetting.setSex(1); // 性别(0:女。1:男) - // 更多基础设置... - - // 2、初始化 - DaLiuRen daLiuRen = new DaLiuRen(daLiuRenJiChuSetting); // 使用基础设置初始化 - - // 3、输出结果 - System.out.println(daLiuRen); - - } -} +# 方式二:腾讯混元 +ai.provider=tencent-hunyuan +ai.tencent-hunyuan.secret-id=你的SecretId +ai.tencent-hunyuan.secret-key=你的SecretKey ``` -输出结果(部分数据): +### 3. 初始化数据库 -``` -公历:2024年01月01日00时00分00秒 农历:二〇二三年冬月二十(早)子时 星期:周一 季节:仲冬 生肖:兔 星座:摩羯座 月相:更待 月将:丑 月将神:大吉 五不遇时:false 天地盘类型:进连茹盘 地盘:[寅, 卯, 辰, 巳, 午, 未, 申, 酉, 戌, 亥, 子, 丑] 天盘:[卯, 辰, 巳, 午, 未, 申, 酉, 戌, 亥, 子, 丑, 寅] 神盘:[勾陈, 六合, 朱雀, 螣蛇, 贵人, 天后, 太阴, 玄武, 太常, 白虎, 天空, 青龙] 四课:[[卯, 甲], [辰, 卯], [丑, 子], [寅, 丑]] 三传:[辰, 巳, 午] +```bash +mysql -u root -p -e "CREATE DATABASE xuan_deduct DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" ``` -### 效果预览 +JPA 会根据实体类自动创建表(`ddl-auto=update`)。 -![paipan](https://xuan-utils-pro.oss-cn-qingdao.aliyuncs.com/pic/1a036a3d-7f05-494b-8bdb-ac7ec40c7e84.png) +### 4. 编译运行后端 -========================================================= - -## **奇门遁甲排盘** - -🔈奇门遁甲排盘提供基础数据,如:地盘、天盘、人盘、神盘、动应、克应等。 - -### 代码示例(转盘) - -```java -public class QiMenTest { - public static void main(String[] args) { - - // 1、基础设置(可选) - QiMenZhuanPanJiChuSetting qiMenZhuanPanJiChuSetting = new QiMenZhuanPanJiChuSetting(); - qiMenZhuanPanJiChuSetting.setSex(1); // 性别(0:女。1:男) - // 更多基础设置... - - // 2、初始化 - QiMenZhuanPan qiMen = new QiMenZhuanPan(qiMenZhuanPanJiChuSetting); // 使用基础设置初始化 - - // 3、输出结果 - System.out.println(qiMen); - - } -} +```bash +mvn clean package -DskipTests +java -jar target/xuan-utils-pro-2.0-SNAPSHOT.jar ``` -输出结果(部分数据): +后端默认运行在 `http://localhost:8080`。 -``` -公历:2024年01月01日00时00分00秒 农历:二〇二三年冬月二十(早)子时 星期:周一 季节:仲冬 生肖:兔 星座:摩羯座 月相:更待 月将:丑 月将神:大吉 五不遇时:false 符头:甲子 节气:冬至上元 局数:阳遁1局 旬首:甲子 值符:天蓬 值使:休门 天乙:天蓬 地乙:休门 太乙:休门 地盘:[戊, 己, 庚, 辛, 壬, 癸, 丁, 丙, 乙] 天盘:[天蓬, 芮禽, 天冲, 天辅, , 天心, 天柱, 天任, 天英] 人盘:[休门, 死门, 伤门, 杜门, , 开门, 惊门, 生门, 景门] 神盘:[值符, 玄武, 太阴, 六合, , 九天, 九地, 螣蛇, 白虎] 六仪击刑:[己击刑(坤二宫)] 奇仪入墓:[辛入墓(巽四宫)] +### 5. 配置前端 + +编辑 `xuan-deduct-uniapp/src/utils/api.js`,设置后端 API 地址: + +```javascript +const BASE_URL = 'http://localhost:8080/api' ``` -### 效果预览(转盘) +### 6. 运行前端 -![paipan](https://xuan-utils-pro.oss-cn-qingdao.aliyuncs.com/pic/7e0304f8-4da3-4023-8b9f-4a9b82ee061f.png) +**H5 开发模式:** -========================================================= - -## **梅花易数排盘** - -🔈梅花易数排盘提供基础数据,如:上卦、下卦、本卦、变卦、互卦等。 - -### 代码示例 - -```java -public class MeiHuaTest { - public static void main(String[] args) { - - // 1、基础设置(可选) - MeiHuaJiChuSetting meiHuaJiChuSetting = new MeiHuaJiChuSetting(); - meiHuaJiChuSetting.setSex(1); // 性别(0:女。1:男) - // 更多基础设置... - - // 2、初始化 - MeiHua meiHua = new MeiHua(meiHuaJiChuSetting); // 使用基础设置初始化 - - // 3、输出结果 - System.out.println(meiHua); - - } -} +```bash +cd xuan-deduct-uniapp +npm install +npm run dev:h5 ``` -输出结果(部分数据): +**微信小程序:** -``` -公历:2024年01月01日00时00分00秒 农历:二〇二三年冬月二十(早)子时 星期:周一 季节:仲冬 生肖:兔 星座:摩羯座 月相:更待 月将:丑 月将神:大吉 五不遇时:false 卦码:346 上卦:离(☲) 下卦:震(☳) 动爻:6 本卦:火雷噬嗑(䷔) 变卦:震为雷(䷲) 互卦:水山蹇(䷦) 错卦:水风井(䷯) 综卦:山火贲(䷕) +1. 用 HBuilderX 打开 `xuan-deduct-uniapp` 目录 +2. 运行 → 运行到小程序模拟器 → 微信开发者工具 +3. 在 `manifest.json` 中配置微信 AppID + +--- + +## AI 配置说明 + +项目支持两种 AI Provider,通过 `ai.provider` 切换: + +### OpenAI Compatible + +适用于所有兼容 OpenAI 接口的服务商: + +| 服务商 | base-url | model 示例 | +|---|---|---| +| OpenAI | `https://api.openai.com` | `gpt-3.5-turbo` | +| DeepSeek | `https://api.deepseek.com` | `deepseek-chat` | +| Moonshot | `https://api.moonshot.cn` | `moonshot-v1-8k` | +| 智谱 ChatGLM | `https://open.bigmodel.cn/api/paas` | `glm-4-flash` | +| SiliconFlow | `https://api.siliconflow.cn` | `Qwen/Qwen2.5-7B-Instruct` | +| Ollama 本地 | `http://localhost:11434` | `llama3` | + +### 腾讯混元 + +```properties +ai.provider=tencent-hunyuan +ai.tencent-hunyuan.secret-id=你的SecretId +ai.tencent-hunyuan.secret-key=你的SecretKey +ai.tencent-hunyuan.region=ap-guangzhou +ai.tencent-hunyuan.model=hunyuan-lite ``` -### 效果预览 +所有 AI 配置项均支持环境变量覆盖(`AI_PROVIDER`、`AI_API_KEY`、`AI_BASE_URL`、`AI_MODEL`)。 -![paipan](https://xuan-utils-pro.oss-cn-qingdao.aliyuncs.com/pic/8a53175a-50dc-40c4-894c-e1fb85773053.png) +--- -========================================================= +## 使用说明 -## **紫微斗数排盘** +1. 启动后端服务后,打开前端页面即可使用 +2. 首页选择排盘类型,输入相关信息后点击测算 +3. 测算结果包含排盘数据和 AI 解读 +4. 测算需消耗金币,VIP 用户可免费使用 +5. 支持将测算结果分享给微信好友 +6. 工具页面提供农历、干支、生肖等免费查询 -🔈紫微斗数排盘提供基础数据,如:命宫、身宫、四化、诸星等。 +--- -### 代码示例 +## 应用截图 -```java -public class ZiWeiTest { - public static void main(String[] args) { +### 首页 - // 1、基础设置(可选) - ZiWeiJiChuSetting ziWeiJiChuSetting = new ZiWeiJiChuSetting(); - ziWeiJiChuSetting.setSex(1); // 性别(0:女。1:男) - // 更多基础设置... +![首页](docs/screenshots/home-page.png) - // 2、初始化 - ZiWei ziWei = new ZiWei(ziWeiJiChuSetting); // 使用基础设置初始化 +### 工具页 - // 3、输出结果 - System.out.println(ziWei); +![工具页](docs/screenshots/tools-page.png) - } -} -``` +### 占星结果展示 -输出结果(部分数据): +![占星结果1](docs/screenshots/zhanxing-result-1.png) -``` -公历:2024年01月01日00时00分00秒 农历:二〇二三年冬月二十(早)子时 星期:周一 季节:仲冬 生肖:兔 星座:摩羯座 月相:更待 月将:丑 月将神:大吉 五不遇时:false 五行局:金四局 化禄星宫位解读:化禄星落财帛宫,善于理财,财源滚滚。 化权星宫位解读:化权星落父母宫,父母强势,有矛盾。 化科星宫位解读:化科星落兄弟宫,兄弟有名声,助力多。 化忌星宫位解读:化忌星落命宫宫,不听劝,易焦虑,年少顺利。 -``` +![占星结果2](docs/screenshots/zhanxing-result-2.png) -### 效果预览 +![占星结果3](docs/screenshots/zhanxing-result-3.png) -![paipan](https://xuan-utils-pro.oss-cn-qingdao.aliyuncs.com/pic/225964a8-b34f-4a2d-b802-c43adc2d7860.png) +--- -========================================================= +## 免责声明 -## **更多功能正在完善中...** +本项目代码仅供参考学习,不得违法违规使用,否则后果自负。 -

- 温馨提示:代码仅供参考,不得违法违规使用,否则后果自负! -

+--- + +## License + +[MIT License](LICENSE) diff --git a/docs/screenshots/home-page.png b/docs/screenshots/home-page.png new file mode 100644 index 0000000..957b221 Binary files /dev/null and b/docs/screenshots/home-page.png differ diff --git a/docs/screenshots/tools-page.png b/docs/screenshots/tools-page.png new file mode 100644 index 0000000..e2fdda2 Binary files /dev/null and b/docs/screenshots/tools-page.png differ diff --git a/docs/screenshots/zhanxing-result-1.png b/docs/screenshots/zhanxing-result-1.png new file mode 100644 index 0000000..dbd4cb8 Binary files /dev/null and b/docs/screenshots/zhanxing-result-1.png differ diff --git a/docs/screenshots/zhanxing-result-2.png b/docs/screenshots/zhanxing-result-2.png new file mode 100644 index 0000000..7184f6c Binary files /dev/null and b/docs/screenshots/zhanxing-result-2.png differ diff --git a/docs/screenshots/zhanxing-result-3.png b/docs/screenshots/zhanxing-result-3.png new file mode 100644 index 0000000..945ca2c Binary files /dev/null and b/docs/screenshots/zhanxing-result-3.png differ