From 520af08aa035352ded96a43d7fbf946fd3319a62 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 27 十二月 2023 18:04:46 +0800
Subject: [PATCH] 输出api修改

---
 third_data/data_server.py |  140 ++++++++++++++++++++++++----------------------
 1 files changed, 72 insertions(+), 68 deletions(-)

diff --git a/third_data/data_server.py b/third_data/data_server.py
index f9ca98b..cd80e3d 100644
--- a/third_data/data_server.py
+++ b/third_data/data_server.py
@@ -517,78 +517,82 @@
                 response_data = json.dumps({"code": 1, "msg": "璇蜂笂浼燾ode"})
 
         elif url.path == "/get_last_trade_day_reasons":
-            # 璁$畻骞冲潎娑ㄥ箙
-            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:
+                # 璁$畻骞冲潎娑ㄥ箙
+                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]
 
-            # 鑾峰彇涓婁釜浜ゆ槗鏃ョ殑鐩稿悓娑ㄥ仠鍘熷洜鐨勪唬鐮佷俊鎭�
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict["code"]
-            # 鑾峰彇鏄ㄦ棩娑ㄥ仠鏁版嵁
-            day = HistoryKDatasUtils.get_previous_trading_date_cache(tool.get_now_date_str())
+                # 鑾峰彇涓婁釜浜ゆ槗鏃ョ殑鐩稿悓娑ㄥ仠鍘熷洜鐨勪唬鐮佷俊鎭�
+                ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+                code = ps_dict["code"]
+                # 鑾峰彇鏄ㄦ棩娑ㄥ仠鏁版嵁
+                day = HistoryKDatasUtils.get_previous_trading_date_cache(tool.get_now_date_str())
 
-            limit_up_records = kpl_data_manager.KPLLimitUpDataRecordManager.list_all_cache(day)
-            reasons = []
-            for d in limit_up_records:
-                if d[3] == code:
-                    reasons.append(d)
-            # 鑾峰彇浠g爜鐨勫師鍥�
-            if reasons:
-                reasons = list(reasons)
-                reasons.sort(key=lambda x: x[9])
-                reason = reasons[-1][2]
-                # 鑾峰彇娑ㄥ仠鏁版嵁
-                datas = self.__kplDataManager.get_from_file_cache(kpl_util.KPLDataType.LIMIT_UP, day)
-                # (浠g爜,鍚嶇О,棣栨娑ㄥ仠鏃堕棿,鏈�杩戞定鍋滄椂闂�,鍑犳澘,娑ㄥ仠鍘熷洜,鏉垮潡,瀹為檯娴侀��,涓诲姏鍑�棰�,娑ㄥ仠鍘熷洜浠g爜,娑ㄥ仠鍘熷洜浠g爜鏁伴噺)
-                yesterday_result_list = []
-                percent_rate = 0
-                if datas:
-                    yesterday_codes = set()
-                    for d in datas:
-                        if d[5] == reason:
-                            yesterday_codes.add(d[0])
-                    # 鑾峰彇娑ㄥ箙
-                    limit_rate_list = get_limit_rate_list(yesterday_codes)
-                    limit_rate_dict = {}
-                    if limit_rate_list:
-                        total_rate = 0
-                        for d in limit_rate_list:
-                            limit_rate_dict[d[0]] = d[1]
-                            total_rate += d[1]
-                        percent_rate = round(total_rate / len(limit_rate_list), 2)
+                limit_up_records = kpl_data_manager.KPLLimitUpDataRecordManager.list_all_cache(day)
+                reasons = []
+                for d in limit_up_records:
+                    if d[3] == code:
+                        reasons.append(d)
+                # 鑾峰彇浠g爜鐨勫師鍥�
+                if reasons:
+                    reasons = list(reasons)
+                    reasons.sort(key=lambda x: x[9])
+                    reason = reasons[-1][2]
+                    # 鑾峰彇娑ㄥ仠鏁版嵁
+                    datas = self.__kplDataManager.get_from_file_cache(kpl_util.KPLDataType.LIMIT_UP, day)
+                    # (浠g爜,鍚嶇О,棣栨娑ㄥ仠鏃堕棿,鏈�杩戞定鍋滄椂闂�,鍑犳澘,娑ㄥ仠鍘熷洜,鏉垮潡,瀹為檯娴侀��,涓诲姏鍑�棰�,娑ㄥ仠鍘熷洜浠g爜,娑ㄥ仠鍘熷洜浠g爜鏁伴噺)
+                    yesterday_result_list = []
+                    percent_rate = 0
+                    if datas:
+                        yesterday_codes = set()
+                        for d in datas:
+                            if d[5] == reason:
+                                yesterday_codes.add(d[0])
+                        # 鑾峰彇娑ㄥ箙
+                        limit_rate_list = get_limit_rate_list(yesterday_codes)
+                        limit_rate_dict = {}
+                        if limit_rate_list:
+                            total_rate = 0
+                            for d in limit_rate_list:
+                                limit_rate_dict[d[0]] = d[1]
+                                total_rate += d[1]
+                            percent_rate = round(total_rate / len(limit_rate_list), 2)
 
-                    for d in datas:
-                        if d[5] == reason:
-                            yesterday_codes.add(d[0])
-                            if d[0] != code:
-                                # (浠g爜,鍚嶇О, 娑ㄥ箙)
-                                yesterday_result_list.append((d[0], d[1], limit_rate_dict.get(d[0])))
+                        for d in datas:
+                            if d[5] == reason:
+                                yesterday_codes.add(d[0])
+                                if d[0] != code:
+                                    # (浠g爜,鍚嶇О, 娑ㄥ箙)
+                                    yesterday_result_list.append((d[0], d[1], limit_rate_dict.get(d[0])))
 
-                current_limit_up_list = kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas
-                current_result_list = []
-                if current_limit_up_list:
-                    for c in current_limit_up_list:
-                        if c[5] == reason and c[0] != code:
-                            current_result_list.append((c[0], c[1]))
-                response_data = json.dumps({"code": 0, "data": {"reason": reason, "reason_rate": percent_rate,
-                                                                "data": {"yesterday": yesterday_result_list,
-                                                                         "current": current_result_list}}})
+                    current_limit_up_list = kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas
+                    current_result_list = []
+                    if current_limit_up_list:
+                        for c in current_limit_up_list:
+                            if c[5] == reason and c[0] != code:
+                                current_result_list.append((c[0], c[1]))
+                    response_data = json.dumps({"code": 0, "data": {"reason": reason, "reason_rate": percent_rate,
+                                                                    "data": {"yesterday": yesterday_result_list,
+                                                                             "current": current_result_list}}})
+            except Exception as e:
+                logger_debug.exception(e)
+                raise e
             else:
                 response_data = json.dumps({"code": 1, "msg": "鏄ㄦ棩鏈定鍋�"})
 

--
Gitblit v1.8.0