from rest_framework.views import APIView from apps.lyTiktokUnion.models import DyAwardTaskManage from utils.jsonResponse import SuccessResponse,ErrorResponse,DetailResponse from utils.common import get_parameter_dic,formatdatetime from django.db.models import Q,F,Sum,Count from django.db import transaction from rest_framework import serializers from rest_framework_simplejwt.authentication import JWTAuthentication from utils.serializers import CustomModelSerializer from utils.viewset import CustomModelViewSet from rest_framework.permissions import IsAuthenticated from utils.pagination import CustomPagination from apps.lyTiktokUnion.tools.douyin import colonelAwardTaskSync import django_filters import logging logger = logging.getLogger(__name__) class DyAwardTaskManageFilterset(django_filters.rest_framework.FilterSet): #开始时间 beginAt = django_filters.DateTimeFilter(field_name='update_datetime', lookup_expr='gte') # 指定过滤的字段 #结束时间 endAt = django_filters.DateTimeFilter(field_name='update_datetime', lookup_expr='lte') # 模糊搜索 task_id = django_filters.CharFilter(field_name='task_id', lookup_expr='icontains') # icontains表示该字段模糊搜索 task_name = django_filters.CharFilter(field_name='task_name', lookup_expr='icontains') # icontains表示该字段模糊搜索 status = django_filters.CharFilter(field_name='status') task_status = django_filters.CharFilter(field_name='task_status') class Meta: model = DyAwardTaskManage fields = ['beginAt', 'endAt','task_status','status','task_id','task_name'] class DyAwardTaskManageSerializer(CustomModelSerializer): task_status_name = serializers.SerializerMethodField() def get_task_status_name(self,obj): return obj.get_task_status_display() class Meta: model = DyAwardTaskManage read_only_fields = ["id"] fields = '__all__' class DyAwardTaskManageViewSet(CustomModelViewSet): queryset = DyAwardTaskManage.objects.all().order_by("-sort") serializer_class = DyAwardTaskManageSerializer filterset_class = DyAwardTaskManageFilterset # search_fields = ("name",) def editsort(self,request,*args, **kwargs): """修改排序""" sort = get_parameter_dic(request)['sort'] queryset = self.filter_queryset(self.get_queryset()) instance = queryset.filter(id=kwargs.get('pk')).first() instance.sort = sort instance.save() return SuccessResponse(msg="修改成功") def disablestatus(self,request,*args, **kwargs): """禁用状态""" queryset = self.filter_queryset(self.get_queryset()) instance = queryset.filter(id=kwargs.get('pk')).first() if instance: if instance.status: instance.status = False else: instance.status = True instance.save() return SuccessResponse(data=None, msg="修改成功") else: return ErrorResponse(msg="未获取到该数据或无权限") def sync_alliance_AwardTask(self,request): """同步赏金任务""" isok = colonelAwardTaskSync() if isok: return SuccessResponse(msg="赏金任务同步成功") return ErrorResponse(msg="赏金任务同步失败" )