From 3188666e40694641e954f3334a28e3bee8cc4b17 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 22 三月 2024 09:08:43 +0800
Subject: [PATCH] bug修复

---
 third_data/data_server.py |  135 +++++++++++++++++++++++++++++---------------
 1 files changed, 88 insertions(+), 47 deletions(-)

diff --git a/third_data/data_server.py b/third_data/data_server.py
index 0b5c2cb..e3f960f 100644
--- a/third_data/data_server.py
+++ b/third_data/data_server.py
@@ -304,6 +304,7 @@
             ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
             code = ps_dict['code']
             name = ps_dict.get('name')
+            date = ps_dict.get('date')
             try:
                 data = code_info_output.get_output_params(code, self.__jingxuan_cache_dict, self.__industry_cache_dict)
                 if data["code_name"].find("None") > -1 and name:
@@ -319,8 +320,23 @@
                 logger_debug.exception(e)
                 logging.exception(e)
 
-            # 鑾峰彇璇勫垎淇℃伅
-            pass
+        elif url.path == "/get_trade_records":
+            # 鑾峰彇鎸傛挙淇℃伅
+            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+            code = ps_dict['code']
+            date = ps_dict.get('date')
+            local_today_datas = log_export.load_l2_from_log(date)
+            total_datas = local_today_datas.get(code)
+            trade_info = code_info_output.load_trade_record(code, total_datas, date)
+            response_data = json.dumps({"code": 0, "data": {"open_limit_up": trade_info[0], "records": trade_info[2]}})
+
+        elif url.path == "/get_l2_cant_buy_reasons":
+            # 鑾峰彇L2娌′拱鐨勫師鍥�
+            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+            code = ps_dict['code']
+            fdatas = log_export.get_l2_cant_buy_reasons(code)
+            response_data = json.dumps({"code": 0, "data": fdatas})
+
         elif url.path == "/get_kpl_block_info":
             start_time = time.time()
             ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
@@ -338,7 +354,14 @@
                 # 鑾峰彇L2鐨勬暟鎹�
                 ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
                 code = ps_dict['code']
-                datas = data_export_util.get_l2_datas(code)
+                date = ps_dict.get('date')
+                logger_debug.info(f"get_l2_datas:{code}  {date}")
+                total_datas = l2_data_util.local_today_datas.get(code)
+                if date:
+                    total_datas = None
+                else:
+                    date = tool.get_now_date_str()
+                datas = data_export_util.get_l2_datas(code, total_datas, date=date)
                 code_name = gpcode_manager.get_code_name(code)
                 response_data = json.dumps({"code": 0, "data": {"code": code, "code_name": code_name, "data": datas}})
             except Exception as e:
@@ -354,10 +377,13 @@
             # 鏈�鏂扮殑l鎾ゆ暟鎹�
             ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
             code = ps_dict['code']
+            date = ps_dict.get('date')
+            if not date:
+                date = tool.get_now_date_str()
             buy_single_index = ps_dict.get('buy_single_index')
             if buy_single_index is not None:
                 buy_single_index = int(buy_single_index)
-            records = code_info_output.load_trade_record_cancel_watch_indexes(code)
+            records = code_info_output.load_trade_record_cancel_watch_indexes(code, date=date)
             # 鑾峰彇鏈�鏂扮殑L涓婁笌L涓�
             records.reverse()
             up_indexes = []
@@ -489,6 +515,36 @@
                     code_info[5] = 1
 
             response_data = json.dumps({"code": 0, "data": codes_info})
+        elif url.path == "/kpl/get_open_limit_up_count_rank":
+            # 鑾峰彇鐐告澘娆℃暟鎺掕
+            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+            code = ps_dict.get("code")
+            results = log_export.load_kpl_open_limit_up()
+            statistic = {}
+            for result in results:
+                for c in result[1]:
+                    if not tool.is_shsz_code(c):
+                        continue
+                    if code and code != c:
+                        continue
+                    if c not in statistic:
+                        statistic[c] = 0
+                    statistic[c] += 1
+            # 鍊掑簭鎺�
+            statistic_list = [(k, statistic[k]) for k in statistic]
+            statistic_list.sort(key=lambda x: x[1], reverse=True)
+            fresults = []
+            limit_up_records = KPLLimitUpDataRecordManager.list_all_cache(tool.get_now_date_str())
+            limit_up_count_dict = {}
+            if limit_up_records:
+                for d in limit_up_records:
+                    limit_up_count_dict[d[3]] = d[12]
+
+            for x in statistic_list:
+                fresults.append((x[0], gpcode_manager.get_code_name(x[0]), x[1],limit_up_count_dict.get(x[0])))
+
+            fresults = fresults[:30]
+            response_data = json.dumps({"code": 0, "data": fresults})
         elif url.path == "/get_h_cancel_data":
             ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
             code = ps_dict["code"]
