From d5b237ebc7976b2dc514f48712d564a13900ba9d Mon Sep 17 00:00:00 2001 From: lwl0608 Date: Mon, 1 Jul 2024 15:18:00 +0800 Subject: [PATCH] fix post log --- cronjob/vas/user_income_calc.py | 40 +++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/cronjob/vas/user_income_calc.py b/cronjob/vas/user_income_calc.py index 4dc25d0..090655a 100644 --- a/cronjob/vas/user_income_calc.py +++ b/cronjob/vas/user_income_calc.py @@ -1,4 +1,5 @@ from lib.all import * +from pymongo import UpdateOne class S: @@ -32,12 +33,32 @@ group by t1.mid,t1.ymd docs = self.mysql_db_vas.query(sql) print("week, len(docs): {}".format(len(docs))) - mid_map = dict() + mid_docs_map = dict() for doc in docs: mid = safe_get_int(doc, "mid") - mid_map[mid] = 1 - mids = list(mid_map.keys()) - print("week, len(mids): {}".format(len(mids))) + if mid not in mid_docs_map.keys(): + mid_docs_map[mid] = list() + mid_docs_map[mid].append(doc) + print("week, len(mid_docs_map): {}".format(len(mid_docs_map))) + + reqs = list() + for mid, docs in mid_docs_map.items(): + q = {"_id": mid} + lis = list() + for d in docs: + lis.append({ + "date": safe_get_str(d, "ymd"), + "income": safe_get_int(d, "income") + }) + up = { + "$set": { + "ut": int(time.time()), + "week_dashboard": lis + } + } + reqs.append(UpdateOne(q, up, upsert=True)) + ret = self.col_user_income.bulk_write(reqs) + print("week, bulk_ret, match: {}, modify: {}".format(ret.matched_count, ret.modified_count, ret.inserted_count, ret.upserted_count)) # 获取收益来源 def get_income_from_dashboard(self): @@ -65,16 +86,17 @@ group by t1.mid,t1.type_id docs = self.mysql_db_vas.query(sql) print("from, len(docs): {}".format(len(docs))) - mid_map = dict() + mid_docs_map = dict() for doc in docs: mid = safe_get_int(doc, "mid") - mid_map[mid] = 1 - mids = list(mid_map.keys()) - print("from, len(mids): {}".format(len(mids))) + if mid not in mid_docs_map.keys(): + mid_docs_map[mid] = list() + mid_docs_map[mid].append(doc) + print("from, len(mid_docs_map): {}".format(len(mid_docs_map))) def proc(self): self.get_week_dashboard() - self.get_income_from_dashboard() + # self.get_income_from_dashboard() s = S()