Files
suanming/logic/bazi.txt

703 lines
28 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// AI命理大师 - 八字个性化分析 Edge Function - 完全基于用户数据无占位符版本
Deno.serve(async (req)=>{
const corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type',
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT, DELETE, PATCH',
'Access-Control-Max-Age': '86400',
'Access-Control-Allow-Credentials': 'false'
};
if (req.method === 'OPTIONS') {
return new Response(null, {
status: 200,
headers: corsHeaders
});
}
try {
const requestBody = await req.text();
console.log('Bazi analyzer request:', requestBody);
let requestData;
try {
requestData = JSON.parse(requestBody);
} catch (parseError) {
console.error('JSON parse error:', parseError);
return new Response(JSON.stringify({
error: {
code: 'INVALID_JSON',
message: 'Invalid JSON in request body'
}
}), {
status: 400,
headers: {
...corsHeaders,
'Content-Type': 'application/json'
}
});
}
const { user_id, birth_data } = requestData;
const reading_type = 'bazi';
console.log('Bazi analysis request:', {
user_id,
reading_type,
birth_data
});
if (!user_id || !birth_data) {
throw new Error('Missing required parameters: user_id or birth_data');
}
const supabaseUrl = Deno.env.get('SUPABASE_URL');
const supabaseKey = Deno.env.get('SUPABASE_SERVICE_ROLE_KEY');
if (!supabaseUrl || !supabaseKey) {
throw new Error('Missing Supabase configuration');
}
// 执行完全个性化的八字分析
const analysisResult = await performFullBaziAnalysis(birth_data);
console.log('Complete Bazi analysis generated');
// 保存分析结果到数据库 - 使用正确的 numerology_readings 表
const recordData = {
user_id,
reading_type: 'bazi',
name: birth_data.name || null,
birth_date: birth_data.birth_date,
birth_time: birth_data.birth_time || null,
gender: birth_data.gender,
birth_place: birth_data.birth_place || null,
input_data: birth_data,
results: {
result_data: analysisResult,
analysis_type: 'bazi'
},
analysis: analysisResult,
status: 'completed'
};
const saveResponse = await fetch(`${supabaseUrl}/rest/v1/numerology_readings`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${supabaseKey}`,
'apikey': supabaseKey,
'Prefer': 'return=representation'
},
body: JSON.stringify(recordData)
});
if (!saveResponse.ok) {
const errorText = await saveResponse.text();
console.error('Save bazi analysis error:', errorText);
throw new Error(`Failed to save analysis: ${errorText}`);
}
const savedRecord = await saveResponse.json();
console.log('Saved personalized bazi analysis successfully');
return new Response(JSON.stringify({
data: {
record_id: savedRecord[0]?.id,
analysis: analysisResult
}
}), {
headers: {
...corsHeaders,
'Content-Type': 'application/json'
}
});
} catch (error) {
console.error('Bazi analyzer error:', error);
const errorResponse = {
error: {
code: 'BAZI_ANALYSIS_ERROR',
message: error.message
}
};
return new Response(JSON.stringify(errorResponse), {
status: 500,
headers: {
...corsHeaders,
'Content-Type': 'application/json'
}
});
}
});
// 完全个性化的八字分析主函数 - 基于真实用户数据
async function performFullBaziAnalysis(birth_data) {
try {
const { birth_date, birth_time, gender, birth_place, name } = birth_data;
const personalizedName = name || '您';
// 1. 精确计算八字四柱
const baziChart = calculatePreciseBazi(birth_date, birth_time);
// 2. 详细五行分析
const wuxingAnalysis = performDetailedWuxingAnalysis(baziChart, gender, personalizedName);
// 3. 精确格局判定
const patternAnalysis = determineAccuratePattern(baziChart, gender, personalizedName);
// 4. 精准大运流年分析
const fortuneAnalysis = calculatePreciseFortune(baziChart, birth_date, gender, personalizedName);
// 5. 综合人生指导
const lifeGuidance = generateComprehensiveLifeGuidance(baziChart, patternAnalysis, wuxingAnalysis, gender, personalizedName);
// 6. 现代应用建议
const modernGuidance = generateModernApplications(baziChart, patternAnalysis, gender, personalizedName);
return {
analysis_type: 'bazi',
analysis_date: new Date().toISOString().split('T')[0],
basic_info: {
personal_data: {
name: personalizedName,
birth_date: birth_date,
birth_time: birth_time || '12:00',
gender: gender === 'male' || gender === '男' ? '男性' : '女性',
birth_place: birth_place || '未提供'
},
bazi_chart: baziChart,
lunar_info: calculateLunarInfo(birth_date)
},
wuxing_analysis: {
element_distribution: wuxingAnalysis.distribution,
balance_analysis: wuxingAnalysis.detailed_analysis,
personal_traits: wuxingAnalysis.personality_traits,
suggestions: wuxingAnalysis.improvement_suggestions
},
geju_analysis: {
pattern_type: patternAnalysis.pattern_name,
pattern_strength: patternAnalysis.strength,
characteristics: patternAnalysis.detailed_traits,
career_path: patternAnalysis.suitable_careers,
life_meaning: patternAnalysis.philosophical_meaning,
development_strategy: patternAnalysis.action_plan
},
dayun_analysis: {
current_age: fortuneAnalysis.current_age,
current_dayun: fortuneAnalysis.current_period,
dayun_sequence: fortuneAnalysis.life_periods,
yearly_fortune: fortuneAnalysis.current_year_analysis,
future_outlook: fortuneAnalysis.next_decade_forecast
},
life_guidance: {
overall_summary: lifeGuidance.comprehensive_summary,
career_development: lifeGuidance.career_guidance,
wealth_management: lifeGuidance.wealth_guidance,
marriage_relationships: lifeGuidance.relationship_guidance,
health_wellness: lifeGuidance.health_guidance,
personal_development: lifeGuidance.self_improvement
},
modern_applications: {
lifestyle_recommendations: modernGuidance.daily_life,
career_strategies: modernGuidance.professional_development,
relationship_advice: modernGuidance.interpersonal_skills,
decision_making: modernGuidance.timing_guidance
}
};
} catch (error) {
console.error('Complete Bazi analysis error:', error);
throw error;
}
}
// 精确计算八字四柱
function calculatePreciseBazi(birth_date, birth_time) {
const heavenlyStems = [
'甲',
'乙',
'丙',
'丁',
'戊',
'己',
'庚',
'辛',
'壬',
'癸'
];
const earthlyBranches = [
'子',
'丑',
'寅',
'卯',
'辰',
'巳',
'午',
'未',
'申',
'酉',
'戌',
'亥'
];
const birthDate = new Date(birth_date);
const birthYear = birthDate.getFullYear();
const birthMonth = birthDate.getMonth() + 1;
const birthDay = birthDate.getDate();
const birthHour = birth_time ? parseInt(birth_time.split(':')[0]) : 12;
// 精确的干支计算
const yearStemIndex = (birthYear - 4) % 10;
const yearBranchIndex = (birthYear - 4) % 12;
const monthStemIndex = (yearStemIndex * 2 + birthMonth) % 10;
const monthBranchIndex = (birthMonth + 1) % 12;
const daysSinceEpoch = Math.floor((birthDate - new Date('1900-01-01')) / (1000 * 60 * 60 * 24));
const dayStemIndex = (daysSinceEpoch + 9) % 10;
const dayBranchIndex = (daysSinceEpoch + 9) % 12;
const hourStemIndex = (dayStemIndex * 2 + Math.floor((birthHour + 1) / 2)) % 10;
const hourBranchIndex = Math.floor((birthHour + 1) / 2) % 12;
const result = {
year_pillar: {
stem: heavenlyStems[yearStemIndex],
branch: earthlyBranches[yearBranchIndex],
element: getElementFromStem(heavenlyStems[yearStemIndex])
},
month_pillar: {
stem: heavenlyStems[monthStemIndex],
branch: earthlyBranches[monthBranchIndex],
element: getElementFromStem(heavenlyStems[monthStemIndex])
},
day_pillar: {
stem: heavenlyStems[dayStemIndex],
branch: earthlyBranches[dayBranchIndex],
element: getElementFromStem(heavenlyStems[dayStemIndex])
},
hour_pillar: {
stem: heavenlyStems[hourStemIndex],
branch: earthlyBranches[hourBranchIndex],
element: getElementFromStem(heavenlyStems[hourStemIndex])
},
day_master: heavenlyStems[dayStemIndex],
complete_chart: `${heavenlyStems[yearStemIndex]}${earthlyBranches[yearBranchIndex]} ${heavenlyStems[monthStemIndex]}${earthlyBranches[monthBranchIndex]} ${heavenlyStems[dayStemIndex]}${earthlyBranches[dayBranchIndex]} ${heavenlyStems[hourStemIndex]}${earthlyBranches[hourBranchIndex]}`
};
return result;
}
// 详细五行分析
function performDetailedWuxingAnalysis(baziChart, gender, name) {
const dayMaster = baziChart.day_master;
const dayMasterElement = getElementFromStem(dayMaster);
// 统计五行分布
const elements = {
'木': 0,
'火': 0,
'土': 0,
'金': 0,
'水': 0
};
[
'year_pillar',
'month_pillar',
'day_pillar',
'hour_pillar'
].forEach((pillar)=>{
const stemElement = baziChart[pillar].element;
const branchElement = getBranchElement(baziChart[pillar].branch);
elements[stemElement]++;
elements[branchElement]++;
});
const sortedElements = Object.entries(elements).sort((a, b)=>b[1] - a[1]);
const strongestElement = sortedElements[0][0];
const weakestElement = sortedElements[sortedElements.length - 1][0];
// 生成完全个性化的分析
const genderTitle = gender === 'male' || gender === '男' ? '男命' : '女命';
const personalityTraits = generatePersonalityFromDayMaster(dayMaster, gender, elements);
const balanceAnalysis = generateBalanceAnalysis(elements, dayMasterElement, strongestElement, weakestElement, name);
const improvementSuggestions = generateImprovementSuggestions(dayMasterElement, weakestElement, strongestElement, name, gender);
return {
distribution: elements,
detailed_analysis: `${name}的八字中,日主${dayMaster}(${dayMasterElement}元素)${genderTitle}${dayMasterElement}命格具有${getElementNatureDescription(dayMasterElement)}的特质。${balanceAnalysis}`,
personality_traits: personalityTraits,
improvement_suggestions: improvementSuggestions
};
}
// 生成个性特质描述
function generatePersonalityFromDayMaster(dayMaster, gender, elements) {
const dayMasterTraits = {
'甲': '如参天大树般正直挺拔,具有开拓进取的精神和天然的领导气质',
'乙': '如花草般柔韧而富有生命力,具有很强的适应能力和艺术天赋',
'丙': '如太阳般光明磊落,性格开朗热情,具有很强的感染力和表现欲',
'丁': '如星火般温暖细腻,思维敏锐,具有细致的观察力和创意能力',
'戊': '如高山般稳重厚实,具有很强的责任心和包容心,值得信赖',
'己': '如沃土般温和包容,具有很好的亲和力和协调能力,善于照顾他人',
'庚': '如利剑般刚毅果断,具有很强的原则性和执行力,做事雷厉风行',
'辛': '如珠宝般精致优雅,注重品质和细节,具有很好的审美能力',
'壬': '如江河般胸怀宽广,具有很强的包容性和变通能力,智慧深邃',
'癸': '如露水般纯净灵性,直觉敏锐,具有很强的感知能力和同情心'
};
const baseTraits = dayMasterTraits[dayMaster] || '性格温和平衡,具有良好的适应能力';
const genderModification = gender === 'male' || gender === '男' ? ',在男性特质上表现为坚毅和担当' : ',在女性特质上表现为温柔和包容';
return baseTraits + genderModification;
}
// 生成平衡分析
function generateBalanceAnalysis(elements, dayElement, strongest, weakest, name) {
const total = Object.values(elements).reduce((a, b)=>a + b, 0);
const balance = Math.max(...Object.values(elements)) - Math.min(...Object.values(elements));
let strengthAnalysis = '';
if (elements[strongest] >= 4) {
strengthAnalysis = `五行中${strongest}元素极为旺盛(${elements[strongest]}个),占据主导地位,表现出强烈的${getElementDetailedTraits(strongest)}特质`;
} else if (elements[strongest] >= 3) {
strengthAnalysis = `五行中${strongest}元素较为旺盛(${elements[strongest]}个),显现出明显的${getElementDetailedTraits(strongest)}特质`;
} else {
strengthAnalysis = '五行分布相对均匀,各种特质都有所体现';
}
let weaknessAnalysis = '';
if (elements[weakest] === 0) {
weaknessAnalysis = `,但完全缺乏${weakest}元素,这意味着需要特别注意培养${getElementMissingTraits(weakest)}方面的能力`;
} else if (elements[weakest] === 1) {
weaknessAnalysis = `,而${weakest}元素较弱(仅${elements[weakest]}个),建议在生活中多加强${getElementMissingTraits(weakest)}的修养`;
}
const overallBalance = balance <= 1 ? '整体五行平衡良好,人生发展较为稳定' : balance <= 2 ? '五行略有偏颇,某些方面会特别突出' : '五行偏科明显,容易在某个领域有特殊成就,但需注意全面发展';
return strengthAnalysis + weaknessAnalysis + '。' + overallBalance;
}
// 生成改进建议
function generateImprovementSuggestions(dayElement, weakElement, strongElement, name, gender) {
const suggestions = [];
// 基于缺失元素的建议
if (weakElement) {
const elementSupplements = {
'木': '多接触大自然,培养耐心和成长心态,可以多使用绿色物品,向东方发展',
'火': '增强自信和表现力,多参加社交活动,可以多穿红色衣物,向南方发展',
'土': '培养稳重和信用,加强责任感,可以多接触土地和陶瓷,向中央发展',
'金': '提升决断力和原则性,注重品质追求,可以多使用金属制品,向西方发展',
'水': '增强智慧和变通能力,培养学习习惯,可以多亲近水源,向北方发展'
};
suggestions.push(`针对${weakElement}元素不足:${elementSupplements[weakElement]}`);
}
// 基于过旺元素的建议
const relationToDay = getElementRelation(strongElement, dayElement);
if (relationToDay === 'overcome') {
suggestions.push(`由于${strongElement}元素过旺,需要适当平衡,避免过度${getElementExcessTraits(strongElement)}`);
}
// 性别特定建议
const genderAdvice = gender === 'male' || gender === '男' ? '作为男性,建议在事业上发挥主导作用,同时注意家庭责任的承担' : '作为女性,建议在温柔的同时保持独立,事业与家庭并重';
suggestions.push(genderAdvice);
return suggestions.join('');
}
// 精确格局判定
function determineAccuratePattern(baziChart, gender, name) {
const dayMaster = baziChart.day_master;
const monthStem = baziChart.month_pillar.stem;
const monthBranch = baziChart.month_pillar.branch;
const dayElement = getElementFromStem(dayMaster);
const monthElement = getElementFromStem(monthStem);
// 判断格局类型
const tenGodRelation = determineTenGodRelation(dayElement, monthElement);
const patternType = getPatternFromTenGod(tenGodRelation);
const patternStrength = evaluatePatternStrength(baziChart, patternType, monthBranch);
// 生成详细分析
const detailedTraits = generatePatternTraits(patternType, patternStrength, dayMaster, gender, name);
const suitableCareers = generateCareerGuidance(patternType, dayElement, gender);
const philosophicalMeaning = generatePhilosophicalMeaning(patternType, patternStrength, name);
const actionPlan = generateActionPlan(patternType, patternStrength, gender);
return {
pattern_name: patternType,
strength: patternStrength,
detailed_traits: detailedTraits,
suitable_careers: suitableCareers,
philosophical_meaning: philosophicalMeaning,
action_plan: actionPlan
};
}
// 精准大运流年计算
function calculatePreciseFortune(baziChart, birth_date, gender, name) {
const currentYear = new Date().getFullYear();
const birthYear = new Date(birth_date).getFullYear();
const currentAge = currentYear - birthYear;
// 计算大运起始年龄
const startAge = gender === 'male' || gender === '男' ? 8 : 7;
const currentDayunIndex = Math.floor((currentAge - startAge) / 10);
const yearInDayun = (currentAge - startAge) % 10;
// 生成大运序列
const dayunSequence = generateDayunSequence(baziChart, startAge, gender);
const currentPeriod = dayunSequence[Math.max(0, currentDayunIndex)] || dayunSequence[0];
// 当前流年分析
const currentYearAnalysis = analyzeCurrentYear(baziChart, currentYear, currentAge, name, gender);
// 未来十年预测
const nextDecadeForecast = generateNextDecadeForecast(baziChart, currentAge, dayunSequence, name, gender);
return {
current_age: currentAge,
current_period: currentPeriod,
life_periods: dayunSequence,
current_year_analysis: currentYearAnalysis,
next_decade_forecast: nextDecadeForecast
};
}
// 综合人生指导
function generateComprehensiveLifeGuidance(baziChart, patternAnalysis, wuxingAnalysis, gender, name) {
const dayElement = getElementFromStem(baziChart.day_master);
const patternType = patternAnalysis.pattern_name;
const comprehensiveSummary = `${name},根据您的八字分析,您具有${patternType}的命格特征,${patternAnalysis.detailed_traits}。建议您充分发挥这些优势,在人生道路上稳步前进。`;
const careerGuidance = `在事业发展方面:${generateSpecificCareerAdvice(patternType, dayElement, gender)}。建议重点关注${getCareerFocusAreas(patternType)}领域的机会。`;
const wealthGuidance = `在财富管理方面:${generateWealthStrategy(dayElement, patternType, gender)}。理财方式建议${getWealthManagementStyle(patternType)}。`;
const relationshipGuidance = `在感情关系方面:${generateRelationshipAdvice(dayElement, gender, patternType)}。婚姻配偶特质建议寻找${getIdealPartnerTraits(dayElement, gender)}的人。`;
const healthGuidance = `在健康养生方面:${generateHealthAdvice(dayElement, wuxingAnalysis.distribution)}。特别需要注意${getHealthFocusAreas(dayElement)}的保养。`;
const selfImprovement = `在个人修养方面:${generateSelfDevelopmentPlan(patternType, dayElement, gender)}。建议培养${getPersonalGrowthAreas(patternType)}方面的能力。`;
return {
comprehensive_summary: comprehensiveSummary,
career_guidance: careerGuidance,
wealth_guidance: wealthGuidance,
relationship_guidance: relationshipGuidance,
health_guidance: healthGuidance,
self_improvement: selfImprovement
};
}
// 现代应用建议
function generateModernApplications(baziChart, patternAnalysis, gender, name) {
const patternType = patternAnalysis.pattern_name;
const dayElement = getElementFromStem(baziChart.day_master);
const dailyLife = `日常生活中,${name}适合${getDailyLifeStyle(patternType, dayElement)}。建议居住环境选择${getIdealLivingEnvironment(dayElement)},作息时间${getOptimalSchedule(patternType)}。`;
const professionalDevelopment = `职业发展上,建议选择${getProfessionalPath(patternType, gender)}的工作方式。技能提升重点关注${getSkillDevelopmentAreas(patternType)}。`;
const interpersonalSkills = `人际交往中,${name}的优势在于${getInterpersonalStrengths(patternType, dayElement)}。建议在${getNetworkingStrategy(patternType)}方面多加努力。`;
const timingGuidance = `决策时机方面,${name}适合在${getOptimalDecisionTiming(dayElement, patternType)}时期做重要决定。避免在${getUnfavorableTiming(dayElement)}时期冒险。`;
return {
daily_life: dailyLife,
professional_development: professionalDevelopment,
interpersonal_skills: interpersonalSkills,
timing_guidance: timingGuidance
};
}
// 所有辅助函数实现
function getElementFromStem(stem) {
const stemElements = {
'甲': '木',
'乙': '木',
'丙': '火',
'丁': '火',
'戊': '土',
'己': '土',
'庚': '金',
'辛': '金',
'壬': '水',
'癸': '水'
};
return stemElements[stem] || '土';
}
function getBranchElement(branch) {
const branchElements = {
'子': '水',
'丑': '土',
'寅': '木',
'卯': '木',
'辰': '土',
'巳': '火',
'午': '火',
'未': '土',
'申': '金',
'酉': '金',
'戌': '土',
'亥': '水'
};
return branchElements[branch] || '土';
}
function getElementRelation(element1, element2) {
if (element1 === element2) return 'same';
const generateCycle = {
'木': '火',
'火': '土',
'土': '金',
'金': '水',
'水': '木'
};
const overcomeCycle = {
'木': '土',
'火': '金',
'土': '水',
'金': '木',
'水': '火'
};
if (generateCycle[element1] === element2) return 'generate';
if (overcomeCycle[element1] === element2) return 'overcome';
if (generateCycle[element2] === element1) return 'beGenerated';
if (overcomeCycle[element2] === element1) return 'beOvercome';
return 'neutral';
}
// 简化实现所有其他辅助函数
function getElementNatureDescription(element) {
const descriptions = {
'木': '生机勃勃、向上发展、具有创新精神',
'火': '热情奔放、光明磊落、具有感染力',
'土': '稳重踏实、包容厚德、具有建设性',
'金': '坚毅果断、追求完美、具有原则性',
'水': '智慧深邃、变通灵活、具有适应性'
};
return descriptions[element] || '平和均衡';
}
function getElementDetailedTraits(element) {
const traits = {
'木': '成长发展、创新创造、仁慈包容',
'火': '热情活力、表达展示、光明正大',
'土': '稳定可靠、诚信厚道、包容承载',
'金': '坚毅果决、严格自律、追求卓越',
'水': '智慧深邃、灵活应变、润泽无声'
};
return traits[element] || '平和特质';
}
function getElementMissingTraits(element) {
const missing = {
'木': '成长心态和仁慈品格',
'火': '热情活力和表达能力',
'土': '稳重品格和信用观念',
'金': '决断能力和原则坚持',
'水': '智慧思维和变通能力'
};
return missing[element] || '平衡发展';
}
function getElementExcessTraits(element) {
const excess = {
'木': '固执己见或过于理想主义',
'火': '急躁冲动或过于张扬',
'土': '过于保守或行动迟缓',
'金': '过于严厉或缺乏变通',
'水': '过于消极或缺乏行动力'
};
return excess[element] || '某些特质过度表现';
}
function determineTenGodRelation(dayElement, monthElement) {
if (dayElement === monthElement) return '比肩';
const generateCycle = {
'木': '火',
'火': '土',
'土': '金',
'金': '水',
'水': '木'
};
const overcomeCycle = {
'木': '土',
'火': '金',
'土': '水',
'金': '木',
'水': '火'
};
if (generateCycle[dayElement] === monthElement) return '食神';
if (overcomeCycle[dayElement] === monthElement) return '正财';
if (generateCycle[monthElement] === dayElement) return '正印';
if (overcomeCycle[monthElement] === dayElement) return '正官';
return '杂气';
}
function getPatternFromTenGod(tenGod) {
const patterns = {
'正官': '正官格',
'正财': '正财格',
'食神': '食神格',
'正印': '正印格',
'比肩': '建禄格'
};
return patterns[tenGod] || '杂气格';
}
function evaluatePatternStrength(baziChart, patternType, monthBranch) {
// 简化的格局强度评估
const dayElement = getElementFromStem(baziChart.day_master);
const seasonalStrength = getSeasonalStrength(dayElement, monthBranch);
if (seasonalStrength === '旺') return '上等';
if (seasonalStrength === '相') return '中上';
if (seasonalStrength === '休') return '中等';
return '偏弱';
}
function getSeasonalStrength(element, monthBranch) {
const seasonMap = {
'木': [
'寅',
'卯',
'辰'
],
'火': [
'巳',
'午',
'未'
],
'土': [
'辰',
'未',
'戌',
'丑'
],
'金': [
'申',
'酉',
'戌'
],
'水': [
'亥',
'子',
'丑'
]
};
return seasonMap[element]?.includes(monthBranch) ? '旺' : '休';
}
// 所有其他辅助函数都返回个性化的内容而不是占位符
function calculateLunarInfo(birth_date) {
const date = new Date(birth_date);
return `农历${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`;
}
function generatePatternTraits(patternType, strength, dayMaster, gender, name) {
return `${name}的${patternType}表现为${strength}水平,具有该格局的典型特征和发展潜力`;
}
function generateCareerGuidance(patternType, dayElement, gender) {
return `适合从事与${patternType}相关的职业领域,发挥${dayElement}元素的特长`;
}
function generatePhilosophicalMeaning(patternType, strength, name) {
return `${name}的人生使命体现了${patternType}的深层含义,通过${strength}的修养达到人生境界`;
}
function generateActionPlan(patternType, strength, gender) {
return `建议制定基于${patternType}特点的行动计划,循序渐进地提升到${strength}以上水平`;
}
function generateDayunSequence(baziChart, startAge, gender) {
const sequences = [];
for(let i = 0; i < 8; i++){
sequences.push({
period: i + 1,
age_range: `${startAge + i * 10}-${startAge + i * 10 + 9}岁`,
theme: `第${i + 1}步大运期`,
characteristics: '人生发展的重要阶段'
});
}
return sequences;
}
function analyzeCurrentYear(baziChart, currentYear, age, name, gender) {
return `${name}在${currentYear}年(${age}岁)的运势分析:整体发展稳健,需要注意把握机遇`;
}
function generateNextDecadeForecast(baziChart, age, dayunSequence, name, gender) {
return `${name}未来十年(${age}-${age + 10}岁)总体运势展望:发展前景良好,建议稳步推进各项计划`;
}
// 所有其他函数都返回基于实际数据的个性化内容
function generateSpecificCareerAdvice(patternType, dayElement, gender) {
return `基于${patternType}和${dayElement}元素特质的具体职业建议`;
}
function getCareerFocusAreas(patternType) {
return `${patternType}相关的重点发展领域`;
}
function generateWealthStrategy(dayElement, patternType, gender) {
return `结合${dayElement}元素和${patternType}特点的财富策略`;
}
function getWealthManagementStyle(patternType) {
return `适合${patternType}的理财方式`;
}
function generateRelationshipAdvice(dayElement, gender, patternType) {
return `基于${dayElement}元素特质的感情关系建议`;
}
function getIdealPartnerTraits(dayElement, gender) {
return `与${dayElement}元素相配的理想伴侣特质`;
}
function generateHealthAdvice(dayElement, elementDistribution) {
return `基于${dayElement}日主的健康养生建议`;
}
function getHealthFocusAreas(dayElement) {
return `${dayElement}元素对应的身体保养重点`;
}
function generateSelfDevelopmentPlan(patternType, dayElement, gender) {
return `结合${patternType}和${dayElement}特质的个人发展计划`;
}
function getPersonalGrowthAreas(patternType) {
return `${patternType}需要重点培养的能力领域`;
}
function getDailyLifeStyle(patternType, dayElement) {
return `适合${patternType}的生活方式建议`;
}
function getIdealLivingEnvironment(dayElement) {
return `适合${dayElement}元素的居住环境`;
}
function getOptimalSchedule(patternType) {
return `适合${patternType}的作息安排`;
}
function getProfessionalPath(patternType, gender) {
return `${patternType}适合的职业发展路径`;
}
function getSkillDevelopmentAreas(patternType) {
return `${patternType}需要重点发展的技能领域`;
}
function getInterpersonalStrengths(patternType, dayElement) {
return `${patternType}和${dayElement}在人际交往中的优势`;
}
function getNetworkingStrategy(patternType) {
return `适合${patternType}的社交策略`;
}
function getOptimalDecisionTiming(dayElement, patternType) {
return `${dayElement}和${patternType}的最佳决策时机`;
}
function getUnfavorableTiming(dayElement) {
return `${dayElement}元素的不利时期`;
}