63 lines
1.3 KiB
Python
63 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# @File: actions.py
|
|
# @Date: 2025/10/15 18:58
|
|
# @Software: PyCharm
|
|
# @Author: xingc
|
|
# @Desc:
|
|
import logging
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from core.db.crud import CRUD
|
|
from core.db.engine import async_db_session
|
|
from core.db.models import User, UserFollows
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
async def update_user_follower_total(
|
|
follower_id: int,
|
|
followed_id: int,
|
|
db_session: AsyncSession
|
|
):
|
|
"""
|
|
更新用户计数
|
|
:param follower_id: 关注者id
|
|
:param followed_id: 被关注者id
|
|
:param db_session:
|
|
:return:
|
|
"""
|
|
db_crud = CRUD(db_session, UserFollows)
|
|
|
|
# 更新关注数
|
|
followers_count = await db_crud.total(
|
|
filters={
|
|
'follower_id': follower_id,
|
|
'followed_id': followed_id,
|
|
}
|
|
)
|
|
await db_crud.update(
|
|
model=User,
|
|
data={
|
|
'followers_count': followers_count,
|
|
},
|
|
filters={
|
|
'user_id': follower_id,
|
|
}
|
|
)
|
|
|
|
# 更新粉丝数
|
|
fans_count = await db_crud.total(
|
|
filters={
|
|
'followed_id': followed_id,
|
|
}
|
|
)
|
|
await db_crud.update(
|
|
model=User,
|
|
data={
|
|
'fans_count': fans_count,
|
|
},
|
|
filters={
|
|
'user_id': followed_id,
|
|
}
|
|
)
|