优化抽奖方式,以及记录相关信息

This commit is contained in:
2026-03-26 18:10:41 +08:00
parent 77ec0dcade
commit e32f3890f1
32 changed files with 304 additions and 244 deletions

View File

@@ -19,6 +19,26 @@ use support\think\Db;
class WeightTestRunner
{
private const BATCH_SIZE = 10;
/** 测试记录写库白名单字段 */
private const PLAY_RECORD_TEST_COLUMNS = [
'reward_config_record_id',
'admin_id',
'lottery_config_id',
'lottery_type',
'is_win',
'win_coin',
'super_win_coin',
'reward_win_coin',
'direction',
'reward_tier',
'ante',
'paid_amount',
'start_index',
'target_index',
'roll_array',
'roll_number',
'status',
];
/**
* 执行指定测试记录:按付费/免费、顺/逆方向交替模拟(付费顺→付费逆→免费顺→免费逆),每 10 条写入一次测试表并更新进度
@@ -194,10 +214,10 @@ class WeightTestRunner
'reward_config_record_id' => $rewardConfigRecordId,
];
$keys = [
'player_id', 'admin_id', 'lottery_config_id', 'lottery_type', 'is_win', 'win_coin',
'super_win_coin', 'reward_win_coin', 'use_coins', 'direction', 'reward_config_id',
'admin_id', 'lottery_config_id', 'lottery_type', 'is_win', 'win_coin',
'super_win_coin', 'reward_win_coin', 'direction', 'reward_tier',
'ante', 'paid_amount',
'start_index', 'target_index', 'roll_array', 'roll_number', 'lottery_name', 'status',
'start_index', 'target_index', 'roll_array', 'roll_number', 'status',
];
foreach ($keys as $k) {
if (array_key_exists($k, $row)) {
@@ -223,7 +243,19 @@ class WeightTestRunner
return;
}
foreach ($rows as $row) {
DicePlayRecordTest::create($row);
if (!is_array($row)) {
continue;
}
$payload = [];
foreach (self::PLAY_RECORD_TEST_COLUMNS as $column) {
if (array_key_exists($column, $row)) {
$payload[$column] = $row[$column];
}
}
if ($payload === []) {
continue;
}
Db::name((new DicePlayRecordTest())->getTable())->insert($payload);
}
}