|
@@ -56,8 +56,7 @@ class ReportCustomerViewSet(CustomModelViewSet):
|
|
|
def dispatch_customer(self, request, pk):
|
|
|
check_permission(request, 'customer.check_report_customer')
|
|
|
# 审核
|
|
|
- user = request.POST.get('user')
|
|
|
- user = User.objects.filter(id=user).first()
|
|
|
+ user_id = request.POST.get('user')
|
|
|
try:
|
|
|
instance = ReportCustomer.objects.filter(id=pk).first()
|
|
|
if not instance:
|
|
@@ -75,7 +74,7 @@ class ReportCustomerViewSet(CustomModelViewSet):
|
|
|
raise CustomError('当前潜客级别,没有可用跟踪天数!')
|
|
|
next_time = (timezone.now() + datetime.timedelta(days=potential_level.track_day)).strftime('%Y-%m-%d')
|
|
|
NewCustomer.objects.create(report_customer=instance, potential_level=potential_level,
|
|
|
- track_user=user, next_time=next_time, stage_progress=stage_progress,
|
|
|
+ track_user_id=user_id, next_time=next_time, stage_progress=stage_progress,
|
|
|
create_user=instance.create_user,
|
|
|
)
|
|
|
except CustomError as e:
|
|
@@ -89,12 +88,12 @@ class ReportCustomerDictView(APIView):
|
|
|
permission_classes = [isLogin]
|
|
|
|
|
|
def get(self, request):
|
|
|
- scouce = Option.objects.filter(type=Option.CUSTOMER_SOURCE, enable=True)
|
|
|
+ source = Option.objects.filter(type=Option.CUSTOMER_SOURCE, enable=True)
|
|
|
project = Option.objects.filter(type=Option.CATEGORY, enable=True)
|
|
|
- serializer_scouce = OptionComboboxSerializer(scouce, many=True)
|
|
|
+ serializer_source = OptionComboboxSerializer(source, many=True)
|
|
|
serializer_project = OptionComboboxSerializer(project, many=True)
|
|
|
return response_ok({
|
|
|
- 'source': serializer_scouce.data,
|
|
|
+ 'source': serializer_source.data,
|
|
|
'project': serializer_project.data,
|
|
|
})
|
|
|
|
|
@@ -119,3 +118,25 @@ class NewCustomerViewSet(CustomModelViewSet):
|
|
|
queryset = queryset.filter()
|
|
|
f = NewCustomerFilter(self.request.GET, queryset=queryset)
|
|
|
return f.qs
|
|
|
+
|
|
|
+
|
|
|
+class StageCountView(APIView):
|
|
|
+ permission_classes = [isLogin]
|
|
|
+
|
|
|
+ def get(self,request):
|
|
|
+ data = []
|
|
|
+ stage_progress = Option.objects.filter(type=Option.STAGE_PROGRESS, enable=True).order_by('sort')
|
|
|
+ user = request.user
|
|
|
+ time_now = timezone.now().strftime('%Y-%m-%d')
|
|
|
+ for stage in stage_progress:
|
|
|
+ new_customers = NewCustomer.objects.filter(Q(track_user=user) |
|
|
|
+ Q(track_user__store_id__in=request.user.get_manager_range()),
|
|
|
+ stage_progress=stage)
|
|
|
+ stage_count = {
|
|
|
+ 'stage': stage.name, # 阶段名称
|
|
|
+ 'total': new_customers.count(), # 总人数
|
|
|
+ 'today_count': new_customers.filter(next_time=time_now).count(), # 今日人数
|
|
|
+ 'overdue_count': new_customers.filter(next_time__lt=time_now).count() # 逾期人数
|
|
|
+ }
|
|
|
+ data.append(stage_count)
|
|
|
+ return response_ok(data)
|