[色子游戏]奖励配置权重测试记录

This commit is contained in:
2026-03-11 18:12:19 +08:00
parent 2af7fedcce
commit 064ce06393
18 changed files with 1720 additions and 19 deletions

View File

@@ -155,4 +155,29 @@ class DiceRewardConfigController extends BaseController
return $this->fail($e->getMessage());
}
}
/**
* 权重配比测试:仅模拟落点统计,不创建游玩记录。按当前配置在内存中模拟 N 次抽奖,返回各 grid_number 落点次数,可选保存到 dice_reward_config_record。
* @param Request $request test_count: 100|500|1000, save_record: bool, lottery_config_id: int|null 奖池配置ID用于设定 T1-T5 概率
* @return Response
*/
#[Permission('奖励配置列表', 'dice:reward_config:index:index')]
public function runWeightTest(Request $request): Response
{
$testCount = (int) $request->post('test_count', 100);
$saveRecord = (bool) $request->post('save_record', true);
$adminId = isset($this->adminInfo['id']) ? (int) $this->adminInfo['id'] : null;
$lotteryConfigId = $request->post('lottery_config_id', null);
if ($lotteryConfigId !== null && $lotteryConfigId !== '') {
$lotteryConfigId = (int) $lotteryConfigId;
} else {
$lotteryConfigId = null;
}
try {
$result = $this->logic->runWeightTest($testCount, $saveRecord, $adminId, $lotteryConfigId);
return $this->success($result);
} catch (\plugin\saiadmin\exception\ApiException $e) {
return $this->fail($e->getMessage());
}
}
}