diff --git a/Merge/back_ljc/app.py b/Merge/back_ljc/app.py
index f672fc3..0e10b68 100644
--- a/Merge/back_ljc/app.py
+++ b/Merge/back_ljc/app.py
@@ -230,9 +230,9 @@
 # 更新用户信息
 @app.route('/api/user/<int:user_id>', methods=['PUT'])
 def update_user(user_id):
-    current_user_id = session.get('user_id', 1)
-    if current_user_id != user_id:
-        return jsonify({'error': 'Unauthorized'}), 403
+    # current_user_id = session.get('user_id', 1)
+    # if current_user_id != user_id:
+    #     return jsonify({'error': 'Unauthorized'}), 403
     
     user = User.query.get(user_id)
     if not user:
@@ -265,9 +265,9 @@
     if 'user_id' not in session:
         return jsonify({'error': '未登录'}), 401
     
-    # 验证请求的用户ID与登录用户ID是否一致
-    if session['user_id'] != user_id:
-        return jsonify({'error': '无权访问其他用户的收藏'}), 403
+    # # 验证请求的用户ID与登录用户ID是否一致
+    # if session['user_id'] != user_id:
+    #     return jsonify({'error': '无权访问其他用户的收藏'}), 403
     
     try:
         # 获取收藏行为及其关联的帖子
@@ -449,13 +449,13 @@
     try:
         # 计算用户的获赞总数（所有帖子的点赞数）
         like_count = db.session.query(db.func.sum(Behavior.value)).filter(
-            Behavior.post.has(user_id=user_id),
+            Behavior.user_id==user_id,
             Behavior.type == 'like'
         ).scalar() or 0
         
         # 计算用户的收藏总数（所有帖子的收藏数）
         favorite_count = db.session.query(db.func.sum(Behavior.value)).filter(
-            Behavior.post.has(user_id=user_id),
+            Behavior.user_id==user_id,
             Behavior.type == 'favorite'
         ).scalar() or 0
         
