| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 | from django.views.generic.base import Viewfrom django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_exemptfrom Service.ModelService import ModelServicefrom Service.CommonService import CommonServicefrom Model.models import Device_Info, Equipment_Sensorimport tracebackfrom Object.TokenObject import TokenObjectfrom 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)            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(404)        else:            return response.json(444)
 |