From d56cfbba82dadd080d4214f549429f750912c83b Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Tue, 18 Jun 2024 00:35:45 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visor/framework/common/utils/Mixes.java | 1 - ...ller.http => SystemSettingController.http} | 2 +- ...ller.java => SystemSettingController.java} | 10 +- ...Service.java => SystemSettingService.java} | 2 +- ...mpl.java => SystemSettingServiceImpl.java} | 4 +- orion-visor-ui/src/api/interceptor.ts | 25 +++- orion-visor-ui/src/api/system/setting.ts | 38 ++++++ .../src/router/routes/modules/system.ts | 5 + orion-visor-ui/src/types/axios.d.ts | 4 + .../views/system/setting/components/about.vue | 126 ++++++++++++++++++ .../src/views/system/setting/index.vue | 52 ++++++++ 11 files changed, 252 insertions(+), 17 deletions(-) rename orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/{SystemController.http => SystemSettingController.http} (51%) rename orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/{SystemController.java => SystemSettingController.java} (81%) rename orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/{SystemService.java => SystemSettingService.java} (88%) rename orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/{SystemServiceImpl.java => SystemSettingServiceImpl.java} (93%) create mode 100644 orion-visor-ui/src/api/system/setting.ts create mode 100644 orion-visor-ui/src/views/system/setting/components/about.vue create mode 100644 orion-visor-ui/src/views/system/setting/index.vue diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/Mixes.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/Mixes.java index 5d94f6f8..7feef3b5 100644 --- a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/Mixes.java +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/Mixes.java @@ -12,7 +12,6 @@ import com.orion.lang.utils.crypto.Caesars; */ public class Mixes { - private Mixes() { } diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemController.http b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemSettingController.http similarity index 51% rename from orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemController.http rename to orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemSettingController.http index 4e222c71..eeee8fba 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemController.http +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemSettingController.http @@ -1,4 +1,4 @@ ### 查询应用信息 -GET {{baseUrl}}/infra/system/app-info +GET {{baseUrl}}/infra/system-setting/app-info Authorization: {{token}} diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemController.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemSettingController.java similarity index 81% rename from orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemController.java rename to orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemSettingController.java index e2834fcf..02cdd229 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemController.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/SystemSettingController.java @@ -4,7 +4,7 @@ import com.orion.visor.framework.log.core.annotation.IgnoreLog; import com.orion.visor.framework.log.core.enums.IgnoreLogMode; import com.orion.visor.framework.web.core.annotation.RestWrapper; import com.orion.visor.module.infra.entity.vo.AppInfoVO; -import com.orion.visor.module.infra.service.SystemService; +import com.orion.visor.module.infra.service.SystemSettingService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; @@ -27,18 +27,18 @@ import javax.annotation.Resource; @Validated @RestWrapper @RestController -@RequestMapping("/infra/system") +@RequestMapping("/infra/system-setting") @SuppressWarnings({"ELValidationInJSP", "SpringElInspection"}) -public class SystemController { +public class SystemSettingController { @Resource - private SystemService systemService; + private SystemSettingService systemSettingService; @IgnoreLog(IgnoreLogMode.RET) @GetMapping("/app-info") @Operation(summary = "查询应用信息") public AppInfoVO getAppInfo() { - return systemService.getAppInfo(); + return systemSettingService.getAppInfo(); } } diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/SystemService.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/SystemSettingService.java similarity index 88% rename from orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/SystemService.java rename to orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/SystemSettingService.java index 3bd98cfa..0b751b6d 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/SystemService.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/SystemSettingService.java @@ -9,7 +9,7 @@ import com.orion.visor.module.infra.entity.vo.AppInfoVO; * @version 1.0.0 * @since 2024/6/17 18:10 */ -public interface SystemService { +public interface SystemSettingService { /** * 获取应用信息 diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemServiceImpl.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemSettingServiceImpl.java similarity index 93% rename from orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemServiceImpl.java rename to orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemSettingServiceImpl.java index 73dffd18..19ebed6b 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemServiceImpl.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/SystemSettingServiceImpl.java @@ -7,7 +7,7 @@ import com.orion.visor.framework.common.constant.AppConst; import com.orion.visor.framework.common.constant.Const; import com.orion.visor.framework.common.utils.Mixes; import com.orion.visor.module.infra.entity.vo.AppInfoVO; -import com.orion.visor.module.infra.service.SystemService; +import com.orion.visor.module.infra.service.SystemSettingService; import org.springframework.stereotype.Service; /** @@ -18,7 +18,7 @@ import org.springframework.stereotype.Service; * @since 2024/6/17 18:10 */ @Service -public class SystemServiceImpl implements SystemService { +public class SystemSettingServiceImpl implements SystemSettingService { private String uuid; diff --git a/orion-visor-ui/src/api/interceptor.ts b/orion-visor-ui/src/api/interceptor.ts index 0979c928..d86dd36c 100644 --- a/orion-visor-ui/src/api/interceptor.ts +++ b/orion-visor-ui/src/api/interceptor.ts @@ -13,7 +13,9 @@ export interface HttpResponse { } axios.defaults.timeout = 10000; +axios.defaults.setAuthorization = true; axios.defaults.promptBizErrorMessage = true; +axios.defaults.promptRequestErrorMessage = true; axios.defaults.baseURL = httpBaseUrl; axios.interceptors.request.use( @@ -24,7 +26,10 @@ axios.interceptors.request.use( if (!config.headers) { config.headers = {}; } - config.headers.Authorization = `Bearer ${token}`; + // 设置 Authorization 头 + if (config.setAuthorization === true) { + config.headers.Authorization = `Bearer ${token}`; + } } return config; }, @@ -46,7 +51,7 @@ axios.interceptors.response.use( return res; } // 异常判断 - if ([401, 700, 701, 702].includes(code)) { + if ([401, 700, 701, 702, 1000, 1001].includes(code)) { // 提示 Message.error({ content: res.msg || 'Error', @@ -60,7 +65,10 @@ axios.interceptors.response.use( window.sessionStorage.setItem(reLoginTipsKey, res.msg); } // 登出 - await useUserStore().logout(); + const responseUrl = response.request?.responseURL; + if (!responseUrl || !responseUrl.includes('/logout')) { + await useUserStore().logout(); + } // 重新加载自动跳转登录页面 window.location.reload(); }); @@ -76,10 +84,13 @@ axios.interceptors.response.use( return Promise.reject(new Error(res.msg || 'Error')); }, (error) => { - Message.error({ - content: error.msg || '请求失败', - duration: 5 * 1000, - }); + // 判断是否弹出请求错误信息 + if (error.config.promptRequestErrorMessage) { + Message.error({ + content: error.msg || '请求失败', + duration: 5 * 1000, + }); + } return Promise.reject(error); } ); diff --git a/orion-visor-ui/src/api/system/setting.ts b/orion-visor-ui/src/api/system/setting.ts new file mode 100644 index 00000000..85e3c6ae --- /dev/null +++ b/orion-visor-ui/src/api/system/setting.ts @@ -0,0 +1,38 @@ +import axios from 'axios'; + +/** + * 应用信息查询响应 + */ +export interface AppInfoResponse { + version: string; + uuid: string; +} + +/** + * 仓库版本信息查询响应 + */ +export interface RepoReleaseResponse { + tag_name: string; + body: string; +} + +/** + * 查询应用信息 + */ +export function getSystemAppInfo() { + return axios.get('/infra/system-setting/app-info'); +} + +/** + * 获取仓库最后版本信息 + */ +export function getRepoLatestRelease() { + return axios.get('https://gitee.com/api/v5/repos/dromara/orion-visor/releases/latest', { + // 不添加请求头 否则会报 401 + setAuthorization: false, + // 返回原始输出 + unwrap: true, + // 不提示请求错误信息 可能会 403 + promptRequestErrorMessage: false, + }); +} diff --git a/orion-visor-ui/src/router/routes/modules/system.ts b/orion-visor-ui/src/router/routes/modules/system.ts index ca6bea63..22903439 100644 --- a/orion-visor-ui/src/router/routes/modules/system.ts +++ b/orion-visor-ui/src/router/routes/modules/system.ts @@ -21,6 +21,11 @@ const SYSTEM: AppRouteRecordRaw = { path: '/dict-value', component: () => import('@/views/system/dict-value/index.vue'), }, + { + name: 'systemSetting', + path: '/system-setting', + component: () => import('@/views/system/setting/index.vue'), + }, ], }; diff --git a/orion-visor-ui/src/types/axios.d.ts b/orion-visor-ui/src/types/axios.d.ts index 9e1a924a..d74826df 100644 --- a/orion-visor-ui/src/types/axios.d.ts +++ b/orion-visor-ui/src/types/axios.d.ts @@ -4,9 +4,13 @@ import type { AxiosRequestConfig } from 'axios'; declare module 'axios' { // eslint-disable-next-line no-shadow export interface AxiosRequestConfig { + // 是否添加 Authorization + setAuthorization?: boolean; // 是否使用原始返回 unwrap?: boolean; // 是否提示业务错误信息 promptBizErrorMessage?: boolean; + // 是否提示请求错误信息 + promptRequestErrorMessage?: boolean; } } diff --git a/orion-visor-ui/src/views/system/setting/components/about.vue b/orion-visor-ui/src/views/system/setting/components/about.vue new file mode 100644 index 00000000..edb8f786 --- /dev/null +++ b/orion-visor-ui/src/views/system/setting/components/about.vue @@ -0,0 +1,126 @@ + + + + + + + diff --git a/orion-visor-ui/src/views/system/setting/index.vue b/orion-visor-ui/src/views/system/setting/index.vue new file mode 100644 index 00000000..3d05c98e --- /dev/null +++ b/orion-visor-ui/src/views/system/setting/index.vue @@ -0,0 +1,52 @@ + + + + + + +