优化注册功能
This commit is contained in:
75
web_app.py
75
web_app.py
@@ -411,40 +411,57 @@ def user_register():
|
||||
|
||||
# 如果用户不存在,创建新用户
|
||||
if not user_data:
|
||||
initial_data = {
|
||||
'profile': {
|
||||
'name': name,
|
||||
'age': 25,
|
||||
'gender': '未知',
|
||||
'height': 170,
|
||||
'weight': 60,
|
||||
'activity_level': 'moderate'
|
||||
},
|
||||
'preferences': {}
|
||||
from core.base import UserData
|
||||
# 直接创建UserData对象并保存
|
||||
initial_profile = {
|
||||
'name': name,
|
||||
'age': 25,
|
||||
'gender': '未知',
|
||||
'height': 170,
|
||||
'weight': 60,
|
||||
'activity_level': 'moderate'
|
||||
}
|
||||
if core.create_user(user_id, initial_data):
|
||||
user_data = core.get_user_data(user_id)
|
||||
else:
|
||||
user_data = UserData(
|
||||
user_id=user_id,
|
||||
profile=initial_profile,
|
||||
preferences={}
|
||||
)
|
||||
|
||||
# 保存用户数据
|
||||
if not core.data_manager.save_user_data(user_data):
|
||||
logger.error(f"保存用户数据失败: user_id={user_id}")
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': '创建用户失败'
|
||||
'message': '创建用户失败:数据保存失败'
|
||||
}), 500
|
||||
|
||||
# 验证保存是否成功(重新获取一次)
|
||||
saved_user_data = core.get_user_data(user_id)
|
||||
if not saved_user_data:
|
||||
logger.error(f"用户数据保存后无法获取: user_id={user_id}")
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': '创建用户失败:数据验证失败'
|
||||
}), 500
|
||||
user_data = saved_user_data
|
||||
else:
|
||||
# 用户已存在,更新姓名
|
||||
user_data.profile['name'] = name
|
||||
if not core.data_manager.save_user_data(user_data):
|
||||
logger.error(f"更新用户数据失败: user_id={user_id}")
|
||||
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
|
||||
# 设置会话
|
||||
session['user_id'] = user_id
|
||||
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'user_id': user_id,
|
||||
'name': user_data.profile.get('name', name)
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"用户注册失败: {e}", exc_info=True)
|
||||
|
||||
Reference in New Issue
Block a user