flyzto пре 3 месеци
родитељ
комит
4ee0c988bc
5 измењених фајлова са 46 додато и 17 уклоњено
  1. 2 0
      server/init.js
  2. 28 14
      server/models/GamesPs.js
  3. 10 0
      server/models/Setting.js
  4. 3 2
      server/triangle/eventsMatch.js
  5. 3 1
      server/triangle/settings.js

+ 2 - 0
server/init.js

@@ -11,6 +11,8 @@ const Logs = require('./libs/logs');
     obRebateRatio: 0,
     hgRebateRatio: 0,
     runWorkerEnabled: false,
+    expireTimeEvents: 45000,
+    expireTimeSpecial: 60000
   })
   .then(() => {
     Logs.out('初始化设置完成');

+ 28 - 14
server/models/GamesPs.js

@@ -4,6 +4,8 @@ const Cache = require('../libs/cache');
 const Setting = require('./Setting');
 const { eventSolutions } = require('../triangle/eventSolutions');
 const { calcTotalProfit, calcTotalProfitWithFixedFirst } = require('../triangle/totalProfitCalc');
+const { getSetting, updateSetting } = require('../triangle/settings');
+
 const fs = require('fs');
 const path = require('path');
 
@@ -205,6 +207,8 @@ const submitOdds = ({ platform, mk, games }) => {
  */
 const syncBaseEvents = ({ mk, games, outrights }) => {
 
+  const { expireTimeEvents, expireTimeSpecial } = getSetting();
+
   const marketType = getMarketType(mk);
   const baseList = GAMES.Baselist;
   if (!baseList[marketType]) {
@@ -247,8 +251,8 @@ const syncBaseEvents = ({ mk, games, outrights }) => {
   if (games?.length) {
     const gamesList = baseList[marketType]?.map(game => {
       const { evtime, events, sptime, special, ...gameInfo } = game;
-      const expireTimeEv = Date.now() - 45000;
-      const expireTimeSP = Date.now() - 60000;
+      const expireTimeEv = Date.now() - expireTimeEvents;
+      const expireTimeSP = Date.now() - expireTimeSpecial;
       let odds = {};
       if (evtime > expireTimeEv) {
         odds = { ...odds, ...events };
@@ -712,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);
 
@@ -724,8 +728,8 @@ const updateSolutions = (solutions) => {
  * 获取中单方案
  */
 const getSolutions = async ({ win_min }) => {
-  Logs.out('getSolutions', win_min);
-  const { minShowAmount } = await getSetting();
+  // Logs.out('getSolutions', win_min);
+  const { minShowAmount } = getSetting();
   const solutionsList = Object.values(GAMES.Solutions);
   const gamesRelation = getGamesRelation();
   const relationsMap = new Map(gamesRelation.map(item => [item.id, item.rel]));
@@ -787,7 +791,7 @@ setInterval(() => {
  * 获取综合利润
  */
 const getTotalProfit = async (sol1, sol2, inner_base, inner_rebate) => {
-  const { innerDefaultAmount, innerRebateRatio } = await getSetting();
+  const { innerDefaultAmount, innerRebateRatio } = getSetting();
   inner_base = inner_base ? +inner_base : innerDefaultAmount;
   inner_rebate = inner_rebate ? +inner_rebate : fixFloat(innerRebateRatio / 100, 3);
   const profit = calcTotalProfit(sol1, sol2, inner_base, inner_rebate);
@@ -816,7 +820,7 @@ const getTotalProfitWithSid = async (sid1, sid2, inner_base, inner_rebate) => {
  * 通过盘口信息获取综合利润
  */
 const getTotalProfitWithBetInfo = async (betInfo1, betInfo2, fixed=false, inner_base, inner_rebate) => {
-  const { innerDefaultAmount, innerRebateRatio } = await getSetting();
+  const { innerDefaultAmount, innerRebateRatio } = getSetting();
   inner_base = inner_base ? +inner_base : innerDefaultAmount;
   inner_rebate = inner_rebate ? +inner_rebate : fixFloat(innerRebateRatio / 100, 3);
 
@@ -832,9 +836,9 @@ const getTotalProfitWithBetInfo = async (betInfo1, betInfo2, fixed=false, inner_
 /**
  * 获取后台设置
  */
-const getSetting = async () => {
-  return Setting.get();
-}
+// const getSetting = async () => {
+//   return ;
+// }
 
 /**
  * 异常通知
@@ -881,7 +885,7 @@ events_child.on('message', async (message) => {
       responseData = getGamesRelation({ listEvents: true });
     }
     else if (type == 'getSetting') {
-      responseData = await getSetting();
+      responseData = getSetting();
     }
     // else if (type == 'getSolutionHistory') {
     //   responseData = getSolutionHistory();
@@ -903,9 +907,19 @@ events_child.stderr?.on('data', data => {
   Logs.out('events_child stderr', data.toString());
 });
 
-Setting.onUpdate(fields => {
+const settingUpdate = (fields) => {
+  updateSetting(fields);
   postDataToChild('updateSetting', fields);
-});
+}
+
+const syncSetting = async () => {
+  const setting = await Setting.get();
+  settingUpdate(setting.toObject());
+}
+
+syncSetting();
+
+Setting.onUpdate(settingUpdate);
 
 /**
  * 保存GAMES数据到缓存文件

+ 10 - 0
server/models/Setting.js

@@ -40,6 +40,16 @@ const systemSettingSchema = new Schema({
     type: Boolean,
     required: true,
     default: false
+  },
+  expireTimeEvents: {
+    type: Number,
+    required: true,
+    default: 45000
+  },
+  expireTimeSpecial: {
+    type: Number,
+    required: true,
+    default: 60000
   }
 }, {
   toJSON: {

+ 3 - 2
server/triangle/eventsMatch.js

@@ -76,8 +76,9 @@ const updateSolutions = (solutions) => {
 }
 
 const extractOdds = ({ evtime, events, sptime, special }) => {
-  const expireTimeEv = Date.now() - 45000;
-  const expireTimeSP = Date.now() - 60000;
+  const setting = getSetting();
+  const expireTimeEv = Date.now() - setting.expireTimeEvents;
+  const expireTimeSP = Date.now() - setting.expireTimeSpecial;
   let odds = {};
   if (evtime > expireTimeEv) {
     odds = { ...odds, ...events };

+ 3 - 1
server/triangle/settings.js

@@ -7,7 +7,9 @@ const SETTING = {
   innerRebateRatio: 0,
   obRebateRatio: 0,
   hgRebateRatio: 0,
-  runWorkerEnabled: false
+  runWorkerEnabled: false,
+  expireTimeEvents: 45000,
+  expireTimeSpecial: 60000
 }
 
 const getSetting = (key) => {