flyzto před 3 měsíci
rodič
revize
12a225129c
2 změnil soubory, kde provedl 40 přidání a 4 odebrání
  1. 2 2
      server/models/GamesPs.js
  2. 38 2
      server/triangle/eventsMatch.js

+ 2 - 2
server/models/GamesPs.js

@@ -716,8 +716,8 @@ const updateSolutions = (solutions) => {
       }
     });
 
-    // Logs.out('solutions add %d, update %d, retain %d, remove %d',
-    //   solutionUpdate.add.length, solutionUpdate.update.length, solutionUpdate.retain.length, solutionUpdate.remove.length);
+    Logs.out('solutions add %d, update %d, retain %d, remove %d',
+      solutionUpdate.add.length, solutionUpdate.update.length, solutionUpdate.retain.length, solutionUpdate.remove.length);
 
     syncSolutions(solutionUpdate);
 

+ 38 - 2
server/triangle/eventsMatch.js

@@ -79,19 +79,33 @@ const extractOdds = ({ evtime, events, sptime, special }) => {
   const setting = getSetting();
   const expireTimeEv = Date.now() - setting.expireTimeEvents;
   const expireTimeSP = Date.now() - setting.expireTimeSpecial;
+  const extractData = {
+    odds: null,
+    evExpire: false,
+    spExpire: false,
+    removeCount: 0,
+  }
   let odds = {};
   if (evtime > expireTimeEv) {
     odds = { ...odds, ...events };
   }
+  else {
+    extractData.evExpire = true;
+  }
   if (sptime > expireTimeSP) {
     odds = { ...odds, ...special };
   }
+  else {
+    extractData.spExpire = true;
+  }
   Object.keys(odds).forEach(ior => {
     if (!odds[ior]?.v || odds[ior].v <= 0) {
       delete odds[ior];
+      extractData.removeCount++;
     }
   });
-  return odds;
+  extractData.odds = odds;
+  return extractData;
 }
 
 const eventMatch = () => {
@@ -109,9 +123,18 @@ const eventMatch = () => {
 
     GLOBAL_DATA.relationLength = relationLength;
 
+    const expireEvents = [];
+
     const passableEvents = relations.map(({ id, rel }) => {
       const eventsMap = {};
       const oddsMap = {};
+      if (!rel.hasOwnProperty('ps')) {
+        expireEvents.push({
+          rel,
+          noPs: true,
+        });
+        return;
+      }
       Object.keys(rel).forEach(platform => {
         const { leagueName, teamHomeName, teamAwayName, timestamp, stage, score, evtime, events, sptime, special } = rel[platform];
         if (!events && !special) {
@@ -120,7 +143,16 @@ const eventMatch = () => {
         if (platform == 'ps') {
           eventsMap.info = { leagueName, teamHomeName, teamAwayName, id, timestamp, stage, score };
         }
-        const odds = extractOdds({ evtime, events, sptime, special });
+        const { odds, evExpire, spExpire, removeCount } = extractOdds({ evtime, events, sptime, special });
+        if (evExpire || spExpire || removeCount) {
+          expireEvents.push({
+            rel,
+            platform,
+            evExpire,
+            spExpire,
+            removeCount,
+          });
+        }
         Object.keys(odds).forEach(ior => {
           if (!oddsMap[ior]) {
             oddsMap[ior] = {};
@@ -133,6 +165,10 @@ const eventMatch = () => {
     })
     .filter(item => item.info);
 
+    if (expireEvents?.length) {
+      Logs.out('updateExpireEvents', expireEvents);
+    }
+
     const solutions = eventsCombination(passableEvents);
 
     // Logs.out('eventMatch solutions', solutions);