chore: 删除task改造后的无用逻辑
This commit is contained in:
parent
2ff422b262
commit
304409f384
|
@ -8,12 +8,6 @@ from mosquito.models import DeviceInfo as MosquitoDeviceInfo
|
|||
from mosquito.models import MosqPostStatistic, DevicePostStatistic
|
||||
|
||||
|
||||
class DeviceSourceException(Exception):
|
||||
"""
|
||||
source should be counter | mosquito
|
||||
"""
|
||||
|
||||
|
||||
def get_vol(device_id, cur_vol):
|
||||
vol_min_key = '{}_vol_min'.format(device_id)
|
||||
vol_max_key = '{}_vol_max'.format(device_id)
|
||||
|
@ -65,49 +59,6 @@ class DeviceInfoBaseSerializer(serializers.ModelSerializer):
|
|||
fields = '__all__'
|
||||
|
||||
|
||||
device_source_map = {
|
||||
'counter': DeviceCountBaseSerializer,
|
||||
'mosquito': DeviceInfoBaseSerializer,
|
||||
}
|
||||
|
||||
|
||||
def get_device(device_id: str, source: str) -> Optional[dict]:
|
||||
"""
|
||||
Get device data serialized by DeviceCountBaseSerializer (counter) or DeviceInfoBaseSerializer (mosquito),
|
||||
For source 'counter', we get device from device_counter table not device_info, because
|
||||
the [lon, lat] info is located in device_counter.
|
||||
For source 'mosquito', we get device from mosquito/DeviceInfo model,
|
||||
due to the [point_x, point_y] is what we want.
|
||||
|
||||
params: device_id,
|
||||
params: source, counter | mosquito
|
||||
return: dict
|
||||
"""
|
||||
device_key = 'device_lon_{}'.format(device_id)
|
||||
device = cache.get(device_key)
|
||||
if device:
|
||||
return device
|
||||
|
||||
if source == 'counter':
|
||||
qs = DeviceCount.objects.filter(~Q(longitude=0),
|
||||
device_id=device_id).order_by('-data_time')
|
||||
elif source == 'mosquito':
|
||||
qs = MosquitoDeviceInfo.objects.filter(device_id=device_id)
|
||||
else:
|
||||
raise DeviceSourceException("source should be counter or mosquito")
|
||||
|
||||
if qs.count() == 0:
|
||||
return None
|
||||
|
||||
device = qs.first()
|
||||
s = device_source_map[source](device)
|
||||
print(s)
|
||||
data = s.data
|
||||
print(data)
|
||||
cache.set(device_key, data, 60 * 10)
|
||||
return data
|
||||
|
||||
|
||||
class DeviceCountSerializer(serializers.ModelSerializer):
|
||||
device_name = serializers.SerializerMethodField()
|
||||
mosq_count = serializers.SerializerMethodField()
|
||||
|
@ -305,11 +256,6 @@ class DeviceInfoSerializer(serializers.ModelSerializer):
|
|||
lon, lat = [self.cur_device.longitude, self.cur_device.latitude]
|
||||
if lon and lat:
|
||||
return [lon, lat]
|
||||
|
||||
# query = DeviceCount.objects.filter(~Q(longitude=0), device_id=obj.device_id).order_by('-data_time')
|
||||
device = get_device(obj.device_id, source='counter')
|
||||
if device:
|
||||
return [device['longitude'], device['latitude']]
|
||||
return None
|
||||
|
||||
def get_time(self, obj):
|
||||
|
|
|
@ -71,48 +71,6 @@ class WeatherStationInfoBaseSerializer(serializers.ModelSerializer):
|
|||
fields = '__all__'
|
||||
|
||||
|
||||
device_source_map = {
|
||||
'counter': WeatherLogBaseSerializer,
|
||||
'mosquito': WeatherStationInfoBaseSerializer,
|
||||
}
|
||||
|
||||
|
||||
def get_device(device_id: str, source: str) -> Optional[dict]:
|
||||
"""
|
||||
Get device data serialized by DeviceCountBaseSerializer (counter) or DeviceInfoBaseSerializer (mosquito),
|
||||
For source 'counter', we get device from device_counter table not device_info, because
|
||||
the [lon, lat] info is located in device_counter.
|
||||
For source 'mosquito', we get device from mosquito/DeviceInfo model,
|
||||
due to the [point_x, point_y] is what we want.
|
||||
|
||||
params: device_id,
|
||||
params: source, counter | mosquito
|
||||
return: dict
|
||||
"""
|
||||
device_key = 'device_lon_{}'.format(device_id)
|
||||
device = cache.get(device_key)
|
||||
if device:
|
||||
return device
|
||||
|
||||
if source == 'counter':
|
||||
qs = WeatherLog.objects.filter(~Q(longitude=0),
|
||||
device_id=device_id).order_by('-data_time')
|
||||
elif source == 'mosquito':
|
||||
qs = WeatherStationInfo.objects.filter(device_id=device_id)
|
||||
else:
|
||||
raise DeviceSourceException("source should be counter or mosquito")
|
||||
|
||||
if qs.count() == 0:
|
||||
return None
|
||||
|
||||
device = qs.first()
|
||||
s = device_source_map[source](device)
|
||||
data = s.data
|
||||
cache.set(device_key, data, 60 * 10)
|
||||
print(data)
|
||||
return data
|
||||
|
||||
|
||||
class WeatherLogSerializer(serializers.ModelSerializer):
|
||||
power = serializers.SerializerMethodField()
|
||||
device_name = serializers.SerializerMethodField()
|
||||
|
|
Loading…
Reference in New Issue