diff --git a/README.md b/README.md index ecf91cd6..eb1c27ab 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__ * 优化商品显示图片,提供限制,限购,折扣提示 * 修复图库内图片无法被连续删除的问题 [@pull/879](https://github.com/HibiKier/zhenxun_bot/pull/879) * 色图提供配置项`MAX_ONCE_NUM2FORWARD`:群聊中单次发送图片数量达到指定时使用合并转发 +* 优化修复了商品修改命令 ### 2022/6/28 diff --git a/basic_plugins/shop/shop_handle/data_source.py b/basic_plugins/shop/shop_handle/data_source.py index 684a1a83..7f7ba537 100644 --- a/basic_plugins/shop/shop_handle/data_source.py +++ b/basic_plugins/shop/shop_handle/data_source.py @@ -288,11 +288,11 @@ async def update_goods(**kwargs) -> Tuple[bool, str, str]: new_time = time.strftime( "%Y-%m-%d %H:%M:%S", time.localtime(time.time() + kwargs["limit_time"] * 60 * 60), - ) - tmp += f"限时至: {new_time}\n" + ) if kwargs["limit_time"] != 0 else 0 + tmp += f"限时至: {new_time}\n" if new_time else "取消了限时\n" limit_time = kwargs["limit_time"] if kwargs.get("daily_limit"): - tmp += f'每日购买限制:{daily_limit} --> {kwargs["daily_limit"]}\n' + tmp += f'每日购买限制:{daily_limit} --> {kwargs["daily_limit"]}\n' if daily_limit else "取消了购买限制\n" daily_limit = int(kwargs["daily_limit"]) await GoodsInfo.update_goods( name, diff --git a/models/goods_info.py b/models/goods_info.py index 0b025cab..cbbdb427 100644 --- a/models/goods_info.py +++ b/models/goods_info.py @@ -21,13 +21,13 @@ class GoodsInfo(db.Model): @classmethod async def add_goods( - cls, - goods_name: str, - goods_price: int, - goods_description: str, - goods_discount: float = 1, - goods_limit_time: int = 0, - daily_limit: int = 0, + cls, + goods_name: str, + goods_price: int, + goods_description: str, + goods_discount: float = 1, + goods_limit_time: int = 0, + daily_limit: int = 0, ) -> bool: """ 说明: @@ -65,8 +65,8 @@ class GoodsInfo(db.Model): """ query = ( await cls.query.where(cls.goods_name == goods_name) - .with_for_update() - .gino.first() + .with_for_update() + .gino.first() ) if not query: return False @@ -75,13 +75,13 @@ class GoodsInfo(db.Model): @classmethod async def update_goods( - cls, - goods_name: str, - goods_price: Optional[int] = None, - goods_description: Optional[str] = None, - goods_discount: Optional[float] = None, - goods_limit_time: Optional[int] = None, - daily_limit: Optional[int] = None + cls, + goods_name: str, + goods_price: Optional[int] = None, + goods_description: Optional[str] = None, + goods_discount: Optional[float] = None, + goods_limit_time: Optional[int] = None, + daily_limit: Optional[int] = None ) -> bool: """ 说明: @@ -97,8 +97,8 @@ class GoodsInfo(db.Model): try: query = ( await cls.query.where(cls.goods_name == goods_name) - .with_for_update() - .gino.first() + .with_for_update() + .gino.first() ) if not query: return False @@ -106,8 +106,8 @@ class GoodsInfo(db.Model): goods_price=goods_price or query.goods_price, goods_description=goods_description or query.goods_description, goods_discount=goods_discount or query.goods_discount, - goods_limit_time=goods_limit_time or query.goods_limit_time, - daily_limit=daily_limit or query.daily_limit, + goods_limit_time=goods_limit_time if goods_limit_time is not None else query.goods_limit_time, + daily_limit=daily_limit if daily_limit is not None else query.daily_limit, ).apply() return True except Exception as e: @@ -141,7 +141,7 @@ class GoodsInfo(db.Model): @classmethod async def add_user_daily_purchase( - cls, goods: "GoodsInfo", user_id: int, group_id: int, num: int = 1 + cls, goods: "GoodsInfo", user_id: int, group_id: int, num: int = 1 ): """ 说明: @@ -164,7 +164,7 @@ class GoodsInfo(db.Model): @classmethod async def check_user_daily_purchase( - cls, goods: "GoodsInfo", user_id: int, group_id: int, num: int = 1 + cls, goods: "GoodsInfo", user_id: int, group_id: int, num: int = 1 ) -> Tuple[bool, int]: """ 说明: @@ -179,9 +179,9 @@ class GoodsInfo(db.Model): group_id = str(group_id) if goods: if ( - not goods.daily_limit - or not goods.daily_purchase_limit.get(group_id) - or not goods.daily_purchase_limit[group_id].get(user_id) + not goods.daily_limit + or not goods.daily_purchase_limit.get(group_id) + or not goods.daily_purchase_limit[group_id].get(user_id) ): return goods.daily_limit - num < 0, goods.daily_limit if goods.daily_purchase_limit[group_id][user_id] + num > goods.daily_limit: @@ -197,4 +197,3 @@ class GoodsInfo(db.Model): 重置每次次数限制 """ await cls.update.values(daily_purchase_limit={}).gino.status() -