From 4b9489d0b9751a9bce57d1ed1dfecdd6575eb05e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 7 Aug 2024 14:30:48 +0800 Subject: [PATCH] 1 --- .../marketserver/api/v1/recharge/recharge.go | 25 ++++++++++++++----- server/marketserver/mtb/mtb.auto_gen.go | 8 +++--- server/marketserver/proto/mt.proto | 4 +-- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/server/marketserver/api/v1/recharge/recharge.go b/server/marketserver/api/v1/recharge/recharge.go index d4b4aea5..0a8af6c2 100644 --- a/server/marketserver/api/v1/recharge/recharge.go +++ b/server/marketserver/api/v1/recharge/recharge.go @@ -53,7 +53,20 @@ func (this *RechargeApi) Buy(c *gin.Context) { f5.RspErr(c, 1, err.Error()) return } - currencyContractMeta := mt.Table.Contract.GetByNetIdName(reqJson.NetId, "TestToken") + currencyMeta := mt.Table.RechargeCurrency.Get() + if currencyMeta == nil { + f5.RspErr(c, 2, "server internal error") + return + } + if currencyMeta.GetExchangeRate() <= 0 || currencyMeta.GetExchangeRate() > 1000 { + f5.RspErr(c, 2, "server internal error") + return + } + if currencyMeta.GetCurrencyDecimal() <= 0 || currencyMeta.GetCurrencyDecimal() > 10 { + f5.RspErr(c, 2, "server internal error") + return + } + currencyContractMeta := mt.Table.Contract.GetByNetIdName(reqJson.NetId, currencyMeta.GetCurrencyName()) if currencyContractMeta == nil { f5.RspErr(c, 2, "server internal error") return @@ -88,7 +101,7 @@ func (this *RechargeApi) Buy(c *gin.Context) { return } } - price := "1" + price := currencyMeta.GetCurrencyDecimal() * q5.ToInt64(reqJson.Num) params := map[string]string{ "c": "BcService", "a": "recharge", @@ -96,7 +109,7 @@ func (this *RechargeApi) Buy(c *gin.Context) { "order_id": orderId, "account_address": reqJson.AccountAddress, "passport_address": passportAddress, - "amount": price, + "amount": q5.ToString(price), "currency_name": currencyContractMeta.GetName(), "currency_address": currencyContractMeta.GetAddress(), } @@ -105,8 +118,8 @@ func (this *RechargeApi) Buy(c *gin.Context) { ErrMsg string `json:"errmsg"` Calls []jccommon.ContractCall `json:"calls"` }{} - var itemNum int32 = 1 - var diamond int64 = 1 + var itemNum int32 = reqJson.Num + var diamond int64 = currencyMeta.GetExchangeRate() * int64(1) url := fmt.Sprintf("%s/webapp/index.php", mt.Table.Web3SignCluster.RandElement().GetUrl()) f5.GetHttpCliMgr().SendGoStyleRequest( url, @@ -134,7 +147,7 @@ func (this *RechargeApi) Buy(c *gin.Context) { currencyContractMeta.GetAddress(), goodsMeta.GetId(), itemNum, - price, + q5.ToString(price), diamond) { f5.RspErr(c, 500, "server internal error") return diff --git a/server/marketserver/mtb/mtb.auto_gen.go b/server/marketserver/mtb/mtb.auto_gen.go index fa812060..16ed6db5 100644 --- a/server/marketserver/mtb/mtb.auto_gen.go +++ b/server/marketserver/mtb/mtb.auto_gen.go @@ -62,8 +62,8 @@ type Config struct { type RechargeCurrency struct { currency_name string - exchange_rate int32 - currency_decimal int32 + exchange_rate int64 + currency_decimal int64 _flags1_ uint64 _flags2_ uint64 @@ -330,7 +330,7 @@ func (this *RechargeCurrency) HasCurrencyName() bool { return (this._flags1_ & (uint64(1) << 1)) > 0 } -func (this *RechargeCurrency) GetExchangeRate() int32 { +func (this *RechargeCurrency) GetExchangeRate() int64 { return this.exchange_rate } @@ -338,7 +338,7 @@ func (this *RechargeCurrency) HasExchangeRate() bool { return (this._flags1_ & (uint64(1) << 2)) > 0 } -func (this *RechargeCurrency) GetCurrencyDecimal() int32 { +func (this *RechargeCurrency) GetCurrencyDecimal() int64 { return this.currency_decimal } diff --git a/server/marketserver/proto/mt.proto b/server/marketserver/proto/mt.proto index e6edaa59..a9746062 100644 --- a/server/marketserver/proto/mt.proto +++ b/server/marketserver/proto/mt.proto @@ -51,8 +51,8 @@ message Config message RechargeCurrency { optional string currency_name = 1; - optional int32 exchange_rate = 2; - optional int32 currency_decimal = 3; + optional int64 exchange_rate = 2; + optional int64 currency_decimal = 3; } message Item