活动发布
All checks were successful
Deploy to Server / deploy (push) Successful in 25s

This commit is contained in:
jeremygan2021
2026-03-04 13:20:16 +08:00
parent 0e5f6ea592
commit f4a50196d4

View File

@@ -6,7 +6,7 @@ from rest_framework import serializers, permissions
from django.core.signing import TimestampSigner, BadSignature, SignatureExpired
from django.utils import timezone
from django.db import models
from drf_spectacular.utils import extend_schema
from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes
from shop.models import WeChatUser, Order
from shop.views import get_wechat_pay_client
@@ -439,13 +439,31 @@ class AdminPublishViewSet(viewsets.ViewSet):
return None
@extend_schema(summary="API发布活动")
@extend_schema(
summary="API发布活动",
parameters=[
OpenApiParameter(
name='apikey',
description='API访问密钥',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
),
OpenApiParameter(
name='phone_number',
description='管理员手机号 (用于关联发布者)',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
)
]
)
@action(detail=False, methods=['post'])
def publish_activity(self, request):
if not self.check_api_key(request):
return Response({'error': 'Invalid API Key'}, status=403)
phone = request.data.get('phone_number')
phone = request.data.get('phone_number') or request.query_params.get('phone_number')
user = self.get_admin_user_by_phone(phone)
if not user:
return Response({'error': 'Admin user not found with this phone number'}, status=404)
@@ -457,13 +475,31 @@ class AdminPublishViewSet(viewsets.ViewSet):
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
@extend_schema(summary="API发布帖子")
@extend_schema(
summary="API发布帖子",
parameters=[
OpenApiParameter(
name='apikey',
description='API访问密钥',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
),
OpenApiParameter(
name='phone_number',
description='管理员手机号 (用于关联发布者)',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
)
]
)
@action(detail=False, methods=['post'])
def publish_topic(self, request):
if not self.check_api_key(request):
return Response({'error': 'Invalid API Key'}, status=403)
phone = request.data.get('phone_number')
phone = request.data.get('phone_number') or request.query_params.get('phone_number')
user = self.get_admin_user_by_phone(phone)
if not user:
return Response({'error': 'Admin user not found with this phone number'}, status=404)