|
@@ -245,34 +245,53 @@ class StoreTreeView(APIView):
|
|
|
|
|
|
@permission_required('account.manager_store')
|
|
@permission_required('account.manager_store')
|
|
def get(self, request):
|
|
def get(self, request):
|
|
- id = request.GET.get('id')
|
|
|
|
store_data = []
|
|
store_data = []
|
|
|
|
|
|
# 查询当前用户的代理商和管理的门店
|
|
# 查询当前用户的代理商和管理的门店
|
|
|
|
+ general_agents = GeneralAgent.objects.filter()
|
|
agents = Agent.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:
|
|
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)
|
|
|
|
+ if request.user.agent:
|
|
|
|
+ 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)
|
|
|
|
+
|
|
|
|
+ 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': [],
|
|
'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']),
|
|
|
|
|
|
+ if not request.user.agent:
|
|
|
|
+ agents = Agent.objects.filter(general_agent_id=general_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)
|
|
|
|
+ if not request.user.store:
|
|
|
|
+ stores = Store.objects.filter(agent_id=agent['id'], enable=True)
|
|
|
|
+ stores = stores.values('id', 'name')
|
|
|
|
+ for store in stores:
|
|
|
|
+ store_item = {
|
|
|
|
+ 'title': store['name'],
|
|
|
|
+ 'id': store['id'],
|
|
|
|
+ 'field': 'store_{}'.format(store['id']),
|
|
|
|
+ }
|
|
|
|
+ agent_item['children'].append(store_item)
|
|
|
|
+ store_data.append(general_agent_item)
|
|
|
|
|
|
return response_ok(store_data)
|
|
return response_ok(store_data)
|
|
|
|
|