Files
Socket/docs/洗码量计算规则.md
OG Backup 2cd31285f0 backup: 线上最终版本全量备份
包含所有线上运行的改动:
- 荷官端倒计时卡顿修复(CountdownService TTL+10/前端watchdog)
- 停止下注debounce防重复(8个handle.js)
- 洗码量规则重写(单边/双边/开和不计/百家乐+龙虎)
- 龙虎和局不杀庄闲(全额退回)
- 日志系统(Logger工具类/日志查看/清理脚本)
- 好路提醒异常处理(WaybillRemindService try-catch)
- 扫牌器连接改进(ScanConnectService)
- 牛牛/三卡开牌修复
- .gitignore更新/.DS_Store清理
2026-06-14 14:20:43 +08:00

62 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 洗码量(码量)计算规则
> 客户在 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**,改了码率只影响之后开的局,已开未结的局不变