Files

57 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from app.common.response import SuccessResponse
from app.core.dependencies import db_getter, get_current_user
from app.api.v1.module_system.auth.schema import AuthSchema
from app.api.v1.module_common.activity.crud import ActivityCRUD
# 定义路由前缀
ActivityRouter = APIRouter(prefix="/activity", tags=["活动记录"])
@ActivityRouter.get("/display", summary="获取活动展示列表", description="获取前端展示格式的用户活动记录(无需登录)")
async def get_activity_display(
limit: int = 10,
db: AsyncSession = Depends(db_getter)
) -> SuccessResponse:
"""
获取活动展示列表(公开接口,无需登录)
返回格式: ["张** 预约了 宝宝起名 服务", "李** 完成了 个人改名 测算", ...]
"""
# 创建一个不需要用户信息的 auth 对象
auth = AuthSchema(db=db, check_data_scope=False)
crud = ActivityCRUD(auth)
data = await crud.get_display_list(limit=limit)
return SuccessResponse(data=data)
@ActivityRouter.post("/create", summary="创建活动记录", description="创建活动记录(需要登录)")
async def create_activity(
user_name: str,
action: str,
service_name: str,
service_type: str = None,
sort_order: int = 0,
auth: AuthSchema = Depends(get_current_user)
) -> SuccessResponse:
"""
创建活动记录(需要登录)
"""
crud = ActivityCRUD(auth)
data = {
"user_name": user_name,
"action": action,
"service_name": service_name,
"service_type": service_type,
"sort_order": sort_order
}
result = await crud.create(data)
return SuccessResponse(data={"id": result.id}, msg="创建成功")