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
|
from mosquito.models import MosqPostStatistic, DevicePostStatistic
|
||||||
|
|
||||||
|
|
||||||
class DeviceSourceException(Exception):
|
|
||||||
"""
|
|
||||||
source should be counter | mosquito
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def get_vol(device_id, cur_vol):
|
def get_vol(device_id, cur_vol):
|
||||||
vol_min_key = '{}_vol_min'.format(device_id)
|
vol_min_key = '{}_vol_min'.format(device_id)
|
||||||
vol_max_key = '{}_vol_max'.format(device_id)
|
vol_max_key = '{}_vol_max'.format(device_id)
|
||||||
|
@ -65,49 +59,6 @@ class DeviceInfoBaseSerializer(serializers.ModelSerializer):
|
||||||
fields = '__all__'
|
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):
|
class DeviceCountSerializer(serializers.ModelSerializer):
|
||||||
device_name = serializers.SerializerMethodField()
|
device_name = serializers.SerializerMethodField()
|
||||||
mosq_count = serializers.SerializerMethodField()
|
mosq_count = serializers.SerializerMethodField()
|
||||||
|
@ -305,11 +256,6 @@ class DeviceInfoSerializer(serializers.ModelSerializer):
|
||||||
lon, lat = [self.cur_device.longitude, self.cur_device.latitude]
|
lon, lat = [self.cur_device.longitude, self.cur_device.latitude]
|
||||||
if lon and lat:
|
if lon and lat:
|
||||||
return [lon, 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
|
return None
|
||||||
|
|
||||||
def get_time(self, obj):
|
def get_time(self, obj):
|
||||||
|
|
|
@ -71,48 +71,6 @@ class WeatherStationInfoBaseSerializer(serializers.ModelSerializer):
|
||||||
fields = '__all__'
|
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):
|
class WeatherLogSerializer(serializers.ModelSerializer):
|
||||||
power = serializers.SerializerMethodField()
|
power = serializers.SerializerMethodField()
|
||||||
device_name = serializers.SerializerMethodField()
|
device_name = serializers.SerializerMethodField()
|
||||||
|
|
Loading…
Reference in New Issue