本文整理汇总了Python中helpers.queryhelper.QueryHelper.get_mannual_status_by_tid方法的典型用法代码示例。如果您正苦于以下问题:Python QueryHelper.get_mannual_status_by_tid方法的具体用法?Python QueryHelper.get_mannual_status_by_tid怎么用?Python QueryHelper.get_mannual_status_by_tid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类helpers.queryhelper.QueryHelper
的用法示例。
在下文中一共展示了QueryHelper.get_mannual_status_by_tid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle_report_info
# 需要导入模块: from helpers.queryhelper import QueryHelper [as 别名]
# 或者: from helpers.queryhelper.QueryHelper import get_mannual_status_by_tid [as 别名]
def handle_report_info(self, info):
"""These reports should be handled here:
POWERLOW/POWERFULL/POWEROFF/POWERDOWN
ILLEGALMOVE
ILLEGALSHAKE
EMERGENCY
REGION_ENTER
REGION_OUT
STOP
SPEED_LIMIT
"""
if not info:
return
# 1: get available location from lbmphelper
report = lbmphelper.handle_location(info, self.redis,
cellid=True, db=self.db)
if not (report['cLat'] and report['cLon']):
#NOTE: Get latest location
last_location = QueryHelper.get_location_info(report.dev_id, self.db, self.redis)
if last_location:
#NOTE: Try to make the location is complete.
locations = [last_location,]
locations = lbmphelper.get_locations_with_clatlon(locations, self.db)
last_location = locations[0]
report['lat'] = last_location['latitude']
report['lon'] = last_location['longitude']
report['cLat'] = last_location['clatitude']
report['cLon'] = last_location['clongitude']
report['name'] = last_location['name']
report['type'] = last_location['type']
logging.info("[EVENTER] The report has invalid location and use last_location. report: %s", report)
else:
logging.info("[EVENTER] The report has invalid location and last_location is invalid. report: %s", report)
current_time = int(time.time())
alarm_mobile = get_alarm_mobile(report.dev_id, self.db, self.redis)
#NOTE: in pvt, timestamp is no used, so use gps_time as timestamp
if not report.get('timestamp',None):
report['timestamp'] = report['gps_time']
if report['timestamp'] > (current_time + 24*60*60):
logging.info("[EVENTER] The report's (gps_time - current_time) is more than 24 hours, so drop it:%s", report)
return
#NOTE: If undefend, just save location into db
if info['rName'] in [EVENTER.RNAME.ILLEGALMOVE, EVENTER.RNAME.ILLEGALSHAKE]:
if str(info.get('is_notify','')) == '1': # send notify even if CF
logging.info("[EVENTER] Send notify forever, go ahead. Terminal: %s, is_notify: %s",
report.dev_id, info.get('is_notify',''))
elif alarm_mobile:
logging.info("[EVENTER] Send notify forever , go ahead. Terminal: %s, alarm_mobile: %s",
report.dev_id, alarm_mobile)
else:
mannual_status = QueryHelper.get_mannual_status_by_tid(info['dev_id'], self.db)
if int(mannual_status) == UWEB.DEFEND_STATUS.NO:
report['category'] = EVENTER.CATEGORY.REALTIME
insert_location(report, self.db, self.redis)
update_terminal_dynamic_info(self.db, self.redis, report)
logging.info("[EVENTER] %s mannual_status is undefend, drop %s report.",
info['dev_id'], info['rName'])
return
if info['rName'] in [EVENTER.RNAME.POWERDOWN, EVENTER.RNAME.POWERLOW]:
# if alert_freq_key is exists,return
alert_freq_key = get_alert_freq_key(report.dev_id + info['rName'])
alert_freq = QueryHelper.get_alert_freq_by_tid(info['dev_id'], self.db)
if alert_freq != 0:
if self.redis.exists(alert_freq_key):
logging.info("[EVENTER] Don't send duplicate %s alert to terminal:%s in %s seconds", info["rName"], report.dev_id, alert_freq)
return
else:
self.redis.setvalue(alert_freq_key, 1, time=alert_freq)
#NOTE: keep alarm info
alarm = dict(tid=report['dev_id'],
category=report['category'],
type=report['type'],
timestamp=report.get('timestamp',0),
latitude=report.get('lat',0),
longitude=report.get('lon',0),
clatitude=report.get('cLat',0),
clongitude=report.get('cLon',0),
name=report['name'] if report.get('name',None) is not None else '',
degree=report.get('degree',0),
speed=report.get('speed',0))
if info['rName'] in [EVENTER.RNAME.REGION_OUT, EVENTER.RNAME.REGION_ENTER]:
region = report['region']
alarm['region_id'] = region.region_id
record_alarm_info(self.db, self.redis, alarm)
# 2: save into database. T_LOCATION, T_EVENT
lid = insert_location(report, self.db, self.redis)
#.........这里部分代码省略.........