添加令牌验证和推荐系统接口

Change-Id: I2d318c167683a5106ced96047ab9f39b33b75bd1
diff --git a/Merge/back_rhj/app/services/__pycache__/lightgcn_scorer.cpython-312.pyc b/Merge/back_rhj/app/services/__pycache__/lightgcn_scorer.cpython-312.pyc
index 2c86f52..a8d871a 100644
--- a/Merge/back_rhj/app/services/__pycache__/lightgcn_scorer.cpython-312.pyc
+++ b/Merge/back_rhj/app/services/__pycache__/lightgcn_scorer.cpython-312.pyc
Binary files differ
diff --git a/Merge/back_rhj/app/services/__pycache__/recommendation_service.cpython-312.pyc b/Merge/back_rhj/app/services/__pycache__/recommendation_service.cpython-312.pyc
index da8389f..fd70a42 100644
--- a/Merge/back_rhj/app/services/__pycache__/recommendation_service.cpython-312.pyc
+++ b/Merge/back_rhj/app/services/__pycache__/recommendation_service.cpython-312.pyc
Binary files differ
diff --git a/Merge/back_rhj/app/services/recommendation_service.py b/Merge/back_rhj/app/services/recommendation_service.py
index 2f4de13..0547f7b 100644
--- a/Merge/back_rhj/app/services/recommendation_service.py
+++ b/Merge/back_rhj/app/services/recommendation_service.py
@@ -483,7 +483,7 @@
             # 查询帖子基本信息
             format_strings = ','.join(['%s'] * len(topk_post_ids))
             cursor.execute(
-                f"""SELECT p.id, p.user_id, p.title, p.content, p.type, p.heat, p.created_at, p.is_advertisement
+                f"""SELECT p.id, p.user_id, p.title, p.content, p.type, p.heat, p.created_at, p.updated_at, p.media_urls, p.status, p.is_advertisement
                     FROM posts p 
                     WHERE p.id IN ({format_strings}) AND p.status = 'published'""",
                 tuple(topk_post_ids)
@@ -541,15 +541,20 @@
                 owner_user_id = row[1]
                 stats = behavior_stats.get(post_id, {})
                 post_info = {
-                    'post_id': post_id,
+                    'id': post_id,
+                    'user_id': owner_user_id,
                     'title': row[2],
-                    'content': row[3][:200] + '...' if len(row[3]) > 200 else row[3],
+                    'content': row[3],  # 不再截断,保持完整内容
+                    'media_urls': row[8],
+                    'status': row[9],
+                    'heat': row[5],
+                    'created_at': row[6].isoformat() if row[6] else "",
+                    'updated_at': row[7].isoformat() if row[7] else "",
+                    # 额外字段,可选保留
                     'type': row[4],
                     'username': user_map.get(owner_user_id, ""),
-                    'heat': row[5],
                     'tags': tag_map.get(post_id, ""),
-                    'created_at': str(row[6]) if row[6] else "",
-                    'is_advertisement': bool(row[7]),  # 添加广告标识
+                    'is_advertisement': bool(row[10]),
                     'like_count': stats.get('like', 0),
                     'comment_count': stats.get('comment', 0),
                     'favorite_count': stats.get('favorite', 0),
@@ -557,10 +562,6 @@
                     'share_count': stats.get('share', 0)
                 }
                 
-                # 如果有推荐打分,添加到结果中
-                if topk_scores is not None and i < len(topk_scores):
-                    post_info['recommendation_score'] = float(topk_scores[i])
-                
                 post_list.append(post_info)
             return post_list
         finally: