From f9d7f56ccbf3029e6d7137005e0ed697dab2d222 Mon Sep 17 00:00:00 2001 From: wish Date: Wed, 22 Nov 2023 23:54:59 +1100 Subject: [PATCH] fix Frontier Point exchanges --- bundled-schema/FPointItems.sql | 774 ++++++++++---------- patch-schema/14-fix-fpoint-trades.sql | 11 + server/channelserver/handlers_shop_gacha.go | 72 +- 3 files changed, 430 insertions(+), 427 deletions(-) create mode 100644 patch-schema/14-fix-fpoint-trades.sql diff --git a/bundled-schema/FPointItems.sql b/bundled-schema/FPointItems.sql index 918d81e54..7012e6f25 100644 --- a/bundled-schema/FPointItems.sql +++ b/bundled-schema/FPointItems.sql @@ -1,391 +1,391 @@ BEGIN; -INSERT INTO fpoint_items (item_type, item_id, quantity, fpoints, trade_type) VALUES -(7,8895,1,500,0), -(7,8891,1,300,0), -(7,8892,1,300,0), -(7,8893,1,300,0), -(7,8894,1,300,0), -(7,8890,1,10,0), -(7,10354,1,500,0), -(7,11983,1,300,0), -(7,11984,1,300,0), -(7,11985,1,300,0), -(7,11986,1,300,0), -(7,12524,1,500,0), -(7,12470,1,300,0), -(7,12471,1,300,0), -(7,12472,1,300,0), -(7,12473,1,300,0), -(7,2158,2,1,0), -(7,14548,1,500,0), -(7,9509,1,1,0), -(7,9510,1,1,0), -(7,9511,1,1,0), -(7,9512,1,1,0), -(7,9513,1,1,0), -(7,9514,1,1,0), -(7,9515,1,1,0), -(7,10753,1,1,0), -(7,10754,1,1,0), -(7,10755,1,1,0), -(7,10756,1,1,0), -(7,10757,1,1,0), -(7,10758,1,1,0), -(7,10759,1,1,0), -(7,11296,1,1,0), -(7,11297,1,1,0), -(7,11298,1,1,0), -(7,11299,1,1,0), -(7,11300,1,1,0), -(7,12386,1,1,0), -(7,12387,1,1,0), -(7,12388,1,1,0), -(7,12389,1,1,0), -(7,12390,1,1,0), -(7,13034,1,1,0), -(7,13035,1,1,0), -(7,13036,1,1,0), -(7,13037,1,1,0), -(7,13038,1,1,0), -(7,14179,1,1,0), -(7,14180,1,1,0), -(7,14181,1,1,0), -(7,14182,1,1,0), -(7,14183,1,1,0), -(7,13422,1,1,0), -(7,13423,1,1,0), -(7,13424,1,1,0), -(7,13425,1,1,0), -(7,13426,1,1,0), -(7,13427,1,1,0), -(7,9796,1,3,0), -(7,9700,1,3,0), -(7,10380,1,3,0), -(7,10810,1,3,0), -(7,10811,1,3,0), -(7,11436,1,3,0), -(7,9509,1,1,0), -(7,9510,1,1,0), -(7,9511,1,1,0), -(7,9512,1,1,0), -(7,9513,1,1,0), -(7,9514,1,1,0), -(7,9515,1,1,0), -(7,10753,1,1,0), -(7,10754,1,1,0), -(7,10755,1,1,0), -(7,10756,1,1,0), -(7,10757,1,1,0), -(7,10758,1,1,0), -(7,10759,1,1,0), -(7,11296,1,1,0), -(7,11297,1,1,0), -(7,11298,1,1,0), -(7,11299,1,1,0), -(7,11300,1,1,0), -(7,12509,1,3,0), -(7,12386,1,1,0), -(7,12387,1,1,0), -(7,12388,1,1,0), -(7,12389,1,1,0), -(7,12390,1,1,0), -(7,12872,1,3,0), -(7,12873,1,3,0), -(7,12840,1,1,0), -(7,12841,1,1,0), -(7,12874,1,1,0), -(7,12875,1,1,0), -(7,13191,1,3,0), -(7,13177,1,3,0), -(7,13326,1,3,0), -(7,13034,1,1,0), -(7,13035,1,1,0), -(7,13036,1,1,0), -(7,13037,1,1,0), -(7,13038,1,1,0), -(7,13178,1,3,0), -(7,13453,1,3,0), -(7,13449,1,3,0), -(7,13450,1,3,0), -(7,13404,1,3,0), -(7,13422,1,1,0), -(7,13423,1,1,0), -(7,13424,1,1,0), -(7,13425,1,1,0), -(7,13426,1,1,0), -(7,13427,1,1,0), -(7,13791,1,3,0), -(7,14006,1,3,0), -(7,14031,1,3,0), -(7,14032,1,3,0), -(7,13960,1,3,0), -(7,14029,1,3,0), -(7,13956,1,1,0), -(7,13958,1,1,0), -(7,13957,1,1,0), -(7,13959,1,1,0), -(7,13790,1,3,0), -(7,14005,1,3,0), -(7,14010,1,3,0), -(7,14009,1,3,0), -(7,14008,1,3,0), -(7,13965,1,3,0), -(7,14028,1,3,0), -(7,13963,1,3,0), -(7,14026,1,3,0), -(7,13964,1,3,0), -(7,14027,1,3,0), -(7,14069,1,3,0), -(7,14124,1,3,0), -(7,14065,1,1,0), -(7,14066,1,1,0), -(7,14067,1,1,0), -(7,14068,1,1,0), -(7,13962,1,3,0), -(7,14125,1,3,0), -(7,14089,1,3,0), -(7,14090,1,3,0), -(7,14091,1,3,0), -(7,14092,1,3,0), -(7,14194,1,3,0), -(7,14191,1,3,0), -(7,14198,1,3,0), -(7,14197,1,3,0), -(7,14179,1,1,0), -(7,14180,1,1,0), -(7,14181,1,1,0), -(7,14182,1,1,0), -(7,14183,1,1,0), -(7,14196,1,3,0), -(7,14195,1,3,0), -(7,14193,1,3,0), -(7,14192,1,3,0), -(7,14407,1,3,0), -(7,14414,1,3,0), -(7,14406,1,3,0), -(7,14413,1,3,0), -(7,14416,1,3,0), -(7,14549,1,3,0), -(7,14550,1,3,0), -(7,14502,1,3,0), -(7,14507,1,3,0), -(7,14501,1,3,0), -(7,14506,1,3,0), -(7,14500,1,3,0), -(7,14505,1,3,0), -(7,14498,1,3,0), -(7,14659,1,3,0), -(7,14660,1,3,0), -(7,14657,1,1,0), -(7,14658,1,1,0), -(7,11420,1,3,0), -(7,14704,1,3,0), -(7,11288,1,1,0), -(7,11289,1,1,0), -(7,11290,1,1,0), -(7,11291,1,1,0), -(7,10750,1,3,0), -(7,14705,1,3,0), -(7,10633,1,1,0), -(7,10634,1,1,0), -(7,10635,1,1,0), -(7,10636,1,1,0), -(7,14662,1,3,0), -(7,14663,1,3,0), -(7,14665,1,3,0), -(7,14666,1,3,0), -(7,14667,1,3,0), -(7,14668,1,3,0), -(7,14669,1,3,0), -(7,14670,1,3,0), -(7,14671,1,3,0), -(7,14672,1,3,0), -(7,14673,1,3,0), -(7,14674,1,3,0), -(7,14675,1,3,0), -(7,14676,1,3,0), -(7,14677,1,3,0), -(7,14678,1,3,0), -(7,14679,1,3,0), -(7,14680,1,3,0), -(7,14681,1,3,0), -(7,14682,1,3,0), -(7,14683,1,3,0), -(7,14684,1,3,0), -(7,14685,1,3,0), -(7,14686,1,3,0), -(7,14687,1,3,0), -(7,14688,1,3,0), -(7,14689,1,3,0), -(7,14690,1,3,0), -(7,14691,1,3,0), -(7,14692,1,3,0), -(7,14693,1,3,0), -(7,14694,1,3,0), -(7,14695,1,3,0), -(7,14696,1,3,0), -(7,14697,1,3,0), -(7,14698,1,3,0), -(7,14699,1,3,0), -(7,14700,1,3,0), -(7,14314,1,3,0), -(7,14503,1,3,0), -(7,14510,1,3,0), -(7,14904,1,3,0), -(7,14906,1,3,0), -(7,14910,1,1,0), -(7,14912,1,1,0), -(7,14905,1,3,0), -(7,14907,1,3,0), -(7,14911,1,1,0), -(7,14909,1,1,0), -(7,14855,1,3,0), -(7,14894,1,3,0), -(7,14913,1,3,0), -(7,14914,1,3,0), -(7,14891,1,3,0), -(7,14895,1,3,0), -(7,15027,1,3,0), -(7,15028,1,3,0), -(7,15026,1,1,0), -(7,15025,1,1,0), -(7,15024,1,1,0), -(7,15023,1,1,0), -(7,15064,1,3,0), -(7,15065,1,3,0), -(7,15030,1,3,0), -(7,15031,1,3,0), -(7,15062,1,3,0), -(7,15063,1,3,0), -(7,15066,1,3,0), -(7,15067,1,3,0), -(7,15061,1,3,0), -(7,15060,1,3,0), -(7,1227,1,2,0), -(7,13176,1,2,0), -(7,4360,1,2,0), -(7,4358,1,1,0), -(7,15118,1,3,0), -(7,15119,1,3,0), -(7,15113,1,3,0), -(7,15114,1,3,0), -(7,15115,1,3,0), -(7,15116,1,3,0), -(7,15220,1,3,0), -(7,15221,1,3,0), -(7,14126,1,3,0), -(7,15222,1,3,0), -(7,15223,1,3,0), -(7,15224,1,3,0), -(7,15225,1,3,0), -(7,15524,1,3,0), -(7,15525,1,3,0), -(7,15507,1,3,0), -(7,15508,1,3,0), -(7,15285,1,3,0), -(7,15286,1,3,0), -(7,15281,1,1,0), -(7,15282,1,1,0), -(7,15283,1,1,0), -(7,15284,1,1,0), -(7,15776,1,3,0), -(7,15777,1,3,0), -(7,15774,1,3,0), -(7,15775,1,3,0), -(7,15823,1,3,0), -(7,15824,1,3,0), -(7,15343,1,3,0), -(7,15342,1,3,0), -(7,15341,1,3,0), -(7,15340,1,3,0), -(7,15339,1,3,0), -(7,15338,1,3,0), -(7,15337,1,3,0), -(7,15336,1,3,0), -(7,15335,1,3,0), -(7,15334,1,3,0), -(7,15333,1,3,0), -(7,15332,1,3,0), -(7,15331,1,3,0), -(7,15330,1,3,0), -(7,15329,1,3,0), -(7,15328,1,3,0), -(7,15327,1,3,0), -(7,15326,1,3,0), -(7,15325,1,3,0), -(7,15324,1,3,0), -(7,15323,1,3,0), -(7,15322,1,3,0), -(7,15321,1,3,0), -(7,15314,1,3,0), -(7,15312,1,3,0), -(7,15311,1,3,0), -(7,15306,1,3,0), -(7,15307,1,3,0), -(7,15308,1,3,0), -(7,15309,1,3,0), -(7,15310,1,3,0), -(7,15305,1,3,0), -(7,15304,1,3,0), -(7,15303,1,3,0), -(7,15302,1,3,0), -(7,15301,1,3,0), -(7,15300,1,3,0), -(7,15299,1,3,0), -(7,15298,1,3,0), -(7,15297,1,3,0), -(7,15296,1,3,0), -(7,15295,1,3,0), -(7,15293,1,3,0), -(7,15294,1,3,0), -(7,15292,1,3,0), -(7,15291,1,3,0), -(7,15290,1,3,0), -(7,15289,1,3,0), -(7,15315,1,3,0), -(7,15316,1,3,0), -(7,15317,1,3,0), -(7,15318,1,3,0), -(7,15319,1,3,0), -(7,15320,1,3,0), -(7,15819,1,3,0), -(7,15820,1,3,0), -(7,15821,1,3,0), -(7,15822,1,3,0), -(7,16450,1,3,0), -(7,16451,1,3,0), -(7,16459,1,1,0), -(7,16460,1,1,0), -(7,16461,1,1,0), -(7,16462,1,1,0), -(7,16463,1,1,0), -(7,16464,1,1,0), -(7,16465,1,1,0), -(7,16466,1,1,0), -(7,16467,1,1,0), -(7,16468,1,1,0), -(7,16469,1,1,0), -(7,16470,1,1,0), -(7,16471,1,1,0), -(7,16472,1,1,0), -(7,16454,1,3,0), -(7,16455,1,3,0), -(7,16442,1,3,0), -(7,16443,1,3,0), -(7,16342,1,3,0), -(7,16343,1,3,0), -(7,16444,1,3,0), -(7,16445,1,3,0), -(7,16344,1,3,0), -(7,16345,1,3,0), -(7,16352,1,3,0), -(7,16353,1,3,0), -(7,16446,1,3,0), -(7,16447,1,3,0), -(7,16448,1,3,0), -(7,16449,1,3,0), -(7,16348,1,3,0), -(7,16349,1,3,0); +INSERT INTO fpoint_items (item_type, item_id, quantity, fpoints, buyable) VALUES +(7,8895,1,500,true), +(7,8891,1,300,true), +(7,8892,1,300,true), +(7,8893,1,300,true), +(7,8894,1,300,true), +(7,8890,1,10,true), +(7,10354,1,500,true), +(7,11983,1,300,true), +(7,11984,1,300,true), +(7,11985,1,300,true), +(7,11986,1,300,true), +(7,12524,1,500,true), +(7,12470,1,300,true), +(7,12471,1,300,true), +(7,12472,1,300,true), +(7,12473,1,300,true), +(7,2158,2,1,true), +(7,14548,1,500,true), +(7,9509,1,1,true), +(7,9510,1,1,true), +(7,9511,1,1,true), +(7,9512,1,1,true), +(7,9513,1,1,true), +(7,9514,1,1,true), +(7,9515,1,1,true), +(7,10753,1,1,true), +(7,10754,1,1,true), +(7,10755,1,1,true), +(7,10756,1,1,true), +(7,10757,1,1,true), +(7,10758,1,1,true), +(7,10759,1,1,true), +(7,11296,1,1,true), +(7,11297,1,1,true), +(7,11298,1,1,true), +(7,11299,1,1,true), +(7,11300,1,1,true), +(7,12386,1,1,true), +(7,12387,1,1,true), +(7,12388,1,1,true), +(7,12389,1,1,true), +(7,12390,1,1,true), +(7,13034,1,1,true), +(7,13035,1,1,true), +(7,13036,1,1,true), +(7,13037,1,1,true), +(7,13038,1,1,true), +(7,14179,1,1,true), +(7,14180,1,1,true), +(7,14181,1,1,true), +(7,14182,1,1,true), +(7,14183,1,1,true), +(7,13422,1,1,true), +(7,13423,1,1,true), +(7,13424,1,1,true), +(7,13425,1,1,true), +(7,13426,1,1,true), +(7,13427,1,1,true), +(7,9796,1,3,false), +(7,9700,1,3,false), +(7,10380,1,3,false), +(7,10810,1,3,false), +(7,10811,1,3,false), +(7,11436,1,3,false), +(7,9509,1,1,false), +(7,9510,1,1,false), +(7,9511,1,1,false), +(7,9512,1,1,false), +(7,9513,1,1,false), +(7,9514,1,1,false), +(7,9515,1,1,false), +(7,10753,1,1,false), +(7,10754,1,1,false), +(7,10755,1,1,false), +(7,10756,1,1,false), +(7,10757,1,1,false), +(7,10758,1,1,false), +(7,10759,1,1,false), +(7,11296,1,1,false), +(7,11297,1,1,false), +(7,11298,1,1,false), +(7,11299,1,1,false), +(7,11300,1,1,false), +(7,12509,1,3,false), +(7,12386,1,1,false), +(7,12387,1,1,false), +(7,12388,1,1,false), +(7,12389,1,1,false), +(7,12390,1,1,false), +(7,12872,1,3,false), +(7,12873,1,3,false), +(7,12840,1,1,false), +(7,12841,1,1,false), +(7,12874,1,1,false), +(7,12875,1,1,false), +(7,13191,1,3,false), +(7,13177,1,3,false), +(7,13326,1,3,false), +(7,13034,1,1,false), +(7,13035,1,1,false), +(7,13036,1,1,false), +(7,13037,1,1,false), +(7,13038,1,1,false), +(7,13178,1,3,false), +(7,13453,1,3,false), +(7,13449,1,3,false), +(7,13450,1,3,false), +(7,13404,1,3,false), +(7,13422,1,1,false), +(7,13423,1,1,false), +(7,13424,1,1,false), +(7,13425,1,1,false), +(7,13426,1,1,false), +(7,13427,1,1,false), +(7,13791,1,3,false), +(7,14006,1,3,false), +(7,14031,1,3,false), +(7,14032,1,3,false), +(7,13960,1,3,false), +(7,14029,1,3,false), +(7,13956,1,1,false), +(7,13958,1,1,false), +(7,13957,1,1,false), +(7,13959,1,1,false), +(7,13790,1,3,false), +(7,14005,1,3,false), +(7,14010,1,3,false), +(7,14009,1,3,false), +(7,14008,1,3,false), +(7,13965,1,3,false), +(7,14028,1,3,false), +(7,13963,1,3,false), +(7,14026,1,3,false), +(7,13964,1,3,false), +(7,14027,1,3,false), +(7,14069,1,3,false), +(7,14124,1,3,false), +(7,14065,1,1,false), +(7,14066,1,1,false), +(7,14067,1,1,false), +(7,14068,1,1,false), +(7,13962,1,3,false), +(7,14125,1,3,false), +(7,14089,1,3,false), +(7,14090,1,3,false), +(7,14091,1,3,false), +(7,14092,1,3,false), +(7,14194,1,3,false), +(7,14191,1,3,false), +(7,14198,1,3,false), +(7,14197,1,3,false), +(7,14179,1,1,false), +(7,14180,1,1,false), +(7,14181,1,1,false), +(7,14182,1,1,false), +(7,14183,1,1,false), +(7,14196,1,3,false), +(7,14195,1,3,false), +(7,14193,1,3,false), +(7,14192,1,3,false), +(7,14407,1,3,false), +(7,14414,1,3,false), +(7,14406,1,3,false), +(7,14413,1,3,false), +(7,14416,1,3,false), +(7,14549,1,3,false), +(7,14550,1,3,false), +(7,14502,1,3,false), +(7,14507,1,3,false), +(7,14501,1,3,false), +(7,14506,1,3,false), +(7,14500,1,3,false), +(7,14505,1,3,false), +(7,14498,1,3,false), +(7,14659,1,3,false), +(7,14660,1,3,false), +(7,14657,1,1,false), +(7,14658,1,1,false), +(7,11420,1,3,false), +(7,14704,1,3,false), +(7,11288,1,1,false), +(7,11289,1,1,false), +(7,11290,1,1,false), +(7,11291,1,1,false), +(7,10750,1,3,false), +(7,14705,1,3,false), +(7,10633,1,1,false), +(7,10634,1,1,false), +(7,10635,1,1,false), +(7,10636,1,1,false), +(7,14662,1,3,false), +(7,14663,1,3,false), +(7,14665,1,3,false), +(7,14666,1,3,false), +(7,14667,1,3,false), +(7,14668,1,3,false), +(7,14669,1,3,false), +(7,14670,1,3,false), +(7,14671,1,3,false), +(7,14672,1,3,false), +(7,14673,1,3,false), +(7,14674,1,3,false), +(7,14675,1,3,false), +(7,14676,1,3,false), +(7,14677,1,3,false), +(7,14678,1,3,false), +(7,14679,1,3,false), +(7,14680,1,3,false), +(7,14681,1,3,false), +(7,14682,1,3,false), +(7,14683,1,3,false), +(7,14684,1,3,false), +(7,14685,1,3,false), +(7,14686,1,3,false), +(7,14687,1,3,false), +(7,14688,1,3,false), +(7,14689,1,3,false), +(7,14690,1,3,false), +(7,14691,1,3,false), +(7,14692,1,3,false), +(7,14693,1,3,false), +(7,14694,1,3,false), +(7,14695,1,3,false), +(7,14696,1,3,false), +(7,14697,1,3,false), +(7,14698,1,3,false), +(7,14699,1,3,false), +(7,14700,1,3,false), +(7,14314,1,3,false), +(7,14503,1,3,false), +(7,14510,1,3,false), +(7,14904,1,3,false), +(7,14906,1,3,false), +(7,14910,1,1,false), +(7,14912,1,1,false), +(7,14905,1,3,false), +(7,14907,1,3,false), +(7,14911,1,1,false), +(7,14909,1,1,false), +(7,14855,1,3,false), +(7,14894,1,3,false), +(7,14913,1,3,false), +(7,14914,1,3,false), +(7,14891,1,3,false), +(7,14895,1,3,false), +(7,15027,1,3,false), +(7,15028,1,3,false), +(7,15026,1,1,false), +(7,15025,1,1,false), +(7,15024,1,1,false), +(7,15023,1,1,false), +(7,15064,1,3,false), +(7,15065,1,3,false), +(7,15030,1,3,false), +(7,15031,1,3,false), +(7,15062,1,3,false), +(7,15063,1,3,false), +(7,15066,1,3,false), +(7,15067,1,3,false), +(7,15061,1,3,false), +(7,15060,1,3,false), +(7,1227,1,2,false), +(7,13176,1,2,false), +(7,4360,1,2,false), +(7,4358,1,1,false), +(7,15118,1,3,false), +(7,15119,1,3,false), +(7,15113,1,3,false), +(7,15114,1,3,false), +(7,15115,1,3,false), +(7,15116,1,3,false), +(7,15220,1,3,false), +(7,15221,1,3,false), +(7,14126,1,3,false), +(7,15222,1,3,false), +(7,15223,1,3,false), +(7,15224,1,3,false), +(7,15225,1,3,false), +(7,15524,1,3,false), +(7,15525,1,3,false), +(7,15507,1,3,false), +(7,15508,1,3,false), +(7,15285,1,3,false), +(7,15286,1,3,false), +(7,15281,1,1,false), +(7,15282,1,1,false), +(7,15283,1,1,false), +(7,15284,1,1,false), +(7,15776,1,3,false), +(7,15777,1,3,false), +(7,15774,1,3,false), +(7,15775,1,3,false), +(7,15823,1,3,false), +(7,15824,1,3,false), +(7,15343,1,3,false), +(7,15342,1,3,false), +(7,15341,1,3,false), +(7,15340,1,3,false), +(7,15339,1,3,false), +(7,15338,1,3,false), +(7,15337,1,3,false), +(7,15336,1,3,false), +(7,15335,1,3,false), +(7,15334,1,3,false), +(7,15333,1,3,false), +(7,15332,1,3,false), +(7,15331,1,3,false), +(7,15330,1,3,false), +(7,15329,1,3,false), +(7,15328,1,3,false), +(7,15327,1,3,false), +(7,15326,1,3,false), +(7,15325,1,3,false), +(7,15324,1,3,false), +(7,15323,1,3,false), +(7,15322,1,3,false), +(7,15321,1,3,false), +(7,15314,1,3,false), +(7,15312,1,3,false), +(7,15311,1,3,false), +(7,15306,1,3,false), +(7,15307,1,3,false), +(7,15308,1,3,false), +(7,15309,1,3,false), +(7,15310,1,3,false), +(7,15305,1,3,false), +(7,15304,1,3,false), +(7,15303,1,3,false), +(7,15302,1,3,false), +(7,15301,1,3,false), +(7,15300,1,3,false), +(7,15299,1,3,false), +(7,15298,1,3,false), +(7,15297,1,3,false), +(7,15296,1,3,false), +(7,15295,1,3,false), +(7,15293,1,3,false), +(7,15294,1,3,false), +(7,15292,1,3,false), +(7,15291,1,3,false), +(7,15290,1,3,false), +(7,15289,1,3,false), +(7,15315,1,3,false), +(7,15316,1,3,false), +(7,15317,1,3,false), +(7,15318,1,3,false), +(7,15319,1,3,false), +(7,15320,1,3,false), +(7,15819,1,3,false), +(7,15820,1,3,false), +(7,15821,1,3,false), +(7,15822,1,3,false), +(7,16450,1,3,false), +(7,16451,1,3,false), +(7,16459,1,1,false), +(7,16460,1,1,false), +(7,16461,1,1,false), +(7,16462,1,1,false), +(7,16463,1,1,false), +(7,16464,1,1,false), +(7,16465,1,1,false), +(7,16466,1,1,false), +(7,16467,1,1,false), +(7,16468,1,1,false), +(7,16469,1,1,false), +(7,16470,1,1,false), +(7,16471,1,1,false), +(7,16472,1,1,false), +(7,16454,1,3,false), +(7,16455,1,3,false), +(7,16442,1,3,false), +(7,16443,1,3,false), +(7,16342,1,3,false), +(7,16343,1,3,false), +(7,16444,1,3,false), +(7,16445,1,3,false), +(7,16344,1,3,false), +(7,16345,1,3,false), +(7,16352,1,3,false), +(7,16353,1,3,false), +(7,16446,1,3,false), +(7,16447,1,3,false), +(7,16448,1,3,false), +(7,16449,1,3,false), +(7,16348,1,3,false), +(7,16349,1,3,false); END; \ No newline at end of file diff --git a/patch-schema/14-fix-fpoint-trades.sql b/patch-schema/14-fix-fpoint-trades.sql new file mode 100644 index 000000000..c4e698655 --- /dev/null +++ b/patch-schema/14-fix-fpoint-trades.sql @@ -0,0 +1,11 @@ +BEGIN; + +DELETE FROM public.fpoint_items; +ALTER TABLE IF EXISTS public.fpoint_items ALTER COLUMN item_type SET NOT NULL; +ALTER TABLE IF EXISTS public.fpoint_items ALTER COLUMN item_id SET NOT NULL; +ALTER TABLE IF EXISTS public.fpoint_items ALTER COLUMN quantity SET NOT NULL; +ALTER TABLE IF EXISTS public.fpoint_items ALTER COLUMN fpoints SET NOT NULL; +ALTER TABLE IF EXISTS public.fpoint_items DROP COLUMN IF EXISTS trade_type; +ALTER TABLE IF EXISTS public.fpoint_items ADD COLUMN buyable boolean NOT NULL; + +END; \ No newline at end of file diff --git a/server/channelserver/handlers_shop_gacha.go b/server/channelserver/handlers_shop_gacha.go index 373eb8028..708f424e5 100644 --- a/server/channelserver/handlers_shop_gacha.go +++ b/server/channelserver/handlers_shop_gacha.go @@ -664,57 +664,49 @@ func handleMsgMhfExchangeItem2Fpoint(s *Session, p mhfpacket.MHFPacket) { doAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) } +type FPointExchange struct { + ID uint32 `db:"id"` + ItemType uint8 `db:"item_type"` + ItemID uint16 `db:"item_id"` + Quantity uint16 `db:"quantity"` + FPoints uint16 `db:"fpoints"` + Buyable bool `db:"buyable"` +} + func handleMsgMhfGetFpointExchangeList(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetFpointExchangeList) - resp := byteframe.NewByteFrame() - resp.WriteUint32(0) - var buyables, sellables uint16 - var id uint32 - var itemType uint8 - var itemID, quantity, fPoints uint16 - buyRows, err := s.server.db.Query("SELECT id,item_type,item_id,quantity,fpoints FROM fpoint_items WHERE trade_type=0") + bf := byteframe.NewByteFrame() + var exchange FPointExchange + var exchanges []FPointExchange + var buyables uint16 + rows, err := s.server.db.Queryx(`SELECT id, item_type, item_id, quantity, fpoints, buyable FROM fpoint_items ORDER BY buyable DESC`) if err == nil { - for buyRows.Next() { - err = buyRows.Scan(&id, &itemType, &itemID, &quantity, &fPoints) + for rows.Next() { + err = rows.StructScan(&exchange) if err != nil { continue } - resp.WriteUint32(id) - resp.WriteUint16(0) - resp.WriteUint16(0) - resp.WriteUint16(0) - resp.WriteUint8(itemType) - resp.WriteUint16(itemID) - resp.WriteUint16(quantity) - resp.WriteUint16(fPoints) - buyables++ - } - } - - sellRows, err := s.server.db.Query("SELECT id,item_type,item_id,quantity,fpoints FROM fpoint_items WHERE trade_type=1") - if err == nil { - for sellRows.Next() { - err = sellRows.Scan(&id, &itemType, &itemID, &quantity, &fPoints) - if err != nil { - continue + if exchange.Buyable { + buyables++ } - resp.WriteUint32(id) - resp.WriteUint16(0) - resp.WriteUint16(0) - resp.WriteUint16(0) - resp.WriteUint8(itemType) - resp.WriteUint16(itemID) - resp.WriteUint16(quantity) - resp.WriteUint16(fPoints) - sellables++ + exchanges = append(exchanges, exchange) } } - resp.Seek(0, 0) - resp.WriteUint16(buyables) - resp.WriteUint16(sellables) + bf.WriteUint16(uint16(len(exchanges))) + bf.WriteUint16(buyables) + for _, e := range exchanges { + bf.WriteUint32(e.ID) + bf.WriteUint16(0) + bf.WriteUint16(0) + bf.WriteUint16(0) + bf.WriteUint8(e.ItemType) + bf.WriteUint16(e.ItemID) + bf.WriteUint16(e.Quantity) + bf.WriteUint16(e.FPoints) + } - doAckBufSucceed(s, pkt.AckHandle, resp.Data()) + doAckBufSucceed(s, pkt.AckHandle, bf.Data()) } func handleMsgMhfPlayFreeGacha(s *Session, p mhfpacket.MHFPacket) {