浏览代码

optimized some code

chenhaiyang 4 年之前
父节点
当前提交
f5261e3965
共有 4 个文件被更改,包括 30 次插入19 次删除
  1. 3 0
      .gitignore
  2. 0 0
      app/core/logger.py
  3. 26 19
      app/services/transfer.py
  4. 1 0
      nohup.out

+ 3 - 0
.gitignore

@@ -131,3 +131,6 @@ dmypy.json
 # IDE setting
 .vscode/
 .idea/
+
+# Logs
+.logs/

app/core/logging.py → app/core/logger.py


+ 26 - 19
app/services/transfer.py

@@ -7,11 +7,13 @@ import arrow
 import numpy as np
 import pandas as pd
 from httpx import AsyncClient, URL
+from loguru import logger
 
 from app.services.service import Service
 from app.utils.date import get_time_str, TIME_FMT
+from app.core.config import TransferSettings
 
-SERVER = 'http://api.sagacloud.cn'
+transfer_settings = TransferSettings()
 
 
 class Season(str, Enum):
@@ -22,11 +24,17 @@ class Season(str, Enum):
 
 class TransferService(Service):
 
-    def __init__(self, client: AsyncClient, project_id: str, space_id: str) -> None:
+    def __init__(
+            self,
+            client: AsyncClient,
+            project_id: str,
+            space_id: str,
+            settings: TransferSettings = transfer_settings
+    ) -> None:
         super(TransferService, self).__init__(client)
         self._project_id = project_id
         self._space_id = space_id
-        self._base_url = URL(SERVER)
+        self._base_url = URL(settings.transfer_host)
         self._now_time = get_time_str()
 
     def _common_parameters(self) -> Dict:
@@ -42,22 +50,21 @@ class TransferService(Service):
 
         return Season(raw_info.get('data'))
 
-    async def get_env_info(self) -> Tuple[int, pd.DataFrame, Dict]:
-        url = self._base_url.join('duoduo-service/transfer/environment/databyroom')
-        start_time = get_time_str(100 * 60, flag='ago')
-        params = self._common_parameters()
-        params.update(({'startTime': start_time, 'endTime': self._now_time}))
+    async def is_customized(self) -> bool:
+        url = self._base_url.join('duoduo-service/custom-service/custom/timetarget')
+        time_str = arrow.get(arrow.get(self._now_time, TIME_FMT).timestamp // 900 * 900).strftime('%Y%m%d%H%M%S')
+        params = {
+            'projectId': self._project_id,
+            'objectId': self._space_id,
+            'timepoint': time_str,
+        }
         raw_info = await self._get(url, params)
 
-        if raw_info.get('meterdata') and len(raw_info.get('meterdata')) > 1:
-            temp_df = pd.DataFrame(raw_info.get('meterdata'))
-            temp_df = temp_df.rename(columns=temp_df.iloc[0, :]).iloc[1:, :]
-            temp_df['date'] = pd.to_datetime(temp_df['date'])
-            temp_df.set_index('date', inplace=True)
-        else:
-            temp_df = pd.DataFrame()
+        flag = False
+        if raw_info.get('data'):
+            flag = True
 
-        return raw_info.get('flag'), temp_df, raw_info.get('target')
+        return flag
 
     async def is_temporary(self) -> bool:
         url = self._base_url.join('duoduo-service/transfer/environment/temp/target')
@@ -102,7 +109,6 @@ class TransferService(Service):
         raw_info = await self._get(url, params)
 
         custom_target_df = pd.DataFrame(raw_info.get('data'))
-        # custom_target_df['timestamp'] = pd.to_datetime(custom_target_df['date'] + custom_target_df['time'])
         custom_target_df.set_index('time', inplace=True)
 
         return custom_target_df
@@ -110,14 +116,14 @@ class TransferService(Service):
     async def env_database_set(self, form: str, value: float) -> None:
         url = self._base_url.join('duoduo-service/transfer/environment/hispoint/set')
         params = self._common_parameters()
-        time_str = arrow.get(self._now_time, TIME_FMT).date().strftime('%H%M%S')
+        time_str = arrow.get(arrow.get(self._now_time, TIME_FMT).timestamp // 900 * 900).strftime('%Y%m%d%H%M%S')
         params.update({'time': time_str, 'type': form, 'value': value})
         await self._get(url, params)
 
     async def env_database_get(self) -> Dict[str, pd.DataFrame]:
         url = self._base_url.join('duoduo-service/transfer/environment/hispoint/get')
         params = self._common_parameters()
-        params.update({'date': self._now_time})
+        params.update({'date': arrow.get(self._now_time, TIME_FMT).date().strftime('%Y%m%d')})
         raw_info = await self._get(url, params)
 
         result = {}
@@ -138,6 +144,7 @@ class TransferService(Service):
     async def set_custom_target(self, form: str, target_value: Dict[str, List[float]], flag: str = '1') -> None:
         url = self._base_url.join('duoduo-service/transfer/environment/target/setting')
         params = {
+            'projectId': self._project_id,
             'spaceId': self._space_id,
             'timepoint': self._now_time,
             'type': form,

+ 1 - 0
nohup.out

@@ -0,0 +1 @@
+nohup: jupyter: No such file or directory