12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import logging
- import time
- from apps import serviceCache
- from apps.web.dealer.utils import consume_stock
- from apps.web.device.models import Device
- from apps.web.eventer import EventBuilder
- from apps.web.eventer.base import FaultEvent, WorkEvent
- logger = logging.getLogger(__name__)
- class builder(EventBuilder):
- def __getEvent__(self, device_event):
- data = self.deviceAdapter.analyze_event_data(device_event)
- if data is None:
- return None
- if data['funCode'] == '96':
- return WawajiWorkEvent(self.deviceAdapter, data)
- elif data['funCode'] == '8B':
- return FaultEvent(self.deviceAdapter,data)
-
- class WawajiWorkEvent(WorkEvent):
- SUCCESS = "01"
- FAIL = "00"
- def do(self, **args):
- # 娃娃被抓取后,需要发送消息确认,然后记录消耗记录
-
- funCode = self.event_data['funCode']
- if funCode != '96':
- return
- devNo = self.device['devNo']
- lastTime = serviceCache.get('%s-item-fall'%devNo,None)
- if lastTime:
- nowTime = int(time.time())
- if nowTime - lastTime < 10:# 10秒以内,忽略掉
- return
-
- serviceCache.set('%s-item-fall'%devNo,int(time.time()))
-
- devObj = Device.objects.get(devNo = devNo)
-
- consume_stock(devObj,1)
-
- logger.info('finished record stock ,devNo=%s' % devNo)
-
|