123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- from django.views.generic.base import View
- from django.utils.decorators import method_decorator
- from django.views.decorators.csrf import csrf_exempt
- from Service.ModelService import ModelService
- from Service.CommonService import CommonService
- from Model.models import Device_Info, Equipment_Sensor
- import traceback
- from Object.TokenObject import TokenObject
- from Object.ResponseObject import ResponseObject
- '''
- 增加,关联设备传感器:
- params:{
- did:设备主键did
- name:传感器名称
- status:设备状态值
- type:设备类型
- token:令牌
- operation:add
- }
- http://192.168.136.40:8077/equipment/sensor?token=test&name=1&status=1&did=138001380001515727362917767&type=1&operation=add
- 删除设备关联的传感器:
- params:{
- id:传感器主键id
- token:令牌
- operation:delete
- did:设备主键did
- }
- http://192.168.136.40:8077/equipment/sensor?token=test&id=2&id=3&operation=delete&did=did
- 改,状态名称:
- params:{
- id:传感器主键id
- token:令牌
- status:状态值
- operation:update
- name:name
- did:设备主键did
- }
- http://192.168.136.40:8077/equipment/sensor?token=test&id=19&did=138001380001515727362917767&status=1&name=555&operation=update
- 查找当前指定用户所有传感器
- params:{
- token:令牌
- operation:query
- did:设备主键did
- }
- http://192.168.136.40:8077/equipment/sensor?token=test&operation=query&did=138001380001515727362917767
- 后台
- 查找所有传感器信息
- http://192.168.136.40:8077/equipment/sensor?token=test&page=1&line=5&operation=queryall
- '''
- class EquipmentSensor(View):
- @method_decorator(csrf_exempt)
- def dispatch(self, *args, **kwargs):
- return super(EquipmentSensor, self).dispatch(*args, **kwargs)
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- return self.validation(request_dict=request.GET)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- return self.validation(request_dict=request.POST)
- def validation(self, request_dict, *args, **kwargs):
- response = ResponseObject()
- token = request_dict.get('token', None)
- if token is not None:
- tko = TokenObject(token)
- tko.valid()
- response.lang = tko.lang
- if tko.code == 0:
- userID = tko.userID
- if userID is not None:
- operation = request_dict.get('operation', None)
- if operation == 'add':
- return self.add_sensor(request_dict, userID,response)
- elif operation == 'delete':
- return self.delete_sensor(request_dict, userID,response)
- elif operation == 'update':
- return self.update_sensor(request_dict, userID,response)
- elif operation == 'query':
- return self.query_sensor(request_dict, userID,response)
- elif operation == 'queryall':
- return self.admin_query_all_sensor(request_dict, userID,response)
- else:
- return response.json(309)
- else:
- return response.json(tko.code)
- else:
- return response.json(309)
- def add_sensor(self, request_dict,userID,response):
- # 设备PK
- did = request_dict.get('did', None)
- name = request_dict.get('name', None)
- status = request_dict.get('status', None)
- type = request_dict.get('type', None)
- if did is not None and name is not None and status is not None and type is not None:
- is_user = ModelService.check_user_own_device(userID=userID,deviceID=did)
- if is_user is True:
- try:
- device_info = Device_Info.objects.get(id=did)
- except Exception as e:
- errorInfo = traceback.format_exc()
- print('database error: %s' % errorInfo)
- return response.json(424)
- else:
- if device_info:
- equipment_sensor = Equipment_Sensor(name=name, status=status, type=type, uid=device_info.UID)
- equipment_sensor.save()
- if equipment_sensor.id:
- return response.json(0,
- {'id': equipment_sensor.id,
- 'status': equipment_sensor.status,
- 'name': equipment_sensor.name,
- 'type': equipment_sensor.type})
- else:
- return response.json(4)
- else:
- return response.json(14)
- return response.json(444)
- def delete_sensor(self, request_dict,userID,response):
- # deletelist
- did = request_dict.get('did',None)
- id_list = request_dict.getlist('id', None)
- if len(id_list)>0 and id_list is not None and did is not None:
- is_user = ModelService.check_user_own_device(userID=userID, deviceID=did)
- is_superadmin = ModelService.check_permission(userID=userID, permID=10)
- if is_user is True or is_superadmin is True:
- try:
- device_info = Device_Info.objects.get(id=did)
- except Exception as e:
- errorInfo = traceback.format_exc()
- print('database error: %s' % errorInfo)
- return response.json(424)
- else:
- if device_info:
- for id in id_list:
- Equipment_Sensor.objects.filter(id=id, uid=device_info.UID).delete()
- return response.json(0)
- else:
- return response.json(14)
- return response.json(444)
- def update_sensor(self,request_dict,userID,response):
- id = request_dict.get('id', None)
- did = request_dict.get('did',None)
- status = request_dict.get('status', None)
- name = request_dict.get('name', None)
- if id is not None and status is not None:
- is_user = ModelService.check_user_own_device(userID=userID, deviceID=did)
- is_superadmin = ModelService.check_permission(userID=userID, permID=50)
- if is_user is True or is_superadmin is True:
- try:
- device_info = Device_Info.objects.get(id=did)
- except Exception as e:
- errorInfo = traceback.format_exc()
- print('database error: %s' % errorInfo)
- return response.json(424)
- else:
- is_update = Equipment_Sensor.objects.filter(id=id, uid=device_info.UID).update(status=status,
- name=name)
- if is_update:
- return response.json(0, {'id': id, 'status': status,
- 'name': name})
- return response.json(4)
- else:
- return response.json(14)
- else:
- return response.json(444)
- def query_sensor(self,request_dict,userID,response):
- did = request_dict.get('did', None)
- if did is not None:
- is_user = ModelService.check_user_own_device(userID=userID, deviceID=did)
- is_superadmin = ModelService.check_permission(userID=userID,permID=30)
- if is_user is True or is_superadmin is True:
- try:
- device_info = Device_Info.objects.get(id=did)
- except Exception as e:
- errorInfo = traceback.format_exc()
- print('database error: %s' % errorInfo)
- return response.json(424)
- else:
- equipment_sensor_queryset = Equipment_Sensor.objects.filter(uid=device_info.UID)
- if equipment_sensor_queryset.exists():
- send_json = CommonService.qs_to_dict(equipment_sensor_queryset)
- return response.json(0, send_json)
- else:
- return response.json(0, {})
- return response.json(14)
- else:
- return response.json(444)
- def admin_query_all_sensor(self,request_dict,userID,response):
- page = int(request_dict.get('page', None))
- line = int(request_dict.get('line', None))
- if userID is not None:
- is_own = ModelService.check_permission(userID=userID, permID=30)
- if is_own is True:
- equipment_sensor_queryset = Equipment_Sensor.objects.all()
- if equipment_sensor_queryset.exists():
- equipment_stream_count = equipment_sensor_queryset.count()
- equipment_stream_res = equipment_sensor_queryset[(page - 1) * line:page * line]
- send_json = CommonService.qs_to_dict(equipment_stream_res)
- send_json['count'] = equipment_stream_count
- return response.json(0, send_json)
- else:
- return response.json(0, {})
- return response.json(612)
- else:
- return response.json(444)
|