Fix some functions still using integers, and use division for selling res
This commit is contained in:
parent
40060686a0
commit
9f01712230
@ -8,6 +8,7 @@ as $$
|
||||
declare
|
||||
new_uuid uuid;
|
||||
res_id integer;
|
||||
currency_start_amount float8;
|
||||
begin
|
||||
if p_user_id is null then
|
||||
insert into users(name, wallet) values (p_name, p_wallet)
|
||||
@ -17,7 +18,11 @@ begin
|
||||
insert into users(id, name, wallet) values (p_user_id, p_name, p_wallet);
|
||||
end if;
|
||||
|
||||
insert into bank_account(user_id, balance) values (new_uuid, 500);
|
||||
select value into currency_start_amount
|
||||
from game_constants
|
||||
where key = 'MoonbucksStartAmount';
|
||||
|
||||
insert into bank_account(user_id, balance) values (new_uuid, currency_start_amount);
|
||||
|
||||
insert into resource_account (resource_id, user_id, balance)
|
||||
select resource.id, new_uuid, 50
|
||||
@ -31,7 +36,7 @@ $$ language plpgsql;
|
||||
create or replace function get_accounts(user_id uuid)
|
||||
returns table (
|
||||
id uuid,
|
||||
"primaryBalance" integer,
|
||||
"primaryBalance" float8,
|
||||
"resourceAccounts" json
|
||||
)
|
||||
as $$
|
||||
@ -61,23 +66,23 @@ create or replace function sell_resources(
|
||||
)
|
||||
returns table (
|
||||
"resourceName" text,
|
||||
"resourceAmount" integer,
|
||||
"returnAmount" integer,
|
||||
"resourceAmount" float8,
|
||||
"returnAmount" float8,
|
||||
"saleResult" text
|
||||
)
|
||||
as $$
|
||||
declare
|
||||
resource jsonb;
|
||||
resource_name text;
|
||||
resource_amount integer;
|
||||
return_amount integer;
|
||||
resource_amount float8;
|
||||
return_amount float8;
|
||||
resource_sell_factor real;
|
||||
sale_result text;
|
||||
begin
|
||||
for resource in select * from jsonb_array_elements(p_resources)
|
||||
loop
|
||||
resource_name := resource ->> 'resourceType';
|
||||
resource_amount := (resource ->> 'resourceAmount')::integer;
|
||||
resource_amount := (resource ->> 'resourceAmount')::float8;
|
||||
sale_result := null;
|
||||
|
||||
begin
|
||||
@ -98,7 +103,7 @@ begin
|
||||
where key = resource_name || 'ToMoonbucks';
|
||||
|
||||
update bank_account
|
||||
set balance = balance + resource_amount * resource_sell_factor
|
||||
set balance = balance + resource_amount / resource_sell_factor
|
||||
where user_id = p_user_id
|
||||
returning resource_amount * resource_sell_factor into return_amount;
|
||||
|
||||
@ -218,9 +223,9 @@ declare
|
||||
new_source_id uuid;
|
||||
res_id integer;
|
||||
address varchar;
|
||||
price integer;
|
||||
min_res integer;
|
||||
max_res integer;
|
||||
price float8;
|
||||
min_res float8;
|
||||
max_res float8;
|
||||
begin
|
||||
select value into price from game_constants where key = 'price';
|
||||
|
||||
@ -262,7 +267,7 @@ returns table (
|
||||
id uuid,
|
||||
name varchar,
|
||||
wallet varchar,
|
||||
balance integer
|
||||
balance float8
|
||||
)
|
||||
as $$
|
||||
begin
|
||||
@ -283,7 +288,7 @@ create or replace function purchase_item(
|
||||
as $$
|
||||
declare
|
||||
new_item_id uuid;
|
||||
item_price integer;
|
||||
item_price float8;
|
||||
begin
|
||||
select price into item_price from store_item where store_item.id = p_store_item_id;
|
||||
|
||||
@ -314,7 +319,7 @@ as $$
|
||||
declare
|
||||
upgrade_event_id uuid;
|
||||
item_insert_id uuid;
|
||||
upgrade_price integer;
|
||||
upgrade_price float8;
|
||||
begin
|
||||
|
||||
select upgrade_item.price into upgrade_price
|
||||
@ -361,7 +366,7 @@ declare
|
||||
inv_id uuid;
|
||||
stake_id uuid;
|
||||
stake_created_at timestamp;
|
||||
total_stake_amount integer;
|
||||
total_stake_amount float8;
|
||||
found_resource_well_id uuid;
|
||||
begin
|
||||
|
||||
@ -425,7 +430,7 @@ returns table (
|
||||
"wellId" uuid,
|
||||
"inventoryItemId" uuid,
|
||||
"resourceType" varchar,
|
||||
"stakeAmount" integer,
|
||||
"stakeAmount" float8,
|
||||
"stakeTime" timestamp with time zone,
|
||||
"durationInMins" integer,
|
||||
unclaimed bool
|
||||
@ -459,8 +464,8 @@ declare
|
||||
stake record;
|
||||
claim_event_id uuid;
|
||||
stake_end_time timestamp;
|
||||
resource_supply integer;
|
||||
final_supply integer;
|
||||
resource_supply float8;
|
||||
final_supply float8;
|
||||
begin
|
||||
select
|
||||
staking_event.id,
|
||||
|
Loading…
x
Reference in New Issue
Block a user