From 834dd30b7e52936d1c6f42dc3a98114f026be12a Mon Sep 17 00:00:00 2001 From: xtaodada Date: Sat, 7 Jan 2023 18:48:53 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20pay=20log=20count=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metadata/pool/pool_301.py | 2 +- metadata/pool/pool_302.py | 2 +- modules/pay_log/log.py | 18 +++++++----------- plugins/genshin/pay_log.py | 10 +++++----- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/metadata/pool/pool_301.py b/metadata/pool/pool_301.py index af6108c9..49fe5bb3 100644 --- a/metadata/pool/pool_301.py +++ b/metadata/pool/pool_301.py @@ -4,7 +4,7 @@ POOL_301 = [ "four": ["罗莎莉亚", "早柚", "九条裟罗"], "from": "2022-12-27 18:00:00", "name": "影寂天下人|苍流踏花", - "to": "2022-01-17 18:00:00", + "to": "2023-01-17 18:00:00", }, { "five": ["流浪者", "荒泷一斗"], diff --git a/metadata/pool/pool_302.py b/metadata/pool/pool_302.py index 05bad2f2..3786b409 100644 --- a/metadata/pool/pool_302.py +++ b/metadata/pool/pool_302.py @@ -4,7 +4,7 @@ POOL_302 = [ "four": ["恶王丸", "曚云之月", "匣里龙吟", "西风长枪", "祭礼残章"], "from": "2022-12-27 18:00:00", "name": "神铸赋形", - "to": "2022-01-17 18:00:00", + "to": "2023-01-17 18:00:00", }, { "five": ["图莱杜拉的回忆", "赤角石溃杵"], diff --git a/modules/pay_log/log.py b/modules/pay_log/log.py index 3aab8079..7c5392d1 100644 --- a/modules/pay_log/log.py +++ b/modules/pay_log/log.py @@ -140,14 +140,13 @@ class PayLog: return new_num @staticmethod - async def get_month_data(pay_log: PayLogModel, price_data: List[Dict]) -> Tuple[int, int, List[Dict]]: + async def get_month_data(pay_log: PayLogModel, price_data: List[Dict]) -> Tuple[int, List[Dict]]: """获取月份数据 :param pay_log: 日志数据 :param price_data: 商品数据 :return: 月份数据 """ all_amount: int = 0 - all_pay: int = 0 months: List[int] = [] month_datas: List[Dict] = [] last_month: Optional[Dict] = None @@ -156,7 +155,6 @@ class PayLog: if i.amount <= 0: continue all_amount += i.amount - all_pay += i.amount if i.time.month not in months: months.append(i.time.month) if last_month: @@ -173,9 +171,6 @@ class PayLog: for j in price_data: if i.amount in j["price"]: j["count"] += 1 - j["amount"] += i.amount - if i.amount == price_data[0]["price"][0]: - all_amount -= i.amount break month_data.append(i) if last_month: @@ -184,7 +179,7 @@ class PayLog: if not month_datas: raise PayLogNotFound month_datas.sort(key=lambda k: k["amount"], reverse=True) - return all_amount, all_pay, month_datas + return all_amount, month_datas async def get_analysis(self, user_id: int, client: Client): """获取分析数据 @@ -200,14 +195,15 @@ class PayLog: { "price": price, "count": 0, - "amount": 0, } for price in [[680], [300], [8080, 12960], [3880, 6560], [2240, 3960], [1090, 1960], [330, 600], [60, 120]] ] price_data_name = ["大月卡", "小月卡", "648", "328", "198", "98", "30", "6"] - all_pay, all_amount, month_datas = await PayLog.get_month_data(pay_log, price_data) + real_price = [68, 30, 648, 328, 198, 98, 30, 6] + all_amount, month_datas = await PayLog.get_month_data(pay_log, price_data) + all_pay = sum((price_data[i]["count"] * real_price[i]) for i in range(len(price_data))) datas = [ - {"value": f"¥{all_pay / 10:.0f}", "name": "总消费"}, + {"value": f"¥{all_pay:.0f}", "name": "总消费"}, {"value": all_amount, "name": "总结晶"}, {"value": f"{month_datas[0]['month']}", "name": "消费最多"}, { @@ -224,7 +220,7 @@ class PayLog: ] pie_datas = [ { - "value": f"{price_data[i]['amount'] / 10:.0f}", + "value": f"{price_data[i]['count'] * real_price[i]:.0f}", "name": f"{price_data_name[i]}", } for i in range(len(price_data)) diff --git a/plugins/genshin/pay_log.py b/plugins/genshin/pay_log.py index 0c52ab54..aa2aa74d 100644 --- a/plugins/genshin/pay_log.py +++ b/plugins/genshin/pay_log.py @@ -50,9 +50,9 @@ class PayLogPlugin(Plugin.Conversation, BasePlugin.Conversation): logger.debug("尝试获取已绑定的原神账号") client = await get_genshin_client(user.id, need_cookie=False) new_num = await self.pay_log.get_log_data(user.id, client, authkey) - return "更新完成,本次没有新增数据" if new_num == 0 else f"更新完成,本次共新增{new_num}条抽卡记录" + return "更新完成,本次没有新增数据" if new_num == 0 else f"更新完成,本次共新增{new_num}条充值记录" except PayLogNotFound: - return "派蒙没有找到你的充值记录,快去氪金吧~" + return "派蒙没有找到你的充值记录,快去充值吧~" except PayLogAccountNotFound: return "导入失败,可能文件包含的祈愿记录所属 uid 与你当前绑定的 uid 不同" except PayLogInvalidAuthkey: @@ -192,12 +192,12 @@ class PayLogPlugin(Plugin.Conversation, BasePlugin.Conversation): client = await get_genshin_client(cid, need_cookie=False) _, status = await self.pay_log.load_history_info(str(cid), str(client.uid), only_status=True) if not status: - await message.reply_text("该用户还没有导入抽卡记录") + await message.reply_text("该用户还没有导入充值记录") return status = await self.pay_log.remove_history_info(str(cid), str(client.uid)) - await message.reply_text("抽卡记录已强制删除" if status else "抽卡记录删除失败") + await message.reply_text("充值记录已强制删除" if status else "充值记录删除失败") except PayLogNotFound: - await message.reply_text("该用户还没有导入抽卡记录") + await message.reply_text("该用户还没有导入充值记录") except UserNotFoundError: await message.reply_text("该用户暂未绑定账号") except (ValueError, IndexError):