from flask import Blueprint, jsonify, request, current_app from flask_jwt_extended import jwt_required, get_jwt_identity from app.models.system import SysUser from app.extensions import db user_prefs_bp = Blueprint('user_preferences', __name__) @user_prefs_bp.route('/preferences', methods=['GET']) @jwt_required() def get_prefs(): identity = get_jwt_identity() user_id = identity.get('id') if isinstance(identity, dict) else identity if not user_id: return jsonify({'code': 401, 'msg': '无效身份'}), 401 user = SysUser.query.get(user_id) if not user: return jsonify({'code': 404, 'msg': '用户不存在'}), 404 return jsonify({'code': 200, 'msg': 'success', 'data': user.preferences or {}}) @user_prefs_bp.route('/preferences', methods=['PUT']) @jwt_required() def update_prefs(): identity = get_jwt_identity() user_id = identity.get('id') if isinstance(identity, dict) else identity if not user_id: return jsonify({'code': 401, 'msg': '无效身份'}), 401 user = SysUser.query.get(user_id) if not user: return jsonify({'code': 404, 'msg': '用户不存在'}), 404 data = request.get_json() or {} user.preferences = data db.session.commit() return jsonify({'code': 200, 'msg': 'success', 'data': user.preferences})