views.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. # coding=utf-8
  2. from django.db import transaction
  3. from utils.exceptions import CustomError
  4. from rest_framework.decorators import action
  5. from utils import response_ok
  6. from utils.custom_modelviewset import CustomModelViewSet
  7. from apps.account import tenant_log
  8. from apps.foundation.models import BizLog
  9. from .filters import *
  10. from .serializers import *
  11. from .models import *
  12. class VehicleDriveReserveViewSet(CustomModelViewSet):
  13. queryset = VehicleDriveReserve.objects.filter(delete=False)
  14. serializer_class = VehicleDriveReserveSerializer
  15. def filter_queryset(self, queryset):
  16. f = VehicleDriveReserveFilter(self.request.GET, queryset=queryset)
  17. return f.qs
  18. @action(methods=['post'], detail=True)
  19. def change_status(self, request, pk):
  20. order = VehicleDriveReserve.objects.filter(id=pk).first()
  21. status = request.GET.get('status')
  22. with transaction.atomic():
  23. order.status = int(status)
  24. order.save()
  25. tenant_log(self.request.user, BizLog.UPDATE, u'修改试驾单状态[%s],id=%d' % (VehicleDriveReserve.STATUS_CHOICES[order.status-1][1], order.id))
  26. return response_ok()
  27. class VehicleInquiryViewSet(CustomModelViewSet):
  28. queryset = VehicleInquiry.objects.filter(delete=False)
  29. serializer_class = VehicleInquirySerializer
  30. def filter_queryset(self, queryset):
  31. f = VehicleInquiryFilter(self.request.GET, queryset=queryset)
  32. return f.qs
  33. @action(methods=['post'], detail=True)
  34. def visit(self, request, pk):
  35. order = VehicleInquiry.objects.filter(id=pk).first()
  36. with transaction.atomic():
  37. if order.status != VehicleInquiry.WAIT_VISIT:
  38. raise CustomError(u'当前状态不允许修改!')
  39. order.status = VehicleInquiry.VISITED
  40. order.save()
  41. tenant_log(self.request.user, BizLog.UPDATE, u'新车询价单回访,id=%d' % (order.id))
  42. return response_ok()
  43. class UsedVehicleInquiryViewSet(CustomModelViewSet):
  44. queryset = UsedVehicleInquiry.objects.filter(delete=False)
  45. serializer_class = UsedVehicleInquirySerializer
  46. def filter_queryset(self, queryset):
  47. f = UsedVehicleInquiryFilter(self.request.GET, queryset=queryset)
  48. return f.qs
  49. @action(methods=['post'], detail=True)
  50. def visit(self, request, pk):
  51. order = UsedVehicleInquiry.objects.filter(id=pk).first()
  52. with transaction.atomic():
  53. if order.status != UsedVehicleInquiry.WAIT_VISIT:
  54. raise CustomError(u'当前状态不允许修改!')
  55. order.status = UsedVehicleInquiry.VISITED
  56. order.save()
  57. tenant_log(self.request.user, BizLog.UPDATE, u'二手车询价单回访,id=%d' % (order.id))
  58. return response_ok()
  59. class UsedVehicleEstimateViewSet(CustomModelViewSet):
  60. queryset = UsedVehicleEstimate.objects.filter(delete=False)
  61. serializer_class = UsedVehicleEstimateSerializer
  62. def filter_queryset(self, queryset):
  63. f = UsedVehicleEstimateFilter(self.request.GET, queryset=queryset)
  64. return f.qs
  65. @action(methods=['post'], detail=True)
  66. def visit(self, request, pk):
  67. order = UsedVehicleEstimate.objects.filter(id=pk).first()
  68. with transaction.atomic():
  69. if order.status != UsedVehicleEstimate.WAIT_VISIT:
  70. raise CustomError(u'当前状态不允许修改!')
  71. order.status = UsedVehicleEstimate.VISITED
  72. order.save()
  73. tenant_log(self.request.user, BizLog.UPDATE, u'二手车预估单回访,id=%d' % (order.id))
  74. return response_ok()
  75. class InsurConsultationViewSet(CustomModelViewSet):
  76. queryset = InsurConsultation.objects.filter(delete=False)
  77. serializer_class = InsurConsultationSerializer
  78. def filter_queryset(self, queryset):
  79. f = InsurConsultationFilter(self.request.GET, queryset=queryset)
  80. return f.qs
  81. @action(methods=['post'], detail=True)
  82. def visit(self, request, pk):
  83. order = InsurConsultation.objects.filter(id=pk).first()
  84. with transaction.atomic():
  85. if order.status != InsurConsultation.WAIT_VISIT:
  86. raise CustomError(u'当前状态不允许修改!')
  87. order.status = InsurConsultation.VISITED
  88. order.save()
  89. tenant_log(self.request.user, BizLog.UPDATE, u'续保询价单回访,id=%d' % (order.id))
  90. return response_ok()