|
|
@@ -2,6 +2,7 @@ from rest_framework.generics import GenericAPIView
|
|
|
from rest_framework.response import Response
|
|
|
import re
|
|
|
import math
|
|
|
+import datetime
|
|
|
from utils.JWTAuthentication_diy import APIAuthentication
|
|
|
from utils.permissions import CbdDeviceDetailPermission
|
|
|
from .serializers import ZhiBaoSelectViewSerializer
|
|
|
@@ -218,17 +219,43 @@ class PestCountAPIView(APIView):
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
try:
|
|
|
+ # regionCode=city_410100&page=1&pageSize=20&startDate=2025-12-04&endDate=2025-12-19
|
|
|
data = request.query_params
|
|
|
- code = data.get("code")
|
|
|
- start = data.get("start")
|
|
|
- end = data.get("end")
|
|
|
+ code = data.get("regionCode")
|
|
|
+ code = code.split("_")[-1]
|
|
|
+ start = data.get("startDate")
|
|
|
+ end = data.get("endDate")
|
|
|
+ page = data.get("page")
|
|
|
+ pageSize = data.get("pageSize")
|
|
|
+ if page:
|
|
|
+ try:
|
|
|
+ page = int(page)
|
|
|
+ except:
|
|
|
+ page = 1
|
|
|
+ else:
|
|
|
+ page = 1
|
|
|
+ if pageSize:
|
|
|
+ try:
|
|
|
+ pageSize = int(pageSize)
|
|
|
+ except:
|
|
|
+ pageSize = 20
|
|
|
+ else:
|
|
|
+ pageSize = 20
|
|
|
if code:
|
|
|
- hananaddr = HeNanAddr.objects.get(code=code)
|
|
|
- if hananaddr.district:
|
|
|
- query = CbdAddrPest.objects.filter(addr_code=code)
|
|
|
+ query = CbdAddrPest.objects.filter(addr_code__startswith=code).order_by("-date")
|
|
|
if start and end:
|
|
|
- query = query.filter(format_date__range=[start, end])
|
|
|
+ start = int(datetime.datetime.strptime(start, "%Y-%m-%d").timestamp())
|
|
|
+ end = int(datetime.datetime.strptime(end, "%Y-%m-%d").timestamp())
|
|
|
+ query = query.filter(date__range=[start, end])
|
|
|
+ count = query.count()
|
|
|
+ query = query[(page-1)*pageSize:page*pageSize]
|
|
|
data = CbdAddrPestSerializer(query, many=True).data
|
|
|
- return Response(data)
|
|
|
+ response = {
|
|
|
+ "data": {
|
|
|
+ "data": data,
|
|
|
+ "total": count,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Response(response)
|
|
|
except Exception as e:
|
|
|
return Response({"data": [], "imgs": [], "msg": e.args})
|