flyzto 1 týždeň pred
rodič
commit
327dc3d6d8

+ 3 - 4
server/init.js

@@ -21,10 +21,9 @@ const Logs = require('./libs/logs');
     hgMaxDiff: 0,
     pcRebateRatio: 0,
     pcRebateType: 0,
-    subsidyTime: 0,
-    subsidyAmount: 0,
-    subsidyRbWmAmount: 0,
-    subsidyRbOtAmount: 0,
+    innerRouSubsidyValue: 0,
+    innerWmSubsidyRatio: 0,
+    innerOtSubsidyRatio: 0,
     halfTimeActiveTime: 0,
     expireTimeEvents: 45000,
     expireTimeSpecial: 60000,

+ 22 - 18
server/models/GamesPs.js

@@ -291,8 +291,7 @@ const syncBaseEvents = ({ mk, games, outrights }) => {
 
   const {
     expireTimeEvents, expireTimeSpecial,
-    subsidyTime, subsidyAmount,
-    subsidyRbWmAmount, subsidyRbOtAmount,
+    innerRouSubsidyValue, innerWmSubsidyRatio, innerOtSubsidyRatio,
     innerOuMinValue,
   } = getSetting();
   const nowTime = Date.now();
@@ -309,32 +308,33 @@ const syncBaseEvents = ({ mk, games, outrights }) => {
     const { eventId, originId, stage, retime, score, wm, evtime, events } = game;
     const baseGame = baseMap.get(eventId);
     if (baseGame) {
-      const { mk, timestamp } = baseGame;
-      const isRb = (mk == 2);
-      const isSubsidy = timestamp > nowTime && timestamp < nowTime + 1000*60*60*subsidyTime;
       Object.keys(events).forEach(ior => {
-        // 滚球胜平负补水
-        if (isRb && (ior.startsWith('ior_r') || ior.startsWith('ior_m') || ior.startsWith('ior_wm')) && subsidyRbWmAmount) {
+        const regRm = /^ior_(r|mh|mc)/;
+        const regWm = /^ior_(wm|mn)/;
+        const regOu = /^ior_ou/;
+        const regOt = /^ior_ot/;
+        // 胜负/让胜负/大小球调水(数值)
+        if ((regRm.test(ior) || regOu.test(ior)) && innerRouSubsidyValue) {
           const sourceOdds = events[ior].v;
-          events[ior].v = fixFloat(sourceOdds * (1 + subsidyRbWmAmount), 3);
+          events[ior].v = fixFloat(sourceOdds + innerRouSubsidyValue, 3);
           events[ior].s = sourceOdds;
         }
-        // 滚球进球数补水
-        // API采集特殊盘口用
-        else if (isRb && ior.startsWith('ior_ot') && subsidyRbOtAmount) {
+        // 平局/让平调水(%)
+        else if (regWm.test(ior) && innerWmSubsidyRatio) {
           const sourceOdds = events[ior].v;
-          events[ior].v = fixFloat(sourceOdds * (1 + subsidyRbOtAmount), 3);
+          events[ior].v = fixFloat(sourceOdds * (1 + innerWmSubsidyRatio / 100), 3);
           events[ior].s = sourceOdds;
         }
-        // 赛前进球数补水
-        // API采集特殊盘口用
-        else if (!isRb && isSubsidy && ior.startsWith('ior_ot') && subsidyAmount) {
+        // 进球数调水(%)
+        else if (regOt.test(ior) && innerOtSubsidyRatio) {
           const sourceOdds = events[ior].v;
-          events[ior].v = fixFloat(sourceOdds * (1 + subsidyAmount), 3);
+          events[ior].v = fixFloat(sourceOdds * (1 + innerOtSubsidyRatio / 100), 3);
           events[ior].s = sourceOdds;
         }
-        else if (ior.startsWith('ior_ou')) {
-          events[ior].q = events[ior]?.v < innerOuMinValue ? 0 : 1;
+        // 大小球最低赔率
+        if (regOu.test(ior) && innerOuMinValue) {
+          const sourceOdds = events[ior].s ?? events[ior].v ?? 1;
+          events[ior].q = sourceOdds < innerOuMinValue ? 0 : 1;
         }
       });
       baseGame.originId = originId;
@@ -1418,6 +1418,7 @@ const syncQbossConfig = () => {
       qboss_jq_add_odds, qboss_jq_add_hours,
       qboss_gq_add_dy_odds, qboss_gq_add_jq_odds,
       bc_before_hours,
+      qboss_ts_sfdx_odds_add, qboss_ts_pjrq_odds_add, qboss_ts_jqs_odds_add,
      } = data.data;
     const qbossSetting = {
       innerRebateRatio: qboss_return_ratio ? +qboss_return_ratio : 0,
@@ -1436,6 +1437,9 @@ const syncQbossConfig = () => {
       subsidyAmount: qboss_jq_add_odds ? +qboss_jq_add_odds : 0,
       subsidyRbWmAmount: qboss_gq_add_dy_odds ? +qboss_gq_add_dy_odds : 0,
       subsidyRbOtAmount: qboss_gq_add_jq_odds ? +qboss_gq_add_jq_odds : 0,
+      innerRouSubsidyValue: qboss_ts_sfdx_odds_add ? +qboss_ts_sfdx_odds_add : 0,
+      innerWmSubsidyRatio: qboss_ts_pjrq_odds_add ? +qboss_ts_pjrq_odds_add : 0,
+      innerOtSubsidyRatio: qboss_ts_jqs_odds_add ? +qboss_ts_jqs_odds_add : 0,
       halfTimeActiveTime: bc_before_hours ? +bc_before_hours : 0,
     };
     Logs.outDev('syncQbossConfig', qbossSetting);

+ 3 - 8
server/models/Setting.js

@@ -91,22 +91,17 @@ const systemSettingSchema = new Schema({
     required: true,
     default: 0
   },
-  subsidyTime: {
+  innerRouSubsidyValue: {
     type: Number,
     required: true,
     default: 0
   },
-  subsidyAmount: {
+  innerWmSubsidyRatio: {
     type: Number,
     required: true,
     default: 0
   },
-  subsidyRbWmAmount: {
-    type: Number,
-    required: true,
-    default: 0
-  },
-  subsidyRbOtAmount: {
+  innerOtSubsidyRatio: {
     type: Number,
     required: true,
     default: 0

+ 3 - 4
server/triangle/settings.js

@@ -18,10 +18,9 @@ const SETTING = {
   hgMaxDiff: 0,
   pcRebateRatio: 0,
   pcRebateType: 0,
-  subsidyTime: 0,
-  subsidyAmount: 0,
-  subsidyRbWmAmount: 0,
-  subsidyRbOtAmount: 0,
+  innerRouSubsidyValue: 0,
+  innerWmSubsidyRatio: 0,
+  innerOtSubsidyRatio: 0,
   halfTimeActiveTime: 0,
   expireTimeEvents: 45000,
   expireTimeSpecial: 60000,

+ 12 - 20
web/apps/web-antd/src/views/system/parameter/index.vue

@@ -22,10 +22,9 @@ const initialFormState = {
   hgMaxDiff: 0,
   pcRebateRatio: 0,
   pcRebateType: 0,
-  subsidyTime: 0,
-  subsidyAmount: 0,
-  subsidyRbWmAmount: 0,
-  subsidyRbOtAmount: 0,
+  innerRouSubsidyValue: 0,
+  innerWmSubsidyRatio: 0,
+  innerOtSubsidyRatio: 0,
   halfTimeActiveTime: 0,
   expireTimeEvents: 0,
   expireTimeSpecial: 0,
@@ -252,31 +251,24 @@ onUnmounted(() => {
       </Form.Item>
 
       <Form.Item
-        label="赛前补水时间(-h)"
-        name="subsidyTime"
+        label="让胜负/大小球调水"
+        name="innerRouSubsidyValue"
       >
-        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.subsidyTime" :min="0" :step="48" style="width: 200px" />
+        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.innerRouSubsidyValue" :min="0" :step="0.01" style="width: 200px" />
       </Form.Item>
 
       <Form.Item
-        label="赛前补水比例"
-        name="subsidyAmount"
+        label="平局/让平调水(%)"
+        name="innerWmSubsidyRatio"
       >
-        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.subsidyAmount" :min="0" :step="0.01" style="width: 200px" />
+        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.innerWmSubsidyRatio" :min="0" :step="0.1" style="width: 200px" />
       </Form.Item>
 
       <Form.Item
-        label="滚球补水(净胜)"
-        name="subsidyRbWmAmount"
+        label="进球数调水(%)"
+        name="innerOtSubsidyRatio"
       >
-        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.subsidyRbWmAmount" :min="0" :step="0.01" style="width: 200px" />
-      </Form.Item>
-
-      <Form.Item
-        label="滚球补水(进球)"
-        name="subsidyRbOtAmount"
-      >
-        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.subsidyRbOtAmount" :min="0" :step="0.01" style="width: 200px" />
+        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.innerOtSubsidyRatio" :min="0" :step="0.1" style="width: 200px" />
       </Form.Item>
 
       <Form.Item