From b9dcb0b8ef3501395d4a2624c2adcf09d725e09c Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 31 七月 2023 16:08:59 +0800
Subject: [PATCH] 增加些实时参数的缓存

---
 server.py |  191 -----------------------------------------------
 1 files changed, 2 insertions(+), 189 deletions(-)

diff --git a/server.py b/server.py
index ea01df5..fa44666 100644
--- a/server.py
+++ b/server.py
@@ -12,7 +12,7 @@
 
 from utils import alert_util, data_process, global_util, ths_industry_util, tool, import_util, socket_util
 from code_attribute import code_volumn_manager, code_nature_analyse, global_data_loader, gpcode_manager, \
-    gpcode_first_screen_manager
+    gpcode_first_screen_manager, first_target_code_data_processor
 import constant
 from user import authority
 import inited_data
@@ -275,197 +275,10 @@
                             raise Exception('鏈埌鎺ュ彈鏃堕棿')
                         # 棣栨澘浠g爜
                         dataList, is_add = data_process.parseGPCode(_str)
-                        print("棣栨澘浠g爜鏁伴噺锛�", len(dataList))
-                        limit_up_price_dict = {}
-                        temp_codes = []
-                        codes = []
-                        tick_datas = []
-                        if dataList:
-                            for data in dataList:
-                                code = data["code"]
-                                codes.append(code)
-
-                        # ---鏌ヨ鎯充拱鍗曪紝濡傛灉娌℃湁鍦ㄥ垪琛ㄤ腑灏遍渶瑕佸己琛屽姞鍏ュ垪琛�
-                        want_codes = gpcode_manager.WantBuyCodesManager.list_code()
-                        if want_codes:
-                            # 娌℃湁鍦ㄧ幇浠烽噰闆嗕腑鐨勬兂涔颁唬鐮�
-                            diff_codes = set(want_codes) - set(codes)
-                            if diff_codes:
-                                zyltgb_list = []
-                                for code in diff_codes:
-                                    # 鏌ヨ鏄惁鍦↙2鐜颁环涓�
-                                    if code in self.__l2_current_price_data:
-                                        item = self.__l2_current_price_data.get(code)
-                                        codes.append(code)
-                                        dataList.append(item)
-                                        # 淇濆瓨鑷敱娴侀�氳偂鏈�
-                                        zyltgb_list.append(
-                                            {"code": code, "zyltgb": item["zyltgb"], "zyltgb_unit": item["zyltgbUnit"]})
-                                    else:
-                                        # 鑾峰彇娑ㄥ仠浠�
-                                        _limit_up_price = gpcode_manager.get_limit_up_price(code)
-                                        if not _limit_up_price:
-                                            inited_data.re_set_price_pres([code], True)
-                                            # 鍐嶆鑾峰彇娑ㄥ仠浠�
-                                            _limit_up_price = gpcode_manager.get_limit_up_price(code)
-                                        if _limit_up_price:
-                                            # 鎴愬姛鑾峰彇鍒颁簡娑ㄥ仠浠凤紝鏋勯�犺櫄鎷熺殑鐜颁环淇℃伅
-                                            codes.append(code)
-                                            dataList.append({"code": code, "price": f"{_limit_up_price}", "volume": "0",
-                                                             "volumeUnit": 0, "time": "00:00:00", "zyltgb": "100",
-                                                             "zyltgbUnit": 0})
-                                # 寮哄埗鏇存柊鑷敱娴侀�氳偂鏈�
-                                if zyltgb_list:
-                                    ZYLTGBUtil.save_list(zyltgb_list)
-                                    # 灏嗕繚瀛樼殑鏁版嵁鏇存柊鍒板唴瀛樹腑
-                                    for z in zyltgb_list:
-                                        val = ZYLTGBUtil.get(z["code"])
-                                        if val:
-                                            global_util.zyltgb_map[z["code"]] = val
-
-                        # ---淇濆瓨鏈瓫閫夌殑棣栨澘浠g爜
-                        new_add_codes = gpcode_first_screen_manager.set_target_no_screen_codes(codes)
-                        # 淇濆瓨鑷敱娴侀�氳偂鏈�
-                        if dataList:
-                            zyltgb_list = []
-                            for data in dataList:
-                                code = data["code"]
-                                if code in global_util.zyltgb_map:
-                                    continue
-                                zyltgb_list.append(
-                                    {"code": code, "zyltgb": data["zyltgb"], "zyltgb_unit": data["zyltgbUnit"]})
-                            if zyltgb_list:
-                                ZYLTGBUtil.save_list(zyltgb_list)
-                                global_data_loader.load_zyltgb()
-
-                        bad_codes = set()
-
-                        # 鑾峰彇鏄ㄦ棩鏀剁洏浠�
-                        for code in codes:
-                            # 濡傛灉娑ㄥ仠浠锋槸绌哄�煎氨闇�瑕佽缃槰鏃ユ敹鐩樹环鏍�
-                            if gpcode_manager.get_limit_up_price(code) is None:
-                                inited_data.re_set_price_pres([code], True)
-
-                        # 鏉垮潡鍏抽敭瀛楀噯澶�
-                        for code in codes:
-                            if self.__CodesPlateKeysManager.get_history_limit_up_reason(code) is None:
-                                self.__CodesPlateKeysManager.set_history_limit_up_reason(code,
-                                                                                         KPLLimitUpDataRecordManager.get_latest_blocks_set(
-                                                                                             code))
-                            if self.__CodesPlateKeysManager.get_blocks(code) is None:
-                                try:
-                                    results = kpl_api.getStockIDPlate(code)
-                                    bs = [r[1] for r in results]
-                                    self.__CodesPlateKeysManager.set_blocks(code, bs)
-                                except Exception as e:
-                                    logging.exception(e)
-                                    pass
-
-                        # 鑾峰彇60澶╂渶澶ц褰�
-                        for code in codes:
-                            need_get_volumn = False
-                            if code not in global_util.max60_volumn or global_util.max60_volumn.get(code) is None:
-                                need_get_volumn = True
-                            if not need_get_volumn and code_nature_analyse.CodeNatureRecordManager.get_nature(
-                                    code) is None:
-                                need_get_volumn = True
-                            if need_get_volumn:
-                                volumes_data = inited_data.get_volumns_by_code(code, 150)
-                                volumes = inited_data.parse_max_volume(volumes_data[:90],
-                                                                       code_nature_analyse.is_new_top(
-                                                                           gpcode_manager.get_limit_up_price(code),
-                                                                           volumes_data[:90]))
-                                logger_first_code_record.info("{} 鑾峰彇鍒伴鏉�60澶╂渶澶ч噺锛歿}", code, volumes)
-                                code_volumn_manager.set_histry_volumn(code, volumes[0], volumes[1], volumes[2])
-                                # 鍒ゆ柇K绾垮舰鎬�
-                                is_has_k_format, msg = code_nature_analyse.is_has_k_format(
-                                    gpcode_manager.get_limit_up_price(code), volumes_data)
-                                if not is_has_k_format:
-                                    logger_first_code_record.info("{}棣栨澘K绾垮舰鎬佷笉濂�,{}", code, msg)
-                                    # 鑲℃�т笉濂斤紝灏变笉瑕佸姞鍏�
-                                    bad_codes.add(code)
-                                    # 鍔犲叆绂佹浜ゆ槗浠g爜
-                                    l2_trade_util.forbidden_trade(code)
-                                code_nature_analyse.set_record_datas(code,
-                                                                     gpcode_manager.get_limit_up_price(code),
-                                                                     volumes_data)
-                        gpcode_manager.FirstCodeManager.add_record(codes)
-                        # 鍒濆鍖栨澘鍧椾俊鎭�
-                        for code in codes:
-                            block_info.init_code(code)
-
-                        if new_add_codes:
-                            gpcode_manager.set_first_gp_codes_with_data(HistoryKDatasUtils.get_gp_latest_info(codes,
-                                                                                                              fields="symbol,sec_name,sec_type,sec_level"))
-                            # 鍔犲叆棣栨澘鍘嗗彶璁板綍
-
-                            logger_first_code_record.info("鏂板棣栨澘锛歿}", new_add_codes)
-
-                            # 绉婚櫎浠g爜
-                            listen_codes = gpcode_manager.get_listen_codes()
-                            for lc in listen_codes:
-                                if not gpcode_manager.is_in_gp_pool(lc):
-                                    # 绉婚櫎浠g爜
-                                    l2_code_operate.L2CodeOperate.get_instance().add_operate(0, lc, "浠g爜琚Щ闄�")
-
-                        # 淇濆瓨鐜颁环
-                        if dataList:
-                            for data in dataList:
-                                code = data["code"]
-                                codes.append(code)
-                                limit_up_price = gpcode_manager.get_limit_up_price(code)
-                                if limit_up_price is not None:
-                                    limit_up_price_dict[code] = limit_up_price
-                                else:
-                                    temp_codes.append(code)
-                                tick_datas.append({"code": code, "price": data["price"], "volume": data["volume"],
-                                                   "volumeUnit": data["volumeUnit"]})
-                        # 鑾峰彇娑ㄥ仠浠�
-                        if temp_codes:
-                            # 鑾峰彇娑ㄥ仠浠�
-                            inited_data.re_set_price_pres(temp_codes)
-                            # 閲嶆柊鑾峰彇娑ㄥ仠浠�
-                            for code in temp_codes:
-                                limit_up_price = gpcode_manager.get_limit_up_price(code)
-                                if limit_up_price is not None:
-                                    limit_up_price_dict[code] = limit_up_price
+                        tick_datas =  first_target_code_data_processor.process_first_codes_datas(dataList)
                         # 淇濆瓨鐜颁环
                         self.first_tick_datas.clear()
                         self.first_tick_datas.extend(tick_datas)
