From 34d4f698dd13c7f07701afc1841574249429135f Mon Sep 17 00:00:00 2001 From: Mualamx Date: Sun, 12 Oct 2025 05:15:24 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=AD=97=E6=AE=B5=EF=BC=88=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=B8=BA=E7=82=B9=E5=88=B8=E4=BD=9C=E7=89=A9=EF=BC=8C=E7=82=B9?= =?UTF-8?q?=E5=88=B8=E4=BD=9C=E7=89=A9=E5=8D=95=E4=BB=B7=EF=BC=89=EF=BC=9B?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=82=B9=E5=88=B8=E8=B4=AD=E4=B9=B0=E7=A7=8D?= =?UTF-8?q?=E5=AD=90=EF=BC=9B=E6=88=91=E7=9A=84=E7=A7=8D=E5=AD=90=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0=E7=82=B9=E5=88=B8?= =?UTF-8?q?=E5=8D=95=E4=BB=B7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- command.py | 4 +--- config.py | 2 ++ farm/shop.py | 34 +++++++++++++++++++++++----------- resource/db/plant.db | Bin 36864 -> 36864 bytes 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/command.py b/command.py index 5cd3886..01c077e 100644 --- a/command.py +++ b/command.py @@ -95,7 +95,7 @@ diuse_farm = on_alconna( Subcommand("sign-in", help_text="农场签到"), Subcommand("admin-up", 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, block=True, @@ -693,5 +693,3 @@ async def _(session: Uninfo): await MessageUtils.build_message( g_sTranslation["basic"]["vipPoint"].format(vipPoint=vipPoint) ).send(reply_to=True) - - diff --git a/config.py b/config.py index 19f837c..091c386 100644 --- a/config.py +++ b/config.py @@ -46,7 +46,9 @@ g_sTranslation = { "notNum": "❗️ 请输入购买数量!", "noLevel": "🔒 你的等级不够哦,努努力吧 💪", "noPoint": "💰 你的农场币不够哦~ 快速速氪金吧!💸", + "noVipPoint": "💰 你的点券不够哦~ 快速速氪金吧!💸", "success": "✅ 成功购买{name},花费{total}农场币,剩余{point}农场币 🌾", + "vipSuccess": "✅ 成功购买{name},花费{total}点券,剩余{point}点券 🌾", "errorSql": "❌ 购买失败,执行数据库错误!🛑", "error": "❌ 购买出错!请检查需购买的种子名称!🔍", }, diff --git a/farm/shop.py b/farm/shop.py index 812b1e2..e1a8b00 100644 --- a/farm/shop.py +++ b/farm/shop.py @@ -1,6 +1,5 @@ import math -from zhenxun.services.log import logger from zhenxun.utils.image_utils import ImageTemplate from ..config import g_sResourcePath, g_sTranslation @@ -33,7 +32,8 @@ class CShopManager: columnName = [ "-", "种子名称", - "种子单价", + "农场币", + "点券", "解锁等级", "果实单价", "收获经验", @@ -77,7 +77,8 @@ class CShopManager: [ icon, plant["name"], # 种子名称 - plant["buy"], # 种子单价 + plant["buy"], # 农场币种子单价 + plant["vipBuy"], # 点券种子单价 plant["level"], # 解锁等级 plant["price"], # 果实单价 plant["experience"], # 收获经验 @@ -125,21 +126,32 @@ class CShopManager: if level[0] < int(plantInfo["level"]): return g_sTranslation["buySeed"]["noLevel"] - point = await g_pDBService.user.getUserPointByUid(uid) - total = int(plantInfo["buy"]) * num - + """ logger.debug( f"用户:{uid}购买{name},数量为{num}。用户农场币为{point},购买需要{total}" ) - - if point < total: - return g_sTranslation["buySeed"]["noPoint"] + """ + if plantInfo["isVip"] == 1: + vipPoint = await g_pDBService.user.getUserVipPointByUid(uid) + total = int(plantInfo["vipBuy"]) * num + if vipPoint < total: + return g_sTranslation["buySeed"]["noVipPoint"] + await g_pDBService.user.updateUserVipPointByUid(uid, vipPoint - total) else: + point = await g_pDBService.user.getUserPointByUid(uid) + total = int(plantInfo["buy"]) * num + if point < total: + return g_sTranslation["buySeed"]["noPoint"] await g_pDBService.user.updateUserPointByUid(uid, point - total) - if not await g_pDBService.userSeed.addUserSeedByUid(uid, name, num): - return g_sTranslation["buySeed"]["errorSql"] + if not await g_pDBService.userSeed.addUserSeedByUid(uid, name, num): + return g_sTranslation["buySeed"]["errorSql"] + if plantInfo["isVip"] == 1: + return g_sTranslation["buySeed"]["vipSuccess"].format( + name=name, total=total, point=vipPoint - total + ) + else: return g_sTranslation["buySeed"]["success"].format( name=name, total=total, point=point - total ) diff --git a/resource/db/plant.db b/resource/db/plant.db index a198f3175d201bd5802bd9dfa619bac092faba6a..7597ade2d05f8feebdd464ff5e3175c52302f4ea 100644 GIT binary patch literal 36864 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 delta 5577 zcmeI0Yiv{J8OME&W54J4a!%q)oSR7~yX0~b5=`P;?AUP#NgmF4>f3{JtQK@yK zD&43)Pv{YPMw7Bq$mjv`6NWm4r|DIpfJj+ScKW(|X%m-9Q^Z7G%4%DXsA=Csg0C*=!7L=vuRO^M-XD?N4=vezDa{YO1saTIgD(>aUwkWYvN8 z(KLMyL$7hWN1eh^hAE^s#B6hdO2stGy4{Z!5L-nBv)4lx@(xBj8sKeAK$jy=f)PKH zB}Dv8)Ckvw0ij+Hj5myf#s*`O;cdgPVX48Ue^-B0zf^D0-P8^1mg#K#E&h3aIiJei z;)b|JP9!(TGo+sAv_I4C)Rt@hrMax>(acS_lW;zvH6c$uuKuBVt=i7M&pyX4WlhXG z%pqnGlSWi;K*w8(O{!FehTu9L2@NyOJ+mj6ND@VF^yxc@+R(&1feaSxJbz<9JC07t{39@K|JjKY5*vd)eT;wCRGU9O{--5Vj z4sv=*IjJeaoU2p3#8ZgzQxLD5jr>VU8L2ElmQu@zJ0H0%wUoFeWoc7r7{{ zlvL&*ccejEEAlH4_gIkcrolRxagL?wFc*_qWoOiMJFqJWHLs;Ri7PS0hcld{QpB(~ zql~x&C;*iMoSXpn}s-Ve}ArHNz5VB}NdZ4nh+;nUentLpRII2XlQcaRVjF7Z1Vd@rQpHK!E1Y92^5`g z)hjx$2~8+K8|{*^^YALgE><_M=p5G~K!3eRu@)J5_i5UuRWz;P@Ka@IaZYVy+&JKg zQ>Q}XzA`p(8iqgpo~_eBEqZaa7K37LH@=GC!M{n;bb9;RAjCQ1H;D;Mvh@E2=b&@&yS$EWG5q zp9}w$FJV@^Bo2%3i6cUnI3SjbK_MWvh?(LYu~C>5#>ADvo1#UyAo9W;u?B9}5#gRN z4AwvpMpv&s$pl<*35u_YyTqFR@%4+h@6cZFR~PM97cEQwuP@qm_a+B>QYDUwPm50B zpTa9br!d?2H{*|teq*lTW5dga^@dsczvxfspU`LOKGeOSTduS6@9=|sJ+J3}$@OzJ z97C>>UQ(*Pqdl)})n;q{syVKCOd}@zB4KZWNBwX06?M0|ko}ZBd0|&6%lUT67e08h zggI__Bj5P&W?|@!3f~-_<0ifU@-3NnBF}KRiFXIui}eohpxZ+R^OB>Gt$rHNLhm_d zlX>4kb;(>0ncs_EZRgx7GH)BkuS0y^R^-HD4_n<6%FMHW}VCtkZw0-=SCQj_5M^mw6BOdu}E96WO4>tKFd$G)FYq zP*M5RZ>v|ZpRir5is@(Us?$TeR#`h9GBL4LRIyw})kdsYv{BpN57(O%_A0TyYvW8s zGPEnrbZ@Ox`M`!}Tb3dN+Qxu`>WVg4Ix^$_(@FJp`Cx!8|IIvi%`h=gCn-xsKW(UU zgw3-x%JjC`<2v%w=R+N#)83k)5JXJb2X&Idl+9{QkJI=ICJ%mZ@)@dQS6R|iQds(D zyP2*`)lHe39P8$^sb&!qpC9Amtv#u6qJTuBZJTv-N}R}_N29&|Or_oKvBfnAicJu1ODBJ2!jMMn(=SoeqmE0&Q^pU#9TQ60{*u?wS zJ>7yLLwHmIjdr-!ZezU2NPin;gROo;oXBs8@xf7NV4GgC;^D6K4_I?;)+su}UH8+0 zMT%XIUZ@^EP9LCeDfRcQ(YiTB)5yLFi=+0fn@po=P-^VCSiHr4h_!2#EyESy;Nsjb zQvt5mK(5#d@OO)I9=rnFk^oy0ouQK^HAr>So+p?~sIbIxI(BBAY8XvS38SXbrDEiZ zhuF3~@bz14`NLAEf2N-N`|ei{W8&d^kLU{ZX1n5OWXuZp7u&5dR4M6H;yzIa#m_y# z+WWPs?P2hfBjBX(CM&*_a9De1#fwU)-IiY#vus$n2g60%pcH)RRH%F#jI6^KU%>na DsjL?;