From fb47d36048e94b9a506d5c153e3dd19a01e37df1 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期一, 30 十月 2023 16:30:27 +0800 Subject: [PATCH] bug修复 --- third_data/kpl_util.py | 243 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 243 insertions(+), 0 deletions(-) diff --git a/third_data/kpl_util.py b/third_data/kpl_util.py index 466f985..cb0aa04 100644 --- a/third_data/kpl_util.py +++ b/third_data/kpl_util.py @@ -1,3 +1,9 @@ +import enum +import json + +from db import mysql_data_delegate as mysql_data + + def parse_kpl_datas(results): start_y = -1 end_x = -1 @@ -23,3 +29,240 @@ fdatas.append((temp[2][:6], temp[1])) temp = [] return fdatas + + +# 娑ㄥ仠浠g爜锛� +# (浠g爜,鍚嶇О,棣栨娑ㄥ仠鏃堕棿,鏈�杩戞定鍋滄椂闂�,鍑犳澘,娑ㄥ仠鍘熷洜,鏉垮潡,瀹為檯娴侀��,涓诲姏鍑�棰�,娑ㄥ仠鍘熷洜浠g爜,娑ㄥ仠鍘熷洜浠g爜鏁伴噺) +# (0,1,6,25,9,16,11,15,12) +# 绔炰环浠g爜锛� +# (浠g爜,鍚嶇О,娑ㄥ仠濮斾拱棰�,鏉垮潡,绔炰环鎴愪氦棰�,瀹為檯娴侀��) +# (0,1,18,11,22,15) +# 鐐告澘锛� +# (浠g爜,鍚嶇О,娑ㄥ箙,鏉垮潡,瀹為檯娴侀��) +# (0,1,4,11,15) +# 璺屽仠锛� +# (浠g爜,鍚嶇О,鏉垮潡,瀹為檯娴侀��) +# (0,1,11,15) +# 鏇捐穼鍋滐細 +# (浠g爜,鍚嶇О,娑ㄥ箙,鏉垮潡,瀹為檯娴侀��) +# (0,1,4,11,15) + +DABAN_TYPE_BIDDING = 8 +DABAN_TYPE_LIMIT_UP = 1 +DABAN_TYPE_OPEN_LIMIT_UP = 2 +DABAN_TYPE_LIMIT_DOWN = 3 +DABAN_TYPE_EVER_LIMIT_DOWN = 5 + + +class KPLDataType(enum.Enum): + BIDDING = "biddings" + LIMIT_UP = "limit_up" + OPEN_LIMIT_UP = "open_limit_up" + LIMIT_DOWN = "limit_down" + EVER_LIMIT_DOWN = "ever_limit_down" + FENG_KOU = "feng_kou" + BEST_FENG_KOU = "best_feng_kou" + FENG_XIANG = "feng_xiang" + INDUSTRY_RANK = "industry_rank" + JINGXUAN_RANK = "jingxuan_rank" + + +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: + 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] + elif type == DABAN_TYPE_LIMIT_DOWN: + 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 + + +# 鏈�寮洪鍙� +# (浠g爜,鍚嶇О,寮哄害,娑ㄥ箙,鐑棬鏉垮潡,鎵�鏈夋澘鍧�) +def __parseBestFengKouItemData(data): + return data[0], data[1], data[2], data[4], data[12], data[10] + + +# 甯傚満椋庡彛 +# (浠g爜,鍚嶇О,娑ㄥ箙,涓诲姏鍑�棰�,椋庡彛姒傚康) +def __parseFengKouItemData(data): + return data[0], data[1], data[3], data[7], data[11] + + +# 椋庡悜鏍� +# (浠g爜, 鍚嶇О, 鐜颁环, 娑ㄥ箙, 鏉垮潡, 300涓囧ぇ鍗曞噣棰�, 涓诲姏鍑�棰�, 鑷敱甯傚��) +def __parseFengXiangBiaoItemData(data): + return data[0], data[1], data[5], data[6], data[4], data[-3], data[13], data[10] + + +# 琛屼笟娑ㄥ箙 +# (浠g爜,鍚嶇О,涓诲姏鍑�棰�,娑ㄨ穼骞�) +def __parseIndustry_rank(data): + return data[0], data[1], data[6], data[3] + + +def parseDaBanData(data, type_): + 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 = __parseDaBanItemData(d, type_) + if pdata: + fresult_.append(pdata) + return fresult_ + + +def parseFengKou(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 = __parseFengKouItemData(d) + if pdata: + fresult_.append(pdata) + return fresult_ + + +def parseBestFengKou(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 = __parseBestFengKouItemData(d) + if pdata: + fresult_.append(pdata) + return fresult_ + + +def parseFengXiang(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 = __parseFengXiangBiaoItemData(d) + if pdata: + fresult_.append(pdata) + return fresult_ + + +def parseIndustryRank(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 = __parseIndustry_rank(d) + if pdata: + fresult_.append(pdata) + return fresult_ + + +# 瑙f瀽鏉垮潡浠g爜 +def parsePlateCodes(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_: + # (浠g爜,鍚嶇О,鐜颁环,娑ㄥ箙,鑷敱娴侀��,鍑犳澘锛岄緳鍑狅紝涓诲姏鍑�棰�,300w鍑�棰�,鏈烘瀯澧炰粨) + fresult_.append((d[0], d[1], d[5], d[6], d[10], d[23], d[24], d[13], d[50], d[42])) + return fresult_ + + +# 瑙f瀽姒傚康涓殑鏉垮潡寮哄害 +def parseSonPlat(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_: + # (浠g爜,鍚嶇О,寮哄害) + fresult_.append((d[0], d[1], d[2])) + return fresult_ + + +def __money_desc(money): + if abs(money) > 100000000: + return f"{round(money / 100000000, 2)}浜�" + else: + return f"{round(money / 10000, 2)}涓�" + + +def parseMarketIndustry(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_: + # (浠g爜,鍚嶇О,娑ㄥ箙,涓诲姏鍑�棰�) + fresult_.append((d[0], d[1], d[3], d[6])) + return fresult_ + + +def parseMarketJingXuan(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_: + # (浠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]) -- Gitblit v1.8.0