-
-                        # 棣栨澘鏁版嵁鍔犲伐
-                        prices = []
-                        for data in dataList:
-                            code = data["code"]
-                            price = data["price"]
-                            limit_up_time = data["time"]
-                            if limit_up_time == "00:00:00":
-                                limit_up_time = None
-                            if code not in limit_up_price_dict:
-                                continue
-                            is_limit_up = abs(float(limit_up_price_dict[code]) - float(price)) < 0.01
-                            # 绾犳鏁版嵁
-                            if is_limit_up and limit_up_time is None:
-                                limit_up_time = tool.get_now_time_str()
-                            if is_limit_up:
-                                # 鍔犲叆棣栨澘娑ㄥ仠
-                                gpcode_manager.FirstCodeManager.add_limited_up_record([code])
-                            pricePre = gpcode_manager.get_price_pre(code)
-                            if pricePre is None:
-                                inited_data.re_set_price_pres([code])
-
-                            rate = round((float(price) - pricePre) * 100 / pricePre, 1)
-                            prices.append(
-                                {"code": code, "time": limit_up_time, "rate": rate,
-                                 "limit_up": is_limit_up})
-                            if code in new_add_codes:
-                                if is_limit_up:
-                                    place_order_count = trade_data_manager.placeordercountmanager.get_place_order_count(
-                                        code)
-                                    if place_order_count == 0:
-                                        trade_data_manager.placeordercountmanager.place_order(code)
-
-                        gpcode_first_screen_manager.process_ticks(prices)
                     except Exception as e:
                         logging.exception(e)
                     finally:

--
Gitblit v1.8.0