Bläddra i källkod

refactor: admin setting controllers

M1Screw 2 år sedan
förälder
incheckning
a2da4de0f8

+ 7 - 7
composer.lock

@@ -8696,16 +8696,16 @@
         },
         {
             "name": "sebastian/exporter",
-            "version": "5.1.0",
+            "version": "5.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "c3fa8483f9539b190f7cd4bfc4a07631dd1df344"
+                "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c3fa8483f9539b190f7cd4bfc4a07631dd1df344",
-                "reference": "c3fa8483f9539b190f7cd4bfc4a07631dd1df344",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+                "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
                 "shasum": ""
             },
             "require": {
@@ -8719,7 +8719,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "5.0-dev"
+                    "dev-main": "5.1-dev"
                 }
             },
             "autoload": {
@@ -8762,7 +8762,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/exporter/issues",
                 "security": "https://github.com/sebastianbergmann/exporter/security/policy",
-                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.0"
+                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
             },
             "funding": [
                 {
@@ -8770,7 +8770,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-09-18T07:15:37+00:00"
+            "time": "2023-09-24T13:22:09+00:00"
         },
         {
             "name": "sebastian/global-state",

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 208 - 208
config/settings.json


+ 11 - 1
src/Command/Tool.php

@@ -119,6 +119,7 @@ EOL;
         $settings = json_decode($json_settings, true);
         $config = [];
         $add_counter = 0;
+        $update_counter = 0;
         $del_counter = 0;
 
         // 检查新增
@@ -141,6 +142,14 @@ EOL;
 
                 echo '添加新数据库设置:' . $item_name . PHP_EOL;
                 $add_counter += 1;
+                continue;
+            }
+
+            if ($query->class !== $item['class']) {
+                $query->class = $item['class'];
+                $query->save();
+                echo '更新数据库设置:' . $item_name . PHP_EOL;
+                $update_counter += 1;
             }
         }
         // 检查移除
@@ -154,7 +163,8 @@ EOL;
         }
 
         if ($add_counter !== 0) {
-            echo '总计添加了 ' . $add_counter . ' 项新数据库设置' . PHP_EOL;
+            echo '总计添加了 ' . $add_counter . ' 项新数据库设置' . PHP_EOL .
+                '更新了 ' . $update_counter . ' 项数据库设置' . PHP_EOL;
         } else {
             echo '没有任何新数据库设置项需要添加' . PHP_EOL;
         }

+ 4 - 23
src/Controllers/Admin/Setting/BillingController.php

@@ -51,16 +51,7 @@ final class BillingController extends BaseController
      */
     public function billing($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('billing');
 
         return $response->write(
             $this->view()
@@ -93,21 +84,11 @@ final class BillingController extends BaseController
             ]);
         }
 
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/CaptchaController.php