@@ -528,27 +584,29 @@
                 response_data = json.dumps({"code": 1, "msg": "璇蜂笂浼燾ode"})
 
         elif url.path == "/get_last_trade_day_reasons":
-            try:
-                # 璁$畻骞冲潎娑ㄥ箙
-                def get_limit_rate_list(codes):
-                    if not codes:
-                        return []
-                    need_request_codes = set()
-                    if tool.trade_time_sub(tool.get_now_time_str(), "09:30:00") < 0:
-                        need_request_codes |= set(codes)
-                    else:
-                        now_time = time.time()
-                        for c in codes:
-                            if c not in self.__code_limit_rate_dict:
-                                need_request_codes.add(c)
-                            elif now_time - self.__code_limit_rate_dict[c][1] > 60:
-                                need_request_codes.add(c)
-                    if need_request_codes:
-                        _limit_rate_list = HistoryKDatasUtils.get_codes_limit_rate(list(need_request_codes))
-                        for d in _limit_rate_list:
-                            self.__code_limit_rate_dict[d[0]] = (d[1], time.time())
-                    return [(c_, self.__code_limit_rate_dict[c_][0]) for c_ in codes]
 
+            # 璁$畻骞冲潎娑ㄥ箙
+            def get_limit_rate_list(codes):
+                if not codes:
+                    return []
+                need_request_codes = set()
+                if tool.trade_time_sub(tool.get_now_time_str(), "09:30:00") < 0:
+                    need_request_codes |= set(codes)
+                else:
+                    now_time = time.time()
+                    for c in codes:
+                        if c not in self.__code_limit_rate_dict:
+                            need_request_codes.add(c)
+                        elif now_time - self.__code_limit_rate_dict[c][1] > 60:
+                            need_request_codes.add(c)
+                if need_request_codes:
+                    _limit_rate_list = HistoryKDatasUtils.get_codes_limit_rate(list(need_request_codes))
+                    for d in _limit_rate_list:
+                        self.__code_limit_rate_dict[d[0]] = (d[1], time.time())
+                return [(c_, self.__code_limit_rate_dict[c_][0]) for c_ in codes]
+
+            try:
+                raise Exception("鎺ュ彛鏆傚仠浣跨敤")
                 # 鑾峰彇涓婁釜浜ゆ槗鏃ョ殑鐩稿悓娑ㄥ仠鍘熷洜鐨勪唬鐮佷俊鎭�
                 ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
                 code = ps_dict["code"]
@@ -601,11 +659,11 @@
                     response_data = json.dumps({"code": 0, "data": {"reason": reason, "reason_rate": percent_rate,
                                                                     "data": {"yesterday": yesterday_result_list,
                                                                              "current": current_result_list}}})
+                else:
+                    response_data = json.dumps({"code": 1, "msg": "鏄ㄦ棩鏈定鍋�"})
             except Exception as e:
                 logger_debug.exception(e)
                 raise e
-            else:
-                response_data = json.dumps({"code": 1, "msg": "鏄ㄦ棩鏈定鍋�"})
 
         elif url.path == "/pull_kp_client_msg":
             # 鎷夊彇瀹㈡埛绔秷鎭�
@@ -795,25 +853,8 @@
 
 
 if __name__ == "__main__":
-    code = "002676"
-    buy_single_index = 716
-    records = code_info_output.load_trade_record_cancel_watch_indexes(code)
-    # 鑾峰彇鏈�鏂扮殑L涓婁笌L涓�
-    records.reverse()
-    up_indexes = []
-    down_indexes = []
-    for r in records:
-        if buy_single_index and buy_single_index != r[1]:
-            continue
-        if r[0] == trade_record_log_util.CancelWatchIndexesInfo.CANCEL_TYPE_L_UP:
-            up_indexes = r[2]
-            break
-    for r in records:
-        if buy_single_index and buy_single_index != r[1]:
-            continue
-        if r[0] == trade_record_log_util.CancelWatchIndexesInfo.CANCEL_TYPE_L_DOWN:
-            down_indexes = r[2]
-            break
+    code = "600822"
+    records = code_info_output.load_trade_record_cancel_watch_indexes(code, date="2024-03-12")
 
-    response_data = json.dumps(
-        {"code": 0, "data": {"up": up_indexes, "down": down_indexes}})
+    # data = code_info_output.get_output_params(code, self.__jingxuan_cache_dict, self.__industry_cache_dict,
+    #                                           trade_record_date=date)

--
Gitblit v1.8.0