Prechádzať zdrojové kódy

Merge branch 'master' of http://git.zzliaoyuan.com:4000/wushaodong/decorate

lijiangwei 4 rokov pred
rodič
commit
be3dc261a3
2 zmenil súbory, kde vykonal 28 pridanie a 6 odobranie
  1. 1 0
      apps/customer/urls.py
  2. 27 6
      apps/customer/views.py

+ 1 - 0
apps/customer/urls.py

@@ -7,6 +7,7 @@ from .views import *
 urlpatterns = [
     url(r'^dict/$', ReportCustomerDictView.as_view()),
     url(r'^get_user/$', UserDictView.as_view()),
+    url(r'^stage_count/$', StageCountView.as_view()),
 
 ]
 

+ 27 - 6
apps/customer/views.py

@@ -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)