Преглед на файлове

feat: bump panel to 2022.12.1

M1Screw преди 2 години
родител
ревизия
ced69dbf94
променени са 5 файла, в които са добавени 38 реда и са изтрити 38 реда
  1. 8 6
      README.md
  2. 1 1
      app/predefine.php
  3. 1 1
      composer.json
  4. 21 29
      src/Command/FinanceMail.php
  5. 7 1
      src/Command/Job.php

+ 8 - 6
README.md

@@ -1,4 +1,4 @@
-<img src="https://raw.githubusercontent.com/Anankke/SSPanel-Uim/dev/public/images/uim-logo-round_192x192.png" alt="logo" width="130" height="130" align="left" />
+<img src="public/images/uim-logo-round_192x192.png" alt="logo" width="130" height="130" align="left" />
 
 <h1>SSPanel UIM</h1>
 
@@ -16,7 +16,7 @@
 
 ## 简介
 
-SSPanel UIM 是一款专为 Shadowsocks / V2Ray / Trojan 设计的多用户管理面板,基于 orvice/ss-panel v3 版本开发
+SSPanel UIM 是一款专为 Shadowsocks / V2Ray / Trojan 协议设计的多用途代理服务销售管理系统
 
 ## 特性
 
@@ -24,9 +24,9 @@ SSPanel UIM 是一款专为 Shadowsocks / V2Ray / Trojan 设计的多用户管
 - 数据库化配置,管理面板一键配置
 - 支持多种邮件服务,内置队列功能,无需第三方组件即可使用
 - 内置基于 Bootstrap 5 的 tabler 主题,Smarty 模板引擎支持
-- 自定义节点配置,支持 Shadowsocks 2022,Shadowsocks AEAD,Trojan-Go 等最新代理协议
+- 支持 Shadowsocks 2022,Shadowsocks AEAD,Trojan-Go 等最新代理协议
 - 通用订阅接口,一键 json/clash 格式订阅下发,自定义客户端更简单
-- 模块化订阅系统,支持多种传统订阅模式,自定义订阅更方便
+- 自定义节点配置,模块化订阅系统,支持多种传统订阅模式,自定义订阅更方便
 - 支持 用户IP匿名化,无日志模式,用户自助删除数据 等隐私保护功能,满足合规性需求
 
 ## 安装
@@ -35,8 +35,8 @@ SSPanel UIM 的需要以下程序才能正常的安装和运行:
 
 - Git
 - Nginx
-- PHP 8.0
-- MySQL 8.0 / MariaDB 10.6+
+- PHP 8.0+
+- MariaDB 10.6+
 
 ## 文档
 
@@ -59,9 +59,11 @@ SSPanel UIM 欢迎各种贡献,包括但不限于改进,新功能,文档
 ## 支持开发者
 
 ### M1Screw
+
 [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/O5O850UEH)
 
 ## Sponsor / 赞助商
