Browse Source

fix: keep legacy android update endpoint

Pchen. 1 week ago
parent
commit
84317c7d9a
2 changed files with 38 additions and 26 deletions
  1. 16 25
      apis/Public/GetAndroidAppVersion.js
  2. 22 1
      lib/DownloadVersionService.js

+ 16 - 25
apis/Public/GetAndroidAppVersion.js

@@ -1,40 +1,31 @@
 const API = require("../../lib/API");
 const { BaseStdResponse } = require("../../BaseStdResponse");
-const VersionService = require("../../lib/DownloadVersionService");
-
-function toUniAppVersion(row) {
-    if (!row) return null;
-    return {
-        describe: row.release_notes_html || row.release_notes || '',
-        edition_url: row.download_url,
-        edition_force: Number(row.force_update) || 0,
-        package_type: Number(row.package_type) || 0,
-        edition_issue: Number(row.is_active) === 0 ? 0 : 1,
-        edition_number: Number(row.version_code) || 0,
-        edition_name: row.version_name,
-        edition_silence: Number(row.silent_update) || 0,
-        log: row.release_notes || ''
-    };
-}
 
 class GetAndroidAppVersion extends API {
     constructor() {
         super();
+
         this.setPath('/Public/GetAndroidAppVersion')
         this.setMethod('GET')
     }
 
     async onRequest(req, res) {
-        try {
-            const latest = await VersionService.getLatestVersion("android");
-            return res.json({
-                ...BaseStdResponse.OK,
-                data: toUniAppVersion(latest)
-            })
-        } catch (err) {
-            this.logger.error(`读取安卓版本配置失败:${err.stack || err}`);
-            return res.json({ ...BaseStdResponse.ERR, msg: '读取安卓版本配置失败' });
+        const data = {
+            describe: '<p>1.修复无法登录乐跑小程序的问题</p> <p>2、本次升级为强制整包升级,请在更新包下载完毕后点击安装</p><p><small style="color: red">更新过程中请勿关闭程序或切到后台,以免导致升级失败</small></p>',
+            edition_url: 'https://lepao-cloud.xxoo365.top/down.php/1c1538a08b791cebc1aa4462ed051fad.apk', //apk、wgt包下载地址或者应用市场地址  安卓应用市场 market://details?id=xxxx 苹果store itms-apps://itunes.apple.com/cn/app/xxxxxx
+            edition_force: 1, //是否强制更新 0代表否 1代表是
+            package_type: 0, //0是整包升级(apk或者appstore或者安卓应用市场) 1是wgt升级
+            edition_issue: 1, //是否发行  0否 1是 为了控制上架应用市场审核时不能弹出热更新框
+            edition_number: 131, //版本号 最重要的manifest里的版本号 (检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新)
+            edition_name: '1.3.1', // 版本名称 manifest里的版本名称
+            edition_silence: 0, // 是否静默更新 0代表否 1代表是
+            log: '1、优化应用内核,加快响应速度; 2、修复已知问题' //系统设置内日志
         }
+
+        res.json({
+            ...BaseStdResponse.OK,
+            data
+        })
     }
 }
 

+ 22 - 1
lib/DownloadVersionService.js

@@ -34,6 +34,20 @@ function isVersionNewer(remote, local) {
     return compareVersionName(remote.version_name, local.version_name) > 0;
 }
 
+function toUniAppPayload(row) {
+    return {
+        describe: row.release_notes_html || row.release_notes || "",
+        edition_url: row.download_url,
+        edition_force: Number(row.force_update) || 0,
+        package_type: Number(row.package_type) || 0,
+        edition_issue: Number(row.is_active) === 0 ? 0 : 1,
+        edition_number: Number(row.version_code) || 0,
+        edition_name: row.version_name,
+        edition_silence: Number(row.silent_update) || 0,
+        log: row.release_notes || ""
+    };
+}
+
 function toPublicPayload(row, localVersion = {}) {
     if (!row) {
         return {
@@ -50,7 +64,7 @@ function toPublicPayload(row, localVersion = {}) {
         version_code: localVersion.version_code
     };
     const hasUpdate = isVersionNewer(remote, local);
-    return {
+    const payload = {
         has_update: hasUpdate,
         update_available: hasUpdate,
         client_type: row.client_type,
@@ -68,6 +82,12 @@ function toPublicPayload(row, localVersion = {}) {
         release_notes_html: row.release_notes_html || "",
         min_supported_version: row.min_supported_version || ""
     };
+    if (normalizeClientType(row.client_type) === "android") {
+        Object.assign(payload, toUniAppPayload(row), {
+            uniapp: toUniAppPayload(row)
+        });
+    }
+    return payload;
 }
 
 async function getLatestVersion(clientType) {
@@ -174,5 +194,6 @@ module.exports = {
     saveVersion,
     deleteVersion,
     toPublicPayload,
+    toUniAppPayload,
     normalizeClientType
 };