80 lines
3.3 KiB
Python
80 lines
3.3 KiB
Python
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="赏金任务同步失败" )
|