Преглед на файлове

amend service for querying targets

chenhaiyang преди 4 години
родител
ревизия
974ab06940
променени са 2 файла, в които са добавени 18 реда и са изтрити 24 реда
  1. 2 1
      app/controllers/targets/temperature.py
  2. 16 23
      app/services/transfer.py

+ 2 - 1
app/controllers/targets/temperature.py

@@ -244,7 +244,8 @@ class TemperatureTargetCarrier(Carrier):
             platform = DataPlatformService(client, self.project_id)
 
             realtime_temperature = await platform.get_realtime_temperature(self.object_id)
-            all_day_targets = await transfer.get_custom_target()
+            targets = await transfer.get_custom_target()
+            all_day_targets = targets.get('normal_targets')
             current_target = await transfer.get_current_temperature_target()
             is_customized = await transfer.is_customized()
             is_temporary = await transfer.is_temporary()

+ 16 - 23
app/services/transfer.py

@@ -92,39 +92,32 @@ class SpaceInfoService(Service):
 
         return feedback_dic
 
-    async def query_targets(self, url: str) -> pd.DataFrame:
-        url = self._base_url.join(url)
+    async def get_custom_target(self) -> Dict[str, pd.DataFrame]:
+        url = self._base_url.join('duoduo-service/transfer/environment/normalAndPreDayTarget')
         params = self._common_parameters()
         params.update({'date': arrow.get(self._now_time, TIME_FMT).date().strftime('%Y%m%d')})
         raw_info = await self._get(url, params)
 
         try:
-            custom_target_df = pd.DataFrame(raw_info.get('data'))
-            custom_target_df.set_index('time', inplace=True)
+            pre_target_df = pd.DataFrame(raw_info.get('perTargets'))
+            normal_target_df = pd.DataFrame(raw_info.get('normalTargets'))
+            pre_target_df.set_index('time', inplace=True)
+            normal_target_df.set_index('time', inplace=True)
         except KeyError:
-            custom_target_df = pd.DataFrame()
+            pre_target_df = pd.DataFrame()
+            normal_target_df = pd.DataFrame()
 
-        return custom_target_df
-
-    async def get_custom_target(self) -> pd.DataFrame:
-        url = 'duoduo-service/transfer/environment/target'
-        targets = await self.query_targets(url)
-
-        return targets
-
-    async def query_pre_target(self) -> pd.DataFrame:
-        url = 'duoduo-service/setup-service/run/getBeforehand'
-        targets = await self.query_targets(url)
-
-        return targets
+        return {
+            'pre_targets': pre_target_df,
+            'normal_targets': normal_target_df
+        }
 
     async def get_current_temperature_target(self) -> float:
-        custom_targets = await self.get_custom_target()
-        pre_targets = await self.query_pre_target()
-        if len(pre_targets) > 0:
-            current_targets = pre_targets.append(custom_targets)
+        targets = await self.get_custom_target()
+        if len(targets.get('pre_targets')) > 0:
+            current_targets = targets.get('pre_targets').append(targets.get('normal_targets'))
         else:
-            current_targets = custom_targets
+            current_targets = targets.get('normal_targets')
         temp = arrow.get(self._now_time, TIME_FMT).shift(minutes=15).timestamp // (15 * 60) * (15 * 60)
         next_quarter_minutes = arrow.get(temp).time().strftime('%H%M%S')
         try: