From 9b11202debed42a062a72c6612905876d3dd37b1 Mon Sep 17 00:00:00 2001 From: ELF <360197197@qq.com> Date: Wed, 30 Sep 2020 10:23:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Base/Service/PromoteGradeService.class.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Application/Base/Service/PromoteGradeService.class.php b/Application/Base/Service/PromoteGradeService.class.php index a5005ce93..4f303e06b 100644 --- a/Application/Base/Service/PromoteGradeService.class.php +++ b/Application/Base/Service/PromoteGradeService.class.php @@ -40,7 +40,7 @@ class PromoteGradeService $config = []; $config['reach_level'] = $params['level']; - $config['grades'] = $params['grades']; + $config['grades'] = $this->sortGrades($params['grades']); $config['default_grade_name'] = $params['default_grade_name']; $data = []; @@ -59,9 +59,20 @@ class PromoteGradeService } } - private function checkGrades($grades) + private function sortGrades($grades) { + if (count($grades) == 0) { + return $grades; + } + $values = []; + $symbols = []; + foreach ($grades as $key => $row) { + $values[$key] = $row['value']; + $symbols[$key] = $row['symbol']; + } + array_multisort($values, SORT_ASC, $symbols, SORT_ASC, $grades); + return $grades; } public function getCurrentSetting($promote) @@ -145,7 +156,7 @@ class PromoteGradeService $gradeName = $config['default_grade_name']; break; } - $nextGrade = $grade[$key + 1] ?? null; + $nextGrade = $grades[$key + 1] ?? null; if ($this->isBigger($value, $grade) && !$this->isBigger($value, $nextGrade)) { $gradeName = $grade['name']; break;