+
 [![](.github/jetbrains.png)](https://www.jetbrains.com/?from=SSPanel-UIM)
 
 ## 协议

+ 1 - 1
app/predefine.php

@@ -7,4 +7,4 @@ declare(strict_types=1);
  */
 
 define('BASE_PATH', __DIR__ . '/..');
-define('VERSION', '2022.12');
+define('VERSION', '2022.12.1');

+ 1 - 1
composer.json

@@ -8,7 +8,7 @@
         "anankke/omnipay-alipay": "^3.1.3",
         "aws/aws-sdk-php": "^3",
         "cloudflare/sdk": "^1",
-        "esdeathlove/datatables": "^1.6",
+        "ozdemir/datatables": "^2",
         "guzzlehttp/guzzle": "^7.4",
         "guzzlehttp/psr7": "^2.4",
         "illuminate/database": "^9.0",

+ 21 - 29
src/Command/FinanceMail.php

@@ -5,9 +5,10 @@ declare(strict_types=1);
 namespace App\Command;
 
 use App\Models\User;
-use App\Utils\DatatablesHelper;
+use App\Services\Config;
 use App\Utils\Telegram;
 use Ozdemir\Datatables\Datatables;
+use Ozdemir\Datatables\DB\MySQL;
 
 final class FinanceMail extends Command
 {
@@ -34,31 +35,28 @@ EOL;
 
     public function day(): void
     {
-        $datatables = new Datatables(new DatatablesHelper());
+        $datatables = new Datatables(new MySQL(Config::getDbConfig()));
         $datatables->query(
             'select code.number, code.userid, code.usedatetime from code
 		where TO_DAYS(NOW()) - TO_DAYS(code.usedatetime) = 1 and code.type = -1 and code.isused= 1'
         );
-        $text_json = $datatables->generate();
-        $text_array = \json_decode($text_json, true);
+        $text_array = $datatables->generate()->toArray();
         $codes = $text_array['data'];
         $text_html = '<table border=1><tr><td>金额</td><td>用户ID</td><td>用户名</td><td>充值时间</td>';
-        $income_count = 0;
         $income_total = 0.00;
         foreach ($codes as $code) {
             $text_html .= '<tr>';
-            $text_html .= '<td>' . $code['number'] . '</td>';
-            $text_html .= '<td>' . $code['userid'] . '</td>';
-            $user = User::find($code['userid']);
+            $text_html .= '<td>' . $code[0] . '</td>';
+            $text_html .= '<td>' . $code[1] . '</td>';
+            $user = User::find($code[1]);
             $text_html .= '<td>' . $user->user_name . '</td>';
-            $text_html .= '<td>' . $code['usedatetime'] . '</td>';
+            $text_html .= '<td>' . $code[2] . '</td>';
             $text_html .= '</tr>';
-            ++$income_count;
-            $income_total += $code['number'];
+            $income_total += $code[0];
         }
 
         $text_html .= '</table>';
-        $text_html .= '<br>昨日总收入笔数:' . $income_count . '<br>昨日总收入金额:' . $income_total;
+        $text_html .= '<br>昨日总收入笔数:' . $text_array['recordsTotal'] . '<br>昨日总收入金额:' . $income_total;
 
         $adminUser = User::where('is_admin', '=', '1')->get();
         foreach ($adminUser as $user) {
@@ -77,7 +75,7 @@ EOL;
         if ($_ENV['finance_public']) {
             Telegram::send(
                 '新鲜出炉的财务日报~' . PHP_EOL .
-                '昨日总收入笔数:' . $income_count . PHP_EOL .
+                '昨日总收入笔数:' . $text_array['recordsTotal'] . PHP_EOL .
                 '昨日总收入金额:' . $income_total . PHP_EOL .
                 '凌晨也在努力工作~'
             );
@@ -86,24 +84,21 @@ EOL;
 
     public function week(): void
     {
-        $datatables = new Datatables(new DatatablesHelper());
+        $datatables = new Datatables(new MySQL(Config::getDbConfig()));
         $datatables->query(
             'SELECT code.number FROM code
 		WHERE DATEDIFF(NOW(),code.usedatetime) <=7 AND DATEDIFF(NOW(),code.usedatetime) >=1 AND code.isused = 1'
         );
         //每周的第一天是周日,因此统计周日~周六的七天
-        $text_json = $datatables->generate();
-        $text_array = \json_decode($text_json, true);
+        $text_array = $datatables->generate()->toArray();
         $codes = $text_array['data'];
         $text_html = '';
-        $income_count = 0;
         $income_total = 0.00;
         foreach ($codes as $code) {
-            ++$income_count;
-            $income_total += $code['number'];
+            $income_total += $code[0];
         }
 
-        $text_html .= '<br>上周总收入笔数:' . $income_count . '<br>上周总收入金额:' . $income_total;
+        $text_html .= '<br>上周总收入笔数:' . $text_array['recordsTotal'] . '<br>上周总收入金额:' . $income_total;
 
         $adminUser = User::where('is_admin', '=', '1')->get();
         foreach ($adminUser as $user) {
@@ -122,7 +117,7 @@ EOL;
         if ($_ENV['finance_public']) {
             Telegram::send(
                 '新鲜出炉的财务周报~' . PHP_EOL .
-                '上周总收入笔数:' . $income_count . PHP_EOL .
+                '上周总收入笔数:' . $text_array['recordsTotal'] . PHP_EOL .
                 '上周总收入金额:' . $income_total . PHP_EOL .
                 '周末也在努力工作~'
             );
@@ -131,22 +126,19 @@ EOL;
 
     public function month(): void
     {
-        $datatables = new Datatables(new DatatablesHelper());
+        $datatables = new Datatables(new MySQL(Config::getDbConfig()));
         $datatables->query(
             'select code.number from code
 		where date_format(code.usedatetime,\'%Y-%m\')=date_format(date_sub(curdate(), interval 1 month),\'%Y-%m\') and code.type = -1 and code.isused= 1'
         );
-        $text_json = $datatables->generate();
-        $text_array = \json_decode($text_json, true);
+        $text_array = $datatables->generate()->toArray();
         $codes = $text_array['data'];
         $text_html = '';
-        $income_count = 0;
         $income_total = 0.00;
         foreach ($codes as $code) {
-            ++$income_count;
-            $income_total += $code['number'];
+            $income_total += $code[0];
         }
-        $text_html .= '<br>上月总收入笔数:' . $income_count . '<br>上月总收入金额:' . $income_total;
+        $text_html .= '<br>上月总收入笔数:' . $text_array['recordsTotal'] . '<br>上月总收入金额:' . $income_total;
 
         $adminUser = User::where('is_admin', '=', '1')->get();
         foreach ($adminUser as $user) {
@@ -165,7 +157,7 @@ EOL;
         if ($_ENV['finance_public']) {
             Telegram::send(
                 '新鲜出炉的财务月报~' . PHP_EOL .
-                '上月总收入笔数:' . $income_count . PHP_EOL .
+                '上月总收入笔数:' . $text_array['recordsTotal'] . PHP_EOL .
                 '上月总收入金额:' . $income_total . PHP_EOL .
                 '月初也在努力工作~'
             );

+ 7 - 1
src/Command/Job.php

@@ -85,7 +85,13 @@ EOL;
         $users = User::all();
 
         $ann_latest_raw = Ann::orderBy('date', 'desc')->first();
-        $ann_latest = $ann_latest_raw->content . '<br><br>';
+
+        // 判断是否有公告
+        if ($ann_latest_raw === null) {
+            $ann_latest = '<br><br>';
+        } else {
+            $ann_latest = $ann_latest_raw->content . '<br><br>';
+        }
 
         $lastday_total = 0;