1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import logging
- import time
- from apps import serviceCache
- from apps.web.core.accounting import Accounting
- 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)
- if data is None:
- return None
- if data['funCode'] in ['13']:
- return WawajiWorkEvent(self.deviceAdapter, data)
- return None
-
- class WawajiWorkEvent(WorkEvent):
- SUCCESS = "01"
- FAIL = "00"
- def do(self, **args):
- # 娃娃被抓取后,需要发送消息确认,然后记录消耗记录
- funCode = self.event_data['funCode']
- devNo = self.device['devNo']
-
- if funCode in ['13']:
- devNo = self.device['devNo']
- lastCode = serviceCache.get('%s-event-random'%devNo,None)
- if lastCode == self.event_data['randomCode']:
- return
- else:
- serviceCache.set('%s-event-random'%devNo,self.event_data['randomCode'])
-
- coinCount = self.event_data['coinCount']
- itemCount = self.event_data['itemCount']
- if coinCount>0:
- Accounting.recordOfflineCoin(self.device,int(time.time()),int(coinCount))
- if itemCount>0:
- devObj = Device.objects.get(devNo = devNo)
- consume_stock(devObj,itemCount)
-
- logger.info('finished record stock ,devNo=%s' % devNo)
|