ck 4 anos atrás
pai
commit
6fdc1d7f5c

+ 20 - 0
data_manage/public_analysis.py

@@ -371,3 +371,23 @@ def pitcher_overview(start, end, pitcher, page, page_size, order_by, order):
 """
 
     return getLimitSumDataV2(db.dm, sql,sum_sql, page, page_size)
+
+
+
+
+def boss_panel_summary(start,end,pitcher, type, stage, page, page_size, order_by, order):
+    op1 = f" and pitcher='{pitcher}' " if pitcher else ''
+    op2 = f" and dt>='{start}' " if start else ''
+    op3 = f" and dt<='{end}' " if end else ''
+    op4 = f" and type='{type}' " if type else ''
+    op5= f" and stage='{stage}' " if stage else ''
+    op6 = f" order by {order_by} {order}" if order_by and order else 'order by dt desc'
+
+    dm = MysqlUtils().dm
+
+    sql=f"""select sum(order_amount) order_amount,sum(cost) cost,dt from dw_channel 
+    where 1=1 {op1} {op2} {op3} {op4} {op5}
+    GROUP BY dt HAVING order_amount+cost>0 {op6} """
+    # print(sql)
+
+    return getLimitData(dm, sql, page, page_size)

+ 17 - 0
handlers/HandlerBase.py

@@ -16,6 +16,7 @@ class BaseHandler(RequestHandler,DateUtils):
         self._status_code = 200
         self.executor = ThreadPoolExecutor(200)
         self.set_default_headers()
+        self.set_args()
 
     def options(self):
         # 返回方法1
@@ -91,3 +92,19 @@ class BaseHandler(RequestHandler,DateUtils):
             # return True if ur.r.get(key) else False
             return True
 
+    def set_args(self):
+        arg = self.get_args()
+        self.start = arg.get("start")
+        self.end = arg.get("end")
+        self.page = arg.get("page")
+        self.page_size = arg.get("page_size")
+        self.order_by = arg.get("order_by")
+        self.order = arg.get("order")
+        self.pitcher = arg.get("pitcher")
+        self.date_range = arg.get("date_range")
+        self.type = arg.get("type")
+        self.stage = arg.get("stage")
+        self.download = arg.get("download")
+        if self.date_range:
+            self.end = self.get_n_days(0)
+            self.start = self.get_n_days(-int(self.date_range) + 1)

+ 9 - 0
handlers/PublicAnalysisHandler.py

@@ -88,4 +88,13 @@ class PitcherOverview(BaseHandler):
         if arg.get("download"):
             self.write_download('BookOver_'+str(int(time.time())), data)
 
+        self.write_json(data=data, total=total)
+
+
+class BossPanelSummary(BaseHandler):
+    def post(self):
+        data, total = boss_panel_summary(self.start, self.end, self.pitcher, self.type,
+                                         self.stage, self.page, self.page_size, self.order_by, self.order)
+        if self.download:
+            self.write_download(str(int(time.time())), data)
         self.write_json(data=data, total=total)

+ 3 - 0
urls.py

@@ -21,6 +21,9 @@ urls = [
     (r'/data/book/overview', BookOverview),  # 小说总数据
     (r'/data/pitcher/overview', PitcherOverview),  # 投手总数据
 
+    # 整体分析
+    (r'/data/boss_panel/summary', BossPanelSummary),  # 整体概况图
+
 
     # 主动刷新任务
     (r'/task/src_book_info', SrcBookInfo),  # 刷新书籍卡点