From ae8d76a456b64c1c6c4ebf11b6ec33b7df217b1a Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 18 八月 2025 13:43:46 +0800 Subject: [PATCH] bug修复 --- third_data/kpl_util.py | 95 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 93 insertions(+), 2 deletions(-) diff --git a/third_data/kpl_util.py b/third_data/kpl_util.py index eec6a68..0ecdf06 100644 --- a/third_data/kpl_util.py +++ b/third_data/kpl_util.py @@ -1,6 +1,8 @@ import enum import json +from db import mysql_data_delegate as mysql_data + def parse_kpl_datas(results): start_y = -1 @@ -63,12 +65,14 @@ FENG_XIANG = "feng_xiang" INDUSTRY_RANK = "industry_rank" JINGXUAN_RANK = "jingxuan_rank" - + JINGXUAN_RANK_OUT = "jingxuan_rank_out" + MARKET_STRONG = "market_strong" def __parseDaBanItemData(data, type): if type == DABAN_TYPE_BIDDING: return data[0], data[1], data[18], data[11], data[22], data[15] elif type == DABAN_TYPE_LIMIT_UP: + # (浠g爜, 鍚嶇О, 棣栨娑ㄥ仠鏃堕棿, 鏈�杩戞定鍋滄椂闂�, 鍑犳澘, 娑ㄥ仠鍘熷洜, 鏉垮潡, 瀹為檯娴侀��, 涓诲姏鍑�棰�, 娑ㄥ仠鍘熷洜浠g爜, 娑ㄥ仠鍘熷洜浠g爜鏁伴噺) return data[0], data[1], data[6], data[25], data[9], data[16], data[11], data[15], data[12], data[26], data[27] elif type == DABAN_TYPE_OPEN_LIMIT_UP: return data[0], data[1], data[4], data[11], data[15] @@ -76,8 +80,12 @@ return data[0], data[1], data[11], data[15] elif type == DABAN_TYPE_EVER_LIMIT_DOWN: return data[0], data[1], data[4], data[11], data[15] - return None + + +def __parseLimitUpItemData(data): + # (浠g爜, 鍚嶇О, 棣栨娑ㄥ仠鏃堕棿, 鏈�杩戞定鍋滄椂闂�, 鍑犳澘, 娑ㄥ仠鍘熷洜, 鏉垮潡, 瀹為檯娴侀��, 涓诲姏鍑�棰�, 娑ㄥ仠鍘熷洜浠g爜, 娑ㄥ仠鍘熷洜浠g爜鏁伴噺) + return data[0], data[1], data[4], data[4], data[18], data[5], data[12], data[13], data[8], data[19], data[20] # 鏈�寮洪鍙� @@ -116,6 +124,20 @@ if pdata: fresult_.append(pdata) return fresult_ + + +def parseLimitUpData(data): + if type(data) == str: + data = json.loads(data) + if int(data["errcode"]) != 0: + raise Exception(f"瑙f瀽鏁版嵁鍑洪敊锛宔rrcode锛歿data['errcode']}") + list_ = data["list"] + fresult_ = [] + for d in list_: + pdata = __parseLimitUpItemData(d) + if pdata: + fresult_.append(pdata) + return fresult_, data.get("day") def parseFengKou(data): @@ -233,3 +255,72 @@ # (浠g爜,鍚嶇О,寮哄害,涓诲姏鍑�棰�) fresult_.append((d[0], d[1], d[2], d[6])) return fresult_ + + +class KPLPlatManager: + def save_plat(self, _id, name): + if not _id: + return + mysqldb = mysql_data.Mysqldb() + key = f"{_id}-{name}" + results = mysqldb.select_one(f"select * from kpl_plate where _name='{name}'") + if not results: + mysqldb.execute(f"insert into kpl_plate(_id,_name,_key) values({_id},'{name}','{key}')") + + def get_plat(self, name): + mysqldb = mysql_data.Mysqldb() + results = mysqldb.select_one(f"select * from kpl_plate where _name='{name}'") + if results: + return results[0] + return None + + def get_same_plat_names(self, name): + mysqldb = mysql_data.Mysqldb() + plate = self.get_plat(name) + if not plate: + return {name} + results = mysqldb.select_all(f"select _name from kpl_plate where _id='{plate}'") + return set([r[0] for r in results]) + + def get_same_plat_names_by_id(self, id_): + mysqldb = mysql_data.Mysqldb() + results = mysqldb.select_all(f"select _name from kpl_plate where _id='{id_}'") + return set([r[0] for r in results]) + + +# 鑾峰彇楂樹綅鏉跨殑鏁伴噺 +def get_high_level_count(key): + if key.find("杩炴澘") >= 0: + # 褰㈠紡濡�: 3杩炴澘 + return int(key.replace("杩炴澘", "")) + elif key.find("澶�") >= 0 and key.find("鏉�") >= 0: + # 褰㈠紡濡傦細5澶�4鏉� + return int(key.split("澶�")[1].replace("鏉�", "")) + # 褰㈠紡濡傦細棣栨澘 + return 1 + + +# 鑾峰彇瀹炴椂娑ㄥ仠鍒楄〃涓殑娑ㄥ仠鍘熷洜 +def get_current_limit_up_reasons(item) -> set: + b = {item[5]} + if item[6]: + b |= set(item[6].split("銆�")) + return b + + +# 鑾峰彇鐩墠鐨勬定鍋滃師鍥� +def get_current_limit_up_reason(item) -> str: + return item[5] + + +def filter_block(block): + if not block: + return block + return block.replace("姒傚康", "") + + +if __name__ == "__main__": + print(get_high_level_count("棣栨澘")) + print(get_high_level_count("5澶�4鏉�")) + print(get_high_level_count("2杩炴澘")) + print(get_high_level_count("4杩炴澘")) -- Gitblit v1.8.0