修复推荐系统api

Change-Id: I3d35c2a6dd923c70d0eefdbe81916ec863c77df2
diff --git a/Merge/back_rhj/app/routes.py b/Merge/back_rhj/app/routes.py
index f123a84..6f159ca 100644
--- a/Merge/back_rhj/app/routes.py
+++ b/Merge/back_rhj/app/routes.py
@@ -1,6 +1,7 @@
 from flask import Blueprint, request, jsonify
 from .functions.FAuth import FAuth
-from .services.recommendation_service import RecommendationService
+from app.services.recommendation_service import RecommendationService
+from app.utils.graph_build import build_user_post_graph
 from sqlalchemy import create_engine
 from sqlalchemy.orm import sessionmaker
 from config import Config
@@ -17,7 +18,10 @@
     @wraps(f)
     def decorated(*args, **kwargs):
         token = request.headers.get('Authorization')
+        print(f"收到的Authorization头: {token}")
+        
         if not token:
+            print("缺少Authorization头")
             return jsonify({'success': False, 'message': '缺少访问令牌'}), 401
         
         session = None
@@ -25,22 +29,35 @@
             # 移除Bearer前缀
             if token.startswith('Bearer '):
                 token = token[7:]
+                print(f"提取的token: {token[:20]}...")
             
             engine = create_engine(Config.SQLURL)
             SessionLocal = sessionmaker(bind=engine)
             session = SessionLocal()
             f_auth = FAuth(session)
             
+            # 验证token
+            token_data = f_auth.verify_token(token)
+            print(f"Token验证结果: {token_data}")
+            
+            if not token_data:
+                print("Token验证失败 - token无效")
+                return jsonify({'success': False, 'message': '无效的访问令牌'}), 401
+            
             user = f_auth.get_user_by_token(token)
             if not user:
+                print("根据token获取用户失败")
                 return jsonify({'success': False, 'message': '无效的访问令牌'}), 401
             
+            print(f"Token验证成功,用户: {user.username}, ID: {user.id}")
+            
             # 将用户信息传递给路由函数
             return f(user, *args, **kwargs)
         except Exception as e:
+            print(f"Token验证异常: {str(e)}")
             if session:
                 session.rollback()
-            return jsonify({'success': False, 'message': '令牌验证失败'}), 401
+            return jsonify({'success': False, 'message': f'令牌验证失败: {str(e)}'}), 401
         finally:
             if session:
                 session.close()
@@ -368,12 +385,12 @@
     try:
         data = request.get_json() or {}
         user_id = data.get('user_id') or current_user.id
-        topk = data.get('topk', 10)  # 默认推荐10个
         
-        print(f"为用户 {user_id} 获取推荐,数量: {topk}")
+        print(f"为用户 {user_id} 获取个性化推荐")
         
         # 调用推荐系统
-        recommendations = recommendation_service.get_recommendations(user_id, topk)
+        user2idx, post2idx = build_user_post_graph(return_mapping=True)
+        recommendations = recommendation_service.get_recommendations(float(user_id), topk=10)
         
         return jsonify({
             'success': True,