# 洗码量(码量)计算规则 > 客户在 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**,改了码率只影响之后开的局,已开未结的局不变