# -*- 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 WorkEvent logger = logging.getLogger(__name__) class builder(EventBuilder): def __getEvent__(self, device_event): data = self.deviceAdapter.analyze_event_data(device_event) return WawajiWorkEvent(self.deviceAdapter, data) class WawajiWorkEvent(WorkEvent): SUCCESS = "01" FAIL = "00" def do(self, **args): # 娃娃被抓取后,需要发送消息确认,然后记录消耗记录 funCode = self.event_data['funCode'] if funCode != '10': 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) return