ck 4 年之前
父節點
當前提交
3799e236f3
共有 2 個文件被更改,包括 20 次插入21 次删除
  1. 12 2
      handlers/HandlerBase.py
  2. 8 19
      handlers/PitcherPanelHandler.py

+ 12 - 2
handlers/HandlerBase.py

@@ -5,6 +5,8 @@ from concurrent.futures import ThreadPoolExecutor
 from tornado.web import RequestHandler
 from model.log import logger
 from model.common import errors
+import time
+import pandas as pd
 log = logger()
 from model.DateUtils import DateUtils
 
@@ -37,8 +39,16 @@ class BaseHandler(RequestHandler,DateUtils):
     def write_json(self, data, status_code=200, msg='success',total=1,total_data={}):
         self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code},'total':total,'data': data,"total_data":total_data}))
 
-
-
+    def write_download(self, filename, data):
+        self.set_header('Content-Type', 'application/octet-stream')
+        self.set_header('Content-Disposition', f'attachment; filename={filename}.csv')
+        self.set_header("Pargam", "no-cache")
+        self.set_header("Cache-Control", "no-cache")
+        df = pd.DataFrame(data).to_csv(encoding='utf-8')
+        # print(df)
+        # with open(f'./{pitcher}_{start}_{end}.csv','w',newline='') as f:
+        #     f.write(df)
+        self.write(df)
 
     def get_args(self):
         di=json.loads(self.request.body.decode())

+ 8 - 19
handlers/PitcherPanelHandler.py

@@ -128,32 +128,21 @@ class ChannelSummary(BaseHandler):
     def post(self):
         arg = self.get_args()
         print(arg)
-        channel=arg.get('channel')
-        pitcher=arg.get('pitcher')
+        channel = arg.get('channel')
+        pitcher = arg.get('pitcher')
         page = arg.get("page")
         page_size = arg.get("page_size")
         location = arg.get('location')
         order_by = arg.get("order_by", 'total_cost')
         order = arg.get("order", 'desc')
-        state=arg.get("state")
-        start=arg.get("start")
-        end=arg.get("end")
-        data,total,total_data=get_channel_summary(channel,pitcher,page,page_size,order_by,order,state,location,start,end)
-        # print(data)
+        state = arg.get("state")
+        start = arg.get("start")
+        end = arg.get("end")
+        data, total, total_data = get_channel_summary(channel,pitcher,page,page_size,order_by,order,state,location,start,end)
         if arg.get("download"):
-            self.set_header('Content-Type', 'application/octet-stream')
-            self.set_header('Content-Disposition', f'attachment; filename=channel_{int(time.time())}.csv')
-            self.set_header("Pargam", "no-cache")
-            self.set_header("Cache-Control", "no-cache")
-            df = pd.DataFrame(data).to_csv(encoding='utf-8')
-            # print(df)
-            # with open(f'./{pitcher}_{start}_{end}.csv','w',newline='') as f:
-            #     f.write(df)
-
-            self.write(df)
-
+            self.write_download("channel_"+str(int(time.time())), data)
         else:
-            self.write_json(data=data,total=total,total_data=total_data)
+            self.write_json(data=data, total=total, total_data=total_data)
 
 class PitcherTrend(BaseHandler):
     def post(self):