From c8d828e625fa5b3ae6232666ac2c0e5f51a62c54 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 18 八月 2025 15:02:56 +0800 Subject: [PATCH] 13:01之前下单规则修改/接口修改/自动加想策略修改 --- third_data/third_blocks_manager.py | 74 ++++++++++++++++++++++++++++++++---- 1 files changed, 65 insertions(+), 9 deletions(-) diff --git a/third_data/third_blocks_manager.py b/third_data/third_blocks_manager.py index 19cc4da..456988f 100644 --- a/third_data/third_blocks_manager.py +++ b/third_data/third_blocks_manager.py @@ -208,17 +208,62 @@ if blocks is None or len(blocks) == 0: return set() fbs = set() + invalid_blocks = InvalidBlockManager().get_invalid_blocks() for block in blocks: if block.endswith("姒傚康"): block = block[:-2] - # b = self.get_map_blocks_cache(block) - # if b: - # fbs |= b + b = self.get_map_blocks_cache(block) + if b: + fbs |= b + if block in invalid_blocks: + continue fbs.add(block) return fbs def get_all_blocks(self): return self.__block_map.keys() + + +class InvalidBlockManager: + """ + 鏃犳晥鏉垮潡绠$悊 + """ + __mysql = Mysqldb() + __instance = None + __block = set() + + def __new__(cls, *args, **kwargs): + if not cls.__instance: + cls.__instance = super(InvalidBlockManager, cls).__new__(cls, *args, **kwargs) + cls.__load_data() + return cls.__instance + + @classmethod + def __load_data(cls): + results = cls.__mysql.select_all("select _block from invalid_block") + cls.__block.clear() + for result in results: + if result[0]: + cls.__block.add(result[0]) + + def get_invalid_blocks(self): + """ + 鑾峰彇鏃犳晥鐨勬澘鍧� + @return: + """ + return self.__block + + def set_incalid_blocks(self, blocks): + """ + 璁剧疆鏃犳晥鐨勬澘鍧� + @param blocks: + @return: + """ + # 鍏堝垹闄ゆ墍鏈夛紝鐒跺悗鍐嶆坊鍔� + self.__mysql.execute("delete from invalid_block") + for b in blocks: + self.__mysql.execute(f"insert into invalid_block(_block) values('{b}')") + self.__block = set(blocks) def load_if_less(codes): @@ -242,10 +287,21 @@ pass +def __add_invlaid_blocks(): + blocks_str = """ + 鏄ㄦ棩杩炴澘 + 鏄ㄦ棩杩炴澘_鍚竴瀛� + 鏄ㄦ棩娑ㄥ仠 + 鏄ㄦ棩娑ㄥ仠_鍚竴瀛� + """ + blocks = set() + for x in blocks_str.split("\n"): + if x.strip(): + blocks.add(x.strip()) + print(len(blocks)) + InvalidBlockManager().set_incalid_blocks(blocks) + + if __name__ == '__main__': - code = "000761" - try: - blocks = middle_api_protocol.request(middle_api_protocol.get_third_blocks(code, 4)) - print(blocks) - except Exception as e: - print(e) + pass + -- Gitblit v1.8.0