|
@@ -20,7 +20,8 @@ from apps.account.models import ManageStoreUser
|
|
from apps.log.models import BizLog
|
|
from apps.log.models import BizLog
|
|
from apps.account.consts import PermissionMenu
|
|
from apps.account.consts import PermissionMenu
|
|
from collections import OrderedDict
|
|
from collections import OrderedDict
|
|
-from apps.agent.models import Store, Agent
|
|
|
|
|
|
+from apps.agent.models import Store, Agent,GeneralAgent
|
|
|
|
+from utils.exceptions import CustomError
|
|
|
|
|
|
|
|
|
|
class LoginView(ObtainJSONWebToken):
|
|
class LoginView(ObtainJSONWebToken):
|
|
@@ -241,3 +242,82 @@ class StoreTreeView(APIView):
|
|
store_data.append(item)
|
|
store_data.append(item)
|
|
|
|
|
|
return response_ok(store_data)
|
|
return response_ok(store_data)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class EmployeeTreeView(APIView):
|
|
|
|
+ permission_classes = [isLogin, ]
|
|
|
|
+
|
|
|
|
+ def get(self, request):
|
|
|
|
+ id = request.GET.get('id')
|
|
|
|
+ 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.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)
|