123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # -*- coding: utf-8 -*-
- import datetime
- import logging
- from apps.web.constant import Const
- from apps.web.device.models import Device, Group
- from apps.web.eventer import EventBuilder
- from apps.web.eventer.base import WorkEvent
- from apps.web.user.models import MyUser
- logger = logging.getLogger(__name__)
- class builder(EventBuilder):
- def __getEvent__(self, device_event):
- event_data = self.deviceAdapter.analyze_event_data(device_event['data'])
- if event_data is None or 'cmdCode' not in event_data:
- return None
- if event_data['cmdCode'] in ['FF', 'F1']:
- return DaQiangWorkEvent(self.deviceAdapter, event_data)
- return None
- class DaQiangWorkEvent(WorkEvent):
- def do(self, **args):
- devNo = self.device['devNo']
- logger.info('da qiang event detected, devNo=%s,curInfo=%s' % (devNo, self.event_data))
- if self.event_data['cmdCode'] == 'FF':
- lineInfo = Device.get_dev_control_cache(self.device.devNo)
- openId = lineInfo.get('openId')
- if openId:
- myUser = MyUser.objects.filter(openId=openId, groupId=self.device['groupId']).first()
- if not myUser:
- return
- else:
- group = Group.get_group(self.device['groupId'])
- self.notify_user(myUser.managerialOpenId, 'service_complete', **{
- 'title': '您已订购成功',
- 'service': '订购(设备编号:%s, 地址:%s)' % (self.device['logicalCode'], group['address']),
- 'finishTime': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
- 'remark': '谢谢您的支持'
- })
- Device.update_dev_control_cache(self.device.devNo, {'status': Const.DEV_WORK_STATUS_IDLE})
- elif self.event_data['cmdCode'] == 'F1':
- Device.update_dev_control_cache(self.device.devNo, {'status': Const.DEV_WORK_STATUS_FAULT})
|