docs: 洗码量计算规则文档(客户2026-05-28确认的完整规则)

This commit is contained in:
2026-05-29 06:14:20 +08:00
parent e44d645547
commit 73a8847ceb
+61
View File
@@ -0,0 +1,61 @@
# 洗码量(码量)计算规则
> 客户在 2026-05-28 明确的完整规则,由此重写了开奖结算逻辑。
> 实现位置:`app/services/opening/OpeningBaccaratService.php`、`OpeningDtService.php`
## 核心定义
**洗码量 = 投注额(按原投注额度计,不乘赔率)**
系统有两种洗码模式,存于 `cg_user.type_xima`
| type_xima | 模式 | 规则 |
|-----------|------|------|
| 1 | 双边洗码 | **所有投注**都计洗码,开和不计 |
| 2 | 单边洗码 | 只有**输口**计洗码,开和不计 |
> 注意:历史代码里 type_xima 的语义曾被误用为 `1=双边/2=单边`,已确认数据库中
> 单边洗码会员是 `type_xima=2`。
## 百家乐(game_id=1
下注位置:庄、闲、和、庄对、闲对、幸运6、大、小
**单边洗码(type_xima=2)— 输口计洗码:**
- 庄赢:洗码 = 闲 + 和 + 没中的对子 + 没中的幸运6 + 没中的大小
- 闲赢:洗码 = 庄 + 和 + 没中的对子 + 没中的幸运6 + 没中的大小
- 和局:庄闲退回不计,洗码 = 没中的对子 + 没中的幸运6 + 没中的大小
**双边洗码(type_xima=1)— 所有投注都计洗码:**
- 庄赢/闲赢:洗码 = 全部投注额(`$amount`
- 和局:庄闲退回部分不计,其余照常(开和不计核心投注)
## 龙虎(game_id=2
下注位置:龙、虎、和
- **和局不杀龙虎**,龙虎全额退回(dt_half 旧逻辑"和局杀一半"已废除)
- 单边洗码:龙赢→洗码=虎+和;虎赢→洗码=龙+和
- 双边洗码:龙赢/虎赢→洗码=全部投注额;和局→0
- 赔率:龙/虎 1:0.97,和 1:40
## 百家乐赔率补充
- 庄 1:0.95,闲 1:1,和 1:8
- 免佣模式(baccarat_type=1):庄赢且非幸运6 时 1:1,幸运6 时 1:0.5
## 关键代码模式
```php
// 输口判断:开出的结果 != 投注位置 → 该位置投注额计入 ximaliang
if($userInfo['type_xima'] == 1){
$ximaliang = $amount; // 双边:全部投注
}else{
$ximaliang += <各输口投注额>; // 单边:仅输口
}
// 开和:庄闲退回,ximaliang 不累加这部分
```
## 数据落地
- 洗码记录写入 `cg_xima` 表,字段 `ximaliang`(原投注额)、`maliang`=ximaliang×码率)、`net_maliang`
- 开奖时(OpeningXxxService→Bet::openingBet)实时按各级代理当前码率计算并落库
- **码率/占成在开奖时实时读 DB**,改了码率只影响之后开的局,已开未结的局不变