flyzto 4 週間 前
コミット
e17417a6bd
1 ファイル変更4 行追加4 行削除
  1. 4 4
      server/models/GamesPs.js

+ 4 - 4
server/models/GamesPs.js

@@ -1263,10 +1263,10 @@ const getTotalReplacement = async (event_id, inner_base, inner_rebate, inner_ior
   if (!inner_ior) {
     return Promise.reject(new Error('inner_ior 无效'));
   }
-  if (inner_odds?.length != 2) {
+  if (inner_odds?.length != 2 || inner_odds.some(item => typeof(item) !== 'number')) {
     return Promise.reject(new Error('inner_odds 无效'));
   }
-  if (!outer_golds?.length) {
+  if (!outer_golds?.length || outer_golds.some(item => typeof(item?.gold) !== 'number' || typeof(item?.rebate) !== 'number')) {
     return Promise.reject(new Error('outer_golds 无效'));
   }
 
@@ -1275,8 +1275,8 @@ const getTotalReplacement = async (event_id, inner_base, inner_rebate, inner_ior
   inner_rebate = typeof(inner_rebate) != 'undefined' ? +inner_rebate : fixFloat(innerRebateRatio / 100, 3);
 
   const inner_odds_value = fixFloat(inner_odds[0] * inner_odds[1], 3);
-  const outer_golds_rebate = outer_golds.map(item => (item.gold ?? 0) * (item.rebate ?? 0)).reduce((sum, rebate) => sum + rebate, 0);
-  const outer_golds_loss = outer_golds.map(item => item.gold ?? 0).reduce((sum, gold) => sum + gold, 0) - outer_golds_rebate;
+  const outer_golds_rebate = outer_golds.map(item => item.gold * item.rebate).reduce((sum, rebate) => sum + rebate, 0);
+  const outer_golds_loss = outer_golds.map(item => item.gold).reduce((sum, gold) => sum + gold, 0) - outer_golds_rebate;
 
   const relation = getGamesRelation({ ids: [event_id], listEvents: true, listPC: true }).map(item => {
     const { rel, ...relationInfo } = item;