🐛 fix bug

This commit is contained in:
HibiKier 2023-03-29 18:47:47 +08:00
parent 198386e500
commit 117eb86e8c
3 changed files with 11 additions and 7 deletions

View File

@ -24,7 +24,7 @@ async def generate_skin(skin: BuffSkin, update_count: int) -> Optional[BuildImag
Optional[BuildImage]: 图片 Optional[BuildImage]: 图片
""" """
name = skin.name + "-" + skin.skin_name + "-" + skin.abrasion name = skin.name + "-" + skin.skin_name + "-" + skin.abrasion
file_path = BASE_PATH / cn2py(skin.case_name) / f"{cn2py(name)}.jpg" file_path = BASE_PATH / cn2py(skin.case_name.split(",")[0]) / f"{cn2py(name)}.jpg"
if not file_path.exists(): if not file_path.exists():
logger.warning(f"皮肤图片: {name} 不存在", "查看武器箱") logger.warning(f"皮肤图片: {name} 不存在", "查看武器箱")
return None return None

View File

@ -58,8 +58,6 @@ def add_count(user: OpenCasesUser, skin: BuffSkin, case_price: float):
user.knife_st_count += 1 user.knife_st_count += 1
else: else:
user.knife_count += 1 user.knife_count += 1
user.today_open_total += 1
user.total_count += 1
user.make_money += skin.sell_min_price user.make_money += skin.sell_min_price
user.spend_money += 17 + case_price user.spend_money += 17 + case_price
@ -119,6 +117,9 @@ async def open_case(user_qq: int, group_id: int, case_name: str) -> Union[str, M
case_price = 0 case_price = 0
if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"): if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"):
case_price = case_skin.sell_min_price case_price = case_skin.sell_min_price
user.today_open_total += 1
user.total_count += 1
await user.save(update_fields=["today_open_total", "total_count"])
add_count(user, skin, case_price) add_count(user, skin, case_price)
ridicule_result = random.choice(RESULT_MESSAGE[skin.color]) ridicule_result = random.choice(RESULT_MESSAGE[skin.color])
price_result = skin.sell_min_price price_result = skin.sell_min_price
@ -205,6 +206,9 @@ async def open_multiple_case(
total_price = 0 total_price = 0
log_list = [] log_list = []
now = datetime.now() now = datetime.now()
user.today_open_total += num
user.total_count += num
await user.save(update_fields=["today_open_total", "total_count"])
case_price = 0 case_price = 0
if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"): if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"):
case_price = case_skin.sell_min_price case_price = case_skin.sell_min_price

View File

@ -50,7 +50,7 @@ class CaseManager:
) )
async def update_skin_data(name: str, is_update_case_name: bool) -> str: async def update_skin_data(name: str, is_update_case_name: bool = False) -> str:
"""更新箱子内皮肤数据 """更新箱子内皮肤数据
Args: Args:
@ -353,12 +353,12 @@ async def build_case_image(case_name: str) -> Union[BuildImage, str]:
background_img = BuildImage(0, 0, background=CASE_BACKGROUND / background) background_img = BuildImage(0, 0, background=CASE_BACKGROUND / background)
if case_name: if case_name:
log_list = ( log_list = (
await BuffSkinLog.filter(case_name=case_name) await BuffSkinLog.filter(case_name__contains=case_name)
.annotate(count=Count("id")) .annotate(count=Count("id"))
.group_by("skin_name") .group_by("skin_name")
.values_list("skin_name", "count") .values_list("skin_name", "count")
) )
skin_list_ = await BuffSkin.filter(case_name=case_name).all() skin_list_ = await BuffSkin.filter(case_name__contains=case_name).all()
skin2count = {item[0]: item[1] for item in log_list} skin2count = {item[0]: item[1] for item in log_list}
case = None case = None
skin_list: List[BuffSkin] = [] skin_list: List[BuffSkin] = []
@ -373,7 +373,7 @@ async def build_case_image(case_name: str) -> Union[BuildImage, str]:
exists_name.append(name) exists_name.append(name)
generate_img = {} generate_img = {}
for skin in skin_list: for skin in skin_list:
skin_img = await generate_skin(skin, skin2count[skin.skin_name]) skin_img = await generate_skin(skin, skin2count.get(skin.skin_name, 0))
if skin_img: if skin_img:
if not generate_img.get(skin.color): if not generate_img.get(skin.color):
generate_img[skin.color] = [] generate_img[skin.color] = []