diff --git a/bi/update_streamer.py b/bi/update_streamer.py new file mode 100644 index 0000000..c922b05 --- /dev/null +++ b/bi/update_streamer.py @@ -0,0 +1,62 @@ +from lib.all import * +import datetime + + +# 主播当日收入明细 + +class S: + def __init__(self): + self.col_streamer = MongoDB( + host="mongodb://root:Wishpal2024@dds-bp1da1ddd62bede41.mongodb.rds.aliyuncs.com:3717,dds-bp1da1ddd62bede42.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-77304659", + port=3717, + db="streamer", + collection="streamer" + ) + self.col_account = MongoDB( + host="mongodb://root:Wishpal2024@dds-bp1da1ddd62bede41.mongodb.rds.aliyuncs.com:3717,dds-bp1da1ddd62bede42.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-77304659", + port=3717, + db="account", + collection="account" + ) + self.mysql_db_bi = Mysql( + "127.0.0.1", 3306, "metabase_bi", "metabase_bi", "Wishpal_2024" + ) + + def __del__(self): + self.col_streamer.close() + self.col_account.close() + self.mysql_db_bi.close() + + # 更新主播信息 + def update_steamer_info(self): + # 获取主播信息 + prj = {"mid": 1} + docs = self.col_streamer.find({}, projection=prj) + streamer_mids = list() + for doc in docs: + mid = safe_get_int(doc, "mid") + streamer_mids.append(mid) + print("len(docs): {}".format(len(docs))) + + # 获取账号信息并更新 + acnt_docs = self.col_account.find({"_id": {"$in": streamer_mids}}) + for doc in acnt_docs: + mid = safe_get_int(doc, "_id") + user_id = safe_get_int(doc, "user_id") + name = safe_get_str(doc, "name") + + sql_q = "select * from streamer where mid='{}'".format(mid) + rows = self.mysql_db_bi.query(sql_q) + if len(rows) > 0: + sql_u = "update streamer set user_id=%s, name=%s where mid=%s" + self.mysql_db_bi.exec(sql_u, (user_id, name, mid)) + else: + sql_i = "insert into streamer (mid, user_id, name) values (%s,%s,%s)" + self.mysql_db_bi.exec(sql_i, (mid, user_id, name)) + + def proc(self): + self.update_steamer_info() + + +s = S() +s.proc()