Skip to content

Commit

Permalink
🎨 代码优化
Browse files Browse the repository at this point in the history
  • Loading branch information
HibiKier committed Aug 16, 2024
1 parent 23bfaa5 commit 369451c
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 7 deletions.
1 change: 1 addition & 0 deletions zhenxun/builtin_plugins/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
require("nonebot_plugin_alconna")
require("nonebot_plugin_session")
require("nonebot_plugin_userinfo")
require("nonebot_plugin_htmlrender")


import nonebot
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ async def v11(cls, bot: v11Bot, group_id: str):
group_member_list = await bot.get_group_member_list(group_id=int(group_id))
db_user = await GroupInfoUser.filter(group_id=group_id).all()
db_user_uid = [u.user_id for u in db_user]
uid2name = {u.user_id: u.user_name for u in db_user}
create_list = []
update_list = []
delete_list = []
Expand All @@ -116,8 +117,9 @@ async def v11(cls, bot: v11Bot, group_id: str):
if cnt > 1:
for u in users[1:]:
delete_list.append(u.id)
user.user_name = nickname
update_list.append(user)
if nickname != uid2name.get(user_id):
user.user_name = nickname
update_list.append(user)
else:
create_list.append(
GroupInfoUser(
Expand All @@ -129,9 +131,6 @@ async def v11(cls, bot: v11Bot, group_id: str):
)
)
exist_member_list.append(user_id)
logger.debug(
"更新成功", "更新群组成员信息", session=user_id, group_id=group_id
)
if create_list:
await GroupInfoUser.bulk_create(create_list, 30)
logger.debug(
Expand Down
2 changes: 1 addition & 1 deletion zhenxun/builtin_plugins/sign_in/_data_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ async def _handle_sign_in(
gift = f"额外金币 +{gift}"
else:
await UserConsole.add_gold(user.user_id, gold, "sign_in", session.platform)
await UserConsole.add_props(user.user_id, gift, 1, session.platform)
await UserConsole.add_props_by_name(user.user_id, gift, 1, session.platform)
gift += " + 1"
logger.info(
f"签到成功. score: {user.impression:.2f} "
Expand Down
19 changes: 18 additions & 1 deletion zhenxun/models/user_console.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

from tortoise import fields

from zhenxun.models.goods_info import GoodsInfo
from zhenxun.services.db_context import Model
from zhenxun.utils.enum import GoldHandle
from zhenxun.utils.exception import InsufficientGold
from zhenxun.utils.exception import GoodsNotFound, InsufficientGold

from .user_gold_log import UserGoldLog

Expand Down Expand Up @@ -138,3 +139,19 @@ async def add_props(
user.props[goods_uuid] = 0
user.props[goods_uuid] += num
await user.save(update_fields=["props"])

@classmethod
async def add_props_by_name(
cls, user_id: str, name: str, num: int = 1, platform: str | None = None
):
"""添加道具
参数:
user_id: 用户id
name: 道具名称
num: 道具数量.
platform: 平台.
"""
if goods := await GoodsInfo.get_or_none(goods_name=name):
return await cls.add_props(user_id, goods.uuid, num, platform)
raise GoodsNotFound("未找到商品...")
8 changes: 8 additions & 0 deletions zhenxun/utils/exception.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,11 @@ class NotFindSuperuser(Exception):
"""

pass


class GoodsNotFound(Exception):
"""
或找到道具
"""

pass

0 comments on commit 369451c

Please sign in to comment.