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