123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import time
- from django.views import View
- from Model.models import RegionModel, CompanyModel, VPGModel, UIDModel
- from Object.uidManageResponseObject import uidManageResponseObject
- from Object.TokenObject import TokenObject
- from Service.ModelService import ModelService
- class VPGView(View):
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation', None)
- request_dict = request.GET
- return self.validate(request_dict, operation)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation', None)
- request_dict = request.POST
- return self.validate(request_dict, operation)
- def validate(self, request_dict, operation):
- token = TokenObject(request_dict.get('token', None))
- response = uidManageResponseObject()
- if token.code != 0:
- return response.json(token.code)
- if operation == 'add':
- return self.do_add(token.userID, request_dict, response)
- elif operation == 'update':
- return self.do_update(token.userID, request_dict, response)
- elif operation == 'delete':
- return self.do_delete(token.userID, request_dict, response)
- elif operation == 'list':
- return self.do_list(token.userID, request_dict, response)
- else:
- return response.json(404)
- def do_add(self, userID, request_dict, response):
- perm = ModelService.check_perm_uid_manage(userID, 0)
- if not perm:
- return response.json(309)
- name = request_dict.get('vpg', None)
- region_id = request_dict.get('region_id', None)
- company_id = request_dict.get('company_id', None)
- if name and region_id and company_id:
- region_qs = RegionModel.objects.filter(id=region_id)
- if not region_qs.exists():
- return response.json(374)
- company_qs = CompanyModel.objects.filter(secret=company_id)
- if not company_qs.exists():
- return response.json(373)
- company = company_qs[0]
- now_time = int(time.time())
- vpgModel = VPGModel(name=name, region_id=region_id, company_id=company.id, add_time=now_time, update_time=now_time)
- vpgModel.save()
- return response.json(0)
- else:
- return response.json(444)
- def do_update(self, userID, request_dict, response):
- perm = ModelService.check_perm_uid_manage(userID, 0)
- if not perm:
- return response.json(309)
- id = request_dict.get('id', None)
- name = request_dict.get('vpg', None)
- region_id = request_dict.get('region_id', None)
- company_id = request_dict.get('company_id', None)
- if id:
- vpg_qs = VPGModel.objects.filter(id=id)
- if vpg_qs.exists():
- now_time = int(time.time())
- update = {
- 'update_time': now_time
- }
- if name:
- update['name'] = name
- if region_id:
- update['region_id'] = region_id
- if company_id:
- update['company_id'] = company_id
- vpg_qs.update(**update)
- return response.json(0)
- else:
- return response.json(173)
- else:
- return response.json(444)
- def do_delete(self, userID, request_dict, response):
- perm = ModelService.check_perm_uid_manage(userID, 0)
- if not perm:
- return response.json(309)
- id = request_dict.get('id', None)
- if id:
- vpg_qs = VPGModel.objects.filter(id=id)
- if vpg_qs.exists():
- vpg_qs.delete()
- return response.json(0)
- else:
- return response.json(173)
- else:
- return response.json(444)
- def do_list(self, userID, request_dict, response):
- perm = ModelService.check_perm_uid_manage(userID, 0)
- if not perm:
- return response.json(309)
- company_id = request_dict.get('company_id', None)
- region_id = request_dict.get('region_id', None)
- page = request_dict.get('page', None)
- line = request_dict.get('limit', None)
- if page and line:
- page = int(page)
- line = int(line)
- start = (page - 1) * line
- end = start + line
- vpg_qs = VPGModel.objects.filter()
- if company_id:
- vpg_qs.filter(company_id=company_id)
- if region_id:
- vpg_qs.filter(region_id=region_id)
- count = vpg_qs.count()
- vpg_qs = vpg_qs[start: end]
- vpg_qs = vpg_qs.values('id', 'name', 'region__name', 'region_id', 'company__name', 'add_time', 'update_time', 'company__secret')
- for vpg in vpg_qs:
- vpg['uid_count'] = UIDModel.objects.filter(vpg_id=vpg['id']).count()
- res = {
- 'count': count,
- 'data': list(vpg_qs)
- }
- return response.json(0, res)
- else:
- return response.json(444)
|