fix: 淇鐢ㄦ埛娉ㄥ唽鍔熻兘鍜屼紭鍖栧叾浠栨湇鍔$殑閿欒澶勭悊 - 淇娉ㄥ唽鏃秛ser_data涓篘one瀵艰嚧鐨凙ttributeError - 娣诲姞鐢ㄦ埛瀛樺湪鎬ф鏌ュ埌鎵€鏈夋湇鍔?- 鏀硅繘閿欒鏃ュ織璁板綍

This commit is contained in:
赵杰 Jie Zhao (雄狮汽车科技)
2025-11-03 12:23:36 +08:00
parent 8b99272711
commit f50d37259e

View File

@@ -409,19 +409,45 @@ def user_register():
core = get_app_core()
user_data = core.get_user_data(user_id)
# 如果用户不存在,创建新用户
if not user_data:
initial_data = {
'profile': {
'name': name,
'age': 25,
'gender': '未知',
'height': 170,
'weight': 60,
'activity_level': 'moderate'
},
'preferences': {}
}
if core.create_user(user_id, initial_data):
user_data = core.get_user_data(user_id)
else:
return jsonify({
'success': False,
'message': '创建用户失败'
}), 500
# 更新用户基本信息
if user_data:
user_data.profile['name'] = name
core.data_manager.save_user_data(user_data)
session['user_id'] = user_id
return jsonify({
'success': True,
'user_id': user_id,
'name': name
})
else:
return jsonify({
'success': False,
'message': '用户数据获取失败'
}), 500
except Exception as e:
logger.error(f"用户注册失败: {e}")
logger.error(f"用户注册失败: {e}", exc_info=True)
return jsonify({
'success': False,
'message': f'注册失败: {str(e)}'
@@ -439,11 +465,19 @@ def submit_questionnaire():
'message': '请先登录'
}), 401
core = get_app_core()
# 确保用户存在
user_data = core.get_user_data(user_id)
if not user_data:
return jsonify({
'success': False,
'message': '用户数据不存在,请先注册'
}), 404
data = request.get_json()
questionnaire_type = data.get('type', 'basic') # basic, taste, physiological
answers = data.get('answers', {})
core = get_app_core()
input_data = {
'type': 'questionnaire',
'questionnaire_type': questionnaire_type,
@@ -464,7 +498,7 @@ def submit_questionnaire():
}), 500
except Exception as e:
logger.error(f"提交问卷失败: {e}")
logger.error(f"提交问卷失败: {e}", exc_info=True)
return jsonify({
'success': False,
'message': f'提交失败: {str(e)}'
@@ -482,6 +516,15 @@ def record_meal():
'message': '请先登录'
}), 401
core = get_app_core()
# 确保用户存在
user_data = core.get_user_data(user_id)
if not user_data:
return jsonify({
'success': False,
'message': '用户数据不存在,请先注册'
}), 404
data = request.get_json()
meal_data = {
'date': data.get('date', datetime.now().strftime('%Y-%m-%d')),
@@ -493,7 +536,6 @@ def record_meal():
'notes': data.get('notes', '')
}
core = get_app_core()
input_data = {
'type': 'meal_record',
**meal_data
@@ -513,7 +555,7 @@ def record_meal():
}), 500
except Exception as e:
logger.error(f"记录餐食失败: {e}")
logger.error(f"记录餐食失败: {e}", exc_info=True)
return jsonify({
'success': False,
'message': f'记录失败: {str(e)}'
@@ -531,12 +573,21 @@ def get_recommendations():
'message': '请先登录'
}), 401
core = get_app_core()
# 确保用户存在
user_data = core.get_user_data(user_id)
if not user_data:
return jsonify({
'success': False,
'message': '用户数据不存在,请先注册',
'recommendations': []
}), 404
data = request.get_json()
meal_type = data.get('meal_type', 'lunch')
preferences = data.get('preferences', {})
context = data.get('context', {})
core = get_app_core()
input_data = {
'type': 'meal_recommendation',
'meal_type': meal_type,
@@ -559,7 +610,7 @@ def get_recommendations():
}), 500
except Exception as e:
logger.error(f"获取推荐失败: {e}")
logger.error(f"获取推荐失败: {e}", exc_info=True)
return jsonify({
'success': False,
'message': f'获取失败: {str(e)}',
@@ -578,10 +629,18 @@ def analyze_nutrition():
'message': '请先登录'
}), 401
core = get_app_core()
# 确保用户存在
user_data = core.get_user_data(user_id)
if not user_data:
return jsonify({
'success': False,
'message': '用户数据不存在,请先注册'
}), 404
data = request.get_json()
meal_data = data.get('meal_data', {})
core = get_app_core()
input_data = {
'type': 'nutrition_analysis',
'meal_data': meal_data
@@ -601,7 +660,7 @@ def analyze_nutrition():
}), 500
except Exception as e:
logger.error(f"营养分析失败: {e}")
logger.error(f"营养分析失败: {e}", exc_info=True)
return jsonify({
'success': False,
'message': f'分析失败: {str(e)}'