hujingpei 4 anni fa
parent
commit
6d7c281fd4

+ 0 - 1
apps/account/urls.py

@@ -10,7 +10,6 @@ urlpatterns = [
     url(r'^permission/all/$', PermissionsListView.as_view()), # 权限管理,编辑,加载所有权限
     url(r'^store/tree/$', StoreTreeView.as_view()), # 人员管理,管理门店,加载门店
     url(r'^employee_tree/$', EmployeeTreeView.as_view()), #人员列表
-    url(r'^employee_tree2/$', EmployeeTreeView2.as_view()), #人员列表
 ]
 
 router = SimpleRouter()

+ 0 - 78
apps/account/views.py

@@ -247,84 +247,6 @@ class StoreTreeView(APIView):
 class EmployeeTreeView(APIView):
     permission_classes = [isLogin, ]
 
-    def get(self, request):
-        employee_data = []
-
-        # 查询当前用户的代理商账号和门店人员账号
-        employees = User.objects.filter()
-        general_agents = GeneralAgent.objects.filter()
-        agents = Agent.objects.filter()
-        stores = Store.objects.filter()
-        manage_user = ManageStoreUser.objects.filter(manage_user_id=request.user.id)
-        if not request.user.is_superuser:
-            general_agents = general_agents.filter(id=request.user.general_agent_id)
-            if request.user.agent:
-                general_agents = None
-                agents = Agent.objects.filter(id=request.user.agent_id,
-                                              general_agent_id=request.user.general_agent_id)
-                if request.user.store:
-                    if not manage_user:
-                        raise CustomError(u'无人员查看权限!')
-                    stores = Store.objects.filter(id=request.user.store_id, enable=True)
-        if general_agents:
-            general_agents = general_agents.values('id', 'name')
-            for general_agent in general_agents:
-                general_agent_item = {
-                    'title': general_agent['name'],
-                    'id': general_agent['id'],
-                    'field': 'general_agent',
-                    'children': [],
-                }
-                general_agent_user = employees.filter(general_agent_id=general_agent['id'], agent__isnull=True).first()
-                if general_agent_user:
-                    general_agent_user_item = {
-                        'title': general_agent_user.name,
-                        'id': general_agent_user.id,
-                        'field': 'general_agent_user',
-                    }
-                    general_agent_item['children'].append(general_agent_user_item)
-                employee_data.append(general_agent_item)
-
-        agents = agents.values('id', 'name')
-        for agent in agents:
-            agent_item = {
-                'title': agent['name'],
-                'id': agent['id'],
-                'field': 'agent',
-                'children': [],
-            }
-            agent_user = employees.filter(agent_id=agent['id'], store__isnull=True).first()
-            if agent_user and not request.user.store:
-                agent_user_item = {
-                    'title': agent_user.name,
-                    'id': agent_user.id,
-                    'field': 'agent_user',
-                }
-                agent_item['children'].append(agent_user_item)
-            stores = stores.filter(agent_id=agent['id'], enable=True).values('id', 'name')
-            for store in stores:
-                store_item = {
-                    'title': store['name'],
-                    'id': store['id'],
-                    'field': 'store_{}'.format(store['id']),
-                    'children': [],
-                }
-                agent_item['children'].append(store_item)
-                store_users = employees.filter(store_id=store['id'])
-                for store_user in store_users:
-                    store_user_item = {
-                        'title': store_user.name,
-                        'id': store_user.id,
-                        'field': 'store_user_{}'.format(store_user.id),
-                    }
-                    store_item['children'].append(store_user_item)
-            employee_data.append(agent_item)
-
-        return response_ok(employee_data)
-
-class EmployeeTreeView2(APIView):
-    permission_classes = [isLogin, ]
-
     def get(self, request):
         # 查询当前用户管理门店树形结构
         agent_dict = {}

+ 1 - 0
apps/customer/models.py

@@ -132,6 +132,7 @@ class Review(models.Model):
     check_user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='review_ref_checkuser', verbose_name=u"审核人",
                                    editable=False, blank=True, null=True, on_delete=models.PROTECT)
     check_time = models.DateTimeField(verbose_name=u"审核时间", editable=False, blank=True, null=True)
+    is_copy = models.BooleanField(verbose_name=u"是否抄送", default=False)
 
     class Meta:
         db_table = "customer_review"

+ 5 - 3
apps/customer/serializers.py

