57 lines
1.8 KiB
Python
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="创建成功")
|