wawaji_maichong.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/env python
  3. import logging
  4. import time
  5. from apps import serviceCache
  6. from apps.web.dealer.utils import consume_stock
  7. from apps.web.device.models import Device
  8. from apps.web.eventer import EventBuilder
  9. from apps.web.eventer.base import WorkEvent
  10. logger = logging.getLogger(__name__)
  11. class builder(EventBuilder):
  12. def __getEvent__(self, device_event):
  13. data = self.deviceAdapter.analyze_event_data(device_event)
  14. return WawajiWorkEvent(self.deviceAdapter, data)
  15. class WawajiWorkEvent(WorkEvent):
  16. SUCCESS = "01"
  17. FAIL = "00"
  18. def do(self, **args):
  19. # 娃娃被抓取后,需要发送消息确认,然后记录消耗记录
  20. funCode = self.event_data['funCode']
  21. if funCode != '10':
  22. return
  23. devNo = self.device['devNo']
  24. lastTime = serviceCache.get('%s-item-fall'%devNo,None)
  25. if lastTime:
  26. nowTime = int(time.time())
  27. if nowTime - lastTime < 10:# 10秒以内,忽略掉
  28. return
  29. serviceCache.set('%s-item-fall'%devNo,int(time.time()))
  30. devObj = Device.objects.get(devNo = devNo)
  31. consume_stock(devObj,1)
  32. logger.info('finished record stock ,devNo=%s' % devNo)
  33. return