diff --git a/app/data/controller/base/Upgrade.php b/app/data/controller/base/Upgrade.php index badf84688..2514d81f5 100644 --- a/app/data/controller/base/Upgrade.php +++ b/app/data/controller/base/Upgrade.php @@ -47,6 +47,7 @@ class Upgrade extends Controller */ public function add() { + $this->max = BaseUserUpgrade::maxNumber() + 1; BaseUserUpgrade::mForm('form'); } @@ -56,6 +57,7 @@ class Upgrade extends Controller */ public function edit() { + $this->max = BaseUserUpgrade::maxNumber(); BaseUserUpgrade::mForm('form'); } @@ -67,9 +69,7 @@ class Upgrade extends Controller { if ($this->request->isGet()) { $this->prizes = RebateService::PRIZES; - if (!isset($vo['number'])) { - $vo['number'] = BaseUserUpgrade::mk()->order('number desc')->value('number', -1) + 1; - } + $vo['number'] = $vo['number'] ?? BaseUserUpgrade::maxNumber(); $vo['rebate_rule'] = str2arr($vo['rebate_rule'] ?? ''); } else { $vo['utime'] = time(); @@ -108,7 +108,7 @@ class Upgrade extends Controller $order = 'number asc,utime desc'; } foreach (BaseUserUpgrade::mk()->order($order)->select() as $number => $upgrade) { - $upgrade->save(['number' => $number]); + $upgrade->save(['number' => $number + 1]); } } } diff --git a/app/data/model/BaseUserUpgrade.php b/app/data/model/BaseUserUpgrade.php index 7d430c3b3..b139bb03c 100644 --- a/app/data/model/BaseUserUpgrade.php +++ b/app/data/model/BaseUserUpgrade.php @@ -11,5 +11,36 @@ use think\admin\Model; */ class BaseUserUpgrade extends Model { + /** + * 获取用户等级 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public static function items(): array + { + return static::mk()->where(['status' => 1]) + ->hidden(['id', 'utime', 'status', 'create_at']) + ->order('number asc')->select()->toArray(); + } + /** + * 获取最大级别数 + * @return int + */ + public static function maxNumber(): int + { + return static::mk()->max('number', 0) + 1; + } + + /** + * 格式化创建时间 + * @param string $value + * @return string + */ + public function getCreateAtAttr(string $value): string + { + return format_datetime($value); + } } \ No newline at end of file diff --git a/app/data/view/base/upgrade/form.html b/app/data/view/base/upgrade/form.html index be5f7a784..4cfa2d34e 100644 --- a/app/data/view/base/upgrade/form.html +++ b/app/data/view/base/upgrade/form.html @@ -23,7 +23,7 @@
等级序号Serial