🎨 添加收获次数判断作物升星,一二三四五星作物写入库中

This commit is contained in:
Mualamx
2025-10-26 13:46:07 +08:00
parent 15c482f41f
commit a59ac4ded6
5 changed files with 33 additions and 124 deletions
+18
View File
@@ -75,6 +75,24 @@ class CUserPlantCountDB(CSqlManager):
rows = await cursor.fetchall()
return {row["plant"]: row["count"] for row in rows}
@classmethod
async def getUserPlantCountByPlantName(cls, uid: str, plant: str) -> int:
"""根据用户Uid和植物名称获取该对应的收获次数
Args:
uid (str): 用户uid
plant (str): 植物名称
Returns:
int: 收获次数
"""
cursor = await cls.m_pDB.execute(
"SELECT count FROM userPlantCount WHERE uid = ? AND plant = ?",
(uid, plant),
)
row = await cursor.fetchone()
return row["count"] if row else 0
@classmethod
async def updateUserPlantCountByName(cls, uid: str, plant: str, count: int) -> bool:
"""根据植物名称更新植物的收获次数
+15 -1
View File
@@ -384,7 +384,7 @@ class CUserSoilDB(CSqlManager):
if soilInfo and soilInfo.get("plantName"):
return False
# 获取植物配置
# 获取植物配置""" """
plantCfg = await g_pDBService.plant.getPlantByName(plantName)
if not plantCfg:
logger.error(f"未知植物: {plantName}")
@@ -404,6 +404,20 @@ class CUserSoilDB(CSqlManager):
async with cls._transaction():
prev = soilInfo or {}
await cls._deleteUserSoil(uid, soilIndex)
# 根据此植物收获次数对其星级进行升级
if g_pDBService.plant.existsPlant("一星" + plantName):
harvestCounts = (
await g_pDBService.userPlantCount.getUserPlantCountByPlantName(
uid, plantName
)
)
if harvestCounts >= 350:
plantName = "一星" + plantName
if harvestCounts >= 700:
plantName = "二星" + plantName
if harvestCounts >= 1200:
plantName = "三星" + plantName
await cls._insertUserSoil(
{
"uid": uid,