1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- """
- @author: luojunhui
- """
- class RequestDeal(object):
- """
- Deal Request from outside
- """
- def __init__(self, params, mysql_client):
- self.start_dt = params['start_date']
- self.end_dt = params['end_date']
- self.cate = params['cate']
- self.topN = params['topN'] if params.get("topN") else 1
- self.mysql_client = mysql_client
- def response_obj(self, data_list):
- """
- 处理 return 信息
- :param data_list:
- :return:
- """
- result_list = [
- {
- "video_id": obj[0],
- "title": obj[1],
- "video_url": obj[2]
- } for obj in data_list
- ]
- response = {
- "status": "success",
- "cate": self.cate,
- "start_date": self.start_dt,
- "end_dt": self.end_dt,
- "topN": self.topN,
- "data": result_list
- }
- return response
- async def deal(self):
- """
- deal function
- :return:
- """
- if self.cate == "video_return":
- return await self.deal_return()
- elif self.cate == "video_view":
- return await self.deal_view()
- elif self.cate == "video_rov":
- return await self.deal_rov()
- else:
- return {"error": "params is not correct"}
- async def deal_return(self):
- """
- return
- :return:
- """
- sql = f"""
- select video_id, title, video_url
- from top_return_daily
- where dt >= '{self.start_dt}' and dt < '{self.end_dt}'
- order by return_ DESC
- limit {self.topN}
- """
- result_list = await self.mysql_client.select(sql)
- return self.response_obj(result_list)
- async def deal_view(self):
- """
- view
- :return:
- """
- sql = f"""
- select video_id, title, video_url
- from top_return_daily
- where dt >= '{self.start_dt}' and dt < '{self.end_dt}'
- order by view_ DESC
- limit {self.topN}
- """
- result_list = await self.mysql_client.select(sql)
- return self.response_obj(result_list)
- async def deal_rov(self):
- """
- rov
- :return:
- """
- sql = f"""
- select video_id, title, video_url
- from top_return_daily
- where dt >= '{self.start_dt}' and dt < '{self.end_dt}'
- order by rov DESC
- limit {self.topN}
- """
- result_list = await self.mysql_client.select(sql)
- return self.response_obj(result_list)
|