修改河南项目的管理后台ui
This commit is contained in:
@@ -85,6 +85,13 @@ public class TtUpgradeRecord implements Serializable {
|
||||
@TableField("effective_amount_invested")
|
||||
private BigDecimal effectiveAmountInvested;
|
||||
|
||||
/** 本次拉取时的全局水位%(1−RTP,排除白号、含人工调整),用于复盘「这批货在什么水位下出的」 */
|
||||
private BigDecimal watermark;
|
||||
|
||||
/** 本轮抽到的随机数快照(单位:饰品价百分比;水位驱动的结果) */
|
||||
@TableField("round_target")
|
||||
private Integer roundTarget;
|
||||
|
||||
/** 真实计算金额:超过 75% 按 75% 计算,小于等于 75% 按实际概率计算 */
|
||||
@TableField("effective_amount")
|
||||
private BigDecimal effectiveAmount;
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.ruoyi.domain.other;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 幸运升级奖池水位调整日志 tt_upgrade_reward_log(注水/抽水/重置审计)。
|
||||
* <p>
|
||||
* 水位口径:水位 = (Σ下注 − Σ返奖 + 人工调整) / Σ下注,统计**全局**(整个幸运升级、所有饰品位),
|
||||
* 且**排除白号**(白号是演出账号,其成本单独展示,不参与水位)。
|
||||
* <p>
|
||||
* 人工调整额 = 本表 {@code SUM(delta)}(DB 为真相),Redis 只做短缓存。
|
||||
* {@code delta} 是带符号影响:注水为正、抽水为负、重置为抵消当前净调整的值。
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
@Builder
|
||||
@TableName("tt_upgrade_reward_log")
|
||||
public class TtUpgradeRewardLog implements Serializable {
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/** 1注水 2抽水 3重置 */
|
||||
private Integer type;
|
||||
|
||||
/** 调整金额(绝对值,展示用) */
|
||||
private BigDecimal amount;
|
||||
|
||||
/** 对水位的带符号影响(注水正 / 抽水负 / 重置为抵消值);水位调整额 = SUM(delta) */
|
||||
private BigDecimal delta;
|
||||
|
||||
@TableField("watermark_before")
|
||||
private BigDecimal watermarkBefore;
|
||||
|
||||
@TableField("watermark_after")
|
||||
private BigDecimal watermarkAfter;
|
||||
|
||||
private String operator;
|
||||
|
||||
/** 调整原因(必填,前端保证) */
|
||||
private String remark;
|
||||
|
||||
@TableField("create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.domain.other;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 幸运升级水位策略配置(sys_config: luckyUpgradeWatermark)。
|
||||
* <p>
|
||||
* <b>只配一个数:目标水位(%)</b>。水位是**整个幸运升级**的全局指标,含义是「平台希望长期维持的净收益比例」,
|
||||
* 由 {@code 水位% = (Σ下注 − Σ返奖 + 人工调整) / Σ下注 × 100} 实时算出(排除白号)。
|
||||
* <p>
|
||||
* 随机数不再由后台手配区间,而是按目标水位自动推算:
|
||||
* <ol>
|
||||
* <li>先算出「长期出这个随机数、水位正好停在目标值」的中心值 {@code V* = 100 / ((1 − 目标水位/100) × k)},
|
||||
* 其中 {@code k} 是实测标定系数(判定溢出导致实际需求约为名义值的 1.18~1.20 倍);</li>
|
||||
* <li>再按当前水位相对目标值的偏离做负反馈:水位高于目标 → 中心下移(放水),低于目标 → 上移(收紧);</li>
|
||||
* <li>最后在该饰品位自己的随机数区间 {@code [min, max]} 内围绕这个中心抖动,并夹取到区间边界。</li>
|
||||
* </ol>
|
||||
* ⇒ 后台改一个数即可,随机数的取值范围仍由每个饰品的区间控制(区间越宽,单轮波动越大)。
|
||||
*/
|
||||
@Data
|
||||
public class UpgradeWatermarkSettingBody {
|
||||
|
||||
/**
|
||||
* false = 逐字节回退旧行为(用每个饰品位固定 luck_section 抽随机数,不读水位)。
|
||||
* 出问题时关掉即可回滚,不需要发版。
|
||||
*/
|
||||
private Boolean enabled;
|
||||
|
||||
/**
|
||||
* <b>目标水位(%)</b> —— 平台希望长期维持的净收益比例。例:30 ⇒ 平均 RTP 约 70%。
|
||||
* <p>
|
||||
* 水位高于它 → 本轮随机数中心下调(放水,让玩家更容易出);
|
||||
* 水位低于它 → 中心上调(收紧)。长期会自动收敛回这个值。
|
||||
* 可为负数(负水位 = 允许先放水、后回收)。
|
||||
*/
|
||||
private Double targetWatermark;
|
||||
|
||||
/**
|
||||
* 响应灵敏度:当前水位每偏离目标 1 个百分点,随机数中心反向调整 {@code gain}%。
|
||||
* 默认 2(水位高出目标 10 个点 ⇒ 中心降 20%)。属调参用的高级参数,后台不展示。
|
||||
*/
|
||||
private Double gain;
|
||||
|
||||
/**
|
||||
* 幸运值累加口径 —— **只影响「展示值 + 落库快照」,不影响中奖判定**:
|
||||
* <ul>
|
||||
* <li>{@code raw}(默认)= 累加前端传来的原始概率,与历史记录口径一致;</li>
|
||||
* <li>{@code eff} = 累加 {@code min(概率,75)},与中奖判定同口径(选 >75% 时展示值不会跑在判定前面)。</li>
|
||||
* </ul>
|
||||
* 中奖判定固定使用 {@code min(概率,75)},与本配置无关。
|
||||
*/
|
||||
private String luckyValueMode;
|
||||
}
|
||||
Reference in New Issue
Block a user