views.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. from rest_framework.views import APIView
  2. from rest_framework.response import Response
  3. from rest_framework import status
  4. from .models import HealthRecord
  5. from .serializers import HealthRecordSerializer
  6. from .services.mset_service import MSETService
  7. class DeviceHealthView(APIView):
  8. """设备健康度评估"""
  9. def post(self, request, device_id):
  10. service = MSETService()
  11. try:
  12. score, weights = service.evaluate_health(request.data)
  13. record = HealthRecord.objects.create(
  14. device_id=device_id,
  15. subsystem=request.data.get('subsystem'),
  16. score=score,
  17. weights=weights
  18. )
  19. serializer = HealthRecordSerializer(record)
  20. return Response(serializer.data, status=status.HTTP_201_CREATED)
  21. except Exception as e:
  22. return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
  23. class HealthHistoryView(APIView):
  24. """健康度历史查询"""
  25. def get(self, request, device_id):
  26. records = HealthRecord.objects.filter(device_id=device_id).order_by('-timestamp')
  27. serializer = HealthRecordSerializer(records, many=True)
  28. return Response(serializer.data)