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