优化中奖权重计算方式
This commit is contained in:
@@ -8,6 +8,7 @@ namespace app\dice\controller\reward_config;
|
||||
|
||||
use plugin\saiadmin\basic\BaseController;
|
||||
use app\dice\logic\reward_config\DiceRewardConfigLogic;
|
||||
use app\dice\logic\reward\DiceRewardLogic;
|
||||
use app\dice\validate\reward_config\DiceRewardConfigValidate;
|
||||
use plugin\saiadmin\service\Permission;
|
||||
use support\Request;
|
||||
@@ -124,20 +125,21 @@ class DiceRewardConfigController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* T1-T5、BIGWIN 权重配比:按档位分组返回配置列表
|
||||
* T1-T5、BIGWIN 权重配比:按档位分组返回配置列表(含顺时针/逆时针权重,来自 dice_reward)
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('奖励配置列表', 'dice:reward_config:index:index')]
|
||||
public function weightRatioList(Request $request): Response
|
||||
{
|
||||
$data = $this->logic->getListGroupedByTier();
|
||||
$rewardLogic = new DiceRewardLogic();
|
||||
$data = $rewardLogic->getListGroupedByTierWithDirection();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* T1-T5、BIGWIN 权重配比:批量更新权重(单条 weight 1-10000,各档位权重和不限制)
|
||||
* 保存后 Logic 会重新实例化奖励配置表缓存(DiceRewardConfig::refreshCache)
|
||||
* T1-T5、BIGWIN 权重配比:按 DiceReward 主键 id 批量更新 weight(写入 dice_reward,修改后刷新缓存)
|
||||
* items: [ { id: DiceReward.id, weight: 1-10000 }, ... ]
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
@@ -149,13 +151,32 @@ class DiceRewardConfigController extends BaseController
|
||||
return $this->fail('参数 items 必须为数组');
|
||||
}
|
||||
try {
|
||||
$this->logic->batchUpdateWeights($items);
|
||||
$rewardLogic = new DiceRewardLogic();
|
||||
$rewardLogic->batchUpdateWeights($items);
|
||||
return $this->success('保存成功');
|
||||
} catch (\plugin\saiadmin\exception\ApiException $e) {
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建奖励对照:按当前 dice_reward_config 为两种方向(顺时针0、逆时针1)生成所有色子可能对应的 dice_reward 记录
|
||||
* 权重默认 1,可在「奖励对照」页的权重编辑弹窗中调整
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
#[Permission('奖励配置修改', 'dice:reward_config:index:update')]
|
||||
public function createRewardReference(Request $request): Response
|
||||
{
|
||||
try {
|
||||
$rewardLogic = new DiceRewardLogic();
|
||||
$result = $rewardLogic->createRewardReferenceFromConfig();
|
||||
return $this->success($result, '创建奖励对照成功');
|
||||
} catch (\plugin\saiadmin\exception\ApiException $e) {
|
||||
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 概率
|
||||
|
||||
Reference in New Issue
Block a user