45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# @Project : X25020501_card_book
|
|
# @File : actions.py.py
|
|
# @Date : 2025/5/7 20:38
|
|
# @Software : PyCharm
|
|
# @Author : xingc
|
|
# @Desc :
|
|
import logging
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from core.base.schema import ProductCategory
|
|
from core.db.crud import CRUD
|
|
from core.db.engine import async_db_session
|
|
from core.db.models import User, Product
|
|
from core.routers.auth.schema import LoginUser
|
|
from core.routers.pay.actions import actions_handler
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@async_db_session()
|
|
async def reward_points_after_uploading_pictures(
|
|
gift_product_id: int,
|
|
login_user: LoginUser,
|
|
db_session: AsyncSession
|
|
):
|
|
db_crud = CRUD(db_session, Product)
|
|
product: Product = await db_crud.get(
|
|
model=Product, filters={
|
|
'id': gift_product_id,
|
|
'category': ProductCategory.GIFT
|
|
}
|
|
)
|
|
if not product:
|
|
logger.warning(f'Product not found -> {gift_product_id}')
|
|
return
|
|
|
|
user: User = await db_crud.get(model=User, filters={'user_id': login_user.user_id})
|
|
|
|
try:
|
|
await actions_handler(db_crud, product, user)
|
|
except Exception as e:
|
|
logger.error(f'Reward Points After Uploading Pictures -> {e}')
|