From f58f83f454ac13ad6e5f2767ab6d24414804cce4 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 21:43:36 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/SettingController.php | 10 +- app/Http/Controllers/HomeController.php | 32 ++++ public/admin-assets/IOS.svg | 1 + public/admin-assets/android-fill.svg | 1 + resources/views/home/index.blade.php | 173 ++++++++++++++++++++ routes/web.php | 3 +- 6 files changed, 217 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/HomeController.php create mode 100644 public/admin-assets/IOS.svg create mode 100644 public/admin-assets/android-fill.svg create mode 100644 resources/views/home/index.blade.php diff --git a/app/Admin/Controllers/SettingController.php b/app/Admin/Controllers/SettingController.php index bb39508..f2f75e6 100644 --- a/app/Admin/Controllers/SettingController.php +++ b/app/Admin/Controllers/SettingController.php @@ -3,7 +3,6 @@ namespace App\Admin\Controllers; use Illuminate\Http\Request; -use Illuminate\Support\Arr; use Slowlyo\OwlAdmin\Controllers\AdminController; use Slowlyo\OwlAdmin\Renderers\Tab; use Slowlyo\OwlAdmin\Renderers\Tabs; @@ -27,6 +26,12 @@ class SettingController extends AdminController ->data(settings()->all()) ->body( Tabs::make()->tabs([ + Tab::make()->title('网站设置')->body([ + amis()->ImageControl('website.download_page_background', '下载页背景图') + ->accept('.png,.jpg,.jpeg') + ->receiver($this->uploadImagePath().'?full-url=1') + ->value('${website.download_page_background}'), + ]), Tab::make()->title('上传设置')->body([ amis()->RadiosControl('upload_disk', '上传驱动')->options([ 'public' => '本地存储', @@ -51,7 +56,8 @@ class SettingController extends AdminController $data = $request->only([ 'upload_disk', 'oss_config', - 'sign' + 'sign', + 'website', ]); //上传设置-修改env文件内配置; diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php new file mode 100644 index 0000000..102fc4f --- /dev/null +++ b/app/Http/Controllers/HomeController.php @@ -0,0 +1,32 @@ +get('website', []); + + $background = $websiteConfig['download_page_background'] ?? null; + + $apkDownloadUrl = AppVersion::onlyReleased() + ->where('os', AppOs::Android) + ->whereNotNull('apk_url') + ->latest('version') + ->value('apk_url'); + + $iosDownloadUrl = AppVersion::onlyReleased() + ->where('os', AppOs::Ios) + ->whereNotNull('apk_url') + ->latest('version') + ->value('apk_url'); + + return view('home.index', compact('apkDownloadUrl', 'iosDownloadUrl', 'background')); + } +} diff --git a/public/admin-assets/IOS.svg b/public/admin-assets/IOS.svg new file mode 100644 index 0000000..e620741 --- /dev/null +++ b/public/admin-assets/IOS.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/admin-assets/android-fill.svg b/public/admin-assets/android-fill.svg new file mode 100644 index 0000000..94a0c42 --- /dev/null +++ b/public/admin-assets/android-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/home/index.blade.php b/resources/views/home/index.blade.php new file mode 100644 index 0000000..81fe9dd --- /dev/null +++ b/resources/views/home/index.blade.php @@ -0,0 +1,173 @@ + + + + + + + 门店助手 - 下载 + + + + + +
+ + +
+ + + + + diff --git a/routes/web.php b/routes/web.php index cc576f9..b1f3997 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ Date: Sun, 5 May 2024 21:44:12 +0800 Subject: [PATCH 2/8] Update --- app/Http/Controllers/HomeController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 102fc4f..f66aa00 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -4,7 +4,6 @@ namespace App\Http\Controllers; use App\Enums\AppOs; use App\Models\AppVersion; -use Illuminate\Config\Repository; use Slowlyo\OwlAdmin\Services\AdminSettingService; class HomeController extends Controller From cc696f9efeda69945b62d588e45bc7bc49fb9206 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 21:54:13 +0800 Subject: [PATCH 3/8] Update --- app/Models/AppVersion.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/app/Models/AppVersion.php b/app/Models/AppVersion.php index 149abee..cbcbfd0 100644 --- a/app/Models/AppVersion.php +++ b/app/Models/AppVersion.php @@ -69,6 +69,30 @@ class AppVersion extends Model ->value('apk_url'); } + protected function apkUrl(): Attribute + { + return Attribute::make( + set: function (mixed $value) { + if ((string) $value === '') { + $value = null; + } + return $value; + }, + ); + } + + protected function wgtUrl(): Attribute + { + return Attribute::make( + set: function (mixed $value) { + if ((string) $value === '') { + $value = null; + } + return $value; + }, + ); + } + protected function isRelease(): Attribute { return Attribute::make( From e713c4c38ab663016d902e98cf358a435dd24db7 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 22:48:22 +0800 Subject: [PATCH 4/8] Update --- .../Controllers/Api/AppVersionController.php | 76 +++++++++---------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/app/Http/Controllers/Api/AppVersionController.php b/app/Http/Controllers/Api/AppVersionController.php index 4abd8bd..4d9fdec 100644 --- a/app/Http/Controllers/Api/AppVersionController.php +++ b/app/Http/Controllers/Api/AppVersionController.php @@ -13,56 +13,52 @@ class AppVersionController extends Controller public function latest(Request $request): array { // 客户端系统 - $cliOs = AppOs::tryFrom((string) $request->header('app-cli-os')); + $os = AppOs::tryFrom((string) $request->header('app-cli-os')); // 客户端版本 - $cliVersion = (int) $request->header('app-cli-version', 0); + $version = (int) $request->header('app-cli-version', 0); - $data = ['android' => null, 'ios' => null]; + $android = AppVersion::onlyReleased() + ->where('os', AppOs::Android) + ->latest('version') + ->first(); - foreach ([ - AppOs::Android, - AppOs::Ios, - ] as $os) { - /** @var \App\Models\AppVersion|null */ - $appVersion = AppVersion::onlyReleased() - ->where('os', $os) - ->latest('version') - ->first(); + $ios = AppVersion::onlyReleased() + ->where('os', AppOs::Ios) + ->latest('version') + ->first(); - if (is_null($appVersion)) { - continue; - } + switch ($os) { + case AppOs::Android: + if (! $android->isApkUpdate()) { + $apkUpdateVersion = AppVersion::onlyReleased() + ->where('os', AppOs::Android) + ->where('version', '>', $version) + ->where('update_strategy', AppUpdateStrategy::Apk) + ->latest('version') + ->first(); - $json = AppVersionResource::make($appVersion)->resolve($request); - - // 如果客户端版本和最新的版本之前有全量包更新的版本,则需全量包更新 - if (! $appVersion->isApkUpdate() && $cliOs === $os && $appVersion->version > $cliVersion + 1) { - $isApkUpdate = AppVersion::onlyReleased() - ->where('os', $cliOs) - ->where('version', '>', $cliVersion) - ->where('update_strategy', AppUpdateStrategy::Apk) - ->exists(); - - if ($isApkUpdate) { - $json['update_strategy'] = AppUpdateStrategy::Apk; - if ((string) $appVersion->apk_url === '') { - $json['apk_url'] = AppVersion::getLatestApkUrl($cliOs, $cliVersion); + if ($apkUpdateVersion) { + $android = $apkUpdateVersion; } } - } + break; - // 如果客户端版本和最新的版本之间有强制更新的版本,则需强制更新 - if (! $appVersion->is_force && $cliOs === $os && $appVersion->version > $cliVersion + 1) { - $json['is_force'] = AppVersion::onlyReleased() - ->where('os', $cliOs) - ->where('version', '>', $cliVersion) - ->where('is_force', true) - ->exists(); - } + case AppOs::Ios: + if (! $ios->isApkUpdate()) { + $apkUpdateVersion = AppVersion::onlyReleased() + ->where('os', AppOs::Ios) + ->where('version', '>', $version) + ->where('update_strategy', AppUpdateStrategy::Apk) + ->latest('version') + ->first(); - $data[$os->value] = $json; + if ($apkUpdateVersion) { + $ios = $apkUpdateVersion; + } + } + break; } - return $data; + return ['android' => $android, 'ios' => $ios]; } } From 65402eb793ff5d0252b652b94e4f18ad8244d428 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 22:50:41 +0800 Subject: [PATCH 5/8] Update --- app/Http/Controllers/Api/AppVersionController.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/AppVersionController.php b/app/Http/Controllers/Api/AppVersionController.php index 4d9fdec..64e8aae 100644 --- a/app/Http/Controllers/Api/AppVersionController.php +++ b/app/Http/Controllers/Api/AppVersionController.php @@ -59,6 +59,9 @@ class AppVersionController extends Controller break; } - return ['android' => $android, 'ios' => $ios]; + return [ + 'android' => $android ? AppVersionResource::make($android) : null, + 'ios' => $ios ? AppVersionResource::make($ios) : null, + ]; } } From f8c3f680105445b04041a71134f5d96e7bf9f2b6 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 23:02:49 +0800 Subject: [PATCH 6/8] Update --- .../Controllers/Api/AppVersionController.php | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/Api/AppVersionController.php b/app/Http/Controllers/Api/AppVersionController.php index 64e8aae..42b35f4 100644 --- a/app/Http/Controllers/Api/AppVersionController.php +++ b/app/Http/Controllers/Api/AppVersionController.php @@ -29,31 +29,45 @@ class AppVersionController extends Controller switch ($os) { case AppOs::Android: - if (! $android->isApkUpdate()) { - $apkUpdateVersion = AppVersion::onlyReleased() - ->where('os', AppOs::Android) - ->where('version', '>', $version) - ->where('update_strategy', AppUpdateStrategy::Apk) - ->latest('version') - ->first(); + if ($android->version > $version + 1) { + if (! $android->isApkUpdate()) { + $apkUpdateVersion = AppVersion::onlyReleased() + ->where('os', AppOs::Android) + ->where('version', '>', $version) + ->where('update_strategy', AppUpdateStrategy::Apk) + ->latest('version') + ->first(); - if ($apkUpdateVersion) { - $android = $apkUpdateVersion; + // 全量包更新 + if ($apkUpdateVersion) { + if ((string) $android->apk_url === '') { + $android->update_strategy = AppUpdateStrategy::Apk; + } else { + $android = $apkUpdateVersion; + } + } } } break; case AppOs::Ios: - if (! $ios->isApkUpdate()) { - $apkUpdateVersion = AppVersion::onlyReleased() - ->where('os', AppOs::Ios) - ->where('version', '>', $version) - ->where('update_strategy', AppUpdateStrategy::Apk) - ->latest('version') - ->first(); + if ($ios->version > $version + 1) { + if (! $ios->isApkUpdate()) { + $apkUpdateVersion = AppVersion::onlyReleased() + ->where('os', AppOs::Ios) + ->where('version', '>', $version) + ->where('update_strategy', AppUpdateStrategy::Apk) + ->latest('version') + ->first(); - if ($apkUpdateVersion) { - $ios = $apkUpdateVersion; + // 全量包更新 + if ($apkUpdateVersion) { + if ((string) $ios->apk_url === '') { + $ios->update_strategy = AppUpdateStrategy::Apk; + } else { + $ios = $apkUpdateVersion; + } + } } } break; From 9e9afda7143f2d04754ccc4f5d76810f5c01f829 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 23:03:16 +0800 Subject: [PATCH 7/8] Update --- app/Http/Controllers/Api/AppVersionController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/AppVersionController.php b/app/Http/Controllers/Api/AppVersionController.php index 42b35f4..8e9e66e 100644 --- a/app/Http/Controllers/Api/AppVersionController.php +++ b/app/Http/Controllers/Api/AppVersionController.php @@ -40,7 +40,7 @@ class AppVersionController extends Controller // 全量包更新 if ($apkUpdateVersion) { - if ((string) $android->apk_url === '') { + if ((string) $android->apk_url !== '') { $android->update_strategy = AppUpdateStrategy::Apk; } else { $android = $apkUpdateVersion; @@ -62,7 +62,7 @@ class AppVersionController extends Controller // 全量包更新 if ($apkUpdateVersion) { - if ((string) $ios->apk_url === '') { + if ((string) $ios->apk_url !== '') { $ios->update_strategy = AppUpdateStrategy::Apk; } else { $ios = $apkUpdateVersion; From fe3e214227310f14a7d16964fd1330d16576bf87 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 5 May 2024 23:10:14 +0800 Subject: [PATCH 8/8] Update --- resources/views/home/index.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/home/index.blade.php b/resources/views/home/index.blade.php index 81fe9dd..b35f33a 100644 --- a/resources/views/home/index.blade.php +++ b/resources/views/home/index.blade.php @@ -125,7 +125,7 @@ -
+