🎨 '农场币换点券'改为'点券兑换',新增兑换点券阈值赠送规则。

This commit is contained in:
Mualamx 2025-10-12 06:07:16 +08:00
parent 34d4f698dd
commit f62008209f
2 changed files with 34 additions and 11 deletions

View File

@ -94,7 +94,7 @@ diuse_farm = on_alconna(
Subcommand("change-name", Args["name?", str], help_text="更改农场名"), Subcommand("change-name", Args["name?", str], help_text="更改农场名"),
Subcommand("sign-in", help_text="农场签到"), Subcommand("sign-in", help_text="农场签到"),
Subcommand("admin-up", Args["num?", int], help_text="农场下阶段"), Subcommand("admin-up", Args["num?", int], help_text="农场下阶段"),
Subcommand("point-to-vipPoint", Args["num?", int], help_text="农场币换点券"), Subcommand("point-to-vipPoint", Args["num?", int], help_text="点券兑换"),
Subcommand("my-vipPoint", help_text="我的点券"), Subcommand("my-vipPoint", help_text="我的点券"),
), ),
priority=5, priority=5,
@ -651,7 +651,7 @@ async def _(session: Uninfo, num: Query[int] = AlconnaQuery("num", 0)):
diuse_farm.shortcut( diuse_farm.shortcut(
"农场币换点券(.*?)", "点券兑换(.*?)",
command="我的农场", command="我的农场",
arguments=["point-to-vipPoint"], arguments=["point-to-vipPoint"],
prefix=True, prefix=True,

View File

@ -1150,12 +1150,25 @@ class CFarmManager:
@classmethod @classmethod
async def pointToVipPointByUid(cls, uid: str, num: int) -> str: async def pointToVipPointByUid(cls, uid: str, num: int) -> str:
"""农场币兑换点券 """点券兑换
num:用户传参,即将兑换的点券 num:用户传参,即将兑换的点券
pro:兑换倍数;兑换倍数乘以num即为需要消耗的农场币 pro:兑换倍数;兑换倍数乘以num即为需要消耗的农场币
Args:
uid (str): 用户Uid
num (int): 兑换点券数量
Returns:
str: 返回结果
兑换比例在配置文件中配置
目前配置文件中默认是20倍
100点券需要20000农场币
赠送点券规则
小于2000点券0
2000-5000点券100
5000-50000点券280
大于50000点券3000
""" """
if num <= 0: if num < 100:
return "点券兑换数量必须大于0" return "点券兑换数量必须大于等于100"
pro = int(Config.get_config("zhenxun_plugin_farm", "点券兑换倍数")) pro = int(Config.get_config("zhenxun_plugin_farm", "点券兑换倍数"))
pro *= num pro *= num
@ -1164,15 +1177,25 @@ class CFarmManager:
if point < pro: if point < pro:
return f"你的农场币不足,当前农场币为{point},兑换还需要{pro - point}农场币" return f"你的农场币不足,当前农场币为{point},兑换还需要{pro - point}农场币"
p = await g_pDBService.user.getUserVipPointByUid(uid)
giftPoints: int
if num < 2000:
giftPoints = 0
elif num < 5000:
giftPoints = 100
elif num < 50000:
giftPoints = 280
else:
giftPoints = 3000
number = num + p + giftPoints
await g_pDBService.user.updateUserVipPointByUid(uid, int(number))
point -= pro point -= pro
await g_pDBService.user.updateUserPointByUid(uid, int(point)) await g_pDBService.user.updateUserPointByUid(uid, int(point))
p = await g_pDBService.user.getUserVipPointByUid(uid) return f"兑换{num}点券成功,当前点券:{number},赠送点券:{giftPoints},当前农场币:{point}"
number = num + p
await g_pDBService.user.updateUserVipPointByUid(uid, int(number))
return f"兑换{num}点券成功,当前点券:{number},当前农场币:{point}"
g_pFarmManager = CFarmManager() g_pFarmManager = CFarmManager()