Browse Source

管理门店

胡敬培 4 years ago
parent
commit
5ed6f49a95
1 changed files with 33 additions and 22 deletions
  1. 33 22
      apps/account/views.py

+ 33 - 22
apps/account/views.py

@@ -247,33 +247,44 @@ class StoreTreeView(APIView):
     def get(self, request):
         id = request.GET.get('id')
         store_data = []
-
         # 查询当前用户的代理商和管理的门店
-        agents = Agent.objects.filter()
+        general_agents = GeneralAgent.objects.filter()
         if not request.user.is_superuser:
-            agents = agents.filter(id=request.user.agent_id)
-        agents = agents.values('id', 'name')
-        for agent in agents:
-            item = {
-                'title': agent['name'],
-                'id': agent['id'],
-                'field': 'agent',
+            general_agents = GeneralAgent.objects.filter(id=request.user.general_agent_id)
+        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': [],
             }
-            stores = Store.objects.filter(agent_id=agent['id'], id__in=request.user.get_manager_range(),
-                                          check_user__isnull=False, enable=True).values('id', 'name')
-            for store in stores:
-                manage_store = ManageStoreUser.objects.filter(manage_user_id=id, store_id=store['id']).first()
-                checked = manage_store and True or False
-                store_item = {
-                    'title': store['name'],
-                    'id': store['id'],
-                    'checked': checked,
-                    'field': 'store_{}'.format(store['id']),
+            agents = Agent.objects.filter(general_agent_id=general_agent['id'])
+            if request.user.agent:
+                agents = agents.filter(id=request.user.agent_id)
+            agents = agents.values('id', 'name')
+            for agent in agents:
+                agent_item= {
+                    'title': agent['name'],
+                    'id': agent['id'],
+                    'field': 'agent',
+                    'children': [],
                 }
-                item['checked'] = checked
-                item['children'].append(store_item)
-            store_data.append(item)
+                general_agent_item['children'].append(agent_item)
+                stores = Store.objects.filter(agent_id=agent['id'], id__in=request.user.get_manager_range(),
+                                              check_user__isnull=False, enable=True).values('id', 'name')
+                for store in stores:
+                    manage_store = ManageStoreUser.objects.filter(manage_user_id=id, store_id=store['id']).first()
+                    checked = manage_store and True or False
+                    store_item = {
+                        'title': store['name'],
+                        'id': store['id'],
+                        'checked': checked,
+                        'field': 'store_{}'.format(store['id']),
+                    }
+                    agent_item['checked'] = checked
+                    agent_item['children'].append(store_item)
+            store_data.append(general_agent_item)
 
         return response_ok(store_data)