mirror of
https://github.com/patdelphi/suanming.git
synced 2026-03-06 16:43:12 +08:00
- 修复findYongShenPosition占位符函数,实现真正的用神位置查找算法 - 改进getSeasonalWangshui,基于24节气实现五行旺衰计算 - 完善getPalaceWangshui,实现五行与九宫生克关系计算 - 优化getTimeWangshui,基于时辰地支实现时间旺衰分析 - 完善analyzePalaceRelation,实现元素与宫位关系综合分析 - 改进analyzeSeasonalInfluence,实现季节对五行影响的详细分析 - 完善getTimingAssessment,建立完整的时机评估系统 - 修复findZhizhiPosition,实现地支定位算法 - 优化calculateWangShui,基于节气和五行理论实现旺衰计算 - 完善evaluateYongShenStatus,实现用神状态综合评估 测试通过率: 100% (50/50) 算法质量: 优秀
653 lines
14 KiB
Markdown
653 lines
14 KiB
Markdown
# 奇门遁甲模块开发计划
|
||
|
||
## 项目概述
|
||
|
||
基于已完成的奇门遁甲理论文档和基础代码框架,开发一个完整的奇门遁甲分析模块,为用户提供专业、准确、易用的奇门遁甲预测服务。
|
||
|
||
## 开发目标
|
||
|
||
### 核心目标
|
||
- 实现完整的奇门遁甲起局算法
|
||
- 提供准确的格局分析和用神判断
|
||
- 生成专业的预测结果和指导建议
|
||
- 支持多种问题类型的智能分析
|
||
|
||
### 技术目标
|
||
- 高性能的计算引擎
|
||
- 可扩展的架构设计
|
||
- 完善的缓存机制
|
||
- 友好的API接口
|
||
|
||
## 技术架构
|
||
|
||
### 后端架构
|
||
```
|
||
奇门遁甲模块
|
||
├── 核心计算引擎 (QimenCalculator)
|
||
│ ├── 时间转换模块
|
||
│ ├── 节气计算模块
|
||
│ ├── 起局算法模块
|
||
│ └── 格局识别模块
|
||
├── 分析服务 (QimenAnalyzer)
|
||
│ ├── 用神选择模块
|
||
│ ├── 旺衰判断模块
|
||
│ ├── 格局分析模块
|
||
│ └── 预测生成模块
|
||
├── 数据管理 (QimenDataManager)
|
||
│ ├── 基础数据管理
|
||
│ ├── 缓存管理
|
||
│ └── 历史记录管理
|
||
└── API接口层 (QimenRoutes)
|
||
├── 起局接口
|
||
├── 分析接口
|
||
├── 预测接口
|
||
└── 工具接口
|
||
```
|
||
|
||
### 前端架构
|
||
```
|
||
奇门遁甲前端模块
|
||
├── 页面组件
|
||
│ ├── 奇门起局页面
|
||
│ ├── 分析结果页面
|
||
│ ├── 历史记录页面
|
||
│ └── 学习资料页面
|
||
├── 业务组件
|
||
│ ├── 奇门盘显示组件
|
||
│ ├── 格局分析组件
|
||
│ ├── 预测结果组件
|
||
│ └── 时间选择组件
|
||
├── 工具组件
|
||
│ ├── 九宫格组件
|
||
│ ├── 干支显示组件
|
||
│ ├── 五行图表组件
|
||
│ └── 导出功能组件
|
||
└── 服务层
|
||
├── 奇门API服务
|
||
├── 数据格式化服务
|
||
└── 本地存储服务
|
||
```
|
||
|
||
## 功能模块详细设计
|
||
|
||
### 1. 核心计算引擎
|
||
|
||
#### 1.1 时间转换模块
|
||
**功能**:公历转农历、干支纪年法转换
|
||
**输入**:公历日期时间
|
||
**输出**:干支纪年、月、日、时
|
||
**关键算法**:
|
||
- 万年历算法
|
||
- 干支循环计算
|
||
- 节气精确计算
|
||
|
||
#### 1.2 节气计算模块
|
||
**功能**:精确计算二十四节气时间
|
||
**输入**:年份
|
||
**输出**:全年节气时间表
|
||
**关键算法**:
|
||
- 天文算法计算节气
|
||
- 时区转换处理
|
||
- 历史数据校验
|
||
|
||
#### 1.3 起局算法模块
|
||
**功能**:根据时间信息生成奇门盘
|
||
**输入**:干支时间、节气信息
|
||
**输出**:完整的奇门盘数据
|
||
**关键算法**:
|
||
- 阴阳遁判断
|
||
- 局数计算
|
||
- 三奇六仪排布
|
||
- 九星八门八神排布
|
||
|
||
#### 1.4 格局识别模块
|
||
**功能**:识别奇门盘中的各种格局
|
||
**输入**:奇门盘数据
|
||
**输出**:格局列表及评级
|
||
**关键算法**:
|
||
- 三奇格局识别
|
||
- 六仪格局识别
|
||
- 特殊格局识别
|
||
- 组合格局分析
|
||
|
||
### 2. 分析服务模块
|
||
|
||
#### 2.1 用神选择模块
|
||
**功能**:根据问题类型智能选择用神
|
||
**输入**:问题描述、用户信息
|
||
**输出**:用神配置
|
||
**关键算法**:
|
||
- 问题分类算法
|
||
- 用神匹配规则
|
||
- 优先级排序
|
||
|
||
#### 2.2 旺衰判断模块
|
||
**功能**:判断用神在当前时空的旺衰状态
|
||
**输入**:用神、时间信息
|
||
**输出**:旺衰等级
|
||
**关键算法**:
|
||
- 五行生克关系
|
||
- 季节旺衰规律
|
||
- 宫位影响因素
|
||
|
||
#### 2.3 格局分析模块
|
||
**功能**:综合分析格局对事情的影响
|
||
**输入**:格局列表、用神信息
|
||
**输出**:格局分析报告
|
||
**关键算法**:
|
||
- 格局权重计算
|
||
- 吉凶综合评估
|
||
- 影响因素分析
|
||
|
||
#### 2.4 预测生成模块
|
||
**功能**:生成最终的预测结果和建议
|
||
**输入**:所有分析结果
|
||
**输出**:预测报告
|
||
**关键算法**:
|
||
- 综合评分算法
|
||
- 建议生成规则
|
||
- 应期计算方法
|
||
|
||
### 3. 数据管理模块
|
||
|
||
#### 3.1 基础数据管理
|
||
**功能**:管理奇门遁甲基础数据
|
||
**数据类型**:
|
||
- 九星数据
|
||
- 八门数据
|
||
- 八神数据
|
||
- 格局数据
|
||
- 用神配置
|
||
|
||
#### 3.2 缓存管理
|
||
**功能**:提高计算性能
|
||
**缓存策略**:
|
||
- 奇门盘缓存(1小时)
|
||
- 节气数据缓存(1年)
|
||
- 分析结果缓存(30分钟)
|
||
|
||
#### 3.3 历史记录管理
|
||
**功能**:保存用户的预测历史
|
||
**存储内容**:
|
||
- 问题描述
|
||
- 起局时间
|
||
- 预测结果
|
||
- 准确性反馈
|
||
|
||
### 4. API接口设计
|
||
|
||
#### 4.1 起局接口
|
||
```javascript
|
||
POST /api/qimen/calculate
|
||
{
|
||
"datetime": "2024-03-15T10:00:00+08:00",
|
||
"timezone": "Asia/Shanghai",
|
||
"method": "时家"
|
||
}
|
||
```
|
||
|
||
#### 4.2 分析接口
|
||
```javascript
|
||
POST /api/qimen/analyze
|
||
{
|
||
"qimenPan": { /* 奇门盘数据 */ },
|
||
"question": {
|
||
"type": "求财",
|
||
"description": "投资前景如何"
|
||
},
|
||
"querent": {
|
||
"birthDate": "1990-05-15",
|
||
"gender": "男"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 4.3 预测接口
|
||
```javascript
|
||
POST /api/qimen/predict
|
||
{
|
||
"qimenPan": { /* 奇门盘数据 */ },
|
||
"analysis": { /* 分析结果 */ },
|
||
"options": {
|
||
"detailLevel": "full",
|
||
"includeAdvice": true
|
||
}
|
||
}
|
||
```
|
||
|
||
## 开发阶段规划
|
||
|
||
### 第一阶段:基础框架搭建(2周)
|
||
|
||
**目标**:完成核心架构和基础功能
|
||
|
||
**任务清单**:
|
||
- [ ] 完善 QimenAnalyzer 基础类结构
|
||
- [ ] 实现时间转换和干支计算
|
||
- [ ] 完成节气计算模块
|
||
- [ ] 建立基础数据结构
|
||
- [ ] 实现简单的起局算法
|
||
- [ ] 创建基础API接口
|
||
- [ ] 编写单元测试
|
||
|
||
**交付物**:
|
||
- 可运行的基础奇门模块
|
||
- 基础API接口
|
||
- 单元测试覆盖率 > 80%
|
||
|
||
### 第二阶段:核心算法实现(3周)
|
||
|
||
**目标**:实现完整的奇门遁甲计算逻辑
|
||
|
||
**任务清单**:
|
||
- [ ] 完善三奇六仪排布算法
|
||
- [ ] 实现九星八门八神排布
|
||
- [ ] 完成值符值使计算
|
||
- [ ] 实现格局识别算法
|
||
- [ ] 完成用神选择逻辑
|
||
- [ ] 实现旺衰判断算法
|
||
- [ ] 优化计算性能
|
||
- [ ] 完善错误处理
|
||
|
||
**交付物**:
|
||
- 完整的奇门起局功能
|
||
- 准确的格局识别
|
||
- 性能优化报告
|
||
|
||
### 第三阶段:分析预测功能(2周)
|
||
|
||
**目标**:实现智能分析和预测生成
|
||
|
||
**任务清单**:
|
||
- [ ] 实现问题分类算法
|
||
- [ ] 完成综合分析逻辑
|
||
- [ ] 实现预测结果生成
|
||
- [ ] 完成建议生成系统
|
||
- [ ] 实现应期计算
|
||
- [ ] 优化预测准确性
|
||
- [ ] 完善用户体验
|
||
|
||
**交付物**:
|
||
- 智能分析系统
|
||
- 预测结果生成器
|
||
- 用户体验优化
|
||
|
||
### 第四阶段:前端界面开发(3周)
|
||
|
||
**目标**:开发用户友好的前端界面
|
||
|
||
**任务清单**:
|
||
- [ ] 设计奇门盘显示组件
|
||
- [ ] 实现起局页面
|
||
- [ ] 开发分析结果页面
|
||
- [ ] 创建历史记录功能
|
||
- [ ] 实现数据导出功能
|
||
- [ ] 优化移动端体验
|
||
- [ ] 完善交互设计
|
||
- [ ] 进行用户测试
|
||
|
||
**交付物**:
|
||
- 完整的前端界面
|
||
- 响应式设计
|
||
- 用户测试报告
|
||
|
||
### 第五阶段:系统集成测试(1周)
|
||
|
||
**目标**:完成系统集成和全面测试
|
||
|
||
**任务清单**:
|
||
- [ ] 前后端集成测试
|
||
- [ ] 性能压力测试
|
||
- [ ] 准确性验证测试
|
||
- [ ] 用户接受度测试
|
||
- [ ] 安全性测试
|
||
- [ ] 文档完善
|
||
- [ ] 部署准备
|
||
|
||
**交付物**:
|
||
- 完整的奇门遁甲模块
|
||
- 测试报告
|
||
- 部署文档
|
||
|
||
## 技术实现细节
|
||
|
||
### 1. 核心算法实现
|
||
|
||
#### 起局算法核心逻辑
|
||
```javascript
|
||
class QimenCalculator {
|
||
calculateQimenPan(datetime) {
|
||
// 1. 时间转换
|
||
const timeInfo = this.convertToGanZhi(datetime);
|
||
|
||
// 2. 节气判断
|
||
const jieqi = this.calculateJieQi(datetime);
|
||
const yuan = this.calculateYuan(datetime, jieqi);
|
||
|
||
// 3. 局数计算
|
||
const { jushu, yindun } = this.calculateJuShu(jieqi, yuan);
|
||
|
||
// 4. 地盘排布
|
||
const dipan = this.arrangeDiPan(jushu, yindun);
|
||
|
||
// 5. 天盘排布
|
||
const tianpan = this.arrangeTianPan(dipan, timeInfo, yindun);
|
||
|
||
// 6. 值符值使
|
||
const { zhifu, zhishi } = this.calculateZhiFuZhiShi(dipan, tianpan, timeInfo);
|
||
|
||
return { timeInfo, dipan, tianpan, zhifu, zhishi };
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 格局识别算法
|
||
```javascript
|
||
class PatternAnalyzer {
|
||
analyzePatterns(qimenPan) {
|
||
const patterns = [];
|
||
|
||
// 三奇格局识别
|
||
patterns.push(...this.analyzeSanQiPatterns(qimenPan));
|
||
|
||
// 六仪格局识别
|
||
patterns.push(...this.analyzeLiuYiPatterns(qimenPan));
|
||
|
||
// 特殊格局识别
|
||
patterns.push(...this.analyzeSpecialPatterns(qimenPan));
|
||
|
||
// 格局评级
|
||
return this.evaluatePatterns(patterns);
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2. 性能优化策略
|
||
|
||
#### 缓存策略
|
||
```javascript
|
||
class QimenCache {
|
||
constructor() {
|
||
this.panCache = new LRUCache({ max: 1000, ttl: 3600000 }); // 1小时
|
||
this.jieqiCache = new LRUCache({ max: 100, ttl: 31536000000 }); // 1年
|
||
this.analysisCache = new LRUCache({ max: 500, ttl: 1800000 }); // 30分钟
|
||
}
|
||
|
||
getCachedPan(timeKey) {
|
||
return this.panCache.get(timeKey);
|
||
}
|
||
|
||
setCachedPan(timeKey, pan) {
|
||
this.panCache.set(timeKey, pan);
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 批量计算优化
|
||
```javascript
|
||
class BatchProcessor {
|
||
async calculateBatch(timeList) {
|
||
// 预计算公共数据
|
||
const commonData = await this.preCalculateCommonData();
|
||
|
||
// 并行计算
|
||
const promises = timeList.map(time =>
|
||
this.calculateSingle(time, commonData)
|
||
);
|
||
|
||
return Promise.all(promises);
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3. 数据结构设计
|
||
|
||
#### 奇门盘数据结构
|
||
```javascript
|
||
const QimenPanSchema = {
|
||
timeInfo: {
|
||
year: { gan: String, zhi: String },
|
||
month: { gan: String, zhi: String },
|
||
day: { gan: String, zhi: String },
|
||
hour: { gan: String, zhi: String },
|
||
jieqi: String,
|
||
yuan: String,
|
||
jushu: Number,
|
||
yindun: Boolean
|
||
},
|
||
dipan: [{
|
||
ganzhi: String,
|
||
star: String,
|
||
door: String,
|
||
god: String,
|
||
palace: Number
|
||
}],
|
||
tianpan: [{
|
||
ganzhi: String,
|
||
star: String,
|
||
door: String,
|
||
god: String,
|
||
palace: Number
|
||
}],
|
||
zhifu: String,
|
||
zhishi: String
|
||
};
|
||
```
|
||
|
||
#### 分析结果数据结构
|
||
```javascript
|
||
const AnalysisResultSchema = {
|
||
patterns: [{
|
||
type: String,
|
||
name: String,
|
||
level: String,
|
||
description: String,
|
||
palace: Number,
|
||
score: Number
|
||
}],
|
||
yongshen: {
|
||
primary: String,
|
||
secondary: [String],
|
||
analysis: {
|
||
position: Number,
|
||
wangshui: String,
|
||
status: String
|
||
}
|
||
},
|
||
prediction: {
|
||
overall: String,
|
||
probability: Number,
|
||
details: [String],
|
||
suggestions: [String],
|
||
timing: {
|
||
bestTime: String,
|
||
avoidTime: String
|
||
}
|
||
}
|
||
};
|
||
```
|
||
|
||
## 测试策略
|
||
|
||
### 1. 单元测试
|
||
|
||
**测试范围**:
|
||
- 时间转换函数
|
||
- 节气计算函数
|
||
- 起局算法函数
|
||
- 格局识别函数
|
||
- 用神选择函数
|
||
|
||
**测试工具**:Jest
|
||
**覆盖率要求**:> 90%
|
||
|
||
### 2. 集成测试
|
||
|
||
**测试场景**:
|
||
- 完整的起局流程
|
||
- 分析预测流程
|
||
- API接口测试
|
||
- 缓存机制测试
|
||
|
||
**测试工具**:Supertest
|
||
**测试数据**:历史经典案例
|
||
|
||
### 3. 性能测试
|
||
|
||
**测试指标**:
|
||
- 起局计算时间 < 100ms
|
||
- 分析预测时间 < 500ms
|
||
- 并发处理能力 > 100 QPS
|
||
- 内存使用 < 512MB
|
||
|
||
**测试工具**:Artillery
|
||
|
||
### 4. 准确性测试
|
||
|
||
**测试方法**:
|
||
- 与传统手工起局对比
|
||
- 历史案例验证
|
||
- 专家评审
|
||
|
||
**准确率要求**:> 95%
|
||
|
||
## 质量保证
|
||
|
||
### 1. 代码质量
|
||
- ESLint 代码规范检查
|
||
- Prettier 代码格式化
|
||
- TypeScript 类型检查
|
||
- SonarQube 代码质量分析
|
||
|
||
### 2. 文档质量
|
||
- API文档自动生成
|
||
- 代码注释覆盖率 > 80%
|
||
- 用户使用手册
|
||
- 开发者文档
|
||
|
||
### 3. 安全性
|
||
- 输入参数验证
|
||
- SQL注入防护
|
||
- XSS攻击防护
|
||
- 访问频率限制
|
||
|
||
## 部署策略
|
||
|
||
### 1. 开发环境
|
||
- Docker容器化部署
|
||
- 热重载开发
|
||
- 实时日志监控
|
||
|
||
### 2. 测试环境
|
||
- 自动化部署
|
||
- 持续集成测试
|
||
- 性能监控
|
||
|
||
### 3. 生产环境
|
||
- 蓝绿部署
|
||
- 负载均衡
|
||
- 监控告警
|
||
- 自动扩缩容
|
||
|
||
## 风险评估与应对
|
||
|
||
### 1. 技术风险
|
||
|
||
**风险**:算法复杂度高,计算准确性难以保证
|
||
**应对**:
|
||
- 分阶段验证算法正确性
|
||
- 建立专家评审机制
|
||
- 持续优化算法精度
|
||
|
||
**风险**:性能瓶颈,响应时间过长
|
||
**应对**:
|
||
- 实施多级缓存策略
|
||
- 优化算法复杂度
|
||
- 采用异步处理机制
|
||
|
||
### 2. 业务风险
|
||
|
||
**风险**:用户接受度不高
|
||
**应对**:
|
||
- 进行用户调研
|
||
- 优化用户体验
|
||
- 提供详细的使用指导
|
||
|
||
**风险**:预测准确性质疑
|
||
**应对**:
|
||
- 建立反馈机制
|
||
- 持续改进算法
|
||
- 提供透明的计算过程
|
||
|
||
### 3. 项目风险
|
||
|
||
**风险**:开发周期延长
|
||
**应对**:
|
||
- 合理分解任务
|
||
- 建立里程碑检查
|
||
- 预留缓冲时间
|
||
|
||
**风险**:人员技能不足
|
||
**应对**:
|
||
- 提供技术培训
|
||
- 引入外部专家
|
||
- 建立知识分享机制
|
||
|
||
## 成功标准
|
||
|
||
### 1. 功能标准
|
||
- [ ] 完整实现奇门遁甲起局功能
|
||
- [ ] 准确识别各种格局组合
|
||
- [ ] 智能选择用神和分析
|
||
- [ ] 生成专业的预测报告
|
||
- [ ] 支持多种问题类型
|
||
|
||
### 2. 性能标准
|
||
- [ ] 起局计算时间 < 100ms
|
||
- [ ] 分析预测时间 < 500ms
|
||
- [ ] 系统可用性 > 99.5%
|
||
- [ ] 并发处理能力 > 100 QPS
|
||
|
||
### 3. 质量标准
|
||
- [ ] 代码测试覆盖率 > 90%
|
||
- [ ] 算法准确率 > 95%
|
||
- [ ] 用户满意度 > 4.5/5
|
||
- [ ] 系统稳定性 > 99%
|
||
|
||
### 4. 业务标准
|
||
- [ ] 用户活跃度提升 > 30%
|
||
- [ ] 功能使用率 > 60%
|
||
- [ ] 用户反馈积极率 > 80%
|
||
- [ ] 专家认可度 > 85%
|
||
|
||
## 后续优化方向
|
||
|
||
### 1. 功能扩展
|
||
- 支持年家奇门、月家奇门
|
||
- 增加风水应用功能
|
||
- 开发移动端专属功能
|
||
- 集成AI智能解读
|
||
|
||
### 2. 性能优化
|
||
- 引入机器学习优化预测
|
||
- 实现分布式计算
|
||
- 优化数据存储结构
|
||
- 提升算法执行效率
|
||
|
||
### 3. 用户体验
|
||
- 个性化推荐系统
|
||
- 社区交流功能
|
||
- 学习教程系统
|
||
- 专家咨询服务
|
||
|
||
### 4. 商业化
|
||
- 高级功能付费订阅
|
||
- 专业版本开发
|
||
- API服务商业化
|
||
- 合作伙伴生态
|
||
|
||
## 总结
|
||
|
||
本开发计划基于扎实的理论基础和技术架构,采用分阶段、迭代式的开发方式,确保项目的可控性和成功率。通过严格的质量控制和风险管理,力求打造一个专业、准确、易用的奇门遁甲分析系统,为传统文化的数字化传承做出贡献。
|
||
|
||
项目预计总开发周期为11周,涉及后端算法、前端界面、系统集成等多个方面。通过合理的资源配置和进度管理,确保按时交付高质量的产品。 |