diff --git a/doc/sql/x_retry.sql b/doc/sql/x_retry.sql index a7d6fae7..2a3c32c6 100644 --- a/doc/sql/x_retry.sql +++ b/doc/sql/x_retry.sql @@ -86,7 +86,9 @@ CREATE TABLE `retry_task_log` `error_message` text NOT NULL COMMENT '异常信息', PRIMARY KEY (`id`), KEY `idx_group_name` (`group_name`), - KEY `idx_scene_name` (`scene_name`) + KEY `idx_scene_name` (`scene_name`), + KEY `idx_retry_status` (`retry_status`), + KEY `idx_biz_id` (`biz_id`), ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='重试日志表' ; diff --git a/example/src/main/java/com/example/ExampleClientHttpRequestInterceptor.java b/example/src/main/java/com/example/ExampleClientHttpRequestInterceptor.java index 228193cd..ab9593f1 100644 --- a/example/src/main/java/com/example/ExampleClientHttpRequestInterceptor.java +++ b/example/src/main/java/com/example/ExampleClientHttpRequestInterceptor.java @@ -19,7 +19,7 @@ import java.util.Objects; /** * RestTemplate 拦截器 * - * @author: shuguang.zhang + * @author: www.byteblogs.com * @date : 2022-04-17 15:22 */ public class ExampleClientHttpRequestInterceptor implements ClientHttpRequestInterceptor { diff --git a/example/src/main/java/com/example/demo/MyRetryMethod.java b/example/src/main/java/com/example/demo/MyRetryMethod.java index dbbc5bcb..629423c3 100644 --- a/example/src/main/java/com/example/demo/MyRetryMethod.java +++ b/example/src/main/java/com/example/demo/MyRetryMethod.java @@ -1,10 +1,7 @@ package com.example.demo; -import com.x.retry.client.core.client.request.BeatHttpRequestHandler; import com.x.retry.client.core.strategy.RetryMethod; -import com.x.retry.common.core.model.Result; import com.x.retry.common.core.util.JsonUtil; -import com.x.retry.server.model.dto.ConfigDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/example/src/main/resources/application.yml b/example/src/main/resources/application.yml index 604b6c2b..4ef2c80a 100644 --- a/example/src/main/resources/application.yml +++ b/example/src/main/resources/application.yml @@ -38,4 +38,4 @@ logging: x-retry: server: - host: 192.168.100.3 + host: 127.0.0.1 diff --git a/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java b/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java index a45067d7..7d6489e7 100644 --- a/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java +++ b/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java @@ -89,7 +89,7 @@ public class ExistsTransactionalRetryServiceTest { .thenReturn(new Result(0, "5")) ; try { - for (int i = 0; i < 400; i++) { + for (int i = 0; i < 10; i++) { threadPoolExecutor.execute(() -> testExistsTransactionalRetryService.testSimpleInsert(UUID.randomUUID().toString())); } } catch (Exception e) { diff --git a/frontend/package.json b/frontend/package.json index 55e07f06..4f7b0bfa 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,6 +13,7 @@ "dependencies": { "@ant-design-vue/pro-layout": "^1.0.11", "@antv/data-set": "^0.10.2", + "@antv/g2": "^3.5.1", "ant-design-vue": "^1.7.6", "axios": ">=0.21.1", "core-js": "^3.1.2", diff --git a/frontend/src/api/manage.js b/frontend/src/api/manage.js index 493edbf4..98f0600c 100644 --- a/frontend/src/api/manage.js +++ b/frontend/src/api/manage.js @@ -24,11 +24,54 @@ const api = { notifyConfigList: '/notify-config/list', userPageList: '/user/page/list', saveUser: '/user', - systemUserByUserName: '/user/username/user-info' + systemUserByUserName: '/user/username/user-info', + countTask: '/dashboard/task/count', + countDispatch: '/dashboard/dispatch/count', + countActivePod: '/dashboard/active-pod/count', + rankSceneQuantity: '/dashboard/scene/rank', + lineDispatchQuantity: '/dashboard/dispatch/line' + } export default api +export function getLineDispatchQuantity (parameter) { + return request({ + url: api.lineDispatchQuantity, + method: 'get', + params: parameter + }) +} + +export function rankSceneQuantity (parameter) { + return request({ + url: api.rankSceneQuantity, + method: 'get', + params: parameter + }) +} + +export function countActivePod () { + return request({ + url: api.countActivePod, + method: 'get' + }) +} + +export function countTask () { + return request({ + url: api.countTask, + method: 'get' + }) +} + +export function countDispatch () { + return request({ + url: api.countDispatch, + method: 'get' + }) +} + export function getGroupConfigForPage (parameter) { return request({ url: api.groupConfigForPage, diff --git a/frontend/src/components/Charts/Line.vue b/frontend/src/components/Charts/Line.vue new file mode 100644 index 00000000..d4b1c744 --- /dev/null +++ b/frontend/src/components/Charts/Line.vue @@ -0,0 +1,78 @@ + + + diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 401ae0d0..4a16a1d6 100644 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -10,6 +10,7 @@ import Radar from '@/components/Charts/Radar' import RankList from '@/components/Charts/RankList' import TransferBar from '@/components/Charts/TransferBar' import TagCloud from '@/components/Charts/TagCloud' +import G2Line from '@/components/Charts/Line' // pro components import AvatarList from '@/components/AvatarList' @@ -51,6 +52,7 @@ export { TagSelect, StandardFormRow, ArticleListContent, + G2Line, Dialog } diff --git a/frontend/src/config/defaultSettings.js b/frontend/src/config/defaultSettings.js index 2d9ca31f..8c236f33 100644 --- a/frontend/src/config/defaultSettings.js +++ b/frontend/src/config/defaultSettings.js @@ -15,8 +15,8 @@ export default { navTheme: 'dark', // theme for nav menu primaryColor: '#1890ff', // '#F5222D', // primary color of ant design - layout: 'sidemenu', // nav menu position: `sidemenu` or `topmenu` - contentWidth: 'Fluid', // layout of content: `Fluid` or `Fixed`, only works when layout is topmenu + layout: 'topmenu', // nav menu position: `sidemenu` or `topmenu` + contentWidth: 'Fixed', // layout of content: `Fluid` or `Fixed`, only works when layout is topmenu fixedHeader: false, // sticky header fixSiderbar: false, // sticky siderbar colorWeak: false, diff --git a/frontend/src/config/router.config.js b/frontend/src/config/router.config.js index 80fe4465..f25b34a4 100644 --- a/frontend/src/config/router.config.js +++ b/frontend/src/config/router.config.js @@ -14,34 +14,22 @@ export const asyncRouterMap = [ component: BasicLayout, meta: { title: 'menu.home' }, - redirect: '/basic-config-list', + redirect: '/dashboard/workplace', children: [ // dashboard { path: '/dashboard', name: 'dashboard', - hidden: true, - redirect: '/dashboard/workplace', + redirect: '/dashboard/analysis', + hideChildrenInMenu: true, component: RouteView, meta: { title: 'menu.dashboard', keepAlive: true, icon: bxAnaalyse, permission: ['dashboard'] }, children: [ { - path: '/dashboard/analysis/:pageNo([1-9]\\d*)?', + path: '/dashboard/analysis', name: 'Analysis', component: () => import('@/views/dashboard/Analysis'), - meta: { title: 'menu.dashboard.analysis', keepAlive: false, permission: ['dashboard'] } - }, - // 外部链接 - { - path: 'https://www.baidu.com/', - name: 'Monitor', - meta: { title: 'menu.dashboard.monitor', target: '_blank' } - }, - { - path: '/dashboard/workplace', - name: 'Workplace', - component: () => import('@/views/dashboard/Workplace'), - meta: { title: 'menu.dashboard.workplace', keepAlive: true, permission: ['dashboard'] } + meta: { title: 'menu.dashboard.analysis', keepAlive: true, permission: ['dashboard'] } } ] }, diff --git a/frontend/src/locales/lang/zh-CN/dashboard/analysis.js b/frontend/src/locales/lang/zh-CN/dashboard/analysis.js index b34f6a6d..8b759d2b 100644 --- a/frontend/src/locales/lang/zh-CN/dashboard/analysis.js +++ b/frontend/src/locales/lang/zh-CN/dashboard/analysis.js @@ -1,8 +1,8 @@ export default { 'dashboard.analysis.test': '工专路 {no} 号店', 'dashboard.analysis.introduce': '指标说明', - 'dashboard.analysis.total-sales': '总销售额', - 'dashboard.analysis.day-sales': '日均销售额¥', + 'dashboard.analysis.total-sales': '总任务量', + 'dashboard.analysis.day-sales': '日均任务', 'dashboard.analysis.visits': '访问量', 'dashboard.analysis.visits-trend': '访问量趋势', 'dashboard.analysis.visits-ranking': '门店访问量排名', @@ -13,7 +13,7 @@ export default { 'dashboard.analysis.conversion-rate': '转化率', 'dashboard.analysis.operational-effect': '运营活动效果', 'dashboard.analysis.sales-trend': '销售趋势', - 'dashboard.analysis.sales-ranking': '门店销售额排名', + 'dashboard.analysis.sales-ranking': '异常重试量排名', 'dashboard.analysis.all-year': '全年', 'dashboard.analysis.all-month': '本月', 'dashboard.analysis.all-week': '本周', @@ -27,7 +27,7 @@ export default { 'dashboard.analysis.channel.all': '全部渠道', 'dashboard.analysis.channel.online': '线上', 'dashboard.analysis.channel.stores': '门店', - 'dashboard.analysis.sales': '销售额', + 'dashboard.analysis.sales': '调度', 'dashboard.analysis.traffic': '客流量', 'dashboard.analysis.table.rank': '排名', 'dashboard.analysis.table.search-keyword': '搜索关键词', diff --git a/frontend/src/views/dashboard/Analysis.vue b/frontend/src/views/dashboard/Analysis.vue index 81156d41..088e743c 100644 --- a/frontend/src/views/dashboard/Analysis.vue +++ b/frontend/src/views/dashboard/Analysis.vue @@ -1,64 +1,47 @@