|
@@ -188,14 +188,41 @@ class SpaceInfoService(Service):
|
|
|
return result
|
|
|
|
|
|
|
|
|
-class EquipmentInfoService(Service):
|
|
|
+class Duoduo(Service):
|
|
|
|
|
|
def __init__(self, client: AsyncClient, project_id: str, server_settings=settings):
|
|
|
- super(EquipmentInfoService, self).__init__(client)
|
|
|
+ super(Duoduo, self).__init__(client)
|
|
|
self._project_id = project_id
|
|
|
self._base_url = URL(server_settings.TRANSFER_HOST)
|
|
|
self._now_time = get_time_str()
|
|
|
|
|
|
+ async def get_fill_rate(self):
|
|
|
+ url = self._base_url.join('duoduo-service/review-service/space/report/quarter/query')
|
|
|
+ payload = {
|
|
|
+ 'criteria': {
|
|
|
+ 'projectId': self._project_id,
|
|
|
+ 'date': arrow.get(self._now_time, TIME_FMT).date().strftime('%Y%m%d')
|
|
|
+ },
|
|
|
+ 'orders': [
|
|
|
+ {
|
|
|
+ 'column': 'time',
|
|
|
+ 'asc': False
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ 'page': 1,
|
|
|
+ 'size': 1
|
|
|
+ }
|
|
|
+
|
|
|
+ raw_info = await self._post(url, payload=payload)
|
|
|
+ try:
|
|
|
+ content = raw_info.get('content')[-1]
|
|
|
+ hot_rate = (content.get('hotNum')
|
|
|
+ / (content.get('normalNum') + content.get('hotNum') + content.get('coldNum')))
|
|
|
+ except KeyError and ZeroDivisionError:
|
|
|
+ hot_rate = 0.0
|
|
|
+
|
|
|
+ return hot_rate
|
|
|
+
|
|
|
async def get_space_by_equipment(self, equipment_id: str) -> List[dict]:
|
|
|
url = self._base_url.join('duoduo-service/object-service/object/space/findForServe')
|
|
|
params = {
|
|
@@ -225,38 +252,17 @@ class EquipmentInfoService(Service):
|
|
|
|
|
|
return system_list
|
|
|
|
|
|
-
|
|
|
-class ReviewService(Service):
|
|
|
-
|
|
|
- def __init__(self, client: AsyncClient, project_id: str, server_settings=settings):
|
|
|
- super(ReviewService, self).__init__(client)
|
|
|
- self._project_id = project_id
|
|
|
- self._base_url = URL(server_settings.TRANSFER_HOST)
|
|
|
- self._now_time = get_time_str()
|
|
|
-
|
|
|
- async def get_fill_rate(self):
|
|
|
- url = self._base_url.join('duoduo-service/review-service/space/report/quarter/query')
|
|
|
- payload = {
|
|
|
- 'criteria': {
|
|
|
- 'projectId': self._project_id,
|
|
|
- 'date': arrow.get(self._now_time, TIME_FMT).date().strftime('%Y%m%d')
|
|
|
- },
|
|
|
- 'orders': [
|
|
|
- {
|
|
|
- 'column': 'time',
|
|
|
- 'asc': False
|
|
|
- }
|
|
|
- ],
|
|
|
- 'page': 1,
|
|
|
- 'size': 1
|
|
|
+ async def get_day_type(self) -> Dict:
|
|
|
+ url = self._base_url.join('duoduo-service/custom-service/custom/getDateInfo')
|
|
|
+ params = {
|
|
|
+ 'projectId': self._project_id,
|
|
|
+ 'date': arrow.get(self._now_time, TIME_FMT).date().strftime('%Y%m%d')
|
|
|
}
|
|
|
+ raw_info = await self._get(url, params)
|
|
|
|
|
|
- raw_info = await self._post(url, payload=payload)
|
|
|
- try:
|
|
|
- content = raw_info.get('content')[-1]
|
|
|
- hot_rate = (content.get('hotNum')
|
|
|
- / (content.get('normalNum') + content.get('hotNum') + content.get('coldNum')))
|
|
|
- except KeyError and ZeroDivisionError:
|
|
|
- hot_rate = 0.0
|
|
|
+ result = {
|
|
|
+ 'day_type': raw_info.get('dayType'),
|
|
|
+ 'season': raw_info.get('seasonType')
|
|
|
+ }
|
|
|
|
|
|
- return hot_rate
|
|
|
+ return result
|