@@ -30,16 +30,7 @@ final class CaptchaController extends BaseController
      */
     public function captcha($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('captcha');
 
         return $response->write(
             $this->view()
@@ -51,21 +42,11 @@ final class CaptchaController extends BaseController
 
     public function saveCaptcha($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 7 - 23
src/Controllers/Admin/Setting/CronController.php

@@ -30,16 +30,7 @@ final class CronController extends BaseController
      */
     public function cron($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('captcha');
 
         return $response->write(
             $this->view()
@@ -68,23 +59,16 @@ final class CronController extends BaseController
             ]);
         }
 
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } elseif ($setting->item === 'daily_job_minute') {
-                $setting->value = $daily_job_minute - ($daily_job_minute % 5);
-            } else {
-                $setting->value = $request->getParam($item);
+        foreach (self::$update_field as $item) {
+            if ($item === 'daily_job_minute') {
+                Setting::set($item, $daily_job_minute - ($daily_job_minute % 5));
+                continue;
             }
 
-            if (! $setting->save()) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/EmailController.php

@@ -54,16 +54,7 @@ final class EmailController extends BaseController
      */
     public function email($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('email');
 
         return $response->write(
             $this->view()
@@ -75,21 +66,11 @@ final class EmailController extends BaseController
 
     public function saveEmail($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/FeatureController.php

@@ -24,16 +24,7 @@ final class FeatureController extends BaseController
      */
     public function feature($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('feature');
 
         return $response->write(
             $this->view()
@@ -45,21 +36,11 @@ final class FeatureController extends BaseController
 
     public function saveFeature($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/ImController.php

@@ -67,16 +67,7 @@ final class ImController extends BaseController
      */
     public function im($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('im');
 
         return $response->write(
             $this->view()
@@ -88,21 +79,11 @@ final class ImController extends BaseController
 
     public function saveIm($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/RefController.php

@@ -27,16 +27,7 @@ final class RefController extends BaseController
      */
     public function ref($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('ref');
 
         return $response->write(
             $this->view()
@@ -48,21 +39,11 @@ final class RefController extends BaseController
 
     public function saveRef($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/RegController.php

@@ -36,16 +36,7 @@ final class RegController extends BaseController
      */
     public function reg($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('reg');
 
         return $response->write(
             $this->view()
@@ -57,21 +48,11 @@ final class RegController extends BaseController
 
     public function saveReg($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/SubscribeController.php

@@ -24,16 +24,7 @@ final class SubscribeController extends BaseController
      */
     public function sub($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('subscribe');
 
         return $response->write(
             $this->view()
@@ -45,21 +36,11 @@ final class SubscribeController extends BaseController
 
     public function saveSub($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 4 - 23
src/Controllers/Admin/Setting/SupportController.php

@@ -28,16 +28,7 @@ final class SupportController extends BaseController
      */
     public function support($request, $response, $args)
     {
-        $settings = [];
-        $settings_raw = Setting::get(['item', 'value', 'type']);
-
-        foreach ($settings_raw as $setting) {
-            if ($setting->type === 'bool') {
-                $settings[$setting->item] = (bool) $setting->value;
-            } else {
-                $settings[$setting->item] = (string) $setting->value;
-            }
-        }
+        $settings = Setting::getClass('support');
 
         return $response->write(
             $this->view()
@@ -49,21 +40,11 @@ final class SupportController extends BaseController
 
     public function saveSupport($request, $response, $args)
     {
-        $list = self::$update_field;
-
-        foreach ($list as $item) {
-            $setting = Setting::where('item', '=', $item)->first();
-
-            if ($setting->type === 'array') {
-                $setting->value = json_encode($request->getParam($item));
-            } else {
-                $setting->value = $request->getParam($item);
-            }
-
-            if (! $setting->save()) {
+        foreach (self::$update_field as $item) {
+            if (! Setting::set($item, $request->getParam($item))) {
                 return $response->withJson([
                     'ret' => 0,
-                    'msg' => "保存 {$item} 时出错",
+                    'msg' => '保存 ' . $item . ' 时出错',
                 ]);
             }
         }

+ 1 - 1
src/Controllers/AuthController.php

@@ -240,7 +240,7 @@ final class AuthController extends BaseController
         $is_admin_reg
     ): ResponseInterface {
         $redir = Cookie::get('redir') ?? '/user';
-        $configs = Setting::getClass('register');
+        $configs = Setting::getClass('reg');
         // do reg user
         $user = new User();
 

+ 1 - 1
src/Models/Payback.php

@@ -35,7 +35,7 @@ final class Payback extends Model
 
     public function rebate($user_id, $order_amount): void
     {
-        $configs = Setting::getClass('invite');
+        $configs = Setting::getClass('ref');
         $user = User::where('id', $user_id)->first();
         $gift_user_id = $user->ref_by;
         // 判断

+ 13 - 0
src/Models/Setting.php

@@ -55,4 +55,17 @@ final class Setting extends Model
 
         return $configs;
     }
+
+    public static function set($item, $value): bool
+    {
+        $config = self::where('item', $item)->first();
+
+        if ($config->tpye === 'array') {
+            $config->value = json_encode($value);
+        } else {
+            $config->value = $value;
+        }
+
+        return $config->save();
+    }
 }

+ 1 - 1
src/Services/Bot/Telegram/Callback.php

@@ -877,7 +877,7 @@ final class Callback
             $paybacks_sum = 0;
         }
 
-        $invite = Setting::getClass('invite');
+        $invite = Setting::getClass('ref');
 
         $text = [
             '<strong>你每邀请 1 位用户注册:</strong>',

+ 1 - 1
src/Services/Gateway/AopF2F.php

@@ -116,7 +116,7 @@ final class AopF2F extends AbstractPayment
 
     private function createGateway(): GatewayInterface
     {
-        $configs = Setting::getClass('f2f');
+        $configs = Setting::getClass('billing');
         $gateway = Omnipay::create('Alipay_AopF2F');
         $gateway->setSignType('RSA2'); //RSA/RSA2
         $gateway->setAppId($configs['f2f_pay_app_id']);

+ 1 - 1
src/Services/Gateway/PayPal.php

@@ -23,7 +23,7 @@ final class PayPal extends AbstractPayment
 
     public function __construct()
     {
-        $configs = Setting::getClass('paypal');
+        $configs = Setting::getClass('billing');
 
         $this->gateway_config = [
             'mode' => $configs['paypal_mode'],

+ 1 - 1
src/Services/Gateway/StripeCard.php

@@ -38,7 +38,7 @@ final class StripeCard extends AbstractPayment
     {
         $trade_no = uniqid();
         $user = Auth::getUser();
-        $configs = Setting::getClass('stripe');
+        $configs = Setting::getClass('billing');
         $price = $request->getParam('price');
 
         $pl = new Paylist();

+ 1 - 1
src/Services/Mail/Mailgun.php

@@ -18,7 +18,7 @@ final class Mailgun extends Base
 
     public function __construct()
     {
-        $configs = Setting::getClass('mailgun');
+        $configs = Setting::getClass('email');
 
         $this->mg = MG::create($configs['mailgun_key']);
         $this->domain = $configs['mailgun_domain'];

+ 1 - 1
src/Services/Mail/Postal.php

@@ -17,7 +17,7 @@ final class Postal extends Base
 
     public function __construct()
     {
-        $configs = Setting::getClass('postal');
+        $configs = Setting::getClass('email');
 
         $this->client = new Client($configs['postal_host'], $configs['postal_key']);
         $this->message = new Message();

+ 1 - 1
src/Services/Mail/SendGrid.php

@@ -22,7 +22,7 @@ final class SendGrid extends Base
      */
     public function __construct()
     {
-        $configs = Setting::getClass('sendgrid');
+        $configs = Setting::getClass('email');
 
         $this->sg = new SG($configs['sendgrid_key']);
         $this->email = new Mail();

+ 1 - 1
src/Services/Mail/Ses.php

@@ -13,7 +13,7 @@ final class Ses extends Base
 
     public function __construct()
     {
-        $configs = Setting::getClass('aws_ses');
+        $configs = Setting::getClass('email');
 
         $ses = new SesClient([
             'credentials' => [

+ 1 - 1
src/Services/Mail/Smtp.php

@@ -17,7 +17,7 @@ final class Smtp extends Base
      */
     public function __construct()
     {
-        $configs = Setting::getClass('smtp');
+        $configs = Setting::getClass('email');
 
         $mail = new PHPMailer();
         //$mail->SMTPDebug = 3;                               // Enable verbose debug output

Vissa filer visades inte eftersom för många filer har ändrats