Browse Source

返还率拆分

flyzto 2 weeks ago
parent
commit
184a7b60f8

+ 34 - 15
server/models/GamesPs.js

@@ -369,7 +369,7 @@ const getRouEvents = (events) => {
  * 限制让胜负/大小球返还率
  */
 const rouMaxAdjust = (events) => {
-  const { innerRouMaxAdjust, innerRouSubsidyValue } = getSetting();
+  const { innerReMaxAdjust, innerOuMaxAdjust, innerRouSubsidyValue } = getSetting();
   const rouEvents = getRouEvents(events);
   // Logs.outDev('rouEvents', rouEvents);
 
@@ -377,19 +377,33 @@ const rouMaxAdjust = (events) => {
   Object.values(rouEvents).forEach(item => {
     const [a, b] = item;
     const returnRate = (a.v*b.v)/(a.v+b.v)*100;
-    if (returnRate > innerRouMaxAdjust) {
-      const proportion = returnRate / innerRouMaxAdjust;
-      item.forEach(ior => {
-        const { key, v, r, q } = ior;
-        adjustedEvents[key] = {
-          v: fixFloat(v/proportion, 3),
-          r: r,
-          s: v,
-          q: q,
-          rt: fixFloat(returnRate, 3),
-        };
-      });
+    let reProportion = 1, ouProportion = 1;
+    if (returnRate > innerReMaxAdjust) {
+      reProportion = returnRate / innerReMaxAdjust;
+    }
+    if (returnRate > innerOuMaxAdjust) {
+      ouProportion = returnRate / innerOuMaxAdjust;
     }
+    item.forEach(ior => {
+      const { key, v, r, q } = ior;
+      let proportion = 1;
+      if (key.startsWith('ior_r')) {
+        proportion = reProportion;
+      }
+      else if (key.startsWith('ior_ou')) {
+        proportion = ouProportion;
+      }
+      else {
+        return;
+      }
+      adjustedEvents[key] = {
+        v: fixFloat(v/proportion, 3),
+        r: r,
+        s: v,
+        q: q,
+        rt: fixFloat(returnRate, 3),
+      };
+    });
   });
 
   if (events['ior_mh']?.v > adjustedEvents['ior_rh_05']?.v) {
@@ -1532,7 +1546,10 @@ const syncQbossConfig = () => {
       pc_return_ratio, pc_return_type,
       // qboss_jq_add_odds, qboss_jq_add_hours,
       // qboss_gq_add_dy_odds, qboss_gq_add_jq_odds,
-      bc_before_hours, qboss_ts_rqdx_max_return_rate_adjust,
+      bc_before_hours,
+      // qboss_ts_rqdx_max_return_rate_adjust,
+      qboss_ts_rq_max_return_rate_adjust,
+      qboss_ts_dx_max_return_rate_adjust,
       qboss_ts_sfdx_odds_add, qboss_ts_pjrq_odds_add, qboss_ts_jqs_odds_add,
      } = data.data;
     const qbossSetting = {
@@ -1553,7 +1570,9 @@ const syncQbossConfig = () => {
       // subsidyRbWmAmount: +(qboss_gq_add_dy_odds ?? '0'),
       // subsidyRbOtAmount: +(qboss_gq_add_jq_odds ?? '0'),
       innerRouSubsidyValue: +(qboss_ts_sfdx_odds_add ?? '0'),
-      innerRouMaxAdjust: +(qboss_ts_rqdx_max_return_rate_adjust ?? '100'),
+      // innerRouMaxAdjust: +(qboss_ts_rqdx_max_return_rate_adjust ?? '100'),
+      innerReMaxAdjust: +(qboss_ts_rq_max_return_rate_adjust ?? '100'),
+      innerOuMaxAdjust: +(qboss_ts_dx_max_return_rate_adjust ?? '100'),
       innerWmSubsidyRatio: +(qboss_ts_pjrq_odds_add ?? '0'),
       innerOtSubsidyRatio: +(qboss_ts_jqs_odds_add ?? '0'),
       halfTimeActiveTime: +(bc_before_hours ?? '0'),

+ 11 - 1
server/models/Setting.js

@@ -96,7 +96,17 @@ const systemSettingSchema = new Schema({
     required: true,
     default: 0
   },
-  innerRouMaxAdjust: {
+  // innerRouMaxAdjust: {
+  //   type: Number,
+  //   required: true,
+  //   default: 100
+  // },
+  innerReMaxAdjust: {
+    type: Number,
+    required: true,
+    default: 100
+  },
+  innerOuMaxAdjust: {
     type: Number,
     required: true,
     default: 100

+ 2 - 1
server/triangle/settings.js

@@ -19,7 +19,8 @@ const SETTING = {
   pcRebateRatio: 0,
   pcRebateType: 0,
   innerRouSubsidyValue: 0,
-  innerRouMaxAdjust: 100,
+  innerReMaxAdjust: 100,
+  innerOuMaxAdjust: 100,
   innerWmSubsidyRatio: 0,
   innerOtSubsidyRatio: 0,
   halfTimeActiveTime: 0,

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

@@ -23,7 +23,8 @@ const initialFormState = {
   pcRebateRatio: 0,
   pcRebateType: 0,
   innerRouSubsidyValue: 0,
-  innerRouMaxAdjust: 100,
+  innerReMaxAdjust: 100,
+  innerOuMaxAdjust: 100,
   innerWmSubsidyRatio: 0,
   innerOtSubsidyRatio: 0,
   halfTimeActiveTime: 0,
@@ -259,10 +260,17 @@ onUnmounted(() => {
       </Form.Item>
 
       <Form.Item
-        label="让胜负/大小返还率(%)"
-        name="innerRouMaxAdjust"
+        label="让胜负返还率(%)"
+        name="innerReMaxAdjust"
       >
-        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.innerRouMaxAdjust" :min="0" :step="0.1" style="width: 200px" />
+        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.innerReMaxAdjust" :min="0" :step="0.1" style="width: 200px" />
+      </Form.Item>
+
+      <Form.Item
+        label="大小球返还率(%)"
+        name="innerOuMaxAdjust"
+      >
+        <InputNumber :disabled="formState.syncSettingEnabled" v-model:value="formState.innerOuMaxAdjust" :min="0" :step="0.1" style="width: 200px" />
       </Form.Item>
 
       <Form.Item