From 226675c6bd2e44ef5ac818b5b4c23b8ed1bc0554 Mon Sep 17 00:00:00 2001 From: zhenhui <1276357500@qq.com> Date: Thu, 4 Jun 2026 15:49:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0/dice/reward=5Fconfig=5Frec?= =?UTF-8?q?ord/index=E7=9A=84=E5=85=B3=E8=81=94=E5=88=A0=E9=99=A4/dice/pla?= =?UTF-8?q?y=5Frecord=5Ftest/index=E4=B8=AD=E7=9A=84=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=AF=A6=E7=BB=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DiceRewardConfigRecordLogic.php | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/server/app/dice/logic/reward_config_record/DiceRewardConfigRecordLogic.php b/server/app/dice/logic/reward_config_record/DiceRewardConfigRecordLogic.php index b868543..82e5857 100644 --- a/server/app/dice/logic/reward_config_record/DiceRewardConfigRecordLogic.php +++ b/server/app/dice/logic/reward_config_record/DiceRewardConfigRecordLogic.php @@ -11,6 +11,7 @@ use app\dice\model\ante_config\DiceAnteConfig; use app\dice\model\lottery_pool_config\DiceLotteryPoolConfig; use app\dice\model\reward\DiceReward; use app\dice\model\reward\DiceRewardConfig; +use app\dice\model\play_record_test\DicePlayRecordTest; use app\dice\model\reward_config_record\DiceRewardConfigRecord; use app\dice\basic\DiceBaseLogic; use plugin\saiadmin\exception\ApiException; @@ -77,6 +78,51 @@ class DiceRewardConfigRecordLogic extends DiceBaseLogic return $map; } + /** + * 删除权重测试记录,并级联删除 dice_play_record_test 中 reward_config_record_id 关联的明细 + * @param mixed $ids + */ + public function destroy($ids): bool + { + return $this->transaction(function () use ($ids) { + $intIds = $this->normalizeDestroyIds($ids); + if ($intIds === []) { + return false; + } + $this->destroyRelatedPlayRecordTests($intIds); + + return parent::destroy($intIds); + }); + } + + /** + * @param mixed $ids + * @return list + */ + private function normalizeDestroyIds($ids): array + { + $idList = is_array($ids) ? $ids : explode(',', (string) $ids); + $intIds = []; + foreach ($idList as $v) { + $iv = (int) $v; + if ($iv > 0) { + $intIds[] = $iv; + } + } + + return array_values(array_unique($intIds)); + } + + /** + * @param list $recordIds dice_reward_config_record.id + */ + private function destroyRelatedPlayRecordTests(array $recordIds): void + { + DicePlayRecordTest::destroy(function ($query) use ($recordIds) { + $query->whereIn('reward_config_record_id', $recordIds); + }); + } + /** * 将测试记录导入:DiceReward(权重快照)、DiceRewardConfig(BIGWIN weight)、DiceLotteryPoolConfig(付费/免费 T1-T5) * @param int $recordId 测试记录 ID