@@ -119,8 +119,8 @@ class NewCustomerSerializer(serializers.ModelSerializer):
                                               read_only=True)
     end_time_f = serializers.DateTimeField(source='end_time', format=settings.SHORT_DATETIME_FORMAT,
                                               read_only=True)
-
-    next_time_f = DateCharField(source='next_time', read_only=True)
+    next_time_f = serializers.DateTimeField(source='next_time', format=settings.SHORT_DATETIME_FORMAT,
+                                              read_only=True)
 
     source_text = serializers.CharField(source='source.name', read_only=True)
     gender_text = serializers.SerializerMethodField()
@@ -178,8 +178,10 @@ class ReviewSerializer(serializers.ModelSerializer):
     check_time_f = serializers.DateTimeField(source='check_time', format=settings.SHORT_DATETIME_FORMAT,
                                              read_only=True)
 
-    next_time_f = DateCharField(source='customer.next_time', read_only=True)
+    next_time_f = serializers.DateTimeField(source='next_time', format=settings.SHORT_DATETIME_FORMAT,
+                                             read_only=True)
     is_giveup_text = BooleanCharField(source='is_giveup', read_only=True)
+    is_copy_text = BooleanCharField(source='is_copy', read_only=True)
 
     name = serializers.CharField(source='customer.name', read_only=True)
     tel = serializers.CharField(source='customer.tel', read_only=True)

+ 36 - 3
apps/customer/views.py

@@ -230,7 +230,7 @@ class NewCustomerViewSet(CustomModelViewSet):
             NewCustomerRemind.objects.filter(customer=instance,remind_user=request.user).update(next_time=next_time)
             # 如果客户已放弃,再次跟踪后自动改成正常客户,同时工单状态改成正常
             if instance.status == NewCustomer.ABANDONED:
-                Order.objects.filter(customer=instance).update(status = Order.NORMAL)
+                Order.objects.filter(customer=instance).update(status=Order.NORMAL)
             ser = self.serializer_class(instance, data=data, partial=True)
             if ser.is_valid(raise_exception=True):
                 ser.save()
@@ -305,6 +305,39 @@ class NewCustomerViewSet(CustomModelViewSet):
             return response_error(str(e))
         return response_ok()
 
+    @action(methods=['post'], detail=True)
+    def inner_review(self, request , pk):
+        #内部跟踪
+        description = request.POST.get('description')
+        next_time = request.POST.get('next_time')
+        is_copy = request.POST.get('is_copy') == '1'
+        print(2222222222,next_time)
+
+        try:
+            instance = NewCustomer.objects.filter(id=pk).first()
+
+            data = {
+                'customer': instance.id,
+                'store': instance.store.id,
+                'create_user': request.user.id,
+                'description': description,
+                'next_time': next_time,
+                'is_copy': is_copy,
+            }
+            serializer = ReviewSerializer(data=data)
+            if serializer.is_valid(raise_exception=True):
+                serializer.save()
+            NewCustomerRemind.objects.filter(customer=instance,remind_user=request.user).update(next_time=next_time)
+
+        except ValidationError as e:
+            traceback.print_exc()
+            return response_error('数据格式有误')
+        except CustomError as e:
+            return response_error(e.get_error_msg())
+        except Exception as e:
+            return response_error(str(e))
+        return response_ok()
+
 
 class StageCountView(APIView):
     permission_classes = [isLogin]
@@ -352,7 +385,7 @@ class GetReviewViewSet(CustomModelViewSet):
     def filter_queryset(self, queryset):
         # TODO 过滤记录中是否抄送业务员
         if len(self.request.user.get_manager_range()) == 0:
-            queryset = queryset.filter()
+            queryset = queryset.filter(is_copy=True)
         f = ReviewFilter(self.request.GET, queryset=queryset)
         return f.qs
 
@@ -394,7 +427,7 @@ class ReviewViewSet(CustomModelViewSet):
                 order = Order.objects.filter(customer=instance.customer).first()
                 if order:
                     order.status = Order.ABANDONED
-                    order.save
+                    order.save()
             instance.customer.next_time = next_time
             instance.customer.save()
         except CustomError as e:

+ 1 - 1
uis/views/customer/index.html

@@ -233,7 +233,7 @@
         var manager_stores = layui.data(layui.setter.tableName)['manager_stores'];
         if (parseInt(manager_stores) !== 0) {
             admin.req({
-                url: '/account/employee_tree2/'
+                url: '/account/employee_tree/'
                 , done: function (res) {
                     tree.render({
                         elem: '#id_tree'  //绑定元素