From b228fb48bf2b56c417b2dfc7a21fd6a28bd602dd Mon Sep 17 00:00:00 2001 From: 18955263033 <494907837@qq.com> Date: Mon, 27 Oct 2025 08:41:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=8C=E6=95=B4=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- .env.development | 2 +- .env.preview | 2 +- .eslintrc.js | 112 +- .github/ManageNodeListController.java | 654 ++ hs_err_pid14024.log | 924 ++ hs_err_pid31828.log | 941 ++ package.json | 18 +- public/avatar2.jpg | Bin 80189 -> 0 bytes public/index.html | 9 +- public/logo.png | Bin 9218 -> 0 bytes src/App.vue | 6 +- src/api/apiConfig/apiRealName.js | 39 + src/api/apiConfig/bankBin.js | 40 + src/api/apiConfig/bankCardVerify.js | 39 + src/api/apiConfig/sms.js | 75 + src/api/apiConfig/userAuth.js | 40 + src/api/area.js | 18 + src/api/business/ext.js | 41 + src/api/business/list.js | 270 + src/api/business/price.js | 28 + src/api/business/priceGroup.js | 75 + src/api/business/script.js | 76 + src/api/buy/record.js | 26 + src/api/device/device.js | 68 + src/api/device/serviceApi.js | 38 + src/api/domain/basic.js | 42 + src/api/domain/domain.js | 74 + src/api/finance/detail.js | 26 + src/api/handlerResult.js | 47 + src/api/index/monitor.js | 214 + src/api/index/workplace.js | 130 + src/api/line.js | 50 + src/api/log/system.js | 26 + src/api/log/user.js | 26 + src/api/login.js | 73 +- src/api/node/list.js | 375 + src/api/node/price.js | 41 + src/api/notice/manage.js | 73 + src/api/notice/nodebindDesc.js | 73 + src/api/other/ip.js | 41 + src/api/other/segment.js | 103 + src/api/public.js | 213 + src/api/sms/balance.js | 44 + src/api/sms/config.js | 42 + src/api/sms/deposit.js | 74 + src/api/sms/plan.js | 57 + src/api/sms/receive.js | 60 + src/api/sms/sendRecord.js | 26 + src/api/staff/manage.js | 110 + src/api/staff/post.js | 121 + src/api/system/security.js | 103 + src/api/ticket/list.js | 130 + src/api/upstream/apiConfig.js | 127 + src/api/upstream/business.js | 101 + src/api/upstream/script.js | 40 + src/api/user/bossVersion.js | 78 + src/api/user/list.js | 146 + src/api/user/userAuth.js | 79 + src/api/web/basic.js | 100 + src/api/web/beian.js | 55 + src/api/web/poster.js | 119 + src/api/web/webService.js | 151 + src/api/withdrawal/allRecord.js | 25 + src/api/withdrawal/bankAccount.js | 41 + src/api/withdrawal/config.js | 37 + src/api/withdrawal/record.js | 44 + src/assets/audio/remind.mp3 | Bin 0 -> 17509 bytes src/assets/icons/diqiu.svg | 1 + src/assets/icons/feiji.svg | 1 + src/assets/icons/huoche.svg | 1 + src/assets/icons/ka.svg | 1 + src/assets/icons/play-o.svg | 1 + src/assets/icons/play.svg | 1 + src/assets/icons/qiche.svg | 1 + src/assets/icons/renminbi.svg | 1 + src/assets/icons/shuji.svg | 1 + src/assets/icons/xinhao.svg | 1 + src/assets/icons/yinyue.svg | 1 + src/assets/icons/youxi.svg | 1 + src/assets/icons/zuanshi.svg | 1 + src/components/GlobalFooter/index.vue | 76 +- .../GlobalHeader/AvatarDropdown.vue | 17 +- src/components/GlobalHeader/PendingRemind.vue | 38 + src/components/GlobalHeader/RightContent.vue | 30 +- src/components/MultiTab/MultiTab.vue | 20 +- src/components/SettingDrawer/settingConfig.js | 2 +- src/components/Table/index.js | 20 +- src/components/Ucharts/UchartsLine.vue | 196 + .../DescriptionCard/DescriptionCard.vue | 67 + src/components/features/index.md | 16 + .../qiun-vue-ucharts/config-ucharts.js | 603 ++ src/components/qiun-vue-ucharts/index.js | 2 + src/components/qiun-vue-ucharts/loading1.vue | 162 + src/components/qiun-vue-ucharts/loading2.vue | 170 + src/components/qiun-vue-ucharts/loading3.vue | 173 + src/components/qiun-vue-ucharts/loading4.vue | 222 + src/components/qiun-vue-ucharts/loading5.vue | 229 + .../qiun-vue-ucharts/qiun-error.vue | 46 + .../qiun-vue-ucharts/qiun-loading.vue | 36 + .../qiun-vue-ucharts/qiun-vue-ucharts.vue | 777 ++ src/components/qiun-vue-ucharts/u-charts.js | 7706 +++++++++++++++++ .../qiun-vue-ucharts/u-charts.min.js | 18 + src/config/defaultSettings.js | 7 +- src/config/router.config.js | 623 +- src/core/bootstrap.js | 2 +- src/core/lazy_use.js | 10 +- src/core/permission/permission.js | 12 +- src/global.less | 4 +- src/layouts/BasicLayout.vue | 39 +- src/layouts/RouteView.vue | 9 +- src/layouts/UserLayout.vue | 11 +- src/locales/index.js | 6 +- src/main.js | 4 +- src/mock/index.js | 4 +- src/mock/services/user.js | 120 +- src/permission.js | 35 +- src/router/generator-routers.js | 128 +- src/store/modules/app.js | 2 +- src/store/modules/user.js | 58 +- src/utils/PercentageHelper.js | 61 + src/utils/PwdUtil.js | 23 + src/utils/clipboardHelper.js | 15 + src/utils/operationUtil.js | 83 + src/utils/request.js | 19 +- src/utils/screenLog.js | 8 +- src/utils/timeUtil.js | 30 + src/views/apiConfig/RealnameVerifi.vue | 451 + src/views/apiConfig/SmsApiConfig.vue | 431 + src/views/business/BizPrice.vue | 1426 +++ src/views/business/BusinessList.vue | 983 +++ src/views/business/BusinessPriceGroup.vue | 375 + src/views/business/BusinessScript.vue | 397 + .../ScriptEditDrawer/ScriptEditDrawer.vue | 241 + src/views/buy/BuyRecord.vue | 317 + src/views/dashboard/Monitor.vue | 768 +- src/views/dashboard/Workplace.vue | 482 +- src/views/dashboard/components/Info.vue | 57 + src/views/dashboard/modules/CreateForm.vue | 74 + .../dashboard/modules/StepByStepModal.vue | 172 + src/views/dashboard/modules/TaskForm.vue | 94 + src/views/device/Device.vue | 617 ++ src/views/device/DeviceServiceApi.vue | 96 + .../device/components/NetworkConfigModal.vue | 269 + src/views/domain/DomainBasic.vue | 126 + src/views/domain/DomainManage.vue | 386 + src/views/exception/403.vue | 2 +- src/views/exception/404.vue | 5 +- src/views/exception/500.vue | 2 +- src/views/finance/FinanceDetail.vue | 349 + src/views/list/TableList.vue | 77 +- src/views/list/WechatList.vue | 354 + src/views/list/modules/CreateForm.vue | 2 + src/views/list/modules/TaskForm.vue | 11 +- src/views/log/LogSystem.vue | 307 + src/views/log/LogUser.vue | 312 + src/views/login/Login.vue | 306 + src/views/{user => login}/Register.vue | 0 src/views/{user => login}/RegisterResult.vue | 0 src/views/modules/CreateForm.vue | 224 + src/views/modules/CreateInfoModel.vue | 76 + src/views/node/NodeList.vue | 2182 +++++ src/views/node/NodePrice.vue | 1367 +++ src/views/node/components/AddDeviceDrawer.vue | 518 ++ .../components/DetectConnectivityDrawer.vue | 367 + src/views/node/components/EditNodeDrawer.vue | 284 + .../node/components/LineConfigDrawer.vue | 733 ++ .../node/components/ModifyLineDrawer.vue | 746 ++ .../NetworkPressureInfo.vue | 224 + .../dialInfoDrawer/DialInfoDrawer.vue | 307 + src/views/notice/NodebindDesc.vue | 426 + src/views/notice/NoticeManage.vue | 534 ++ src/views/other/BigForm.vue | 554 -- src/views/other/IconSelectorView.vue | 36 - src/views/other/OtherIp.vue | 377 + src/views/other/OtherSegment.vue | 723 ++ src/views/other/PermissionList.vue | 272 - src/views/other/RoleList.vue | 182 - src/views/other/TreeList.vue | 192 - src/views/other/UserList.vue | 340 - src/views/other/modules/OrgModal.vue | 100 - src/views/other/modules/RoleModal.vue | 146 - src/views/profile/advanced/Advanced.vue | 4 +- src/views/sms/SmsBalance.vue | 329 + src/views/sms/SmsConfig.vue | 176 + src/views/sms/SmsPlan.vue | 275 + src/views/sms/SmsSendRecord.vue | 328 + src/views/staff/StaffManage.vue | 554 ++ src/views/staff/StaffPost.vue | 544 ++ src/views/system/Security.vue | 442 + src/views/ticket/TicketList.vue | 578 ++ src/views/upstream/UpstreamApiConfig.vue | 443 + .../ScriptConfigDrawer/ScriptConfigDrawer.vue | 178 + .../editConfig/EditConfigDrawer.vue | 275 + src/views/user/BossVersion.vue | 426 + src/views/user/Login.vue | 330 - src/views/user/UserAuth.vue | 540 ++ src/views/user/UserList.vue | 1468 ++++ src/views/user/components/Info.vue | 57 + src/views/user/modules/ChargeAdjustForm.vue | 164 + src/views/user/modules/CreateForm.vue | 189 + .../user/modules/SetUserAuthorityModal.vue | 87 + src/views/user/modules/StepByStepModal.vue | 172 + src/views/user/modules/TaskForm.vue | 94 + src/views/user/modules/UserAddModal.vue | 92 + src/views/user/modules/UserQueryModal.vue | 150 + src/views/user/search/Applications.vue | 187 + src/views/user/search/Article.vue | 185 + src/views/user/search/Projects.vue | 168 + src/views/user/search/SearchLayout.vue | 79 + src/views/user/search/components/CardInfo.vue | 58 + src/views/user/search/components/IconText.vue | 22 + src/views/user/table/Edit.vue | 160 + .../table/List.vue} | 230 +- src/views/web/WebBasic.vue | 277 + src/views/web/WebBeian.vue | 348 + src/views/web/WebDomain.vue | 216 + src/views/web/WebService.vue | 537 ++ src/views/withdrawal/WithdrawalAllRecord.vue | 375 + .../withdrawal/WithdrawalBankAccount.vue | 560 ++ src/views/withdrawal/WithdrawalConfig.vue | 146 + src/views/withdrawal/WithdrawalRecord.vue | 500 ++ vue.config.js | 28 +- yarn.lock | 6826 +++++++-------- 224 files changed, 51785 insertions(+), 6443 deletions(-) create mode 100644 .github/ManageNodeListController.java create mode 100644 hs_err_pid14024.log create mode 100644 hs_err_pid31828.log delete mode 100644 public/avatar2.jpg delete mode 100644 public/logo.png create mode 100644 src/api/apiConfig/apiRealName.js create mode 100644 src/api/apiConfig/bankBin.js create mode 100644 src/api/apiConfig/bankCardVerify.js create mode 100644 src/api/apiConfig/sms.js create mode 100644 src/api/apiConfig/userAuth.js create mode 100644 src/api/area.js create mode 100644 src/api/business/ext.js create mode 100644 src/api/business/list.js create mode 100644 src/api/business/price.js create mode 100644 src/api/business/priceGroup.js create mode 100644 src/api/business/script.js create mode 100644 src/api/buy/record.js create mode 100644 src/api/device/device.js create mode 100644 src/api/device/serviceApi.js create mode 100644 src/api/domain/basic.js create mode 100644 src/api/domain/domain.js create mode 100644 src/api/finance/detail.js create mode 100644 src/api/handlerResult.js create mode 100644 src/api/index/monitor.js create mode 100644 src/api/index/workplace.js create mode 100644 src/api/line.js create mode 100644 src/api/log/system.js create mode 100644 src/api/log/user.js create mode 100644 src/api/node/list.js create mode 100644 src/api/node/price.js create mode 100644 src/api/notice/manage.js create mode 100644 src/api/notice/nodebindDesc.js create mode 100644 src/api/other/ip.js create mode 100644 src/api/other/segment.js create mode 100644 src/api/public.js create mode 100644 src/api/sms/balance.js create mode 100644 src/api/sms/config.js create mode 100644 src/api/sms/deposit.js create mode 100644 src/api/sms/plan.js create mode 100644 src/api/sms/receive.js create mode 100644 src/api/sms/sendRecord.js create mode 100644 src/api/staff/manage.js create mode 100644 src/api/staff/post.js create mode 100644 src/api/system/security.js create mode 100644 src/api/ticket/list.js create mode 100644 src/api/upstream/apiConfig.js create mode 100644 src/api/upstream/business.js create mode 100644 src/api/upstream/script.js create mode 100644 src/api/user/bossVersion.js create mode 100644 src/api/user/list.js create mode 100644 src/api/user/userAuth.js create mode 100644 src/api/web/basic.js create mode 100644 src/api/web/beian.js create mode 100644 src/api/web/poster.js create mode 100644 src/api/web/webService.js create mode 100644 src/api/withdrawal/allRecord.js create mode 100644 src/api/withdrawal/bankAccount.js create mode 100644 src/api/withdrawal/config.js create mode 100644 src/api/withdrawal/record.js create mode 100644 src/assets/audio/remind.mp3 create mode 100644 src/assets/icons/diqiu.svg create mode 100644 src/assets/icons/feiji.svg create mode 100644 src/assets/icons/huoche.svg create mode 100644 src/assets/icons/ka.svg create mode 100644 src/assets/icons/play-o.svg create mode 100644 src/assets/icons/play.svg create mode 100644 src/assets/icons/qiche.svg create mode 100644 src/assets/icons/renminbi.svg create mode 100644 src/assets/icons/shuji.svg create mode 100644 src/assets/icons/xinhao.svg create mode 100644 src/assets/icons/yinyue.svg create mode 100644 src/assets/icons/youxi.svg create mode 100644 src/assets/icons/zuanshi.svg create mode 100644 src/components/GlobalHeader/PendingRemind.vue create mode 100644 src/components/Ucharts/UchartsLine.vue create mode 100644 src/components/description/DescriptionCard/DescriptionCard.vue create mode 100644 src/components/features/index.md create mode 100644 src/components/qiun-vue-ucharts/config-ucharts.js create mode 100644 src/components/qiun-vue-ucharts/index.js create mode 100644 src/components/qiun-vue-ucharts/loading1.vue create mode 100644 src/components/qiun-vue-ucharts/loading2.vue create mode 100644 src/components/qiun-vue-ucharts/loading3.vue create mode 100644 src/components/qiun-vue-ucharts/loading4.vue create mode 100644 src/components/qiun-vue-ucharts/loading5.vue create mode 100644 src/components/qiun-vue-ucharts/qiun-error.vue create mode 100644 src/components/qiun-vue-ucharts/qiun-loading.vue create mode 100644 src/components/qiun-vue-ucharts/qiun-vue-ucharts.vue create mode 100644 src/components/qiun-vue-ucharts/u-charts.js create mode 100644 src/components/qiun-vue-ucharts/u-charts.min.js create mode 100644 src/utils/PercentageHelper.js create mode 100644 src/utils/PwdUtil.js create mode 100644 src/utils/clipboardHelper.js create mode 100644 src/utils/operationUtil.js create mode 100644 src/utils/timeUtil.js create mode 100644 src/views/apiConfig/RealnameVerifi.vue create mode 100644 src/views/apiConfig/SmsApiConfig.vue create mode 100644 src/views/business/BizPrice.vue create mode 100644 src/views/business/BusinessList.vue create mode 100644 src/views/business/BusinessPriceGroup.vue create mode 100644 src/views/business/BusinessScript.vue create mode 100644 src/views/business/components/ScriptEditDrawer/ScriptEditDrawer.vue create mode 100644 src/views/buy/BuyRecord.vue create mode 100644 src/views/dashboard/components/Info.vue create mode 100644 src/views/dashboard/modules/CreateForm.vue create mode 100644 src/views/dashboard/modules/StepByStepModal.vue create mode 100644 src/views/dashboard/modules/TaskForm.vue create mode 100644 src/views/device/Device.vue create mode 100644 src/views/device/DeviceServiceApi.vue create mode 100644 src/views/device/components/NetworkConfigModal.vue create mode 100644 src/views/domain/DomainBasic.vue create mode 100644 src/views/domain/DomainManage.vue create mode 100644 src/views/finance/FinanceDetail.vue create mode 100644 src/views/list/WechatList.vue create mode 100644 src/views/log/LogSystem.vue create mode 100644 src/views/log/LogUser.vue create mode 100644 src/views/login/Login.vue rename src/views/{user => login}/Register.vue (100%) rename src/views/{user => login}/RegisterResult.vue (100%) create mode 100644 src/views/modules/CreateForm.vue create mode 100644 src/views/modules/CreateInfoModel.vue create mode 100644 src/views/node/NodeList.vue create mode 100644 src/views/node/NodePrice.vue create mode 100644 src/views/node/components/AddDeviceDrawer.vue create mode 100644 src/views/node/components/DetectConnectivityDrawer.vue create mode 100644 src/views/node/components/EditNodeDrawer.vue create mode 100644 src/views/node/components/LineConfigDrawer.vue create mode 100644 src/views/node/components/ModifyLineDrawer.vue create mode 100644 src/views/node/components/NetworkPressureInfo/NetworkPressureInfo.vue create mode 100644 src/views/node/components/dialInfoDrawer/DialInfoDrawer.vue create mode 100644 src/views/notice/NodebindDesc.vue create mode 100644 src/views/notice/NoticeManage.vue delete mode 100644 src/views/other/BigForm.vue delete mode 100644 src/views/other/IconSelectorView.vue create mode 100644 src/views/other/OtherIp.vue create mode 100644 src/views/other/OtherSegment.vue delete mode 100644 src/views/other/PermissionList.vue delete mode 100644 src/views/other/RoleList.vue delete mode 100644 src/views/other/TreeList.vue delete mode 100644 src/views/other/UserList.vue delete mode 100644 src/views/other/modules/OrgModal.vue delete mode 100644 src/views/other/modules/RoleModal.vue create mode 100644 src/views/sms/SmsBalance.vue create mode 100644 src/views/sms/SmsConfig.vue create mode 100644 src/views/sms/SmsPlan.vue create mode 100644 src/views/sms/SmsSendRecord.vue create mode 100644 src/views/staff/StaffManage.vue create mode 100644 src/views/staff/StaffPost.vue create mode 100644 src/views/system/Security.vue create mode 100644 src/views/ticket/TicketList.vue create mode 100644 src/views/upstream/UpstreamApiConfig.vue create mode 100644 src/views/upstream/components/ScriptConfigDrawer/ScriptConfigDrawer.vue create mode 100644 src/views/upstream/components/editConfig/EditConfigDrawer.vue create mode 100644 src/views/user/BossVersion.vue delete mode 100644 src/views/user/Login.vue create mode 100644 src/views/user/UserAuth.vue create mode 100644 src/views/user/UserList.vue create mode 100644 src/views/user/components/Info.vue create mode 100644 src/views/user/modules/ChargeAdjustForm.vue create mode 100644 src/views/user/modules/CreateForm.vue create mode 100644 src/views/user/modules/SetUserAuthorityModal.vue create mode 100644 src/views/user/modules/StepByStepModal.vue create mode 100644 src/views/user/modules/TaskForm.vue create mode 100644 src/views/user/modules/UserAddModal.vue create mode 100644 src/views/user/modules/UserQueryModal.vue create mode 100644 src/views/user/search/Applications.vue create mode 100644 src/views/user/search/Article.vue create mode 100644 src/views/user/search/Projects.vue create mode 100644 src/views/user/search/SearchLayout.vue create mode 100644 src/views/user/search/components/CardInfo.vue create mode 100644 src/views/user/search/components/IconText.vue create mode 100644 src/views/user/table/Edit.vue rename src/views/{other/TableInnerEditList.vue => user/table/List.vue} (50%) create mode 100644 src/views/web/WebBasic.vue create mode 100644 src/views/web/WebBeian.vue create mode 100644 src/views/web/WebDomain.vue create mode 100644 src/views/web/WebService.vue create mode 100644 src/views/withdrawal/WithdrawalAllRecord.vue create mode 100644 src/views/withdrawal/WithdrawalBankAccount.vue create mode 100644 src/views/withdrawal/WithdrawalConfig.vue create mode 100644 src/views/withdrawal/WithdrawalRecord.vue diff --git a/.env b/.env index b5c472a6fd..687c908075 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ NODE_ENV=production VUE_APP_PREVIEW=false -VUE_APP_API_BASE_URL=/api \ No newline at end of file +VUE_APP_API_BASE_URL=/main \ No newline at end of file diff --git a/.env.development b/.env.development index 166c0bc9bb..57371c6860 100644 --- a/.env.development +++ b/.env.development @@ -1,3 +1,3 @@ NODE_ENV=development VUE_APP_PREVIEW=true -VUE_APP_API_BASE_URL=/api \ No newline at end of file +VUE_APP_API_BASE_URL=/main \ No newline at end of file diff --git a/.env.preview b/.env.preview index a9e44c82d9..00af3af2d8 100644 --- a/.env.preview +++ b/.env.preview @@ -1,3 +1,3 @@ NODE_ENV=production VUE_APP_PREVIEW=true -VUE_APP_API_BASE_URL=/api \ No newline at end of file +VUE_APP_API_BASE_URL=/main \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 5bece06c45..52849de96f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,75 +1,39 @@ module.exports = { - root: true, - env: { - node: true - }, - 'extends': [ - 'plugin:vue/strongly-recommended', - '@vue/standard' - ], - rules: { - 'no-console': 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'generator-star-spacing': 'off', - 'no-mixed-operators': 0, - 'vue/max-attributes-per-line': [ - 2, - { - 'singleline': 5, - 'multiline': { - 'max': 1, - 'allowFirstLine': false - } - } - ], - 'vue/attribute-hyphenation': 0, - 'vue/html-self-closing': 0, - 'vue/component-name-in-template-casing': 0, - 'vue/html-closing-bracket-spacing': 0, - 'vue/singleline-html-element-content-newline': 0, - 'vue/no-unused-components': 0, - 'vue/multiline-html-element-content-newline': 0, - 'vue/no-use-v-if-with-v-for': 0, - 'vue/html-closing-bracket-newline': 0, - 'vue/no-parsing-error': 0, - 'no-tabs': 0, - 'quotes': [ - 2, - 'single', - { - 'avoidEscape': true, - 'allowTemplateLiterals': true - } - ], - 'semi': [ - 2, - 'never', - { - 'beforeStatementContinuationChars': 'never' - } - ], - 'no-delete-var': 2, - 'prefer-const': [ - 2, - { - 'ignoreReadBeforeAssign': false - } - ], - 'template-curly-spacing': 'off', - 'indent': 'off' - }, - parserOptions: { - parser: 'babel-eslint' - }, - overrides: [ - { - files: [ - '**/__tests__/*.{j,t}s?(x)', - '**/tests/unit/**/*.spec.{j,t}s?(x)' - ], - env: { - jest: true - } - } - ] -} + "env": { + "browser": true, + "es6": true + }, + "extends": [ + "eslint:recommended", + "plugin:vue/essential" + ], + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parserOptions": { + "ecmaVersion": 2018 + }, + "plugins": [ + "vue" + ], + "rules": { + "indent": [ + "error", + "tab" + ], + "linebreak-style": [ + "error", + "windows" + ], + "quotes": [ + "error", + "double" + ], + "semi": [ + "error", + "always" + ], + "indent": [2, 4], //文本缩进风格 + } +}; \ No newline at end of file diff --git a/.github/ManageNodeListController.java b/.github/ManageNodeListController.java new file mode 100644 index 0000000000..901f39c1b1 --- /dev/null +++ b/.github/ManageNodeListController.java @@ -0,0 +1,654 @@ +package com.sup.controller.manage; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import javax.validation.Valid; + +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import com.sup.response.NodeDetailsResp; +import com.sup.response.PageResult; +import com.sup.response.RespResult; +import com.sup.response.ResultStatus; +import com.sup.response.SettleResp; +import com.sup.service.BusinessService; +import com.sup.service.NodeOperateService; +import com.sup.service.NodeService; +import com.sup.service.SettleAgentService; +import com.sup.service.SettleBossService; +import com.sup.service.SettleReferrerService; +import com.sup.service.SettleService; +import com.sup.service.SettleUserService; +import com.sup.upstream.api.qiniu.NodeInterfacesResponse; +import com.sup.upstream.api.qiniu.QualityreportResponse; +import com.sup.util.EnumConverterUtil; +import com.sup.util.StringUtil; +import com.sup.util.Util; +import com.sup.vo.BusinessManageVO; +import com.sup.vo.NodeManageVO; + + +import com.sup.config.exception.RespCodeEnum; +import com.sup.config.exception.ResponseResultException; +import com.sup.dto.DetectConnectivityDTO; +import com.sup.dto.DialTestResultDTO; +import com.sup.dto.LinesConvergeDTO; +import com.sup.dto.MonitorLogsDTO; +import com.sup.dto.NetworkPressureResultDTO; +import com.sup.dto.NodeBindDTO; +import com.sup.dto.NodeBindResultDTO; +import com.sup.dto.NodeDetailsDTO; +import com.sup.dto.NodeQueryDTO; +import com.sup.dto.SupportPreDialTsetDTO; +import com.sup.entity.Business; +import com.sup.entity.Node; +import com.sup.entity.Settle; +import com.sup.enums.DialModeEnum; +import com.sup.enums.IspEnum; +import com.sup.enums.NatTypeEnum; +import com.sup.enums.NodeStageEnum; +import com.sup.param.NodeEditParam; + +/** +* 节点列表信息 +* @author 张辉 +* @date 2024-04-19 22:07:12 +* @version V1.0 +*/ +@RestController +@ResponseBody +@RequestMapping("/main/node/list/") +public class ManageNodeListController { + + @Autowired + private NodeService nodeService; + @Autowired + private BusinessService businessService; + @Autowired + private SettleService settleService; + @Autowired + private SettleBossService settleBossService; + @Autowired + private SettleAgentService settleAgentService; + @Autowired + private SettleReferrerService settleReferrerService; + @Autowired + private SettleUserService settleUserService; + @Autowired + private NodeOperateService nodeOperateService; + + /** + * 获取运营商 + * @Title: getIsp + * @return RespResult>> + * @date 2024年6月7日 上午8:07:52 + */ + @GetMapping("getIsp") + public RespResult>> getIsp() { + return RespResult.success(EnumConverterUtil.convertEnumToMap(IspEnum.class)); + } + + /** + * 获取网络类型 + * @Title: getNatType + * @return RespResult>> + * @date 2024年6月12日 上午6:38:02 + */ + @GetMapping(value = "getNatType") + public RespResult>> getNatType() { + return RespResult.success(EnumConverterUtil.convertEnumToMap(NatTypeEnum.class)); + } + + /** + * 拨号方式 + * @Title: getDialMode + * @return RespResult>> + * @date 2024年6月12日 上午11:08:47 + */ + @GetMapping(value = "getDialMode") + public RespResult>> getDialMode() { + return RespResult.success(EnumConverterUtil.convertEnumToMap(DialModeEnum.class)); + } + + /** + * 添加节点 + * + * @Title: add + * @param req + * @param bindingResult + * @return RespResult + * @date 2024年6月23日 23:18:17 + */ + @PostMapping("add") + public RespResult add(@Valid @RequestBody NodeBindDTO nodeBindDTO, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, Util.bindingResultError(bindingResult)); + } + NodeBindResultDTO nodeBind = nodeOperateService.nodeBind(nodeBindDTO); + return RespResult.success(nodeBind); + } + + /** + * 提交拨号信息 + * + * @Title: dialSubmit + * @param nodeId + * @param dialSubmitParam + * @return RespResult + * @date 2024年9月21日 20:26:40 + */ + @GetMapping(value = "dialSubmit/{id}") + public RespResult dialSubmit(@PathVariable("id") Long id) { + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + nodeOperateService.dialSubmit(getNode); + return RespResult.success(); + } + + /** + * 测试连接 + * + * @Title: detectConnectivity + * @param nodeId + * @param businessCategoryId + * @return RespResult + * @date 2025年3月5日 16:39:24 + */ + @GetMapping("/detectConnectivity/{id}") + public RespResult detectConnectivity(@PathVariable Long id) { + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + return RespResult + .success(nodeOperateService.detectConnectivity(getNode)); + } + + /** + * 按节点id查询是否支持上机前拨号测试和网络压测 + * @Title: supportPreDialTset + * @param id + * @return RespResult + * @date 2025年6月7日 00:03:32 + */ + @GetMapping(value = "supportPreDialTset/{id}") + public RespResult supportPreDialTset(@PathVariable("id") Long id) { + if (id == null) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "参数错误"); + } + + Node getNode = nodeService.getById(id); + // 判断节点属于用户的 + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + return RespResult.success(nodeOperateService.supportPreDialAndNetworkTset(getNode)); + } + + /** + * 按节点id查询是否需要配置dhcp + * @param id + * @return + */ + @GetMapping(value = "isDhcpNeedConfig/{id}") + public RespResult isDhcpNeedConfig(@PathVariable("id") Long id) { + if (id == null) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "参数错误"); + } + + Node getNode = nodeService.getById(id); + // 判断节点属于用户的 + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + return RespResult.success(nodeOperateService.isDhcpNeedConfig(getNode)); + } + /** + * 获取网卡信息 + * + * @Title: getNetCard + * @param nodeId + * @return RespResult + * @date 2024年9月19日 19:08:09 + */ + @GetMapping(value = "getNetCard/{id}") + public RespResult> getNetCard(@PathVariable("id") Long id) { + + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + List getNetCard = nodeOperateService.getNetCard(getNode); + return RespResult.success(getNetCard); + } + + /** + * 拨号测试 + * + * @Title: detectNetwork + * @param id + * @param dialDetail + * @return RespResult> + * @date 2025年3月13日 11:09:23 + */ + @GetMapping("/dialTest/{id}") + public RespResult> dialTest (@PathVariable Long id) { + + Node getNode = nodeService.getById(id); + // 判断节点属于用户的 + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + return RespResult.success(nodeOperateService.dialTest(getNode)); + } + + + /** + * 获取节点详情 + * @Title: details + * @param nodeId + * @return RespResult + * @date 2024年8月12日 10:57:12 + */ + @RequestMapping(value = "details/{nodeId}") + public RespResult details(@PathVariable("nodeId") Long nodeId) { + // 查询节点 + Node getNode = nodeService.getById(nodeId); + if(Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + + Settle settle = new Settle(); + settle.setNodeId(nodeId); + // 基础结算集合 + List settleList = settleService.list(settle); + // 返回到前端新创建集合 + List newList = new ArrayList<>(settleList.size()); + // 遍历基础结算集合 + for (Settle s : settleList) { + // 结算对象 + SettleResp settleObj = new SettleResp(); + // 设置基础结算 + settleObj.setSettle(s); + // 设置boss结算 + settleObj.setSettleBoss(this.settleBossService.getBySettleId(s.getId())); + // 设置代理商结算对象 + settleObj.setSettleAgent(this.settleAgentService.getBySettleId(s.getId())); + // 设置推荐人结算 + settleObj.setSettleReferrer(this.settleReferrerService.getBySettleId(s.getId())); + // 设置用户结算 + settleObj.setSettleUser(this.settleUserService.getBySettleId(s.getId())); + // 添加到集合 + newList.add(settleObj); + } + + NodeDetailsResp nodeDetails = new NodeDetailsResp(); + BeanUtils.copyProperties(getNode, nodeDetails); + // 设置节点信息 + // nodeDetails.setNode(Util.entityToModel(getNode, NodeManageVO.class)); + // 设置结算信息 + nodeDetails.setSettleList(newList); + + QualityreportResponse getQualityreportRes = nodeOperateService.getQualityreport(getNode); + if(getQualityreportRes != null) { + // 设置质量报告 + nodeDetails.setQualityreport(nodeOperateService.getQualityreport(getNode)); + } + + // 判断x86类型,设置拨号状态统计 + /* + if(DeviceTypeEnum.X86.name().equals(getNode.getDeviceType())) { + // 设置拨号状态统计 + nodeDetails.setDialStat(this.dialSatusStat(getNode)); + } + */ + // 设置当天网络压测次数 + nodeDetails.setNetPressureNum(nodeOperateService.getNetworkpressureNum(nodeId)); + // 设置压测状态 + nodeDetails.setNetBenchStatus(nodeOperateService.getNetBenchStatus(getNode)); + return RespResult.success(nodeDetails); + } + + /** + * 获取节点详情信息 + * @Title: getNodeDetails + * @param id 主键id + * @return RespResult + * @date 2025年4月1日 22:26:39 + */ + @GetMapping(value = "getNodeDetails/{id}") + public RespResult getNodeDetails(@PathVariable("id") Long id) { + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + return RespResult.success(nodeOperateService.getNodeDetails(getNode)); + } + /** + * 删除 + * @Title: remove + * @param ids id数组 + * @return RespResult + * @date 2024年8月10日 17:09:29 + */ + @RequestMapping(value = "remove", method = RequestMethod.POST) + public RespResult remove(@RequestParam(value = "ids[]", required = false, defaultValue = "") long[] ids) { + int count = 0; + String msg = ""; + // 遍历删除id数组 + for (long i : ids) { + // 查询节点 + Node getNode = nodeService.getById(i); + if(Objects.isNull(getNode)) { + msg = "节点不存在"; + continue; + } + // 判断已提交的节点可以删除,其他阶段类型不能删除 + if(!NodeStageEnum.SUBMITTED.name().equals(getNode.getStage())) { + msg = "阶段类型只有已提交状态才能删除,其他状态无法删除"; + continue; + } + // 当前时间 + LocalDateTime currentTime = LocalDateTime.now(); + + // 使用 Duration 计算两个时间点之间的差异 + Duration duration = Duration.between(getNode.getCreatedAt(), currentTime); + // 判断是否超过5分钟,防止客户正在提交节点的时候被删除 + // 获取差异的分钟数(取绝对值) + long minutesDifference = Math.abs(duration.toMinutes()); + + if(minutesDifference < 5) { + msg = "已提交类型的节点超过5分钟后才能删除"; + continue; + } + + // 执行删除操作 + if(nodeService.remove(i)) { + count++; + } else { + msg = "删除失败"; + continue; + } + } + if (count > 0) { + return RespResult.success("操作成功" + count + "条记录"); + } + return RespResult.error(RespCodeEnum.CUSTOM_ERROR_DESC, msg); + } + + /** + * 分页 + * @Title: page + * @param nodeQueryDTO + * @return RespResult> + * @date 2024-04-19 22:07:12 + */ + @GetMapping("/page") + public RespResult> page(NodeQueryDTO nodeQueryDTO) { + PageResult pageResult = PageResult + .result(nodeService.pageQuery(nodeQueryDTO), NodeManageVO.class); + // 遍历数据,设置上游名称 + pageResult.getData().forEach(item -> { + // 按业务id查询业务对象 + Business getBusiness = businessService.getById(item.getBusinessId()); + if(Objects.nonNull(getBusiness)) { + // 设置业务名称 + item.setBusiness(Util.entityToModel(getBusiness, BusinessManageVO.class)); + } + }); + return RespResult.success(pageResult); + } + + /** + * 节点编辑 + * @Title: edit + * @param param + * @param bindingResult + * @return RespResult + * @date 2024年10月11日 16:48:09 + */ + @RequestMapping(value = "edit") + public RespResult edit(@Valid NodeEditParam param, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, Util.bindingResultError(bindingResult)); + } + nodeService.edit(param); + return RespResult.success("操作成功"); + } + + /** + * 节点转移 + * @Title: nodeTransfer + * @param id + * @param userId + * @return RespResult + * @date 2024年10月12日 14:59:04 + */ + @RequestMapping(value = "nodeTransfer") + public RespResult nodeTransfer(@RequestParam(value = "id[]", required = false, defaultValue = "") long[] id, + @RequestParam(value = "userId", required = false, defaultValue = "") Long userId) { + if(Objects.isNull(userId)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "用户Id不能为空"); + } + int count = 0; + String msg = ""; + for (long i : id) { + ResultStatus resultStatus = nodeService.nodeTransfer(null, i, userId); + if(resultStatus.isStatus()) { + count ++; + } else { + msg = resultStatus.getMsg(); + } + } + if (count > 0) { + return RespResult.success("操作成功" + count + "条记录"); + } + return RespResult.error(RespCodeEnum.CUSTOM_ERROR_DESC, msg); + } + + /** + * 手动拉取上游结算数据 + * @Title: manualSettle + * @param dateStr + * @return + * @throws ParseException RespResult + * @date 2024年10月12日 19:33:07 + */ + @RequestMapping(value = "manualSettle") + public RespResult manualSettle(@RequestParam(value = "dateStr", required = false, defaultValue = "") String dateStr) throws ParseException { + if(Objects.isNull(dateStr)) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + Date date = formatter.parse(dateStr); + nodeOperateService.incomeSettlement(date); + return RespResult.success("操作成功"); + } + + /** + * 节点清退 + * @Title: repel + * @param id 节点id + * @param reason 清退原因 + * @return RespResult + * @date 2024年10月26日 15:43:10 + */ + @RequestMapping("repel") + public RespResult repel(@RequestParam(value = "id") final Long id, + @RequestParam(value = "reason", required = false, defaultValue = "") final String reason) { + if(Objects.isNull(id) ) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + if(StringUtil.isNullOrEmpty(reason)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC,"清退原因不能为空"); + } + + // 查询节点 + Node getNode = nodeService.getById(id); + if(Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + nodeOperateService.repel(getNode, reason); + return RespResult.success("操作成功"); + } + + /** + * 获取资源监控 + * @Title: getMonitorLogs + * @param id 节点主键id + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return RespResult + * @date 2025年3月31日 20:56:00 + */ + @GetMapping("getMonitorLogs") + public RespResult getMonitorLogs(@RequestParam(value = "id") final Long id, + @RequestParam(value = "startTime", required = false, defaultValue = "") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") final LocalDateTime startTime, + @RequestParam(value = "endTime", required = false, defaultValue = "") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") final LocalDateTime endTime) { + if(Objects.isNull(id) ) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + + // 查询节点 + Node getNode = nodeService.getById(id); + if(Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + return RespResult.success("操作成功", nodeOperateService.getMonitorLogs(getNode, startTime, endTime)); + } + /** + * 发起网络压测,上机前使用 + * @Title: sendBeforeBindNetworkPressure + * @param sendNetworkPressureDTO + * @param bindingResult + * @return RespResult + * @date 2025年4月10日 22:02:33 + */ + @GetMapping("sendBeforeBindNetworkPressure/{id}") + public RespResult sendBeforeBindNetworkPressure(@PathVariable Long id) { + + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + nodeOperateService.sendNetworkPressure(getNode, true); + return RespResult.success("操作成功"); + } + /** + * 获取网络压测信息 + * @Title: getNetworkPressure + * @param id 节点主键id + * @return RespResult + * @date 2025年4月11日 21:46:12 + */ + @GetMapping(value = "getNetworkPressure/{id}") + public RespResult getNetworkPressure(@PathVariable("id") Long id) { + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + NetworkPressureResultDTO getNetworkPressure = nodeOperateService.getNetworkPressure(getNode); + return RespResult.success(getNetworkPressure); + } + + /** + * 发起网络压测,上机后使用 + * @Title: sendNetworkPressure + * @param id 节点主键id + * @return RespResult + * @date 2025年4月10日 16:33:21 + */ + @GetMapping("sendNetworkPressure/{id}") + public RespResult sendNetworkPressure(@PathVariable("id") Long id) { + // 查询节点 + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + nodeOperateService.sendNetworkPressure(getNode, false); + return RespResult.success("操作成功"); + } + + /** + * 节点调度修改 + * @Title: modifySchedule + * @param id + * @param isTransProv + * @param transProvRate + * @return RespResult + * @date 2024年12月13日 10:42:32 + */ + @RequestMapping("modifySchedule") + public RespResult modifySchedule(@RequestParam(value = "id") final Long id, + @RequestParam(value = "isTransProv", required = false, defaultValue = "") final Boolean isTransProv, + @RequestParam(value = "transProvRate", required = false, defaultValue = "") final Integer transProvRate) { + if(Objects.isNull(id) || Objects.isNull(isTransProv)) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + + // 查询节点 + Node getNode = nodeService.getById(id); + if(Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + nodeOperateService.schedule(getNode, isTransProv, transProvRate); + return RespResult.success("操作成功"); + } + + /** + * 获取线路汇聚信息 + * @Title: getLinesConverge + * @param id + * @return RespResult + * @date 2025年6月17日 21:58:24 + */ + @GetMapping("/getLinesConverge/{id}") + public RespResult getLinesConverge (@PathVariable Long id) { + if(id == null) { + throw new ResponseResultException(RespCodeEnum.PARAMETER_ERROR); + } + + Node getNode = nodeService.getById(id); + if (Objects.isNull(getNode)) { + throw new ResponseResultException(RespCodeEnum.CUSTOM_ERROR_DESC, "节点不存在"); + } + + return RespResult.success(nodeOperateService.getLinesConverge(getNode)); + } +} diff --git a/hs_err_pid14024.log b/hs_err_pid14024.log new file mode 100644 index 0000000000..c654d1056b --- /dev/null +++ b/hs_err_pid14024.log @@ -0,0 +1,924 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1048576 bytes. Error detail: AllocateHeap +# Possible reasons: +# The system is out of physical RAM or swap space +# This process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Unscaled Compressed Oops mode in which the Java heap is +# placed in the first 4GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 4GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (allocation.cpp:44), pid=14024, tid=28508 +# +# JRE version: OpenJDK Runtime Environment Temurin-21.0.8+9 (21.0.8+9) (build 21.0.8+9-LTS) +# Java VM: OpenJDK 64-Bit Server VM Temurin-21.0.8+9 (21.0.8+9-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, windows-amd64) +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# + +--------------- S U M M A R Y ------------ + +Command Line: --add-modules=ALL-SYSTEM --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\lombok\lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java -Daether.dependencyCollector.impl=bf c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\server\plugins\org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar -configuration c:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win -data c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java\jdt_ws --pipe=\\.\pipe\lsp-4037bcb6d31a4c071a77f700ae449548-sock + +Host: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz, 40 cores, 31G, Windows 11 , 64 bit Build 22621 (10.0.22621.3958) +Time: Fri Aug 29 22:37:09 2025 elapsed time: 680.336685 seconds (0d 0h 11m 20s) + +--------------- T H R E A D --------------- + +Current thread (0x000002067f7e4070): JavaThread "Attach Listener" daemon [_thread_in_vm, id=28508, stack(0x000000fd52c00000,0x000000fd52d00000) (1024K)] + +Stack: [0x000000fd52c00000,0x000000fd52d00000] +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x6d2449] +V [jvm.dll+0x8ae341] +V [jvm.dll+0x8b08be] +V [jvm.dll+0x8b0fa3] +V [jvm.dll+0x280c96] +V [jvm.dll+0xc0347] +V [jvm.dll+0x6d2cf9] +V [jvm.dll+0x131116] +V [jvm.dll+0x3f2d16] +V [jvm.dll+0x857e6b] +V [jvm.dll+0x6d0b0d] +C [ucrtbase.dll+0x29333] +C [KERNEL32.DLL+0x1257d] +C [ntdll.dll+0x5af08] + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000002065d794c70, length=67, elements={ +0x000002067a7b6a50, 0x000002067e24d390, 0x000002067e24df80, 0x000002067a85d2d0, +0x000002067f7e4070, 0x000002067f7e65a0, 0x000002067f7e7d40, 0x000002067f814e40, +0x000002067f816250, 0x000002067f96e6f0, 0x000002065c2279d0, 0x000002065c7477f0, +0x000002065c27a570, 0x000002065cb15f40, 0x000002065cb17190, 0x000002065c094aa0, +0x000002065d1d3d90, 0x000002065d2bc420, 0x000002065d2bde60, 0x000002065d2bb070, +0x000002065d2bbd90, 0x000002065d2bd140, 0x000002065d2be4f0, 0x0000020660748e60, +0x0000020660744630, 0x0000020660746700, 0x0000020660746070, 0x0000020660746d90, +0x0000020660747ab0, 0x0000020660747420, 0x0000020660749b80, 0x000002066074a210, +0x0000020660743280, 0x0000020660745350, 0x0000020660748140, 0x00000206607487d0, +0x00000206607494f0, 0x0000020660744cc0, 0x000002066074a8a0, 0x00000206607459e0, +0x0000020660743910, 0x0000020660743fa0, 0x000002066071c720, 0x0000020660718580, +0x0000020660718c10, 0x0000020660719930, 0x0000020660717860, 0x00000206607192a0, +0x0000020660717ef0, 0x0000020660719fc0, 0x000002066071a650, 0x0000020660716b40, +0x00000206607171d0, 0x000002066071ace0, 0x0000020660715e20, 0x000002066071d440, +0x000002066071b370, 0x000002066071ba00, 0x000002066071c090, 0x000002066071cdb0, +0x00000206607164b0, 0x0000020660788c00, 0x000002066078b9f0, 0x0000020660789290, +0x0000020660787850, 0x000002066078c080, 0x0000020660786b30 +} + +Java Threads: ( => current thread ) + 0x000002067a7b6a50 JavaThread "main" [_thread_blocked, id=35520, stack(0x000000fd52500000,0x000000fd52600000) (1024K)] + 0x000002067e24d390 JavaThread "Reference Handler" daemon [_thread_blocked, id=35468, stack(0x000000fd52900000,0x000000fd52a00000) (1024K)] + 0x000002067e24df80 JavaThread "Finalizer" daemon [_thread_blocked, id=2320, stack(0x000000fd52a00000,0x000000fd52b00000) (1024K)] + 0x000002067a85d2d0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=29312, stack(0x000000fd52b00000,0x000000fd52c00000) (1024K)] +=>0x000002067f7e4070 JavaThread "Attach Listener" daemon [_thread_in_vm, id=28508, stack(0x000000fd52c00000,0x000000fd52d00000) (1024K)] + 0x000002067f7e65a0 JavaThread "Service Thread" daemon [_thread_blocked, id=36100, stack(0x000000fd52d00000,0x000000fd52e00000) (1024K)] + 0x000002067f7e7d40 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=30448, stack(0x000000fd52e00000,0x000000fd52f00000) (1024K)] + 0x000002067f814e40 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=36164, stack(0x000000fd52f00000,0x000000fd53000000) (1024K)] + 0x000002067f816250 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=28184, stack(0x000000fd53000000,0x000000fd53100000) (1024K)] + 0x000002067f96e6f0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=34848, stack(0x000000fd53200000,0x000000fd53300000) (1024K)] + 0x000002065c2279d0 JavaThread "Notification Thread" daemon [_thread_blocked, id=35756, stack(0x000000fd53600000,0x000000fd53700000) (1024K)] + 0x000002065c7477f0 JavaThread "Active Thread: Equinox Container: fb836160-ecc3-4bd7-b92e-2af4e5c5ca44" [_thread_blocked, id=36624, stack(0x000000fd53f00000,0x000000fd54000000) (1024K)] + 0x000002065c27a570 JavaThread "Refresh Thread: Equinox Container: fb836160-ecc3-4bd7-b92e-2af4e5c5ca44" daemon [_thread_blocked, id=36076, stack(0x000000fd53300000,0x000000fd53400000) (1024K)] + 0x000002065cb15f40 JavaThread "Framework Event Dispatcher: Equinox Container: fb836160-ecc3-4bd7-b92e-2af4e5c5ca44" daemon [_thread_blocked, id=17660, stack(0x000000fd53400000,0x000000fd53500000) (1024K)] + 0x000002065cb17190 JavaThread "Start Level: Equinox Container: fb836160-ecc3-4bd7-b92e-2af4e5c5ca44" daemon [_thread_blocked, id=28148, stack(0x000000fd53500000,0x000000fd53600000) (1024K)] + 0x000002065c094aa0 JavaThread "Bundle File Closer" daemon [_thread_blocked, id=34628, stack(0x000000fd54300000,0x000000fd54400000) (1024K)] + 0x000002065d1d3d90 JavaThread "SCR Component Actor" daemon [_thread_blocked, id=16764, stack(0x000000fd54500000,0x000000fd54600000) (1024K)] + 0x000002065d2bc420 JavaThread "Worker-JM" [_thread_blocked, id=11616, stack(0x000000fd54a00000,0x000000fd54b00000) (1024K)] + 0x000002065d2bde60 JavaThread "JNA Cleaner" daemon [_thread_blocked, id=34228, stack(0x000000fd54900000,0x000000fd54a00000) (1024K)] + 0x000002065d2bb070 JavaThread "Worker-1" [_thread_blocked, id=27216, stack(0x000000fd55000000,0x000000fd55100000) (1024K)] + 0x000002065d2bbd90 JavaThread "Java indexing" daemon [_thread_blocked, id=36232, stack(0x000000fd55800000,0x000000fd55900000) (1024K)] + 0x000002065d2bd140 JavaThread "Worker-3" [_thread_blocked, id=36272, stack(0x000000fd55d00000,0x000000fd55e00000) (1024K)] + 0x000002065d2be4f0 JavaThread "Thread-2" daemon [_thread_in_native, id=29920, stack(0x000000fd55f00000,0x000000fd56000000) (1024K)] + 0x0000020660748e60 JavaThread "Thread-3" daemon [_thread_in_native, id=16212, stack(0x000000fd56000000,0x000000fd56100000) (1024K)] + 0x0000020660744630 JavaThread "Thread-4" daemon [_thread_in_native, id=36196, stack(0x000000fd56100000,0x000000fd56200000) (1024K)] + 0x0000020660746700 JavaThread "Thread-5" daemon [_thread_in_native, id=10164, stack(0x000000fd56200000,0x000000fd56300000) (1024K)] + 0x0000020660746070 JavaThread "Thread-6" daemon [_thread_in_native, id=31252, stack(0x000000fd56300000,0x000000fd56400000) (1024K)] + 0x0000020660746d90 JavaThread "Thread-7" daemon [_thread_in_native, id=36304, stack(0x000000fd56400000,0x000000fd56500000) (1024K)] + 0x0000020660747ab0 JavaThread "Thread-8" daemon [_thread_in_native, id=34032, stack(0x000000fd56500000,0x000000fd56600000) (1024K)] + 0x0000020660747420 JavaThread "Thread-9" daemon [_thread_in_native, id=35852, stack(0x000000fd56600000,0x000000fd56700000) (1024K)] + 0x0000020660749b80 JavaThread "Thread-10" daemon [_thread_in_native, id=31632, stack(0x000000fd56700000,0x000000fd56800000) (1024K)] + 0x000002066074a210 JavaThread "Thread-11" daemon [_thread_in_native, id=35256, stack(0x000000fd56800000,0x000000fd56900000) (1024K)] + 0x0000020660743280 JavaThread "Thread-12" daemon [_thread_in_native, id=36652, stack(0x000000fd56900000,0x000000fd56a00000) (1024K)] + 0x0000020660745350 JavaThread "Thread-13" daemon [_thread_in_native, id=35608, stack(0x000000fd56a00000,0x000000fd56b00000) (1024K)] + 0x0000020660748140 JavaThread "Thread-14" daemon [_thread_in_native, id=33472, stack(0x000000fd56d00000,0x000000fd56e00000) (1024K)] + 0x00000206607487d0 JavaThread "Thread-15" daemon [_thread_in_native, id=28348, stack(0x000000fd56e00000,0x000000fd56f00000) (1024K)] + 0x00000206607494f0 JavaThread "Thread-16" daemon [_thread_in_native, id=33204, stack(0x000000fd56f00000,0x000000fd57000000) (1024K)] + 0x0000020660744cc0 JavaThread "Thread-17" daemon [_thread_in_native, id=35060, stack(0x000000fd57000000,0x000000fd57100000) (1024K)] + 0x000002066074a8a0 JavaThread "Thread-18" daemon [_thread_in_native, id=11236, stack(0x000000fd57100000,0x000000fd57200000) (1024K)] + 0x00000206607459e0 JavaThread "Thread-19" daemon [_thread_in_native, id=2436, stack(0x000000fd57200000,0x000000fd57300000) (1024K)] + 0x0000020660743910 JavaThread "Thread-20" daemon [_thread_in_native, id=22524, stack(0x000000fd57300000,0x000000fd57400000) (1024K)] + 0x0000020660743fa0 JavaThread "Thread-21" daemon [_thread_in_native, id=36260, stack(0x000000fd57400000,0x000000fd57500000) (1024K)] + 0x000002066071c720 JavaThread "Thread-22" daemon [_thread_in_native, id=27768, stack(0x000000fd57500000,0x000000fd57600000) (1024K)] + 0x0000020660718580 JavaThread "Thread-23" daemon [_thread_in_native, id=27664, stack(0x000000fd57600000,0x000000fd57700000) (1024K)] + 0x0000020660718c10 JavaThread "Thread-24" daemon [_thread_in_native, id=36704, stack(0x000000fd57700000,0x000000fd57800000) (1024K)] + 0x0000020660719930 JavaThread "Thread-25" daemon [_thread_in_native, id=2072, stack(0x000000fd57800000,0x000000fd57900000) (1024K)] + 0x0000020660717860 JavaThread "Thread-26" daemon [_thread_in_native, id=35020, stack(0x000000fd57900000,0x000000fd57a00000) (1024K)] + 0x00000206607192a0 JavaThread "Thread-27" daemon [_thread_in_native, id=36156, stack(0x000000fd57a00000,0x000000fd57b00000) (1024K)] + 0x0000020660717ef0 JavaThread "Thread-28" daemon [_thread_in_native, id=12332, stack(0x000000fd57b00000,0x000000fd57c00000) (1024K)] + 0x0000020660719fc0 JavaThread "Thread-29" daemon [_thread_in_native, id=36480, stack(0x000000fd57c00000,0x000000fd57d00000) (1024K)] + 0x000002066071a650 JavaThread "Thread-30" daemon [_thread_in_native, id=34520, stack(0x000000fd57d00000,0x000000fd57e00000) (1024K)] + 0x0000020660716b40 JavaThread "Thread-31" daemon [_thread_in_native, id=16544, stack(0x000000fd57e00000,0x000000fd57f00000) (1024K)] + 0x00000206607171d0 JavaThread "Thread-32" daemon [_thread_in_native, id=7812, stack(0x000000fd57f00000,0x000000fd58000000) (1024K)] + 0x000002066071ace0 JavaThread "Thread-33" daemon [_thread_in_native, id=35024, stack(0x000000fd58000000,0x000000fd58100000) (1024K)] + 0x0000020660715e20 JavaThread "Thread-34" daemon [_thread_in_native, id=22560, stack(0x000000fd58100000,0x000000fd58200000) (1024K)] + 0x000002066071d440 JavaThread "Thread-35" daemon [_thread_in_native, id=36016, stack(0x000000fd58200000,0x000000fd58300000) (1024K)] + 0x000002066071b370 JavaThread "Thread-36" daemon [_thread_in_native, id=30252, stack(0x000000fd58300000,0x000000fd58400000) (1024K)] + 0x000002066071ba00 JavaThread "Thread-37" daemon [_thread_in_native, id=33596, stack(0x000000fd58400000,0x000000fd58500000) (1024K)] + 0x000002066071c090 JavaThread "Thread-38" daemon [_thread_in_native, id=34540, stack(0x000000fd58500000,0x000000fd58600000) (1024K)] + 0x000002066071cdb0 JavaThread "Thread-39" daemon [_thread_in_native, id=31500, stack(0x000000fd58600000,0x000000fd58700000) (1024K)] + 0x00000206607164b0 JavaThread "Thread-40" daemon [_thread_in_native, id=36532, stack(0x000000fd58700000,0x000000fd58800000) (1024K)] + 0x0000020660788c00 JavaThread "Thread-41" daemon [_thread_in_native, id=35680, stack(0x000000fd58800000,0x000000fd58900000) (1024K)] + 0x000002066078b9f0 JavaThread "Thread-42" daemon [_thread_in_native, id=33308, stack(0x000000fd58900000,0x000000fd58a00000) (1024K)] + 0x0000020660789290 JavaThread "pool-2-thread-1" [_thread_blocked, id=36472, stack(0x000000fd58a00000,0x000000fd58b00000) (1024K)] + 0x0000020660787850 JavaThread "WorkspaceEventsHandler" [_thread_blocked, id=1480, stack(0x000000fd59000000,0x000000fd59100000) (1024K)] + 0x000002066078c080 JavaThread "pool-1-thread-1" [_thread_blocked, id=29516, stack(0x000000fd59100000,0x000000fd59200000) (1024K)] + 0x0000020660786b30 JavaThread "ForkJoinPool.commonPool-worker-4" daemon [_thread_blocked, id=31132, stack(0x000000fd59900000,0x000000fd59a00000) (1024K)] +Total: 67 + +Other Threads: + 0x000002067e23c130 VMThread "VM Thread" [id=34384, stack(0x000000fd52800000,0x000000fd52900000) (1024K)] + 0x000002067a823c40 WatcherThread "VM Periodic Task Thread" [id=28936, stack(0x000000fd52700000,0x000000fd52800000) (1024K)] + 0x000002067a7d4870 WorkerThread "GC Thread#0" [id=36500, stack(0x000000fd52600000,0x000000fd52700000) (1024K)] + 0x000002065c45e200 WorkerThread "GC Thread#1" [id=3440, stack(0x000000fd53800000,0x000000fd53900000) (1024K)] + 0x000002065ccce960 WorkerThread "GC Thread#2" [id=13884, stack(0x000000fd53900000,0x000000fd53a00000) (1024K)] + 0x000002065ccced00 WorkerThread "GC Thread#3" [id=17912, stack(0x000000fd53a00000,0x000000fd53b00000) (1024K)] + 0x000002065cf54710 WorkerThread "GC Thread#4" [id=36572, stack(0x000000fd53b00000,0x000000fd53c00000) (1024K)] + 0x000002065cf54ab0 WorkerThread "GC Thread#5" [id=22512, stack(0x000000fd53c00000,0x000000fd53d00000) (1024K)] + 0x000002065cbc8fe0 WorkerThread "GC Thread#6" [id=15172, stack(0x000000fd53d00000,0x000000fd53e00000) (1024K)] + 0x000002065d063ab0 WorkerThread "GC Thread#7" [id=31948, stack(0x000000fd54000000,0x000000fd54100000) (1024K)] + 0x000002065c0dc9a0 WorkerThread "GC Thread#8" [id=27808, stack(0x000000fd53700000,0x000000fd53800000) (1024K)] + 0x000002065ccd74a0 WorkerThread "GC Thread#9" [id=31812, stack(0x000000fd53e00000,0x000000fd53f00000) (1024K)] + 0x000002065ccd7840 WorkerThread "GC Thread#10" [id=5976, stack(0x000000fd54100000,0x000000fd54200000) (1024K)] + 0x000002065ccd7f80 WorkerThread "GC Thread#11" [id=30620, stack(0x000000fd54700000,0x000000fd54800000) (1024K)] + 0x000002065ccd86c0 WorkerThread "GC Thread#12" [id=4240, stack(0x000000fd54b00000,0x000000fd54c00000) (1024K)] + 0x000002065ccd8a60 WorkerThread "GC Thread#13" [id=35280, stack(0x000000fd54c00000,0x000000fd54d00000) (1024K)] + 0x000002065d38f050 WorkerThread "GC Thread#14" [id=33100, stack(0x000000fd54d00000,0x000000fd54e00000) (1024K)] + 0x000002065d38de30 WorkerThread "GC Thread#15" [id=31020, stack(0x000000fd55100000,0x000000fd55200000) (1024K)] + 0x000002065d38e570 WorkerThread "GC Thread#16" [id=35172, stack(0x000000fd55300000,0x000000fd55400000) (1024K)] + 0x000002065d38e910 WorkerThread "GC Thread#17" [id=35844, stack(0x000000fd55400000,0x000000fd55500000) (1024K)] + 0x000002065e2e6410 WorkerThread "GC Thread#18" [id=34740, stack(0x000000fd55700000,0x000000fd55800000) (1024K)] + 0x000002065e2e6b50 WorkerThread "GC Thread#19" [id=29948, stack(0x000000fd55900000,0x000000fd55a00000) (1024K)] + 0x000002065e2e8bf0 WorkerThread "GC Thread#20" [id=29040, stack(0x000000fd55a00000,0x000000fd55b00000) (1024K)] + 0x000002065e2e96d0 WorkerThread "GC Thread#21" [id=36256, stack(0x000000fd56b00000,0x000000fd56c00000) (1024K)] + 0x000002065e2e9330 WorkerThread "GC Thread#22" [id=3608, stack(0x000000fd56c00000,0x000000fd56d00000) (1024K)] + 0x000002065e2e8110 WorkerThread "GC Thread#23" [id=25232, stack(0x000000fd58e00000,0x000000fd58f00000) (1024K)] + 0x000002065e2e9a70 WorkerThread "GC Thread#24" [id=28144, stack(0x000000fd58f00000,0x000000fd59000000) (1024K)] + 0x000002065e2e67b0 WorkerThread "GC Thread#25" [id=32344, stack(0x000000fd59500000,0x000000fd59600000) (1024K)] + 0x00000206610a8fe0 WorkerThread "GC Thread#26" [id=14280, stack(0x000000fd59600000,0x000000fd59700000) (1024K)] + 0x00000206610aa5a0 WorkerThread "GC Thread#27" [id=35832, stack(0x000000fd59300000,0x000000fd59400000) (1024K)] +Total: 30 + +Threads with active compile tasks: +Total: 0 + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000080000000, size: 2048 MB, Compressed Oops mode: 32-bit + +CDS archive(s) mapped at: [0x0000020613000000-0x0000020613ba0000-0x0000020613ba0000), size 12189696, SharedBaseAddress: 0x0000020613000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x0000020614000000-0x0000020654000000, reserved size: 1073741824 +Narrow klass base: 0x0000020613000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CardTable entry size: 512 + CPUs: 40 total, 40 available + Memory: 32670M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (32-bit) + Alignments: Space 512K, Generation 512K, Heap 2M + Heap Min Capacity: 100M + Heap Initial Capacity: 100M + Heap Max Capacity: 2G + Pre-touch: Disabled + Parallel Workers: 28 + +Heap: + PSYoungGen total 19456K, used 8037K [0x00000000d5580000, 0x00000000d6b00000, 0x0000000100000000) + eden space 18944K, 39% used [0x00000000d5580000,0x00000000d5cd9768,0x00000000d6800000) + from space 512K, 100% used [0x00000000d6a80000,0x00000000d6b00000,0x00000000d6b00000) + to space 1536K, 0% used [0x00000000d6800000,0x00000000d6800000,0x00000000d6980000) + ParOldGen total 68608K, used 41155K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 59% used [0x0000000080000000,0x0000000082830d98,0x0000000084300000) + Metaspace used 54200K, committed 55424K, reserved 1114112K + class space used 5753K, committed 6272K, reserved 1048576K + +Card table byte_map: [0x000002067a160000,0x000002067a570000] _byte_map_base: 0x0000020679d60000 + +Marking Bits: (ParMarkBitMap*) 0x00007ff880eda340 + Begin Bits: [0x000002060f000000, 0x0000020611000000) + End Bits: [0x0000020611000000, 0x0000020613000000) + +Polling page: 0x00000206785a0000 + +Metaspace: + +Usage: + Non-class: 47.31 MB used. + Class: 5.62 MB used. + Both: 52.93 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 48.00 MB ( 75%) committed, 1 nodes. + Class space: 1.00 GB reserved, 6.12 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 54.12 MB ( 5%) committed. + +Chunk freelists: + Non-Class: 15.84 MB + Class: 9.92 MB + Both: 25.77 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 58.38 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 6. +num_arena_births: 820. +num_arena_deaths: 14. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 866. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 20. +num_chunks_taken_from_freelist: 3154. +num_chunk_merges: 9. +num_chunk_splits: 2028. +num_chunks_enlarged: 1259. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=118848Kb used=5152Kb max_used=5152Kb free=113695Kb + bounds [0x0000020607bf0000, 0x0000020608100000, 0x000002060f000000] +CodeHeap 'profiled nmethods': size=118848Kb used=16512Kb max_used=16512Kb free=102335Kb + bounds [0x0000020600000000, 0x0000020601030000, 0x0000020607410000] +CodeHeap 'non-nmethods': size=8064Kb used=1403Kb max_used=3726Kb free=6660Kb + bounds [0x0000020607410000, 0x00000206077c0000, 0x0000020607bf0000] +CodeCache: size=245760Kb, used=23067Kb, max_used=25390Kb, free=222690Kb + total_blobs=8089, nmethods=7379, adapters=616, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 489.738 Thread 0x000002067f816250 7962 3 org.eclipse.core.internal.jobs.JobManager$$Lambda/0x00000206141b0f10::applyAsLong (9 bytes) +Event: 489.739 Thread 0x000002067f816250 nmethod 7962 0x000002060101c710 code [0x000002060101c8e0, 0x000002060101cb38] +Event: 489.739 Thread 0x000002067f816250 7963 3 org.eclipse.core.internal.jobs.JobManager::lambda$3 (9 bytes) +Event: 489.739 Thread 0x000002067f816250 nmethod 7963 0x000002060101cc90 code [0x000002060101ce40, 0x000002060101d028] +Event: 489.739 Thread 0x000002067f816250 7964 3 java.util.concurrent.atomic.AtomicLong::weakCompareAndSetVolatile (13 bytes) +Event: 489.739 Thread 0x000002067f816250 nmethod 7964 0x000002060101d110 code [0x000002060101d2c0, 0x000002060101d420] +Event: 521.200 Thread 0x000002067f816250 7965 3 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject::canReacquire (38 bytes) +Event: 521.200 Thread 0x000002067f816250 nmethod 7965 0x000002060101d510 code [0x000002060101d6e0, 0x000002060101da28] +Event: 601.344 Thread 0x000002067f816250 7966 3 java.util.concurrent.Executors$RunnableAdapter::call (14 bytes) +Event: 601.345 Thread 0x000002067f816250 nmethod 7966 0x000002060101db90 code [0x000002060101dd40, 0x000002060101df28] +Event: 611.607 Thread 0x000002067f816250 7967 3 java.util.concurrent.ThreadPoolExecutor::isShutdown (12 bytes) +Event: 611.608 Thread 0x000002067f816250 nmethod 7967 0x000002060101e010 code [0x000002060101e1c0, 0x000002060101e3a0] +Event: 611.608 Thread 0x000002067f816250 7968 3 java.util.concurrent.ThreadPoolExecutor::workerCountOf (5 bytes) +Event: 611.608 Thread 0x000002067f816250 nmethod 7968 0x000002060101e490 code [0x000002060101e620, 0x000002060101e718] +Event: 621.612 Thread 0x000002067f816250 7969 3 java.util.concurrent.locks.ReentrantLock$NonfairSync::tryAcquire (27 bytes) +Event: 621.612 Thread 0x000002067f816250 nmethod 7969 0x000002060101e790 code [0x000002060101e940, 0x000002060101eb88] +Event: 631.349 Thread 0x000002067f816250 7970 3 java.util.concurrent.ScheduledThreadPoolExecutor::canRunInCurrentRunState (61 bytes) +Event: 631.350 Thread 0x000002067f816250 nmethod 7970 0x000002060101ec90 code [0x000002060101eea0, 0x000002060101f650] +Event: 631.613 Thread 0x000002067f816250 7971 ! 3 java.util.concurrent.locks.LockSupport::parkNanos (56 bytes) +Event: 631.613 Thread 0x000002067f816250 nmethod 7971 0x000002060101f890 code [0x000002060101faa0, 0x000002060101fee0] + +GC Heap History (20 events): +Event: 17.031 GC heap before +{Heap before GC invocations=27 (full 2): + PSYoungGen total 19968K, used 19744K [0x00000000d5580000, 0x00000000d6d80000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 1024K, 78% used [0x00000000d6c80000,0x00000000d6d48000,0x00000000d6d80000) + to space 2048K, 0% used [0x00000000d6980000,0x00000000d6980000,0x00000000d6b80000) + ParOldGen total 68608K, used 30698K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 44% used [0x0000000080000000,0x0000000081dfa8b0,0x0000000084300000) + Metaspace used 46762K, committed 47872K, reserved 1114112K + class space used 5051K, committed 5504K, reserved 1048576K +} +Event: 17.032 GC heap after +{Heap after GC invocations=27 (full 2): + PSYoungGen total 20992K, used 768K [0x00000000d5580000, 0x00000000d6d00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 2048K, 37% used [0x00000000d6980000,0x00000000d6a40000,0x00000000d6b80000) + to space 1024K, 0% used [0x00000000d6c00000,0x00000000d6c00000,0x00000000d6d00000) + ParOldGen total 68608K, used 31270K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 45% used [0x0000000080000000,0x0000000081e898c0,0x0000000084300000) + Metaspace used 46762K, committed 47872K, reserved 1114112K + class space used 5051K, committed 5504K, reserved 1048576K +} +Event: 17.058 GC heap before +{Heap before GC invocations=28 (full 2): + PSYoungGen total 20992K, used 19712K [0x00000000d5580000, 0x00000000d6d00000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 2048K, 37% used [0x00000000d6980000,0x00000000d6a40000,0x00000000d6b80000) + to space 1024K, 0% used [0x00000000d6c00000,0x00000000d6c00000,0x00000000d6d00000) + ParOldGen total 68608K, used 31270K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 45% used [0x0000000080000000,0x0000000081e898c0,0x0000000084300000) + Metaspace used 46762K, committed 47872K, reserved 1114112K + class space used 5051K, committed 5504K, reserved 1048576K +} +Event: 17.059 GC heap after +{Heap after GC invocations=28 (full 2): + PSYoungGen total 19968K, used 864K [0x00000000d5580000, 0x00000000d6d00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 1024K, 84% used [0x00000000d6c00000,0x00000000d6cd8000,0x00000000d6d00000) + to space 1024K, 0% used [0x00000000d6b00000,0x00000000d6b00000,0x00000000d6c00000) + ParOldGen total 68608K, used 31766K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 46% used [0x0000000080000000,0x0000000081f058c0,0x0000000084300000) + Metaspace used 46762K, committed 47872K, reserved 1114112K + class space used 5051K, committed 5504K, reserved 1048576K +} +Event: 17.126 GC heap before +{Heap before GC invocations=29 (full 2): + PSYoungGen total 19968K, used 19808K [0x00000000d5580000, 0x00000000d6d00000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 1024K, 84% used [0x00000000d6c00000,0x00000000d6cd8000,0x00000000d6d00000) + to space 1024K, 0% used [0x00000000d6b00000,0x00000000d6b00000,0x00000000d6c00000) + ParOldGen total 68608K, used 31766K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 46% used [0x0000000080000000,0x0000000081f058c0,0x0000000084300000) + Metaspace used 46866K, committed 48000K, reserved 1114112K + class space used 5053K, committed 5504K, reserved 1048576K +} +Event: 17.128 GC heap after +{Heap after GC invocations=29 (full 2): + PSYoungGen total 19968K, used 1008K [0x00000000d5580000, 0x00000000d6f00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 1024K, 98% used [0x00000000d6b00000,0x00000000d6bfc2b8,0x00000000d6c00000) + to space 3072K, 0% used [0x00000000d6c00000,0x00000000d6c00000,0x00000000d6f00000) + ParOldGen total 68608K, used 33690K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 49% used [0x0000000080000000,0x00000000820e6880,0x0000000084300000) + Metaspace used 46866K, committed 48000K, reserved 1114112K + class space used 5053K, committed 5504K, reserved 1048576K +} +Event: 17.157 GC heap before +{Heap before GC invocations=30 (full 2): + PSYoungGen total 19968K, used 19952K [0x00000000d5580000, 0x00000000d6f00000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 1024K, 98% used [0x00000000d6b00000,0x00000000d6bfc2b8,0x00000000d6c00000) + to space 3072K, 0% used [0x00000000d6c00000,0x00000000d6c00000,0x00000000d6f00000) + ParOldGen total 68608K, used 33690K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 49% used [0x0000000080000000,0x00000000820e6880,0x0000000084300000) + Metaspace used 46866K, committed 48000K, reserved 1114112K + class space used 5053K, committed 5504K, reserved 1048576K +} +Event: 17.159 GC heap after +{Heap after GC invocations=30 (full 2): + PSYoungGen total 19968K, used 800K [0x00000000d5580000, 0x00000000d6d00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 1024K, 78% used [0x00000000d6c00000,0x00000000d6cc8000,0x00000000d6d00000) + to space 2048K, 0% used [0x00000000d6900000,0x00000000d6900000,0x00000000d6b00000) + ParOldGen total 68608K, used 34794K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 50% used [0x0000000080000000,0x00000000821fa888,0x0000000084300000) + Metaspace used 46866K, committed 48000K, reserved 1114112K + class space used 5053K, committed 5504K, reserved 1048576K +} +Event: 17.289 GC heap before +{Heap before GC invocations=31 (full 2): + PSYoungGen total 19968K, used 19743K [0x00000000d5580000, 0x00000000d6d00000, 0x0000000100000000) + eden space 18944K, 99% used [0x00000000d5580000,0x00000000d67ffcb0,0x00000000d6800000) + from space 1024K, 78% used [0x00000000d6c00000,0x00000000d6cc8000,0x00000000d6d00000) + to space 2048K, 0% used [0x00000000d6900000,0x00000000d6900000,0x00000000d6b00000) + ParOldGen total 68608K, used 34794K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 50% used [0x0000000080000000,0x00000000821fa888,0x0000000084300000) + Metaspace used 47227K, committed 48320K, reserved 1114112K + class space used 5087K, committed 5568K, reserved 1048576K +} +Event: 17.293 GC heap after +{Heap after GC invocations=31 (full 2): + PSYoungGen total 20992K, used 2027K [0x00000000d5580000, 0x00000000d7000000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 2048K, 99% used [0x00000000d6900000,0x00000000d6afae50,0x00000000d6b00000) + to space 4096K, 0% used [0x00000000d6c00000,0x00000000d6c00000,0x00000000d7000000) + ParOldGen total 68608K, used 36306K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 52% used [0x0000000080000000,0x0000000082374888,0x0000000084300000) + Metaspace used 47227K, committed 48320K, reserved 1114112K + class space used 5087K, committed 5568K, reserved 1048576K +} +Event: 17.617 GC heap before +{Heap before GC invocations=32 (full 2): + PSYoungGen total 20992K, used 20848K [0x00000000d5580000, 0x00000000d7000000, 0x0000000100000000) + eden space 18944K, 99% used [0x00000000d5580000,0x00000000d67e1280,0x00000000d6800000) + from space 2048K, 99% used [0x00000000d6900000,0x00000000d6afae50,0x00000000d6b00000) + to space 4096K, 0% used [0x00000000d6c00000,0x00000000d6c00000,0x00000000d7000000) + ParOldGen total 68608K, used 36306K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 52% used [0x0000000080000000,0x0000000082374888,0x0000000084300000) + Metaspace used 50108K, committed 51264K, reserved 1114112K + class space used 5357K, committed 5824K, reserved 1048576K +} +Event: 17.622 GC heap after +{Heap after GC invocations=32 (full 2): + PSYoungGen total 22016K, used 2974K [0x00000000d5580000, 0x00000000d6f00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 3072K, 96% used [0x00000000d6c00000,0x00000000d6ee7ac0,0x00000000d6f00000) + to space 3584K, 0% used [0x00000000d6800000,0x00000000d6800000,0x00000000d6b80000) + ParOldGen total 68608K, used 38366K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 55% used [0x0000000080000000,0x00000000825778f8,0x0000000084300000) + Metaspace used 50108K, committed 51264K, reserved 1114112K + class space used 5357K, committed 5824K, reserved 1048576K +} +Event: 17.677 GC heap before +{Heap before GC invocations=33 (full 2): + PSYoungGen total 22016K, used 21918K [0x00000000d5580000, 0x00000000d6f00000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 3072K, 96% used [0x00000000d6c00000,0x00000000d6ee7ac0,0x00000000d6f00000) + to space 3584K, 0% used [0x00000000d6800000,0x00000000d6800000,0x00000000d6b80000) + ParOldGen total 68608K, used 38366K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 55% used [0x0000000080000000,0x00000000825778f8,0x0000000084300000) + Metaspace used 50140K, committed 51264K, reserved 1114112K + class space used 5358K, committed 5824K, reserved 1048576K +} +Event: 17.679 GC heap after +{Heap after GC invocations=33 (full 2): + PSYoungGen total 20480K, used 1193K [0x00000000d5580000, 0x00000000d6c80000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 1536K, 77% used [0x00000000d6800000,0x00000000d692a508,0x00000000d6980000) + to space 2048K, 0% used [0x00000000d6a80000,0x00000000d6a80000,0x00000000d6c80000) + ParOldGen total 68608K, used 40458K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 58% used [0x0000000080000000,0x0000000082782bf0,0x0000000084300000) + Metaspace used 50140K, committed 51264K, reserved 1114112K + class space used 5358K, committed 5824K, reserved 1048576K +} +Event: 17.739 GC heap before +{Heap before GC invocations=34 (full 2): + PSYoungGen total 20480K, used 20137K [0x00000000d5580000, 0x00000000d6c80000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 1536K, 77% used [0x00000000d6800000,0x00000000d692a508,0x00000000d6980000) + to space 2048K, 0% used [0x00000000d6a80000,0x00000000d6a80000,0x00000000d6c80000) + ParOldGen total 68608K, used 40458K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 58% used [0x0000000080000000,0x0000000082782bf0,0x0000000084300000) + Metaspace used 50836K, committed 51968K, reserved 1114112K + class space used 5422K, committed 5888K, reserved 1048576K +} +Event: 17.739 GC heap after +{Heap after GC invocations=34 (full 2): + PSYoungGen total 19968K, used 704K [0x00000000d5580000, 0x00000000d6b80000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 1024K, 68% used [0x00000000d6a80000,0x00000000d6b30000,0x00000000d6b80000) + to space 1024K, 0% used [0x00000000d6980000,0x00000000d6980000,0x00000000d6a80000) + ParOldGen total 68608K, used 40538K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 59% used [0x0000000080000000,0x0000000082796bf0,0x0000000084300000) + Metaspace used 50836K, committed 51968K, reserved 1114112K + class space used 5422K, committed 5888K, reserved 1048576K +} +Event: 17.988 GC heap before +{Heap before GC invocations=35 (full 2): + PSYoungGen total 19968K, used 19648K [0x00000000d5580000, 0x00000000d6b80000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 1024K, 68% used [0x00000000d6a80000,0x00000000d6b30000,0x00000000d6b80000) + to space 1024K, 0% used [0x00000000d6980000,0x00000000d6980000,0x00000000d6a80000) + ParOldGen total 68608K, used 40538K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 59% used [0x0000000080000000,0x0000000082796bf0,0x0000000084300000) + Metaspace used 51889K, committed 53056K, reserved 1114112K + class space used 5543K, committed 6016K, reserved 1048576K +} +Event: 17.989 GC heap after +{Heap after GC invocations=35 (full 2): + PSYoungGen total 19968K, used 768K [0x00000000d5580000, 0x00000000d6b00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 1024K, 75% used [0x00000000d6980000,0x00000000d6a40010,0x00000000d6a80000) + to space 512K, 0% used [0x00000000d6a80000,0x00000000d6a80000,0x00000000d6b00000) + ParOldGen total 68608K, used 40610K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 59% used [0x0000000080000000,0x00000000827a8bf0,0x0000000084300000) + Metaspace used 51889K, committed 53056K, reserved 1114112K + class space used 5543K, committed 6016K, reserved 1048576K +} +Event: 18.293 GC heap before +{Heap before GC invocations=36 (full 2): + PSYoungGen total 19968K, used 19712K [0x00000000d5580000, 0x00000000d6b00000, 0x0000000100000000) + eden space 18944K, 100% used [0x00000000d5580000,0x00000000d6800000,0x00000000d6800000) + from space 1024K, 75% used [0x00000000d6980000,0x00000000d6a40010,0x00000000d6a80000) + to space 512K, 0% used [0x00000000d6a80000,0x00000000d6a80000,0x00000000d6b00000) + ParOldGen total 68608K, used 40610K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 59% used [0x0000000080000000,0x00000000827a8bf0,0x0000000084300000) + Metaspace used 53498K, committed 54656K, reserved 1114112K + class space used 5686K, committed 6208K, reserved 1048576K +} +Event: 18.295 GC heap after +{Heap after GC invocations=36 (full 2): + PSYoungGen total 19456K, used 512K [0x00000000d5580000, 0x00000000d6b00000, 0x0000000100000000) + eden space 18944K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d6800000) + from space 512K, 100% used [0x00000000d6a80000,0x00000000d6b00000,0x00000000d6b00000) + to space 1536K, 0% used [0x00000000d6800000,0x00000000d6800000,0x00000000d6980000) + ParOldGen total 68608K, used 41155K [0x0000000080000000, 0x0000000084300000, 0x00000000d5580000) + object space 68608K, 59% used [0x0000000080000000,0x0000000082830d98,0x0000000084300000) + Metaspace used 53498K, committed 54656K, reserved 1114112K + class space used 5686K, committed 6208K, reserved 1048576K +} + +Dll operation events (10 events): +Event: 0.015 Loaded shared library c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\java.dll +Event: 0.046 Loaded shared library c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\zip.dll +Event: 0.114 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\instrument.dll +Event: 0.119 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\net.dll +Event: 0.125 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\nio.dll +Event: 0.128 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\zip.dll +Event: 0.144 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\jimage.dll +Event: 0.204 Loaded shared library c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\verify.dll +Event: 5.762 Loaded shared library C:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win\org.eclipse.equinox.launcher\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1400.v20250730-1736\eclipse_11913.dll +Event: 9.611 Loaded shared library C:\Users\Administrator\AppData\Local\Temp\jna-146731693\jna9804976735896733186.dll + +Deoptimization events (20 events): +Event: 31.114 Thread 0x000002065c7477f0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000020607ff4d7c relative=0x00000000000005fc +Event: 31.114 Thread 0x000002065c7477f0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000020607ff4d7c method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 94 c2 +Event: 31.114 Thread 0x000002065c7477f0 DEOPT PACKING pc=0x0000020607ff4d7c sp=0x000000fd53ffed50 +Event: 31.114 Thread 0x000002065c7477f0 DEOPT UNPACKING pc=0x0000020607463aa2 sp=0x000000fd53ffecc8 mode 2 +Event: 31.134 Thread 0x000002065c7477f0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000020607c911a8 relative=0x0000000000000148 +Event: 31.134 Thread 0x000002065c7477f0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000020607c911a8 method=java.util.HashMap.getNode(Ljava/lang/Object;)Ljava/util/HashMap$Node; @ 66 c2 +Event: 31.134 Thread 0x000002065c7477f0 DEOPT PACKING pc=0x0000020607c911a8 sp=0x000000fd53ffedf0 +Event: 31.134 Thread 0x000002065c7477f0 DEOPT UNPACKING pc=0x0000020607463aa2 sp=0x000000fd53ffed00 mode 2 +Event: 31.134 Thread 0x000002065c7477f0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000020607c909a8 relative=0x0000000000000148 +Event: 31.134 Thread 0x000002065c7477f0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000020607c909a8 method=java.util.HashMap.getNode(Ljava/lang/Object;)Ljava/util/HashMap$Node; @ 66 c2 +Event: 31.134 Thread 0x000002065c7477f0 DEOPT PACKING pc=0x0000020607c909a8 sp=0x000000fd53ffed10 +Event: 31.134 Thread 0x000002065c7477f0 DEOPT UNPACKING pc=0x0000020607463aa2 sp=0x000000fd53ffec90 mode 2 +Event: 31.165 Thread 0x000002065c7477f0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000020607feacbc relative=0x00000000000005fc +Event: 31.165 Thread 0x000002065c7477f0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000020607feacbc method=java.util.ImmutableCollections$AbstractImmutableList.equals(Ljava/lang/Object;)Z @ 2 c2 +Event: 31.165 Thread 0x000002065c7477f0 DEOPT PACKING pc=0x0000020607feacbc sp=0x000000fd53ffe620 +Event: 31.165 Thread 0x000002065c7477f0 DEOPT UNPACKING pc=0x0000020607463aa2 sp=0x000000fd53ffe5c0 mode 2 +Event: 309.706 Thread 0x000002065d2bb070 Uncommon trap: trap_request=0xffffff45 fr.pc=0x00000206080f06bc relative=0x00000000000005bc +Event: 309.706 Thread 0x000002065d2bb070 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000206080f06bc method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 236 c2 +Event: 309.706 Thread 0x000002065d2bb070 DEOPT PACKING pc=0x00000206080f06bc sp=0x000000fd550fec70 +Event: 309.707 Thread 0x000002065d2bb070 DEOPT UNPACKING pc=0x0000020607463aa2 sp=0x000000fd550febe8 mode 2 + +Classes loaded (20 events): +Event: 31.167 Loading class sun/util/locale/provider/TimeZoneNameProviderImpl done +Event: 31.167 Loading class sun/util/cldr/CLDRTimeZoneNameProviderImpl done +Event: 31.169 Loading class sun/util/locale/provider/BaseLocaleDataMetaInfo +Event: 31.169 Loading class sun/util/locale/provider/BaseLocaleDataMetaInfo done +Event: 31.171 Loading class sun/util/resources/cldr/TimeZoneNames +Event: 31.171 Loading class sun/util/resources/TimeZoneNamesBundle +Event: 31.171 Loading class sun/util/resources/OpenListResourceBundle +Event: 31.171 Loading class sun/util/resources/OpenListResourceBundle done +Event: 31.171 Loading class sun/util/resources/TimeZoneNamesBundle done +Event: 31.171 Loading class sun/util/resources/cldr/TimeZoneNames done +Event: 31.171 Loading class sun/util/resources/cldr/TimeZoneNames_en +Event: 31.172 Loading class sun/util/resources/cldr/TimeZoneNames_en done +Event: 31.173 Loading class sun/util/resources/cldr/TimeZoneNames_en_US +Event: 31.173 Loading class sun/util/resources/cldr/TimeZoneNames_en_US done +Event: 31.174 Loading class sun/util/cldr/CLDRBaseLocaleDataMetaInfo$TZCanonicalIDMapHolder +Event: 31.175 Loading class sun/util/cldr/CLDRBaseLocaleDataMetaInfo$TZCanonicalIDMapHolder done +Event: 31.176 Loading class sun/util/resources/TimeZoneNames +Event: 31.177 Loading class sun/util/resources/TimeZoneNames done +Event: 31.177 Loading class sun/util/resources/TimeZoneNames_en +Event: 31.177 Loading class sun/util/resources/TimeZoneNames_en done + +Classes unloaded (7 events): +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a6c00 'java/lang/invoke/LambdaForm$MH+0x00000206141a6c00' +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a6800 'java/lang/invoke/LambdaForm$MH+0x00000206141a6800' +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a6400 'java/lang/invoke/LambdaForm$MH+0x00000206141a6400' +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a6000 'java/lang/invoke/LambdaForm$MH+0x00000206141a6000' +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a5c00 'java/lang/invoke/LambdaForm$BMH+0x00000206141a5c00' +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a5800 'java/lang/invoke/LambdaForm$DMH+0x00000206141a5800' +Event: 10.108 Thread 0x000002067e23c130 Unloading class 0x00000206141a4800 'java/lang/invoke/LambdaForm$DMH+0x00000206141a4800' + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 16.801 Thread 0x000002065d2bd140 Exception (0x00000000d6470f78) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.801 Thread 0x000002065d2bd140 Exception (0x00000000d6473ec0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.801 Thread 0x000002065d2bd140 Exception (0x00000000d64778d0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.802 Thread 0x000002065d2bd140 Exception (0x00000000d647aed0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.802 Thread 0x000002065d2bd140 Exception (0x00000000d647e140) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.802 Thread 0x000002065d2bd140 Exception (0x00000000d6481428) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.802 Thread 0x000002065d2bd140 Exception (0x00000000d6484450) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 16.802 Thread 0x000002065d2bd140 Exception (0x00000000d6486e68) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 17.343 Thread 0x000002065d2bd140 Exception (0x00000000d58807f8) +thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 773] +Event: 17.466 Thread 0x000002065d2bd140 Implicit null exception at 0x0000020607eb8883 to 0x0000020607eb8b04 +Event: 18.265 Thread 0x000002066078c080 Exception (0x00000000d65eee48) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.265 Thread 0x000002066078c080 Exception (0x00000000d65ef720) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.266 Thread 0x000002066078c080 Exception (0x00000000d65f3528) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.266 Thread 0x000002066078c080 Exception (0x00000000d65f3e20) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.296 Thread 0x000002066078c080 Exception (0x00000000d55d7518) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.297 Thread 0x000002066078c080 Exception (0x00000000d55d8068) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.297 Thread 0x000002066078c080 Exception (0x00000000d55fabc8) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.297 Thread 0x000002066078c080 Exception (0x00000000d55fb4c8) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 18.349 Thread 0x0000020660789920 Implicit null exception at 0x0000020607f22d04 to 0x0000020607f23a84 +Event: 18.549 Thread 0x000002066078c080 Exception (0x00000000d577ec48) +thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 840] + +ZGC Phase Switch (0 events): +No events + +VM Operations (20 events): +Event: 481.281 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 481.281 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 481.281 Executing VM operation: RendezvousGCThreads +Event: 481.281 Executing VM operation: RendezvousGCThreads done +Event: 541.505 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 541.506 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 541.506 Executing VM operation: RendezvousGCThreads +Event: 541.506 Executing VM operation: RendezvousGCThreads done +Event: 601.638 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 601.638 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 601.638 Executing VM operation: Cleanup +Event: 601.638 Executing VM operation: Cleanup done +Event: 601.638 Executing VM operation: RendezvousGCThreads +Event: 601.638 Executing VM operation: RendezvousGCThreads done +Event: 631.957 Executing VM operation: Cleanup +Event: 631.957 Executing VM operation: Cleanup done +Event: 661.721 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 661.721 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 661.721 Executing VM operation: RendezvousGCThreads +Event: 661.721 Executing VM operation: RendezvousGCThreads done + +Memory protections (0 events): +No events + +Nmethod flushes (20 events): +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060072d990 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x0000020600733190 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060074ef90 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060075e410 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077b990 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077bd90 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077ce90 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077e490 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077ec10 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077f590 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x000002060077fa90 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x0000020600780f90 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x0000020600781810 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x0000020600782390 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x0000020600783090 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x0000020600785b90 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x00000206007cc810 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x00000206007cd310 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x00000206007d3010 +Event: 11.306 Thread 0x000002067e23c130 flushing nmethod 0x00000206007d8f10 + +Events (20 events): +Event: 31.113 Thread 0x0000020660a1fa50 Thread added: 0x0000020660a20120 +Event: 36.192 Thread 0x0000020660a1fa50 Thread exited: 0x0000020660a1fa50 +Event: 36.207 Thread 0x0000020660a20120 Thread exited: 0x0000020660a20120 +Event: 41.194 Thread 0x0000020660a1f380 Thread exited: 0x0000020660a1f380 +Event: 41.194 Thread 0x0000020660a1d840 Thread exited: 0x0000020660a1d840 +Event: 46.201 Thread 0x0000020660a22a00 Thread exited: 0x0000020660a22a00 +Event: 78.336 Thread 0x000002065d2bb700 Thread exited: 0x000002065d2bb700 +Event: 78.336 Thread 0x000002065d2bd7d0 Thread exited: 0x000002065d2bd7d0 +Event: 78.352 Thread 0x000002065d2bcab0 Thread exited: 0x000002065d2bcab0 +Event: 78.570 Thread 0x0000020660789920 Thread exited: 0x0000020660789920 +Event: 138.576 Thread 0x0000020660788570 Thread exited: 0x0000020660788570 +Event: 198.591 Thread 0x0000020660785e10 Thread exited: 0x0000020660785e10 +Event: 258.600 Thread 0x000002066078cda0 Thread exited: 0x000002066078cda0 +Event: 318.614 Thread 0x0000020660787ee0 Thread exited: 0x0000020660787ee0 +Event: 378.620 Thread 0x000002066078a640 Thread exited: 0x000002066078a640 +Event: 438.627 Thread 0x000002066078acd0 Thread exited: 0x000002066078acd0 +Event: 498.637 Thread 0x000002066078c710 Thread exited: 0x000002066078c710 +Event: 558.641 Thread 0x00000206607864a0 Thread exited: 0x00000206607864a0 +Event: 618.645 Thread 0x00000206607871c0 Thread exited: 0x00000206607871c0 +Event: 678.654 Thread 0x000002066078b360 Thread exited: 0x000002066078b360 + + +Dynamic libraries: +0x00007ff704900000 - 0x00007ff70490e000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\java.exe +0x00007ff9082d0000 - 0x00007ff9084e7000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ff9060b0000 - 0x00007ff906174000 C:\Windows\System32\KERNEL32.DLL +0x00007ff905b00000 - 0x00007ff905eb7000 C:\Windows\System32\KERNELBASE.dll +0x00007ff905610000 - 0x00007ff905721000 C:\Windows\System32\ucrtbase.dll +0x00007ff8f85e0000 - 0x00007ff8f85f8000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\jli.dll +0x00007ff8f3d20000 - 0x00007ff8f3d3e000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\VCRUNTIME140.dll +0x00007ff906eb0000 - 0x00007ff90705f000 C:\Windows\System32\USER32.dll +0x00007ff9047e0000 - 0x00007ff904a73000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3672_none_2713b9d173822955\COMCTL32.dll +0x00007ff905850000 - 0x00007ff905876000 C:\Windows\System32\win32u.dll +0x00007ff906210000 - 0x00007ff9062b7000 C:\Windows\System32\msvcrt.dll +0x00007ff907100000 - 0x00007ff907129000 C:\Windows\System32\GDI32.dll +0x00007ff905730000 - 0x00007ff905848000 C:\Windows\System32\gdi32full.dll +0x00007ff905a60000 - 0x00007ff905afa000 C:\Windows\System32\msvcp_win.dll +0x00007ff9062c0000 - 0x00007ff9062f1000 C:\Windows\System32\IMM32.DLL +0x00007ff8f85d0000 - 0x00007ff8f85dc000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\vcruntime140_1.dll +0x00007ff8df520000 - 0x00007ff8df5ad000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\msvcp140.dll +0x00007ff880220000 - 0x00007ff880fb7000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\server\jvm.dll +0x00007ff906bc0000 - 0x00007ff906c72000 C:\Windows\System32\ADVAPI32.dll +0x00007ff907b70000 - 0x00007ff907c18000 C:\Windows\System32\sechost.dll +0x00007ff9055e0000 - 0x00007ff905608000 C:\Windows\System32\bcrypt.dll +0x00007ff906c80000 - 0x00007ff906d94000 C:\Windows\System32\RPCRT4.dll +0x00007ff906190000 - 0x00007ff906201000 C:\Windows\System32\WS2_32.dll +0x00007ff904ef0000 - 0x00007ff904f3d000 C:\Windows\SYSTEM32\POWRPROF.dll +0x00007ff8fac80000 - 0x00007ff8facb4000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ff8fe730000 - 0x00007ff8fe73a000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ff904af0000 - 0x00007ff904b03000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ff904130000 - 0x00007ff904148000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ff8f3560000 - 0x00007ff8f356a000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\jimage.dll +0x00007ff904f40000 - 0x00007ff905172000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ff907c40000 - 0x00007ff907fce000 C:\Windows\System32\combase.dll +0x00007ff906ae0000 - 0x00007ff906bb7000 C:\Windows\System32\OLEAUT32.dll +0x00007ff904de0000 - 0x00007ff904e12000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ff905ec0000 - 0x00007ff905f3b000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ff8e8d50000 - 0x00007ff8e8d5f000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\instrument.dll +0x00007ff8e8d30000 - 0x00007ff8e8d4f000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\java.dll +0x00007ff907300000 - 0x00007ff907b69000 C:\Windows\System32\SHELL32.dll +0x00007ff902cb0000 - 0x00007ff9035af000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ff902b70000 - 0x00007ff902caf000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ff906db0000 - 0x00007ff906ea9000 C:\Windows\System32\SHCORE.dll +0x00007ff9063e0000 - 0x00007ff90643e000 C:\Windows\System32\shlwapi.dll +0x00007ff905510000 - 0x00007ff905537000 C:\Windows\SYSTEM32\profapi.dll +0x00007ff8e6cc0000 - 0x00007ff8e6cd8000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\zip.dll +0x00007ff8e6cb0000 - 0x00007ff8e6cc0000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\net.dll +0x00007ff9000c0000 - 0x00007ff9001f6000 C:\Windows\SYSTEM32\WINHTTP.dll +0x00007ff8f8ea0000 - 0x00007ff8f901a000 C:\Program Files (x86)\Sangfor\SSL\ClientComponent\1_SangforTcpX64.dll +0x00007ff907130000 - 0x00007ff9072d5000 C:\Windows\System32\ole32.dll +0x00007ff905880000 - 0x00007ff9058ec000 C:\Windows\System32\WINTRUST.dll +0x00007ff9058f0000 - 0x00007ff905a56000 C:\Windows\System32\CRYPT32.dll +0x00007ff904680000 - 0x00007ff904692000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ff9043f0000 - 0x00007ff904459000 C:\Windows\system32\mswsock.dll +0x00007ff8df650000 - 0x00007ff8df666000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\nio.dll +0x00007ff8e69b0000 - 0x00007ff8e69c0000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\verify.dll +0x00007ff8df600000 - 0x00007ff8df645000 C:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win\org.eclipse.equinox.launcher\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1400.v20250730-1736\eclipse_11913.dll +0x00007ff905280000 - 0x00007ff90529b000 C:\Windows\SYSTEM32\CRYPTSP.dll +0x00007ff903eb0000 - 0x00007ff903ee5000 C:\Windows\system32\rsaenh.dll +0x00007ff9044e0000 - 0x00007ff904508000 C:\Windows\SYSTEM32\USERENV.dll +0x00007ff904640000 - 0x00007ff90464c000 C:\Windows\SYSTEM32\CRYPTBASE.dll +0x00007ff903810000 - 0x00007ff90383d000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ff907060000 - 0x00007ff907069000 C:\Windows\System32\NSI.dll +0x00007ff8df4b0000 - 0x00007ff8df4f9000 C:\Users\Administrator\AppData\Local\Temp\jna-146731693\jna9804976735896733186.dll +0x00007ff906180000 - 0x00007ff906188000 C:\Windows\System32\PSAPI.DLL +0x00007ff9000a0000 - 0x00007ff9000b9000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL +0x00007ff900040000 - 0x00007ff90005f000 C:\Windows\SYSTEM32\dhcpcsvc.DLL + +JVMTI agents: +c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\lombok\lombok-1.18.39-4050.jar path:c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\instrument.dll, loaded, initialized, instrumentlib options:none + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3672_none_2713b9d173822955;c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\server;C:\Program Files (x86)\Sangfor\SSL\ClientComponent;C:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win\org.eclipse.equinox.launcher\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1400.v20250730-1736;C:\Users\Administrator\AppData\Local\Temp\jna-146731693 + +VM Arguments: +jvm_args: --add-modules=ALL-SYSTEM --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\lombok\lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java -Daether.dependencyCollector.impl=bf +java_command: c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\server\plugins\org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar -configuration c:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win -data c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java\jdt_ws --pipe=\\.\pipe\lsp-4037bcb6d31a4c071a77f700ae449548-sock +java_class_path (initial): c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\server\plugins\org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar +Launcher Type: SUN_STANDARD + +[Global flags] + uintx AdaptiveSizePolicyWeight = 90 {product} {command line} + intx CICompilerCount = 15 {product} {ergonomic} + uintx GCTimeRatio = 4 {product} {command line} + bool HeapDumpOnOutOfMemoryError = true {manageable} {command line} + ccstr HeapDumpPath = c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java {manageable} {command line} + size_t InitialHeapSize = 104857600 {product} {command line} + size_t MaxHeapSize = 2147483648 {product} {command line} + size_t MaxNewSize = 715653120 {product} {ergonomic} + size_t MinHeapDeltaBytes = 524288 {product} {ergonomic} + size_t MinHeapSize = 104857600 {product} {command line} + size_t NewSize = 34603008 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 8192380 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 121732930 {pd product} {ergonomic} + size_t OldSize = 70254592 {product} {ergonomic} + uintx ProfiledCodeHeapSize = 121732930 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 2147483648 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + bool UseParallelGC = true {product} {command line} + +Logging: +Log output configuration: + #0: stdout all=off uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201 +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_201\lib;C:\Program Files\Java\jdk1.8.0_201\lib\tools.jar +PATH=c:\Users\Administrator\AppData\Local\Programs\cursor\resources\app\bin;D:\Python313\Scripts\;D:\Python313\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Java\jdk1.8.0_201\bin;H:\mysql-5.7.31-winx64\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\nodejs\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;C:\Users\Administrator\AppData\Roaming\npm;d:\Program Files\JetBrains\PyCharm Community Edition 2024.3\bin;;c:\Users\Administrator\AppData\Local\Programs\cursor\resources\app\bin;D:\Program Files (x86)\Tencent\΢��web�����߹���\dll;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Roaming\npm;d:\Program Files\JetBrains\PyCharm Community Edition 2024.3\bin;;C:\Users\Administrator\AppData\Local\Programs\cursor\resources\app\bin +USERNAME=Administrator +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 79 Stepping 1, GenuineIntel +TMP=C:\Users\Administrator\AppData\Local\Temp +TEMP=C:\Users\Administrator\AppData\Local\Temp + + + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: + Windows 11 , 64 bit Build 22621 (10.0.22621.3958) +OS uptime: 0 days 13:34 hours + +CPU: total 40 (initial active 40) (20 cores per cpu, 2 threads per core) family 6 model 79 stepping 1 microcode 0xb000038, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, rtm, adx, fma, vzeroupper, clflush, rdtscp, f16c +Processor Information for processor 0 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 1 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 2 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 3 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 4 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 5 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 6 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 7 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 8 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 9 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 10 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 11 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 12 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 13 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 14 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 15 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 16 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 17 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 18 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 19 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 20 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 21 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 22 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 23 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 24 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 25 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 26 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 27 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 28 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 29 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 30 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 31 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 32 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 33 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 34 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 35 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 36 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 37 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 38 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 39 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 + +Memory: 4k page, system-wide physical 32670M (9665M free) +TotalPageFile size 45170M (AvailPageFile size 12M) +current process WorkingSet (physical memory assigned to process): 224M, peak: 295M +current process commit charge ("private bytes"): 388M, peak: 462M + +vm_info: OpenJDK 64-Bit Server VM (21.0.8+9-LTS) for windows-amd64 JRE (21.0.8+9-LTS), built on 2025-07-15T00:00:00Z by "admin" with MS VC++ 17.7 (VS2022) + +END. diff --git a/hs_err_pid31828.log b/hs_err_pid31828.log new file mode 100644 index 0000000000..681d7e68e3 --- /dev/null +++ b/hs_err_pid31828.log @@ -0,0 +1,941 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1048576 bytes. Error detail: AllocateHeap +# Possible reasons: +# The system is out of physical RAM or swap space +# This process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Unscaled Compressed Oops mode in which the Java heap is +# placed in the first 4GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 4GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (allocation.cpp:44), pid=31828, tid=27932 +# +# JRE version: OpenJDK Runtime Environment Temurin-21.0.8+9 (21.0.8+9) (build 21.0.8+9-LTS) +# Java VM: OpenJDK 64-Bit Server VM Temurin-21.0.8+9 (21.0.8+9-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, windows-amd64) +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# + +--------------- S U M M A R Y ------------ + +Command Line: --add-modules=ALL-SYSTEM --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\lombok\lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java -Daether.dependencyCollector.impl=bf c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\server\plugins\org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar -configuration c:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win -data c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java\jdt_ws --pipe=\\.\pipe\lsp-d5cde75eb6ddd885e9feb657ee90b489-sock + +Host: Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz, 40 cores, 31G, Windows 11 , 64 bit Build 22621 (10.0.22621.3958) +Time: Fri Aug 29 22:25:48 2025 elapsed time: 21859.166799 seconds (0d 6h 4m 19s) + +--------------- T H R E A D --------------- + +Current thread (0x0000024977281600): JavaThread "Attach Listener" daemon [_thread_in_vm, id=27932, stack(0x000000ab8ca00000,0x000000ab8cb00000) (1024K)] + +Stack: [0x000000ab8ca00000,0x000000ab8cb00000] +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x6d2449] +V [jvm.dll+0x8ae341] +V [jvm.dll+0x8b08be] +V [jvm.dll+0x8b0fa3] +V [jvm.dll+0x280c96] +V [jvm.dll+0xc0347] +V [jvm.dll+0x6d2cf9] +V [jvm.dll+0x131116] +V [jvm.dll+0x3f2d16] +V [jvm.dll+0x857e6b] +V [jvm.dll+0x6d0b0d] +C [ucrtbase.dll+0x29333] +C [KERNEL32.DLL+0x1257d] +C [ntdll.dll+0x5af08] + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000002490b44f5f0, length=67, elements={ +0x000002491e132be0, 0x0000024934bcc9d0, 0x0000024977277fb0, 0x000002497727e2e0, +0x0000024977281600, 0x00000249772847e0, 0x0000024977286650, 0x000002491e1d7c00, +0x000002491e1db6b0, 0x00000249040334e0, 0x0000024904257890, 0x0000024904c554d0, +0x0000024904189bf0, 0x00000249041ceda0, 0x00000249041cd9f0, 0x00000249773c73f0, +0x00000249773c3f70, 0x00000249773c38e0, 0x00000249773c7a80, 0x00000249773c8110, +0x000002490763b9f0, 0x0000024907639290, 0x000002490763cda0, 0x000002490763ee70, +0x0000024907638c00, 0x000002490763d430, 0x0000024907638570, 0x0000024907639920, +0x000002490763dac0, 0x000002490763c080, 0x000002490763f500, 0x000002490763acd0, +0x000002490763e150, 0x0000024907639fb0, 0x000002490763fb90, 0x000002490763a640, +0x000002490763b360, 0x000002490763c710, 0x000002490763e7e0, 0x00000249089be6a0, +0x00000249089bbf40, 0x00000249089bab90, 0x00000249089bed30, 0x00000249089c0770, +0x00000249089bb220, 0x00000249089bf3c0, 0x00000249089bb8b0, 0x00000249089bfa50, +0x00000249089bd980, 0x00000249089b97e0, 0x00000249089c00e0, 0x00000249089c0e00, +0x00000249089bd2f0, 0x00000249089bc5d0, 0x00000249089bcc60, 0x00000249089be010, +0x00000249089b9e70, 0x00000249089ba500, 0x0000024908a46180, 0x0000024908a46810, +0x0000024908a46ea0, 0x0000024908a47bc0, 0x0000024908a49600, 0x0000024908a45460, +0x0000024908a48250, 0x0000024908a4c3f0, 0x0000024908a4a9b0 +} + +Java Threads: ( => current thread ) + 0x000002491e132be0 JavaThread "main" [_thread_blocked, id=26688, stack(0x000000ab8c300000,0x000000ab8c400000) (1024K)] + 0x0000024934bcc9d0 JavaThread "Reference Handler" daemon [_thread_blocked, id=16444, stack(0x000000ab8c700000,0x000000ab8c800000) (1024K)] + 0x0000024977277fb0 JavaThread "Finalizer" daemon [_thread_blocked, id=26120, stack(0x000000ab8c800000,0x000000ab8c900000) (1024K)] + 0x000002497727e2e0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=30660, stack(0x000000ab8c900000,0x000000ab8ca00000) (1024K)] +=>0x0000024977281600 JavaThread "Attach Listener" daemon [_thread_in_vm, id=27932, stack(0x000000ab8ca00000,0x000000ab8cb00000) (1024K)] + 0x00000249772847e0 JavaThread "Service Thread" daemon [_thread_blocked, id=9956, stack(0x000000ab8cb00000,0x000000ab8cc00000) (1024K)] + 0x0000024977286650 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=25504, stack(0x000000ab8cc00000,0x000000ab8cd00000) (1024K)] + 0x000002491e1d7c00 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=31604, stack(0x000000ab8cd00000,0x000000ab8ce00000) (1024K)] + 0x000002491e1db6b0 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=33568, stack(0x000000ab8ce00000,0x000000ab8cf00000) (1024K)] + 0x00000249040334e0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=32720, stack(0x000000ab8d000000,0x000000ab8d100000) (1024K)] + 0x0000024904257890 JavaThread "Notification Thread" daemon [_thread_blocked, id=1848, stack(0x000000ab8d400000,0x000000ab8d500000) (1024K)] + 0x0000024904c554d0 JavaThread "Active Thread: Equinox Container: 6709c213-c7f5-4134-9b40-3f644df2d6f7" [_thread_blocked, id=33580, stack(0x000000ab8e300000,0x000000ab8e400000) (1024K)] + 0x0000024904189bf0 JavaThread "Framework Event Dispatcher: Equinox Container: 6709c213-c7f5-4134-9b40-3f644df2d6f7" daemon [_thread_blocked, id=31452, stack(0x000000ab8d200000,0x000000ab8d300000) (1024K)] + 0x00000249041ceda0 JavaThread "Start Level: Equinox Container: 6709c213-c7f5-4134-9b40-3f644df2d6f7" daemon [_thread_blocked, id=27652, stack(0x000000ab8d300000,0x000000ab8d400000) (1024K)] + 0x00000249041cd9f0 JavaThread "Refresh Thread: Equinox Container: 6709c213-c7f5-4134-9b40-3f644df2d6f7" daemon [_thread_blocked, id=11244, stack(0x000000ab8e500000,0x000000ab8e600000) (1024K)] + 0x00000249773c73f0 JavaThread "Bundle File Closer" daemon [_thread_blocked, id=28656, stack(0x000000ab8e400000,0x000000ab8e500000) (1024K)] + 0x00000249773c3f70 JavaThread "SCR Component Actor" daemon [_thread_blocked, id=25440, stack(0x000000ab8d100000,0x000000ab8d200000) (1024K)] + 0x00000249773c38e0 JavaThread "Worker-JM" [_thread_blocked, id=6400, stack(0x000000ab90f00000,0x000000ab91000000) (1024K)] + 0x00000249773c7a80 JavaThread "Java indexing" daemon [_thread_blocked, id=31480, stack(0x000000ab91b00000,0x000000ab91c00000) (1024K)] + 0x00000249773c8110 JavaThread "JNA Cleaner" daemon [_thread_blocked, id=28064, stack(0x000000ab92100000,0x000000ab92200000) (1024K)] + 0x000002490763b9f0 JavaThread "Worker-5" [_thread_blocked, id=29532, stack(0x000000ab92700000,0x000000ab92800000) (1024K)] + 0x0000024907639290 JavaThread "Thread-2" daemon [_thread_in_native, id=26000, stack(0x000000ab92800000,0x000000ab92900000) (1024K)] + 0x000002490763cda0 JavaThread "Thread-3" daemon [_thread_in_native, id=28588, stack(0x000000ab92900000,0x000000ab92a00000) (1024K)] + 0x000002490763ee70 JavaThread "Thread-4" daemon [_thread_in_native, id=12456, stack(0x000000ab92a00000,0x000000ab92b00000) (1024K)] + 0x0000024907638c00 JavaThread "Thread-5" daemon [_thread_in_native, id=30084, stack(0x000000ab92b00000,0x000000ab92c00000) (1024K)] + 0x000002490763d430 JavaThread "Thread-6" daemon [_thread_in_native, id=31608, stack(0x000000ab92c00000,0x000000ab92d00000) (1024K)] + 0x0000024907638570 JavaThread "Thread-7" daemon [_thread_in_native, id=32396, stack(0x000000ab92d00000,0x000000ab92e00000) (1024K)] + 0x0000024907639920 JavaThread "Thread-8" daemon [_thread_in_native, id=9008, stack(0x000000ab92e00000,0x000000ab92f00000) (1024K)] + 0x000002490763dac0 JavaThread "Thread-9" daemon [_thread_in_native, id=26740, stack(0x000000ab92f00000,0x000000ab93000000) (1024K)] + 0x000002490763c080 JavaThread "Thread-10" daemon [_thread_in_native, id=33140, stack(0x000000ab93000000,0x000000ab93100000) (1024K)] + 0x000002490763f500 JavaThread "Thread-11" daemon [_thread_in_native, id=33552, stack(0x000000ab93100000,0x000000ab93200000) (1024K)] + 0x000002490763acd0 JavaThread "Thread-12" daemon [_thread_in_native, id=32960, stack(0x000000ab93200000,0x000000ab93300000) (1024K)] + 0x000002490763e150 JavaThread "Thread-13" daemon [_thread_in_native, id=14964, stack(0x000000ab93300000,0x000000ab93400000) (1024K)] + 0x0000024907639fb0 JavaThread "Thread-14" daemon [_thread_in_native, id=27220, stack(0x000000ab93400000,0x000000ab93500000) (1024K)] + 0x000002490763fb90 JavaThread "Thread-15" daemon [_thread_in_native, id=28080, stack(0x000000ab93500000,0x000000ab93600000) (1024K)] + 0x000002490763a640 JavaThread "Thread-16" daemon [_thread_in_native, id=31704, stack(0x000000ab93600000,0x000000ab93700000) (1024K)] + 0x000002490763b360 JavaThread "Thread-17" daemon [_thread_in_native, id=32224, stack(0x000000ab93700000,0x000000ab93800000) (1024K)] + 0x000002490763c710 JavaThread "Thread-18" daemon [_thread_in_native, id=16584, stack(0x000000ab93800000,0x000000ab93900000) (1024K)] + 0x000002490763e7e0 JavaThread "Thread-19" daemon [_thread_in_native, id=1236, stack(0x000000ab93900000,0x000000ab93a00000) (1024K)] + 0x00000249089be6a0 JavaThread "Thread-20" daemon [_thread_in_native, id=29160, stack(0x000000ab93a00000,0x000000ab93b00000) (1024K)] + 0x00000249089bbf40 JavaThread "Thread-21" daemon [_thread_in_native, id=28564, stack(0x000000ab93b00000,0x000000ab93c00000) (1024K)] + 0x00000249089bab90 JavaThread "Thread-22" daemon [_thread_in_native, id=31752, stack(0x000000ab93c00000,0x000000ab93d00000) (1024K)] + 0x00000249089bed30 JavaThread "Thread-23" daemon [_thread_in_native, id=26536, stack(0x000000ab93d00000,0x000000ab93e00000) (1024K)] + 0x00000249089c0770 JavaThread "Thread-24" daemon [_thread_in_native, id=31980, stack(0x000000ab93e00000,0x000000ab93f00000) (1024K)] + 0x00000249089bb220 JavaThread "Thread-25" daemon [_thread_in_native, id=31392, stack(0x000000ab93f00000,0x000000ab94000000) (1024K)] + 0x00000249089bf3c0 JavaThread "Thread-26" daemon [_thread_in_native, id=31724, stack(0x000000ab94000000,0x000000ab94100000) (1024K)] + 0x00000249089bb8b0 JavaThread "Thread-27" daemon [_thread_in_native, id=19012, stack(0x000000ab94100000,0x000000ab94200000) (1024K)] + 0x00000249089bfa50 JavaThread "Thread-28" daemon [_thread_in_native, id=28264, stack(0x000000ab94200000,0x000000ab94300000) (1024K)] + 0x00000249089bd980 JavaThread "Thread-29" daemon [_thread_in_native, id=33072, stack(0x000000ab94300000,0x000000ab94400000) (1024K)] + 0x00000249089b97e0 JavaThread "Thread-30" daemon [_thread_in_native, id=33696, stack(0x000000ab94400000,0x000000ab94500000) (1024K)] + 0x00000249089c00e0 JavaThread "Thread-31" daemon [_thread_in_native, id=29880, stack(0x000000ab94500000,0x000000ab94600000) (1024K)] + 0x00000249089c0e00 JavaThread "Thread-32" daemon [_thread_in_native, id=18492, stack(0x000000ab94600000,0x000000ab94700000) (1024K)] + 0x00000249089bd2f0 JavaThread "Thread-33" daemon [_thread_in_native, id=8704, stack(0x000000ab94700000,0x000000ab94800000) (1024K)] + 0x00000249089bc5d0 JavaThread "Thread-34" daemon [_thread_in_native, id=3588, stack(0x000000ab94800000,0x000000ab94900000) (1024K)] + 0x00000249089bcc60 JavaThread "Thread-35" daemon [_thread_in_native, id=30860, stack(0x000000ab94900000,0x000000ab94a00000) (1024K)] + 0x00000249089be010 JavaThread "Thread-36" daemon [_thread_in_native, id=33392, stack(0x000000ab94a00000,0x000000ab94b00000) (1024K)] + 0x00000249089b9e70 JavaThread "Thread-37" daemon [_thread_in_native, id=32560, stack(0x000000ab94b00000,0x000000ab94c00000) (1024K)] + 0x00000249089ba500 JavaThread "Thread-38" daemon [_thread_in_native, id=31532, stack(0x000000ab94c00000,0x000000ab94d00000) (1024K)] + 0x0000024908a46180 JavaThread "Thread-39" daemon [_thread_in_native, id=30564, stack(0x000000ab94d00000,0x000000ab94e00000) (1024K)] + 0x0000024908a46810 JavaThread "Thread-40" daemon [_thread_in_native, id=27304, stack(0x000000ab94e00000,0x000000ab94f00000) (1024K)] + 0x0000024908a46ea0 JavaThread "Thread-41" daemon [_thread_in_native, id=27324, stack(0x000000ab94f00000,0x000000ab95000000) (1024K)] + 0x0000024908a47bc0 JavaThread "Thread-42" daemon [_thread_in_native, id=10140, stack(0x000000ab95000000,0x000000ab95100000) (1024K)] + 0x0000024908a49600 JavaThread "pool-2-thread-1" [_thread_blocked, id=29284, stack(0x000000ab95400000,0x000000ab95500000) (1024K)] + 0x0000024908a45460 JavaThread "WorkspaceEventsHandler" [_thread_blocked, id=17324, stack(0x000000ab95900000,0x000000ab95a00000) (1024K)] + 0x0000024908a48250 JavaThread "pool-1-thread-1" [_thread_blocked, id=32352, stack(0x000000ab95a00000,0x000000ab95b00000) (1024K)] + 0x0000024908a4c3f0 JavaThread "Cleaner-0" daemon [_thread_blocked, id=33124, stack(0x000000ab90000000,0x000000ab90100000) (1024K)] + 0x0000024908a4a9b0 JavaThread "Worker-6" [_thread_blocked, id=32472, stack(0x000000ab8c100000,0x000000ab8c200000) (1024K)] +Total: 67 + +Other Threads: + 0x000002497726bf20 VMThread "VM Thread" [id=26148, stack(0x000000ab8c600000,0x000000ab8c700000) (1024K)] + 0x000002491e1a0040 WatcherThread "VM Periodic Task Thread" [id=33708, stack(0x000000ab8c500000,0x000000ab8c600000) (1024K)] + 0x000002491e152450 WorkerThread "GC Thread#0" [id=25768, stack(0x000000ab8c400000,0x000000ab8c500000) (1024K)] + 0x0000024904b56150 WorkerThread "GC Thread#1" [id=27676, stack(0x000000ab8d600000,0x000000ab8d700000) (1024K)] + 0x00000249047e6ee0 WorkerThread "GC Thread#2" [id=29832, stack(0x000000ab8d700000,0x000000ab8d800000) (1024K)] + 0x00000249047e7280 WorkerThread "GC Thread#3" [id=30920, stack(0x000000ab8d800000,0x000000ab8d900000) (1024K)] + 0x0000024904b54840 WorkerThread "GC Thread#4" [id=31824, stack(0x000000ab8d900000,0x000000ab8da00000) (1024K)] + 0x0000024904b54be0 WorkerThread "GC Thread#5" [id=33152, stack(0x000000ab8da00000,0x000000ab8db00000) (1024K)] + 0x0000024904b54f80 WorkerThread "GC Thread#6" [id=33736, stack(0x000000ab8db00000,0x000000ab8dc00000) (1024K)] + 0x0000024904718190 WorkerThread "GC Thread#7" [id=2344, stack(0x000000ab8d500000,0x000000ab8d600000) (1024K)] + 0x00000249051a6a10 WorkerThread "GC Thread#8" [id=28312, stack(0x000000ab8e600000,0x000000ab8e700000) (1024K)] + 0x00000249051a7150 WorkerThread "GC Thread#9" [id=6140, stack(0x000000ab90d00000,0x000000ab90e00000) (1024K)] + 0x00000249051a74f0 WorkerThread "GC Thread#10" [id=28824, stack(0x000000ab90e00000,0x000000ab90f00000) (1024K)] + 0x00000249061b5f10 WorkerThread "GC Thread#11" [id=2824, stack(0x000000ab8dc00000,0x000000ab8dd00000) (1024K)] + 0x00000249061b5430 WorkerThread "GC Thread#12" [id=31472, stack(0x000000ab91000000,0x000000ab91100000) (1024K)] + 0x00000249061b5b70 WorkerThread "GC Thread#13" [id=2488, stack(0x000000ab91100000,0x000000ab91200000) (1024K)] + 0x00000249061b28b0 WorkerThread "GC Thread#14" [id=32844, stack(0x000000ab91400000,0x000000ab91500000) (1024K)] + 0x00000249061b3390 WorkerThread "GC Thread#15" [id=29628, stack(0x000000ab91500000,0x000000ab91600000) (1024K)] + 0x00000249061b3730 WorkerThread "GC Thread#16" [id=27972, stack(0x000000ab91800000,0x000000ab91900000) (1024K)] + 0x00000249061b3ad0 WorkerThread "GC Thread#17" [id=10988, stack(0x000000ab91900000,0x000000ab91a00000) (1024K)] + 0x00000249061b3e70 WorkerThread "GC Thread#18" [id=27020, stack(0x000000ab91a00000,0x000000ab91b00000) (1024K)] + 0x00000249061b45b0 WorkerThread "GC Thread#19" [id=32136, stack(0x000000ab91c00000,0x000000ab91d00000) (1024K)] + 0x00000249061b5090 WorkerThread "GC Thread#20" [id=32812, stack(0x000000ab91d00000,0x000000ab91e00000) (1024K)] + 0x00000249061b57d0 WorkerThread "GC Thread#21" [id=28328, stack(0x000000ab91e00000,0x000000ab91f00000) (1024K)] + 0x0000024906989b90 WorkerThread "GC Thread#22" [id=32268, stack(0x000000ab91f00000,0x000000ab92000000) (1024K)] + 0x000002490698b890 WorkerThread "GC Thread#23" [id=30684, stack(0x000000ab92000000,0x000000ab92100000) (1024K)] + 0x0000024906989f30 WorkerThread "GC Thread#24" [id=26504, stack(0x000000ab95200000,0x000000ab95300000) (1024K)] + 0x000002490698a670 WorkerThread "GC Thread#25" [id=33412, stack(0x000000ab95300000,0x000000ab95400000) (1024K)] + 0x000002490698a2d0 WorkerThread "GC Thread#26" [id=18272, stack(0x000000ab95800000,0x000000ab95900000) (1024K)] + 0x000002490698aa10 WorkerThread "GC Thread#27" [id=26044, stack(0x000000ab95c00000,0x000000ab95d00000) (1024K)] +Total: 30 + +Threads with active compile tasks: +Total: 0 + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000080000000, size: 2048 MB, Compressed Oops mode: 32-bit + +CDS archive(s) mapped at: [0x0000024935000000-0x0000024935ba0000-0x0000024935ba0000), size 12189696, SharedBaseAddress: 0x0000024935000000, ArchiveRelocationMode: 1. +Compressed class space mapped at: 0x0000024936000000-0x0000024976000000, reserved size: 1073741824 +Narrow klass base: 0x0000024935000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CardTable entry size: 512 + CPUs: 40 total, 40 available + Memory: 32670M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (32-bit) + Alignments: Space 512K, Generation 512K, Heap 2M + Heap Min Capacity: 100M + Heap Initial Capacity: 100M + Heap Max Capacity: 2G + Pre-touch: Disabled + Parallel Workers: 28 + +Heap: + PSYoungGen total 8192K, used 6797K [0x00000000d5580000, 0x00000000d6400000, 0x0000000100000000) + eden space 7168K, 86% used [0x00000000d5580000,0x00000000d5b8b548,0x00000000d5c80000) + from space 1024K, 59% used [0x00000000d6280000,0x00000000d6318000,0x00000000d6380000) + to space 512K, 0% used [0x00000000d6380000,0x00000000d6380000,0x00000000d6400000) + ParOldGen total 449024K, used 448841K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6524e8,0x000000009b680000) + Metaspace used 68946K, committed 70208K, reserved 1114112K + class space used 7182K, committed 7744K, reserved 1048576K + +Card table byte_map: [0x000002491db00000,0x000002491df10000] _byte_map_base: 0x000002491d700000 + +Marking Bits: (ParMarkBitMap*) 0x00007ff880eda340 + Begin Bits: [0x00000249305d0000, 0x00000249325d0000) + End Bits: [0x00000249325d0000, 0x00000249345d0000) + +Polling page: 0x000002491d8f0000 + +Metaspace: + +Usage: + Non-class: 60.32 MB used. + Class: 7.01 MB used. + Both: 67.33 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 61.00 MB ( 95%) committed, 1 nodes. + Class space: 1.00 GB reserved, 7.56 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 68.56 MB ( 6%) committed. + +Chunk freelists: + Non-Class: 2.44 MB + Class: 8.26 MB + Both: 10.70 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 97.31 MB +CDS: on + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 11. +num_arena_births: 1026. +num_arena_deaths: 20. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 1097. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 34. +num_chunks_taken_from_freelist: 3963. +num_chunk_merges: 17. +num_chunk_splits: 2472. +num_chunks_enlarged: 1478. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=118848Kb used=10378Kb max_used=10378Kb free=108469Kb + bounds [0x0000024928f10000, 0x0000024929940000, 0x0000024930320000] +CodeHeap 'profiled nmethods': size=118848Kb used=26497Kb max_used=26497Kb free=92351Kb + bounds [0x0000024921320000, 0x0000024922d10000, 0x0000024928730000] +CodeHeap 'non-nmethods': size=8064Kb used=1485Kb max_used=3839Kb free=6578Kb + bounds [0x0000024928730000, 0x0000024928b00000, 0x0000024928f10000] +CodeCache: size=245760Kb, used=38360Kb, max_used=40714Kb, free=207398Kb + total_blobs=11921, nmethods=11117, adapters=708, full_count=0 +Compilation: enabled, stopped_count=0, restarted_count=0 + +Compilation events (20 events): +Event: 15613.704 Thread 0x000002491e1d7c00 11978 4 sun.security.provider.DigestBase::engineUpdate (176 bytes) +Event: 15613.826 Thread 0x000002491e1d7c00 nmethod 11978 0x000002492992e290 code [0x000002492992e4c0, 0x000002492992eed8] +Event: 16513.669 Thread 0x000002491e1db6b0 11980 3 org.eclipse.core.internal.jobs.InternalJob::remove (48 bytes) +Event: 16513.758 Thread 0x000002491e1db6b0 nmethod 11980 0x0000024922cfda10 code [0x0000024922cfdbc0, 0x0000024922cfddd8] +Event: 16513.758 Thread 0x000002491e1db6b0 11982 3 org.eclipse.core.internal.jobs.DeadlockDetector::computeConflicting (124 bytes) +Event: 16513.882 Thread 0x000002491e1db6b0 nmethod 11982 0x0000024922cfdf10 code [0x0000024922cfe200, 0x0000024922cff690] +Event: 16887.069 Thread 0x000002491e1d7c00 11983 4 java.util.concurrent.TimeUnit::convert (73 bytes) +Event: 16887.280 Thread 0x000002491e1d7c00 nmethod 11983 0x000002492992f690 code [0x000002492992f840, 0x000002492992f9d0] +Event: 18314.078 Thread 0x000002491e1d7c00 11984 4 org.eclipse.core.internal.resources.MarkerAttributeMap::shareStrings (92 bytes) +Event: 18314.078 Thread 0x000002491e1db6b0 11985 1 org.eclipse.core.runtime.jobs.Job::shouldSchedule (2 bytes) +Event: 18314.079 Thread 0x000002491e1db6b0 nmethod 11985 0x000002492992fb10 code [0x000002492992fca0, 0x000002492992fd68] +Event: 18314.163 Thread 0x000002491e1d7c00 nmethod 11984 0x000002492992fe10 code [0x00000249299300c0, 0x0000024929930fb0] +Event: 19214.094 Thread 0x000002491e1d7c00 11986 4 org.eclipse.core.runtime.jobs.Job::getState (5 bytes) +Event: 19214.094 Thread 0x000002491e1db6b0 11987 1 org.eclipse.core.internal.jobs.InternalJob::setResult (6 bytes) +Event: 19214.351 Thread 0x000002491e1d7c00 nmethod 11986 0x0000024929932090 code [0x0000024929932220, 0x00000249299322f0] +Event: 19214.359 Thread 0x000002491e1db6b0 nmethod 11987 0x0000024929932390 code [0x0000024929932520, 0x0000024929932608] +Event: 19709.047 Thread 0x000002491e1d7c00 11988 4 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask::getDelay (16 bytes) +Event: 19709.049 Thread 0x000002491e1d7c00 nmethod 11988 0x0000024929932690 code [0x0000024929932840, 0x00000249299329d8] +Event: 20114.308 Thread 0x000002491e1db6b0 11989 3 org.eclipse.jdt.ls.core.internal.handlers.ProgressReporterManager$ProgressReporter:: (36 bytes) +Event: 20114.376 Thread 0x000002491e1db6b0 nmethod 11989 0x0000024922cffd90 code [0x0000024922cfff60, 0x0000024922d00268] + +GC Heap History (20 events): +Event: 42.497 GC heap before +{Heap before GC invocations=525 (full 3): + PSYoungGen total 11264K, used 11244K [0x00000000d5580000, 0x00000000d6d80000, 0x0000000100000000) + eden space 7168K, 99% used [0x00000000d5580000,0x00000000d5c7fce8,0x00000000d5c80000) + from space 4096K, 99% used [0x00000000d5c80000,0x00000000d607b680,0x00000000d6080000) + to space 8704K, 0% used [0x00000000d6500000,0x00000000d6500000,0x00000000d6d80000) + ParOldGen total 444416K, used 443906K [0x0000000080000000, 0x000000009b200000, 0x00000000d5580000) + object space 444416K, 99% used [0x0000000080000000,0x000000009b180b40,0x000000009b200000) + Metaspace used 68368K, committed 69696K, reserved 1114112K + class space used 7140K, committed 7680K, reserved 1048576K +} +Event: 42.500 GC heap after +{Heap after GC invocations=525 (full 3): + PSYoungGen total 8192K, used 544K [0x00000000d5580000, 0x00000000d6600000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 53% used [0x00000000d6500000,0x00000000d6588000,0x00000000d6600000) + to space 3584K, 0% used [0x00000000d5f00000,0x00000000d5f00000,0x00000000d6280000) + ParOldGen total 448000K, used 447850K [0x0000000080000000, 0x000000009b580000, 0x00000000d5580000) + object space 448000K, 99% used [0x0000000080000000,0x000000009b55ab40,0x000000009b580000) + Metaspace used 68368K, committed 69696K, reserved 1114112K + class space used 7140K, committed 7680K, reserved 1048576K +} +Event: 42.538 GC heap before +{Heap before GC invocations=526 (full 3): + PSYoungGen total 8192K, used 7712K [0x00000000d5580000, 0x00000000d6600000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 1024K, 53% used [0x00000000d6500000,0x00000000d6588000,0x00000000d6600000) + to space 3584K, 0% used [0x00000000d5f00000,0x00000000d5f00000,0x00000000d6280000) + ParOldGen total 448000K, used 447850K [0x0000000080000000, 0x000000009b580000, 0x00000000d5580000) + object space 448000K, 99% used [0x0000000080000000,0x000000009b55ab40,0x000000009b580000) + Metaspace used 68629K, committed 69952K, reserved 1114112K + class space used 7161K, committed 7744K, reserved 1048576K +} +Event: 42.539 GC heap after +{Heap after GC invocations=526 (full 3): + PSYoungGen total 10752K, used 768K [0x00000000d5580000, 0x00000000d6580000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 3584K, 21% used [0x00000000d5f00000,0x00000000d5fc0000,0x00000000d6280000) + to space 1536K, 0% used [0x00000000d6400000,0x00000000d6400000,0x00000000d6580000) + ParOldGen total 448512K, used 448042K [0x0000000080000000, 0x000000009b600000, 0x00000000d5580000) + object space 448512K, 99% used [0x0000000080000000,0x000000009b58ab40,0x000000009b600000) + Metaspace used 68629K, committed 69952K, reserved 1114112K + class space used 7161K, committed 7744K, reserved 1048576K +} +Event: 76.693 GC heap before +{Heap before GC invocations=527 (full 3): + PSYoungGen total 10752K, used 7605K [0x00000000d5580000, 0x00000000d6580000, 0x0000000100000000) + eden space 7168K, 95% used [0x00000000d5580000,0x00000000d5c2d6d8,0x00000000d5c80000) + from space 3584K, 21% used [0x00000000d5f00000,0x00000000d5fc0000,0x00000000d6280000) + to space 1536K, 0% used [0x00000000d6400000,0x00000000d6400000,0x00000000d6580000) + ParOldGen total 448512K, used 448042K [0x0000000080000000, 0x000000009b600000, 0x00000000d5580000) + object space 448512K, 99% used [0x0000000080000000,0x000000009b58ab40,0x000000009b600000) + Metaspace used 68746K, committed 70080K, reserved 1114112K + class space used 7174K, committed 7744K, reserved 1048576K +} +Event: 76.695 GC heap after +{Heap after GC invocations=527 (full 3): + PSYoungGen total 8192K, used 818K [0x00000000d5580000, 0x00000000d6500000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 79% used [0x00000000d6400000,0x00000000d64cc9e0,0x00000000d6500000) + to space 1024K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d6400000) + ParOldGen total 448512K, used 448218K [0x0000000080000000, 0x000000009b600000, 0x00000000d5580000) + object space 448512K, 99% used [0x0000000080000000,0x000000009b5b6b40,0x000000009b600000) + Metaspace used 68746K, committed 70080K, reserved 1114112K + class space used 7174K, committed 7744K, reserved 1048576K +} +Event: 76.994 GC heap before +{Heap before GC invocations=528 (full 3): + PSYoungGen total 8192K, used 7986K [0x00000000d5580000, 0x00000000d6500000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 1024K, 79% used [0x00000000d6400000,0x00000000d64cc9e0,0x00000000d6500000) + to space 1024K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d6400000) + ParOldGen total 448512K, used 448218K [0x0000000080000000, 0x000000009b600000, 0x00000000d5580000) + object space 448512K, 99% used [0x0000000080000000,0x000000009b5b6b40,0x000000009b600000) + Metaspace used 68767K, committed 70080K, reserved 1114112K + class space used 7177K, committed 7744K, reserved 1048576K +} +Event: 76.995 GC heap after +{Heap after GC invocations=528 (full 3): + PSYoungGen total 8192K, used 736K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 71% used [0x00000000d6300000,0x00000000d63b8000,0x00000000d6400000) + to space 512K, 0% used [0x00000000d6400000,0x00000000d6400000,0x00000000d6480000) + ParOldGen total 449024K, used 448525K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b603520,0x000000009b680000) + Metaspace used 68767K, committed 70080K, reserved 1114112K + class space used 7177K, committed 7744K, reserved 1048576K +} +Event: 78.063 GC heap before +{Heap before GC invocations=529 (full 3): + PSYoungGen total 8192K, used 7904K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 1024K, 71% used [0x00000000d6300000,0x00000000d63b8000,0x00000000d6400000) + to space 512K, 0% used [0x00000000d6400000,0x00000000d6400000,0x00000000d6480000) + ParOldGen total 449024K, used 448525K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b603520,0x000000009b680000) + Metaspace used 68773K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 78.065 GC heap after +{Heap after GC invocations=529 (full 3): + PSYoungGen total 7680K, used 512K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 512K, 100% used [0x00000000d6400000,0x00000000d6480000,0x00000000d6480000) + to space 1024K, 0% used [0x00000000d6280000,0x00000000d6280000,0x00000000d6380000) + ParOldGen total 449024K, used 448705K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6304e8,0x000000009b680000) + Metaspace used 68773K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 78.147 GC heap before +{Heap before GC invocations=530 (full 3): + PSYoungGen total 7680K, used 7680K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 512K, 100% used [0x00000000d6400000,0x00000000d6480000,0x00000000d6480000) + to space 1024K, 0% used [0x00000000d6280000,0x00000000d6280000,0x00000000d6380000) + ParOldGen total 449024K, used 448705K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6304e8,0x000000009b680000) + Metaspace used 68777K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 78.148 GC heap after +{Heap after GC invocations=530 (full 3): + PSYoungGen total 8192K, used 448K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 43% used [0x00000000d6280000,0x00000000d62f0000,0x00000000d6380000) + to space 512K, 0% used [0x00000000d6400000,0x00000000d6400000,0x00000000d6480000) + ParOldGen total 449024K, used 448769K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6404e8,0x000000009b680000) + Metaspace used 68777K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 80.100 GC heap before +{Heap before GC invocations=531 (full 3): + PSYoungGen total 8192K, used 7616K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 1024K, 43% used [0x00000000d6280000,0x00000000d62f0000,0x00000000d6380000) + to space 512K, 0% used [0x00000000d6400000,0x00000000d6400000,0x00000000d6480000) + ParOldGen total 449024K, used 448769K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6404e8,0x000000009b680000) + Metaspace used 68785K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 80.101 GC heap after +{Heap after GC invocations=531 (full 3): + PSYoungGen total 7680K, used 512K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 512K, 100% used [0x00000000d6400000,0x00000000d6480000,0x00000000d6480000) + to space 1024K, 0% used [0x00000000d6280000,0x00000000d6280000,0x00000000d6380000) + ParOldGen total 449024K, used 448801K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6484e8,0x000000009b680000) + Metaspace used 68785K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 80.411 GC heap before +{Heap before GC invocations=532 (full 3): + PSYoungGen total 7680K, used 7680K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 512K, 100% used [0x00000000d6400000,0x00000000d6480000,0x00000000d6480000) + to space 1024K, 0% used [0x00000000d6280000,0x00000000d6280000,0x00000000d6380000) + ParOldGen total 449024K, used 448801K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6484e8,0x000000009b680000) + Metaspace used 68787K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 80.412 GC heap after +{Heap after GC invocations=532 (full 3): + PSYoungGen total 8192K, used 640K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 62% used [0x00000000d6280000,0x00000000d6320000,0x00000000d6380000) + to space 1024K, 0% used [0x00000000d6380000,0x00000000d6380000,0x00000000d6480000) + ParOldGen total 449024K, used 448809K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b64a4e8,0x000000009b680000) + Metaspace used 68787K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 80.534 GC heap before +{Heap before GC invocations=533 (full 3): + PSYoungGen total 8192K, used 7808K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 1024K, 62% used [0x00000000d6280000,0x00000000d6320000,0x00000000d6380000) + to space 1024K, 0% used [0x00000000d6380000,0x00000000d6380000,0x00000000d6480000) + ParOldGen total 449024K, used 448809K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b64a4e8,0x000000009b680000) + Metaspace used 68814K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 80.536 GC heap after +{Heap after GC invocations=533 (full 3): + PSYoungGen total 8192K, used 704K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 68% used [0x00000000d6380000,0x00000000d6430000,0x00000000d6480000) + to space 1024K, 0% used [0x00000000d6280000,0x00000000d6280000,0x00000000d6380000) + ParOldGen total 449024K, used 448817K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b64c4e8,0x000000009b680000) + Metaspace used 68814K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 82.017 GC heap before +{Heap before GC invocations=534 (full 3): + PSYoungGen total 8192K, used 7872K [0x00000000d5580000, 0x00000000d6480000, 0x0000000100000000) + eden space 7168K, 100% used [0x00000000d5580000,0x00000000d5c80000,0x00000000d5c80000) + from space 1024K, 68% used [0x00000000d6380000,0x00000000d6430000,0x00000000d6480000) + to space 1024K, 0% used [0x00000000d6280000,0x00000000d6280000,0x00000000d6380000) + ParOldGen total 449024K, used 448817K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b64c4e8,0x000000009b680000) + Metaspace used 68822K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} +Event: 82.018 GC heap after +{Heap after GC invocations=534 (full 3): + PSYoungGen total 8192K, used 608K [0x00000000d5580000, 0x00000000d6400000, 0x0000000100000000) + eden space 7168K, 0% used [0x00000000d5580000,0x00000000d5580000,0x00000000d5c80000) + from space 1024K, 59% used [0x00000000d6280000,0x00000000d6318000,0x00000000d6380000) + to space 512K, 0% used [0x00000000d6380000,0x00000000d6380000,0x00000000d6400000) + ParOldGen total 449024K, used 448841K [0x0000000080000000, 0x000000009b680000, 0x00000000d5580000) + object space 449024K, 99% used [0x0000000080000000,0x000000009b6524e8,0x000000009b680000) + Metaspace used 68822K, committed 70080K, reserved 1114112K + class space used 7178K, committed 7744K, reserved 1048576K +} + +Dll operation events (14 events): +Event: 0.120 Loaded shared library c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\java.dll +Event: 0.154 Loaded shared library c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\zip.dll +Event: 0.220 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\instrument.dll +Event: 0.225 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\net.dll +Event: 0.232 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\nio.dll +Event: 0.236 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\zip.dll +Event: 0.251 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\jimage.dll +Event: 0.311 Loaded shared library c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\verify.dll +Event: 6.553 Loaded shared library C:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win\org.eclipse.equinox.launcher\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1400.v20250730-1736\eclipse_11913.dll +Event: 13.051 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\management.dll +Event: 13.054 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\management_ext.dll +Event: 14.406 Loaded shared library C:\Users\Administrator\AppData\Local\Temp\jna-146731693\jna18441703432888062305.dll +Event: 14.528 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\sunmscapi.dll +Event: 14.918 Loaded shared library C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\extnet.dll + +Deoptimization events (20 events): +Event: 76.686 Thread 0x000002490b0bf090 DEOPT PACKING pc=0x000002492958fc28 sp=0x000000ab8edfd640 +Event: 76.686 Thread 0x000002490b0bf090 DEOPT UNPACKING pc=0x0000024928783aa2 sp=0x000000ab8edfd5e8 mode 2 +Event: 76.701 Thread 0x000002490b0bf090 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000024929828048 relative=0x00000000000005c8 +Event: 76.701 Thread 0x000002490b0bf090 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000024929828048 method=org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule(I)V @ 4416 c2 +Event: 76.701 Thread 0x000002490b0bf090 DEOPT PACKING pc=0x0000024929828048 sp=0x000000ab8edfdf80 +Event: 76.701 Thread 0x000002490b0bf090 DEOPT UNPACKING pc=0x0000024928783aa2 sp=0x000000ab8edfdf18 mode 2 +Event: 76.702 Thread 0x000002490b0bf090 Uncommon trap: trap_request=0xffffff45 fr.pc=0x00000249298428a4 relative=0x0000000000001404 +Event: 76.702 Thread 0x000002490b0bf090 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000249298428a4 method=org.eclipse.jdt.internal.compiler.parser.Scanner.getNextToken()Lorg/eclipse/jdt/internal/compiler/parser/TerminalToken; @ 144 c2 +Event: 76.702 Thread 0x000002490b0bf090 DEOPT PACKING pc=0x00000249298428a4 sp=0x000000ab8edfdfc0 +Event: 76.702 Thread 0x000002490b0bf090 DEOPT UNPACKING pc=0x0000024928783aa2 sp=0x000000ab8edfdea0 mode 2 +Event: 76.705 Thread 0x000002490b0bf090 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000002492966579c relative=0x000000000000017c +Event: 76.705 Thread 0x000002490b0bf090 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000002492966579c method=org.eclipse.jdt.core.Signature.checkArrayDimension([CII)I @ 8 c2 +Event: 76.705 Thread 0x000002490b0bf090 DEOPT PACKING pc=0x000002492966579c sp=0x000000ab8edfdac0 +Event: 76.705 Thread 0x000002490b0bf090 DEOPT UNPACKING pc=0x0000024928783aa2 sp=0x000000ab8edfda40 mode 2 +Event: 76.705 Thread 0x000002490b0bf090 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000024929648b2c relative=0x000000000000064c +Event: 76.705 Thread 0x000002490b0bf090 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000024929648b2c method=org.eclipse.jdt.core.Signature.encodeQualifiedName([CIILjava/lang/StringBuilder;)I @ 16 c2 +Event: 76.705 Thread 0x000002490b0bf090 DEOPT PACKING pc=0x0000024929648b2c sp=0x000000ab8edfda80 +Event: 76.705 Thread 0x000002490b0bf090 DEOPT UNPACKING pc=0x0000024928783aa2 sp=0x000000ab8edfda20 mode 2 +Event: 96.121 Thread 0x0000024908a48250 DEOPT PACKING pc=0x0000024922a57a7e sp=0x000000ab95afdbd0 +Event: 96.121 Thread 0x0000024908a48250 DEOPT UNPACKING pc=0x0000024928784242 sp=0x000000ab95afd040 mode 0 + +Classes loaded (20 events): +Event: 36.180 Loading class java/util/concurrent/CompletableFuture$UniCompletion done +Event: 36.181 Loading class java/util/concurrent/CompletableFuture$UniApply done +Event: 36.182 Loading class java/util/concurrent/CompletableFuture$UniAccept +Event: 36.182 Loading class java/util/concurrent/CompletableFuture$UniAccept done +Event: 36.182 Loading class java/util/concurrent/CompletableFuture$UniExceptionally +Event: 36.182 Loading class java/util/concurrent/CompletableFuture$UniExceptionally done +Event: 36.270 Loading class java/util/concurrent/ArrayBlockingQueue +Event: 36.271 Loading class java/util/concurrent/ArrayBlockingQueue done +Event: 36.426 Loading class java/util/stream/ReduceOps$1 +Event: 36.427 Loading class java/util/stream/ReduceOps$1 done +Event: 36.427 Loading class java/util/stream/ReduceOps$1ReducingSink +Event: 36.427 Loading class java/util/stream/ReduceOps$1ReducingSink done +Event: 42.087 Loading class jdk/internal/event/SecurityPropertyModificationEvent +Event: 42.087 Loading class jdk/internal/event/SecurityPropertyModificationEvent done +Event: 42.156 Loading class java/util/zip/CheckedInputStream +Event: 42.156 Loading class java/util/zip/CheckedInputStream done +Event: 42.224 Loading class java/util/zip/GZIPInputStream$1 +Event: 42.224 Loading class java/util/zip/GZIPInputStream$1 done +Event: 42.299 Loading class jdk/internal/ref/CleanerImpl$InnocuousThreadFactory +Event: 42.299 Loading class jdk/internal/ref/CleanerImpl$InnocuousThreadFactory done + +Classes unloaded (10 events): +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b4c00 'java/lang/invoke/LambdaForm$MH+0x00000249361b4c00' +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b4800 'java/lang/invoke/LambdaForm$MH+0x00000249361b4800' +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b4400 'java/lang/invoke/LambdaForm$MH+0x00000249361b4400' +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b4000 'java/lang/invoke/LambdaForm$MH+0x00000249361b4000' +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b3c00 'java/lang/invoke/LambdaForm$BMH+0x00000249361b3c00' +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b3800 'java/lang/invoke/LambdaForm$DMH+0x00000249361b3800' +Event: 13.583 Thread 0x000002497726bf20 Unloading class 0x00000249361b2800 'java/lang/invoke/LambdaForm$DMH+0x00000249361b2800' +Event: 14.743 Thread 0x000002497726bf20 Unloading class 0x0000024936356000 'java/lang/invoke/LambdaForm$MH+0x0000024936356000' +Event: 14.743 Thread 0x000002497726bf20 Unloading class 0x0000024936355400 'java/lang/invoke/LambdaForm$MH+0x0000024936355400' +Event: 14.743 Thread 0x000002497726bf20 Unloading class 0x0000024936354c00 'java/lang/invoke/LambdaForm$MH+0x0000024936354c00' + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 39.543 Thread 0x00000249773c7a80 Implicit null exception at 0x000002492961db20 to 0x000002492961e604 +Event: 39.610 Thread 0x00000249773c7a80 Exception (0x00000000d559d648) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.647 Thread 0x00000249773c7a80 Exception (0x00000000d5641b50) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.689 Thread 0x00000249773c7a80 Exception (0x00000000d5744b90) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.744 Thread 0x00000249773c7a80 Exception (0x00000000d5670038) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.784 Thread 0x00000249773c7a80 Exception (0x00000000d567fe60) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.946 Thread 0x00000249773c7a80 Exception (0x00000000d55aecc0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.964 Thread 0x00000249773c7a80 Exception (0x00000000d5601da0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 39.987 Thread 0x00000249773c7a80 Exception (0x00000000d559e410) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.001 Thread 0x00000249773c7a80 Exception (0x00000000d56171d8) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.054 Thread 0x00000249773c7a80 Exception (0x00000000d56572d0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.336 Thread 0x00000249773c7a80 Exception (0x00000000d55a3e58) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.353 Thread 0x00000249773c7a80 Exception (0x00000000d56abef8) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.404 Thread 0x00000249773c7a80 Exception (0x00000000d5716b20) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.423 Thread 0x00000249773c7a80 Exception (0x00000000d5647ca8) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.467 Thread 0x00000249773c7a80 Exception (0x00000000d5747dd0) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.491 Thread 0x00000249773c7a80 Exception (0x00000000d575b518) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 41.702 Thread 0x00000249773c7a80 Implicit null exception at 0x000002492958bb2a to 0x000002492958d400 +Event: 42.074 Thread 0x00000249773c7a80 Exception (0x00000000d5649948) +thrown [s\src\hotspot\share\prims\jni.cpp, line 520] +Event: 42.092 Thread 0x0000024908a49c90 Exception (0x00000000d558e820) +thrown [s\src\hotspot\share\interpreter\interpreterRuntime.cpp, line 439] + +ZGC Phase Switch (0 events): +No events + +VM Operations (20 events): +Event: 21409.918 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 21409.918 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 21409.918 Executing VM operation: RendezvousGCThreads +Event: 21409.918 Executing VM operation: RendezvousGCThreads done +Event: 21650.133 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 21650.134 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 21650.134 Executing VM operation: RendezvousGCThreads +Event: 21650.134 Executing VM operation: RendezvousGCThreads done +Event: 21710.153 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 21710.153 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 21710.153 Executing VM operation: RendezvousGCThreads +Event: 21710.153 Executing VM operation: RendezvousGCThreads done +Event: 21770.333 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 21770.333 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 21770.333 Executing VM operation: RendezvousGCThreads +Event: 21770.333 Executing VM operation: RendezvousGCThreads done +Event: 21830.523 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) +Event: 21830.523 Executing VM operation: HandshakeAllThreads (HandshakeForDeflation) done +Event: 21830.523 Executing VM operation: RendezvousGCThreads +Event: 21830.523 Executing VM operation: RendezvousGCThreads done + +Memory protections (0 events): +No events + +Nmethod flushes (20 events): +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921d72910 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921d9a510 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921d9e690 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921d9f610 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921d9fd10 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921da0590 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921da1510 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921da1890 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921da3710 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921dc5110 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921dc9a10 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921dd8510 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921de9690 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e15010 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e47690 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e50910 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e59190 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e74310 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e83c10 +Event: 34.965 Thread 0x000002497726bf20 flushing nmethod 0x0000024921e8a590 + +Events (20 events): +Event: 336.222 Thread 0x000002490763b9f0 Thread added: 0x00000249773ca870 +Event: 336.223 Thread 0x00000249773ca870 Thread exited: 0x00000249773ca870 +Event: 336.224 Thread 0x000002490763b9f0 Thread added: 0x00000249773c4c90 +Event: 336.224 Thread 0x00000249773c4c90 Thread exited: 0x00000249773c4c90 +Event: 336.233 Thread 0x000002490b0bfdb0 Thread exited: 0x000002490b0bfdb0 +Event: 382.047 Thread 0x0000024908a49c90 Thread exited: 0x0000024908a49c90 +Event: 442.051 Thread 0x000002490b0bea00 Thread exited: 0x000002490b0bea00 +Event: 502.053 Thread 0x000002490b0baef0 Thread exited: 0x000002490b0baef0 +Event: 562.055 Thread 0x000002490b0b94b0 Thread exited: 0x000002490b0b94b0 +Event: 622.063 Thread 0x000002490b0bcfc0 Thread exited: 0x000002490b0bcfc0 +Event: 682.072 Thread 0x000002490b0be370 Thread exited: 0x000002490b0be370 +Event: 742.075 Thread 0x000002490b0c0440 Thread exited: 0x000002490b0c0440 +Event: 802.087 Thread 0x0000024908a48f70 Thread exited: 0x0000024908a48f70 +Event: 862.098 Thread 0x0000024908a47530 Thread exited: 0x0000024908a47530 +Event: 922.111 Thread 0x0000024908a45af0 Thread exited: 0x0000024908a45af0 +Event: 982.123 Thread 0x0000024908a4a320 Thread exited: 0x0000024908a4a320 +Event: 1042.128 Thread 0x0000024908a4b6d0 Thread exited: 0x0000024908a4b6d0 +Event: 1102.132 Thread 0x000002490b0ba1d0 Thread exited: 0x000002490b0ba1d0 +Event: 1162.136 Thread 0x000002490b0bbc10 Thread exited: 0x000002490b0bbc10 +Event: 1222.138 Thread 0x0000024908a4b040 Thread exited: 0x0000024908a4b040 + + +Dynamic libraries: +0x00007ff704900000 - 0x00007ff70490e000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\java.exe +0x00007ff9082d0000 - 0x00007ff9084e7000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ff9060b0000 - 0x00007ff906174000 C:\Windows\System32\KERNEL32.DLL +0x00007ff905b00000 - 0x00007ff905eb7000 C:\Windows\System32\KERNELBASE.dll +0x00007ff905610000 - 0x00007ff905721000 C:\Windows\System32\ucrtbase.dll +0x00007ff8f3d20000 - 0x00007ff8f3d38000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\jli.dll +0x00007ff8e8d40000 - 0x00007ff8e8d5e000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\VCRUNTIME140.dll +0x00007ff906eb0000 - 0x00007ff90705f000 C:\Windows\System32\USER32.dll +0x00007ff9047e0000 - 0x00007ff904a73000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3672_none_2713b9d173822955\COMCTL32.dll +0x00007ff905850000 - 0x00007ff905876000 C:\Windows\System32\win32u.dll +0x00007ff906210000 - 0x00007ff9062b7000 C:\Windows\System32\msvcrt.dll +0x00007ff907100000 - 0x00007ff907129000 C:\Windows\System32\GDI32.dll +0x00007ff905730000 - 0x00007ff905848000 C:\Windows\System32\gdi32full.dll +0x00007ff905a60000 - 0x00007ff905afa000 C:\Windows\System32\msvcp_win.dll +0x00007ff9062c0000 - 0x00007ff9062f1000 C:\Windows\System32\IMM32.DLL +0x00007ff8f85f0000 - 0x00007ff8f85fc000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\vcruntime140_1.dll +0x00007ff8da160000 - 0x00007ff8da1ed000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\msvcp140.dll +0x00007ff880220000 - 0x00007ff880fb7000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\server\jvm.dll +0x00007ff906bc0000 - 0x00007ff906c72000 C:\Windows\System32\ADVAPI32.dll +0x00007ff907b70000 - 0x00007ff907c18000 C:\Windows\System32\sechost.dll +0x00007ff9055e0000 - 0x00007ff905608000 C:\Windows\System32\bcrypt.dll +0x00007ff906c80000 - 0x00007ff906d94000 C:\Windows\System32\RPCRT4.dll +0x00007ff906190000 - 0x00007ff906201000 C:\Windows\System32\WS2_32.dll +0x00007ff8fac80000 - 0x00007ff8facb4000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ff8fe730000 - 0x00007ff8fe73a000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ff904ef0000 - 0x00007ff904f3d000 C:\Windows\SYSTEM32\POWRPROF.dll +0x00007ff904af0000 - 0x00007ff904b03000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ff904130000 - 0x00007ff904148000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ff8f85e0000 - 0x00007ff8f85ea000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\jimage.dll +0x00007ff904f40000 - 0x00007ff905172000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ff907c40000 - 0x00007ff907fce000 C:\Windows\System32\combase.dll +0x00007ff906ae0000 - 0x00007ff906bb7000 C:\Windows\System32\OLEAUT32.dll +0x00007ff904de0000 - 0x00007ff904e12000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ff905ec0000 - 0x00007ff905f3b000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ff8f85d0000 - 0x00007ff8f85df000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\instrument.dll +0x00007ff8dc350000 - 0x00007ff8dc36f000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\java.dll +0x00007ff907300000 - 0x00007ff907b69000 C:\Windows\System32\SHELL32.dll +0x00007ff902cb0000 - 0x00007ff9035af000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ff902b70000 - 0x00007ff902caf000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ff906db0000 - 0x00007ff906ea9000 C:\Windows\System32\SHCORE.dll +0x00007ff9063e0000 - 0x00007ff90643e000 C:\Windows\System32\shlwapi.dll +0x00007ff905510000 - 0x00007ff905537000 C:\Windows\SYSTEM32\profapi.dll +0x00007ff8da240000 - 0x00007ff8da258000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\zip.dll +0x00007ff8f3560000 - 0x00007ff8f3570000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\net.dll +0x00007ff9000c0000 - 0x00007ff9001f6000 C:\Windows\SYSTEM32\WINHTTP.dll +0x00007ff8f8ea0000 - 0x00007ff8f901a000 C:\Program Files (x86)\Sangfor\SSL\ClientComponent\1_SangforTcpX64.dll +0x00007ff907130000 - 0x00007ff9072d5000 C:\Windows\System32\ole32.dll +0x00007ff905880000 - 0x00007ff9058ec000 C:\Windows\System32\WINTRUST.dll +0x00007ff9058f0000 - 0x00007ff905a56000 C:\Windows\System32\CRYPT32.dll +0x00007ff904680000 - 0x00007ff904692000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ff9043f0000 - 0x00007ff904459000 C:\Windows\system32\mswsock.dll +0x00007ff8da0b0000 - 0x00007ff8da0c6000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\nio.dll +0x00007ff8e8d30000 - 0x00007ff8e8d40000 c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\verify.dll +0x00007ff8da010000 - 0x00007ff8da055000 C:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win\org.eclipse.equinox.launcher\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1400.v20250730-1736\eclipse_11913.dll +0x00007ff8da230000 - 0x00007ff8da23a000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\management.dll +0x00007ff8da000000 - 0x00007ff8da00b000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\management_ext.dll +0x00007ff906180000 - 0x00007ff906188000 C:\Windows\System32\PSAPI.DLL +0x00007ff905280000 - 0x00007ff90529b000 C:\Windows\SYSTEM32\CRYPTSP.dll +0x00007ff903eb0000 - 0x00007ff903ee5000 C:\Windows\system32\rsaenh.dll +0x00007ff9044e0000 - 0x00007ff904508000 C:\Windows\SYSTEM32\USERENV.dll +0x00007ff904640000 - 0x00007ff90464c000 C:\Windows\SYSTEM32\CRYPTBASE.dll +0x00007ff903810000 - 0x00007ff90383d000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ff907060000 - 0x00007ff907069000 C:\Windows\System32\NSI.dll +0x00007ff8d9f60000 - 0x00007ff8d9fa9000 C:\Users\Administrator\AppData\Local\Temp\jna-146731693\jna18441703432888062305.dll +0x00007ff9000a0000 - 0x00007ff9000b9000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL +0x00007ff900040000 - 0x00007ff90005f000 C:\Windows\SYSTEM32\dhcpcsvc.DLL +0x00007ff8e69b0000 - 0x00007ff8e69be000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\sunmscapi.dll +0x00007ff904ac0000 - 0x00007ff904aed000 C:\Windows\SYSTEM32\ncrypt.dll +0x00007ff904a80000 - 0x00007ff904ab7000 C:\Windows\SYSTEM32\NTASN1.dll +0x00007ff8f2950000 - 0x00007ff8f297d000 C:\Program Files (x86)\Sangfor\SSL\ClientComponent\SangforNspX64.dll +0x00007ff903880000 - 0x00007ff903982000 C:\Windows\SYSTEM32\DNSAPI.dll +0x00007ff8fdc30000 - 0x00007ff8fdc3a000 C:\Windows\System32\rasadhlp.dll +0x00007ff8ffd00000 - 0x00007ff8ffd83000 C:\Windows\System32\fwpuclnt.dll +0x00007ff8d9f50000 - 0x00007ff8d9f59000 C:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\extnet.dll + +JVMTI agents: +c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\lombok\lombok-1.18.39-4050.jar path:c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\instrument.dll, loaded, initialized, instrumentlib options:none + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3672_none_2713b9d173822955;c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\jre\21.0.8-win32-x86_64\bin\server;C:\Program Files (x86)\Sangfor\SSL\ClientComponent;C:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win\org.eclipse.equinox.launcher\org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1400.v20250730-1736;C:\Users\Administrator\AppData\Local\Temp\jna-146731693 + +VM Arguments: +jvm_args: --add-modules=ALL-SYSTEM --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -DDetectVMInstallationsJob.disabled=true -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable -javaagent:c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\lombok\lombok-1.18.39-4050.jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java -Daether.dependencyCollector.impl=bf +java_command: c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\server\plugins\org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar -configuration c:\Users\Administrator\AppData\Roaming\Code\User\globalStorage\redhat.java\1.44.0\config_win -data c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java\jdt_ws --pipe=\\.\pipe\lsp-d5cde75eb6ddd885e9feb657ee90b489-sock +java_class_path (initial): c:\Users\Administrator\.vscode\extensions\redhat.java-1.44.0-win32-x64\server\plugins\org.eclipse.equinox.launcher_1.7.0.v20250519-0528.jar +Launcher Type: SUN_STANDARD + +[Global flags] + uintx AdaptiveSizePolicyWeight = 90 {product} {command line} + intx CICompilerCount = 15 {product} {ergonomic} + uintx GCTimeRatio = 4 {product} {command line} + bool HeapDumpOnOutOfMemoryError = true {manageable} {command line} + ccstr HeapDumpPath = c:\Users\Administrator\AppData\Roaming\Code\User\workspaceStorage\c245d989d588df1459f112115bd7ab7d\redhat.java {manageable} {command line} + size_t InitialHeapSize = 104857600 {product} {command line} + size_t MaxHeapSize = 2147483648 {product} {command line} + size_t MaxNewSize = 715653120 {product} {ergonomic} + size_t MinHeapDeltaBytes = 524288 {product} {ergonomic} + size_t MinHeapSize = 104857600 {product} {command line} + size_t NewSize = 34603008 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 8192380 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 121732930 {pd product} {ergonomic} + size_t OldSize = 70254592 {product} {ergonomic} + uintx ProfiledCodeHeapSize = 121732930 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 2147483648 {manageable} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + bool UseParallelGC = true {product} {command line} + +Logging: +Log output configuration: + #0: stdout all=off uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201 +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_201\lib;C:\Program Files\Java\jdk1.8.0_201\lib\tools.jar +PATH=c:\Users\Administrator\AppData\Local\Programs\cursor\resources\app\bin;D:\Python313\Scripts\;D:\Python313\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Java\jdk1.8.0_201\bin;H:\mysql-5.7.31-winx64\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\nodejs\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;C:\Users\Administrator\AppData\Roaming\npm;d:\Program Files\JetBrains\PyCharm Community Edition 2024.3\bin;;c:\Users\Administrator\AppData\Local\Programs\cursor\resources\app\bin;D:\Program Files (x86)\Tencent\΢��web�����߹���\dll;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Roaming\npm;d:\Program Files\JetBrains\PyCharm Community Edition 2024.3\bin;;C:\Users\Administrator\AppData\Local\Programs\cursor\resources\app\bin +USERNAME=Administrator +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 79 Stepping 1, GenuineIntel +TMP=C:\Users\Administrator\AppData\Local\Temp +TEMP=C:\Users\Administrator\AppData\Local\Temp + + + + +Periodic native trim disabled + +--------------- S Y S T E M --------------- + +OS: + Windows 11 , 64 bit Build 22621 (10.0.22621.3958) +OS uptime: 0 days 13:22 hours + +CPU: total 40 (initial active 40) (20 cores per cpu, 2 threads per core) family 6 model 79 stepping 1 microcode 0xb000038, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, rtm, adx, fma, vzeroupper, clflush, rdtscp, f16c +Processor Information for processor 0 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 1 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 2 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 3 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 4 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 5 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 6 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 7 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 8 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 9 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 10 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 11 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 12 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 13 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 14 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 15 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 16 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 17 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 18 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 19 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 20 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 21 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 22 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 23 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 24 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 +Processor Information for processor 25 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 26 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 27 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 28 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 29 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 30 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 31 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 32 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 33 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 34 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 35 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 36 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 37 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 38 + Max Mhz: 2301, Current Mhz: 1200, Mhz Limit: 2301 +Processor Information for processor 39 + Max Mhz: 2301, Current Mhz: 2301, Mhz Limit: 2301 + +Memory: 4k page, system-wide physical 32670M (7206M free) +TotalPageFile size 45170M (AvailPageFile size 138M) +current process WorkingSet (physical memory assigned to process): 67M, peak: 756M +current process commit charge ("private bytes"): 806M, peak: 903M + +vm_info: OpenJDK 64-Bit Server VM (21.0.8+9-LTS) for windows-amd64 JRE (21.0.8+9-LTS), built on 2025-07-15T00:00:00Z by "admin" with MS VC++ 17.7 (VS2022) + +END. diff --git a/package.json b/package.json index 008049d44b..3907bc594c 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "3.0.2", "private": true, "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", + "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", + "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", "test:unit": "vue-cli-service test:unit", "lint": "vue-cli-service lint", "build:preview": "vue-cli-service build --mode preview", @@ -13,10 +13,16 @@ "dependencies": { "@ant-design-vue/pro-layout": "^1.0.8", "@antv/data-set": "^0.10.2", + "@qiun/vue-ucharts": "^2.5.0-20230101", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^1.0.2", "ant-design-vue": "^1.7.6", "axios": ">=0.21.1", + "codemirror": "^5.65.12", "core-js": "^3.1.2", + "dayjs": "^1.11.13", "enquire.js": "^2.1.6", + "jquery": "^3.6.3", "lodash.clonedeep": "^4.5.0", "lodash.get": "^4.4.2", "lodash.pick": "^4.4.0", @@ -28,30 +34,26 @@ "viser-vue": "^2.4.6", "vue": "^2.6.14", "vue-clipboard2": "^0.2.1", + "vue-codemirror": "^4.0.6", "vue-cropper": "0.4.9", "vue-i18n": "^8.17.4", "vue-quill-editor": "^3.0.6", "vue-router": "^3.5.2", "vue-svg-component-runtime": "^1.0.1", "vuex": "^3.1.1", - "wangeditor": "^3.1.1" + "wangeditor": "^4.7.15" }, "devDependencies": { "@ant-design/colors": "^3.2.1", "@vue/cli-plugin-babel": "^4.0.4", - "@vue/cli-plugin-eslint": "^4.0.4", "@vue/cli-plugin-router": "^4.0.4", "@vue/cli-plugin-unit-jest": "^4.0.4", "@vue/cli-plugin-vuex": "^4.0.4", "@vue/cli-service": "^4.0.4", - "@vue/eslint-config-standard": "^4.0.0", "@vue/test-utils": "^1.0.0-beta.29", "babel-eslint": "^10.0.1", "babel-plugin-import": "^1.12.2", "babel-plugin-transform-remove-console": "^6.9.4", - "eslint": "^5.16.0", - "eslint-plugin-html": "^5.0.0", - "eslint-plugin-vue": "^5.2.3", "git-revision-webpack-plugin": "^3.0.6", "less": "^3.0.4", "less-loader": "^5.0.0", diff --git a/public/avatar2.jpg b/public/avatar2.jpg deleted file mode 100644 index 9adb2d1b88665631c9dfe7acd8c125ec87eb6fc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80189 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Ȇ~_mYlz55^9KP)hUklbsu17%qOvafHCep zv@w;K^E_uz$;{cLz=M^SK-N4%ors(cADeVtmSFt!4eT8S{kT{Ja}$;lhp6HuK~V=B zGly+vLoUS+K56mcDg)9!X=z>rF=CMdEPR&w%JUN9a_UKDscVvEZsBX==2tqUO4F7w zZV4G0NO)|}s~>QNp8Mp-8{F@6ogX}9$JZGST~Gs{A6z=c$SRRHt&?x%pzcf$?^>yM z1&bt9iHUbtntC2ECKJt9))JIIUJrdEL_kDb&W}LY2~KSSDS3mu=PzpqraM?07S;rs zu#%F5*GQ=FjCAXin12dFe$|?D5qD}(dO(hioUa95=IR< zb#scl2&eA$q?-IG8m&Qd#ja}`o{YuA6)oVr8*xUd_&K>p(O{|hwy5M>5f6KdP1$&v z<g#|A4eh!xhn^mG~=ZtWqQJfKnE{ctHIAxeA3n z0t+fHi49$Tt=pql^;$4(kCingMA00W468R^@Pg@zVg$^;y-fm( zuUWPM?f@!I*_G2hyS?M~DCmVG?_TXLkv=`+%9VSe@o7Dr^bu%*qm_hw)m+^ubfIZpm6dE#&9O7 zFwZsp(McS>g6)w=`qbLnF1JYCvfE-@JNzP1eUxJu_|9;v7?m`}XV6eYg#CU&#S}@iFhk6`3_giJs(+ zQFeWHA|^nF%VU#DZ+h{;p;Hw!+SjFBC2tkfqiIZd(KqfzGX&Qr^) zO)oKSqUmyDrw!Ey-E?rUuqWpVsC$(XlQAHG1(R?KGb}%$pfJ}6(NDZd3t+!DWo?0J z#&3nQ%&N>hv52t&wN|{mc|zb6P6{6chtP_|XWc`r9nat_Z~@g35?Fln0ldvudQ9y5 zBH=d!RhQY3=6XyFk7~z-rk`IaS8EmBl!V3Z7d4HD3=v3mE14dzds0(x$&v_9*XUSh zj04x7gW0>i--d)V?9sRS<=LIY7<(|+CZhgWc!BSsfOMW=eRFPTk~HGQr~m;_EJ=r= zxdg9+dica-W(Y&J$|saAzUk}#P(a!!)*fakK7h z!zu^ z0a-Cdb#YdQvzjs>Kp*-{Pq(A>zAl!j=)!Rsn`b=gQr9CO=cv*iZZ(#yao1H$@O?r=hfbblj|OiU?l?@s*|-|V zQ66UG=-X+sG!A`rxlkzod~i)*(Hs~JOaseOSF7^#e1sKyL?VAZyou0x;ao0%Lk!d( z@{!AAq8e)5Q0q6V^K5$x&csScnpW@WyvTWcI-5BfrJ_5UGes<=g&1U5`xeuBs}paw zHA-i?)Fl$rIF-KIp&4*z!jE4yU%s218yv4DPL2x~Py{rxcozRkK^=N29}H*KDtS@x z&UTG{HmgWxDq(IKyIyP%HEpwENNOkIGJ?PDgiJr!uFL1kO2rpmOUHVD>9i#7v`q4| zL%|Qc{>c=#r2|l?xfqkK`7nJ1i+%Rf1yNOv4(Z& zsUZp6&Ae?6hTn)E^H)-5`N;|knzPg-6F>mpXS5UbrfpvqZN6UIT|HTzX?*qO1}|3|svvgdIPrZ(k2EkjcFJO3ur~KCD}b zZBDub?l0VH?3}e>ymK(H9qhp1XC7GG{~?+VV*0XYB;B`RP(fSvHd_iUhmJt*uA)<+ zn0FIbx>Jh5Iu&s}ni4q$DTGSVBMh^#==ikKgDRbrs*hHL;`Al&b4Sl3D~fRul;qZ` zgb(%RC*)C+>HqlIi1qj9G;m##@N9G!l_gfMkv~jUQKb{fD#}Ha>4tN? zS{v##5hEgbPpKtCmtk&UTS=)!1#ClY<5t>e<{0e&z4zn0>UeX_h_{A2xuuMBWwZY7 z^X`o#FrS-%FJ@6|b-cA&wQY~4UeG6V``B6kJNs2Z%Jpz<7(AMBxe1eqDr4I#Q;eC> z%fEp6nOCSu2+Gfh>RICCc|{1=QAl=4a!@0`7ry&?TNIOHI$;>>riR4**i(pD`xIY1 zWWqtbal6uX!Xb_{EBi7)$bHX|v#@oW6hx6E@}s(`z+Ot%oqL4yP~d0no7O&1b4=SH zE{vG3wpkgN)vygrx!&Eap5D+zNw-ytVI%k~6Dx#+*=7DQLTfdRd=KqRAa=g3-T~^E zp?vKMzTxXn2Hk7U2M|Dya^z#I{X&ED7tKw&>D@-p-Ck1NIgB)vGML2qXeOE$IoA50 zV=-!5pS0)fPU1Fr~fgkwJPxM3ie%|e(=sL#l8=s8P3p03@8n-Y

@kHGHV*M}ud-K*Ym^3Id2q7H(x;jE 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

    9J2$d}*12p3mw+Jf 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
  1. +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 diff --git a/public/index.html b/public/index.html index edd7fe6947..48e14b9b5d 100644 --- a/public/index.html +++ b/public/index.html @@ -5,7 +5,7 @@ - Ant Design Pro + PCDN管理系统 <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %> @@ -17,13 +17,6 @@ We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.
    -
    -

    Pro

    -
    - -
    -
    Ant Design
    -
    <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %> diff --git a/public/logo.png b/public/logo.png deleted file mode 100644 index 69a77a7788f98b0831c10bca30890680c9187b95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9218 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
    - +
    @@ -20,8 +20,8 @@ export default { // 只是为了切换语言时,更新标题 const { title } = this.$route.meta title && (setDocumentTitle(`${i18nRender(title)} - ${domTitle}`)) - - return this.$i18n.getLocaleMessage(this.$store.getters.lang).antLocale + // return this.$i18n.getLocaleMessage(this.$store.getters.lang).antLocale + return this.$i18n.getLocaleMessage('zh-CN').antLocale } } } diff --git a/src/api/apiConfig/apiRealName.js b/src/api/apiConfig/apiRealName.js new file mode 100644 index 0000000000..6a82f309a4 --- /dev/null +++ b/src/api/apiConfig/apiRealName.js @@ -0,0 +1,39 @@ +/** + * 银行卡四要素接口 + */ +import request from '@/utils/request' + +const Api = { + get: '/apiRealName/detail', + saveOrUpdate: '/apiRealName/saveOrUpdate', +} + +/** +* 查询实名认证配置 +* @returns +*/ +export function Detail () { + return request({ + url: Api.get, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 保存或更新配置 + * @param {*} parameter + * @returns + */ +export function SaveOrUpdate (parameter) { + return request({ + url: Api.saveOrUpdate, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} diff --git a/src/api/apiConfig/bankBin.js b/src/api/apiConfig/bankBin.js new file mode 100644 index 0000000000..ee7f9627d7 --- /dev/null +++ b/src/api/apiConfig/bankBin.js @@ -0,0 +1,40 @@ +/** + * 银行卡bin接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + get: '/apiConfig/bankBin/get', + save: '/apiConfig/bankBin/save', +} + +/** +* 查询配置 +* @returns +*/ +export function GetBankBin () { + return request({ + url: Api.get, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 保存配置 + * @param {*} parameter + * @returns + */ +export function SaveBankBin (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} diff --git a/src/api/apiConfig/bankCardVerify.js b/src/api/apiConfig/bankCardVerify.js new file mode 100644 index 0000000000..2e20ce992b --- /dev/null +++ b/src/api/apiConfig/bankCardVerify.js @@ -0,0 +1,39 @@ +/** + * 银行卡四要素接口 + */ +import request from '@/utils/request' + +const Api = { + get: '/apiConfig/bankCardVerify/get', + save: '/apiConfig/bankCardVerify/save', +} + +/** +* 查询配置 +* @returns +*/ +export function GetBankCardVerify () { + return request({ + url: Api.get, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 保存配置 + * @param {*} parameter + * @returns + */ +export function SaveBankCardVerify (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} diff --git a/src/api/apiConfig/sms.js b/src/api/apiConfig/sms.js new file mode 100644 index 0000000000..066f1c50d5 --- /dev/null +++ b/src/api/apiConfig/sms.js @@ -0,0 +1,75 @@ +/** + * 短信接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/apiConfig/sms/page', + // 添加和编辑 + save: '/apiConfig/sms/save', + // 按id删除 + remove: '/apiConfig/sms/remove', + // 获取自己的配置和系统短信配置 + list: '/apiConfig/sms/list' +} + +/** + * 获取自己的配置和系统短信配置 + * @returns + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 按id删除 + * @param {*} parameter + * @returns + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 添加和编辑 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/apiConfig/userAuth.js b/src/api/apiConfig/userAuth.js new file mode 100644 index 0000000000..d6a70128f8 --- /dev/null +++ b/src/api/apiConfig/userAuth.js @@ -0,0 +1,40 @@ +/** + * 实名认证 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + get: '/apiConfig/userAuth/get', + save: '/apiConfig/userAuth/save', +} + +/** +* 查询配置 +* @returns +*/ +export function GetUserAuth () { + return request({ + url: Api.get, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 保存配置 + * @param {*} parameter + * @returns + */ +export function SaveUserAuth (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/area.js b/src/api/area.js new file mode 100644 index 0000000000..6dd649d6b7 --- /dev/null +++ b/src/api/area.js @@ -0,0 +1,18 @@ +/** + * 地区 + */ +import request from '@/utils/request' + +const Api = { + list: '/area/list', +} + /** + * 获取地区集合 + * @returns + */ + export function List (parameter) { + return request({ + url: Api.list, + method: 'get', + }) + } diff --git a/src/api/business/ext.js b/src/api/business/ext.js new file mode 100644 index 0000000000..23ae3db0d5 --- /dev/null +++ b/src/api/business/ext.js @@ -0,0 +1,41 @@ +/** + * 业务需求配置 + */ +import request from '@/utils/request' + +const Api = { + // 添加 + save: '/business/ext', + // 根据ID查询 + getById: '/business/ext/' +} + +/** + * 添加 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} + +/** + * 获取全部 + * @returns + */ +export function GetById (id) { + return request({ + url: Api.getById + id, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} \ No newline at end of file diff --git a/src/api/business/list.js b/src/api/business/list.js new file mode 100644 index 0000000000..d5af5fa45d --- /dev/null +++ b/src/api/business/list.js @@ -0,0 +1,270 @@ +/** + * 上游接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/business/list/page', + // 添加 + add: '/business/list/add', + // 更新业务价格 + edit: '/business/list/edit', + // 删除 + remove: '/business/list/remove', + // 获取接口配置全部集合 + list: '/business/list/list', + // 修改抽成 + modifyDeduct: '/business/list/modifyDeduct', + // 全局价格列表 + globalPriceList: '/business/list/globalPrice/list', + // 保存全局价格 + globalPriceSave: '/business/list/globalPrice/save', + // 推荐人抽成保存 + referrerCutSave: '/business/list/referrerCut/save', + // 获取推荐人抽成 + getReferrerCut: '/business/list/referrerCut/getByUserId', + // 修改上游价格 + modifyUpstreamPrice: '/business/list/modifyUpstreamPrice', + // 修改结算周期 + modifySettlementPeriod: '/business/list/modifySettlementPeriod', + // 获取结算周期枚举列表 + settlementPeriodEnumList: '/business/list/settlementPeriodEnumList', + // 排序修改 + updateSort: '/business/list/updateSort', + // 修改启用 + updateEnabled: '/business/list/updateEnabled', +} + +/** + * 排序修改 + * @param {*} parameter + * @returns + */ +export function UpdateSort (parameter) { + return request({ + url: Api.updateSort, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 开关修改 + * @param {*} parameter + * @returns + */ +export function UpdateEnabled (parameter) { + return request({ + url: Api.updateEnabled, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取结算周期枚举列表 + */ +export function SettlementPeriodEnumList () { + return request({ + url: Api.settlementPeriodEnumList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 修改结算周期 + * @param {*} parameter + * @returns + */ +export function ModifySettlementPeriod (parameter) { + return request({ + url: Api.modifySettlementPeriod, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 修改上游价格 + * @param {*} parameter + * @returns + */ +export function ModifyUpstreamPrice (parameter) { + return request({ + url: Api.modifyUpstreamPrice, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取推荐人抽成 + */ +export function GetReferrerCut () { + return request({ + url: Api.getReferrerCut, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 保存全局价格 + * @param {*} parameter + * @returns + */ +export function ReferrerCutSave (parameter) { + return request({ + url: Api.referrerCutSave, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 保存全局价格 + * @param {*} parameter + * @returns + */ +export function GlobalPriceSave (parameter) { + return request({ + url: Api.globalPriceSave, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取业务全局价格 + * @returns + */ +export function GlobalPriceList () { + return request({ + url: Api.globalPriceList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 修改抽成 + * @param {*} parameter + * @returns + */ +export function ModifyDeduct (parameter) { + return request({ + url: Api.modifyDeduct, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 编辑 + * @param {*} parameter + * @returns + */ +export function Edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json' + } + }) +} +/** + * 获取接口配置全部集合 + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + }) +} +/** + * 添加 + * @param {*} parameter + * @returns + */ +export function Add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除用户 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 添加或更新,传id更新 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/business/price.js b/src/api/business/price.js new file mode 100644 index 0000000000..99cbd6befe --- /dev/null +++ b/src/api/business/price.js @@ -0,0 +1,28 @@ +/** + * 上游接口配置 + */ +import request from '@/utils/request' + +const Api = { + + /** + * 添加或更新,传id更新 + */ + saveOrUpdateBatch: '/biz/SettlePeriod/saveOrUpdateBatch', +} + +/** + * 保存或更新批量 + * @param {*} parameter + * @returns + */ +export function SaveOrUpdateBatch (parameter) { + return request({ + url: Api.saveOrUpdateBatch, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/business/priceGroup.js b/src/api/business/priceGroup.js new file mode 100644 index 0000000000..acc7352020 --- /dev/null +++ b/src/api/business/priceGroup.js @@ -0,0 +1,75 @@ +/** + * 上游接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/business/priceGroup/page', + /** + * 添加或更新,传id更新 + */ + save: '/business/priceGroup/save', + // 删除 + remove: '/business/priceGroup/remove', + // 获取全部集合 + list: '/business/priceGroup/list', +} +/** + * 获取全部集合 + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除用户 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'get', + data: qs.stringify(parameter), + }) +} + +/** + * 添加或更新,传id更新 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/business/script.js b/src/api/business/script.js new file mode 100644 index 0000000000..dd136e084c --- /dev/null +++ b/src/api/business/script.js @@ -0,0 +1,76 @@ +/** + * 业务分类 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/business/script/page', + // 新增或修改 + save: '/business/script', + // 删除 + removeById: '/business/script', + // 列表 + list: '/business/script/list', +} + +/** + * 列表 + * @returns {*} + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} + +/** + * 添加 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} +/** + * 删除 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (id) { + return request({ + url: Api.removeById +"/"+ id, + method: 'delete', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} \ No newline at end of file diff --git a/src/api/buy/record.js b/src/api/buy/record.js new file mode 100644 index 0000000000..23ef65dcf7 --- /dev/null +++ b/src/api/buy/record.js @@ -0,0 +1,26 @@ +/** + * 短信-短信验证码 + * @date 2021年10月21日 下午9:19:22 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/buy/record/page' +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/device/device.js b/src/api/device/device.js new file mode 100644 index 0000000000..761c4018af --- /dev/null +++ b/src/api/device/device.js @@ -0,0 +1,68 @@ +/** + * 查询-查询配置 + * @date 2021年11月2日 上午9:50:33 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/device/index/page', + // 拉取所有设备 + pullAllDevice: '/device/index/pullAllDevice', + // 拨号配置 + dialConfig: '/device/index/dialConfig', + // 获取拨号配置 + getDialConfig: '/device/index/getDialConfig', +} + +/** +* 获取拨号配置 +* @param {string} deviceId 设备id +* @returns +*/ +export function GetDialConfig(deviceId) { + return request({ + url: Api.getDialConfig + "/" + deviceId, + method: 'get' + }) +} + +/** +* 拨号配置 +* @param {string} deviceId 设备id +* @param {} dialMode 拨号方式 +* @param {} dialData 拨号信息集合 +* @returns +*/ +export function DialConfig(deviceId, dialMode, dialData) { + return request({ + url: Api.dialConfig + "/" + deviceId + "/" + dialMode, + method: 'post', + data: dialData, + headers: { 'Content-Type': 'application/json;charset=UTF-8' } + }) +} + +/** +* 拉取所有设备 +* @returns +*/ +export function PullAllDevice() { + return request({ + url: Api.pullAllDevice, + method: 'get' + }) +} + +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page(parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get' + }) +} diff --git a/src/api/device/serviceApi.js b/src/api/device/serviceApi.js new file mode 100644 index 0000000000..43971bd352 --- /dev/null +++ b/src/api/device/serviceApi.js @@ -0,0 +1,38 @@ +/** + * 设备服务接口 + */ + import request from '@/utils/request' + + const Api = { + serviceApi: '/device/serviceApi', + get: '/device/serviceApi/get' + } + + /** + * 保存 + * @param {*} parameter + * @returns + */ + export function Save (parameter) { + return request({ + url: Api.serviceApi, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) + } + /** + * 获取配置 + * @returns + */ + export function Get () { + return request({ + url: Api.get, + method: 'post', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } diff --git a/src/api/domain/basic.js b/src/api/domain/basic.js new file mode 100644 index 0000000000..669a93bacb --- /dev/null +++ b/src/api/domain/basic.js @@ -0,0 +1,42 @@ +/** + * 域名基本配置 + * @date 2021年10月20日 下午10:44:34 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 基本配置保存 + save: '/domain/basic/save', + // 查询基本配置 + get: '/domain/basic/get' +} +/** + * 查询基本配置 + * @returns + */ +export function Get () { + return request({ + url: Api.get, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 基本配置保存 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/domain/domain.js b/src/api/domain/domain.js new file mode 100644 index 0000000000..9a25888918 --- /dev/null +++ b/src/api/domain/domain.js @@ -0,0 +1,74 @@ +/** + * 域名管理 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/domain/manage/page', + // 域名保存 + save: '/domain/manage/save', + // 获取集合 + list: '/domain/manage/list', + // 修改状态 + modifyStatus: '/domain/manage/modifyStatus', +} +/** + * 修改状态 + * @param {*} parameter + * @returns + */ +export function ModifyStatus (parameter) { + return request({ + url: Api.modifyStatus, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取集合 + * @returns + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 域名保存 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/finance/detail.js b/src/api/finance/detail.js new file mode 100644 index 0000000000..88c1ba4e03 --- /dev/null +++ b/src/api/finance/detail.js @@ -0,0 +1,26 @@ +/** + * 财务-财务明细 + * @date 2021年10月20日 下午10:44:34 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/finance/detail/page' +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/handlerResult.js b/src/api/handlerResult.js new file mode 100644 index 0000000000..ce65ed047f --- /dev/null +++ b/src/api/handlerResult.js @@ -0,0 +1,47 @@ +import Vue from 'vue' +import store from '../store' +// base library +import { message } from 'ant-design-vue' +Vue.use(message) +const loginRoutePath = '/index/login' +/** + * 统一返回状态处理 + * @param {*} response + * @returns + */ +export function handlerResult (response) { + if (response.code === 0) { + message.success(response.message) + return true + } else { + message.error(response.message) + if (response.code === 9998) { + // 失败时,获取用户信息失败时,调用登出,来清空历史保留信息 + store.dispatch('Logout').then(() => { + location.href = loginRoutePath + // this.$router.push({ path: loginRoutePath }) + }) + } + return false + } +} +/** + * 统一返回状态处理 + * @param {*} response + * @returns + */ + export function isPageResult (response) { + if (response.code === 0) { + return true + } else { + message.error(response.message) + if (response.code === 9998) { + // 失败时,获取用户信息失败时,调用登出,来清空历史保留信息 + store.dispatch('Logout').then(() => { + location.href = loginRoutePath + // this.$router.push({ path: loginRoutePath }) + }) + } + return false + } +} diff --git a/src/api/index/monitor.js b/src/api/index/monitor.js new file mode 100644 index 0000000000..9e5f2cfaa6 --- /dev/null +++ b/src/api/index/monitor.js @@ -0,0 +1,214 @@ +/** + * 仪表盘-监控api接口 + * @data 2021-10-8 16:35 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 获取配置 + getConfig: '/dashboard/monitor/getConfig', + saveConfig: '/dashboard/monitor/saveConfig', + // 修改总开关 + modifyMasterSwitch: '/dashboard/monitor/modifyMasterSwitch', + // 修改直充开关 + modifyOrderChargingSwitch: '/dashboard/monitor/modifyOrderZhichongSwitch', + // 修改可疑订单开关 + modifyOrderKeyiSwitch: '/dashboard/monitor/modifyOrderKeyiSwitch', + // 修改会员审核提醒开关 + modifyUserSwitch: '/dashboard/monitor/modifyUserSwitch', + // 修改充值模板提醒开 + modifyChangetplSwitch: '/dashboard/monitor/modifyChangetplSwitch', + // 修改查询模板提醒开关 + modifyQuerytplSwitch: '/dashboard/monitor/modifyQuerytplSwitch', + modifyAgentWithdrawaSwitch: '/dashboard/monitor/modifyAgentWithdrawaSwitch', + modifyGongzhongWithdrawaSwitch: '/dashboard/monitor/modifyGongzhongWithdrawaSwitch', + modifyCardOrderSwitch: '/dashboard/monitor/modifyCardOrderSwitch', + modifyCardSwitch: '/dashboard/monitor/modifyCardSwitch', + // 修改配置,刷新时间和超时时间 + modifyConfig: '/dashboard/monitor/modifyConfig' +} +/** + * 保存配置 + * @returns + */ + export function saveConfig (parameter) { + return request({ + url: Api.saveConfig, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 充值卡异常提醒开关 + * @returns + */ + export function modifyCardSwitch (parameter) { + return request({ + url: Api.modifyCardSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 充值卡订单导入可疑开关 + * @returns + */ + export function modifyCardOrderSwitch (parameter) { + return request({ + url: Api.modifyCardOrderSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 公众号提醒开关 + * @returns + */ + export function modifyGongzhongWithdrawaSwitch (parameter) { + return request({ + url: Api.modifyGongzhongWithdrawaSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 代理商提现提醒开关 + * @returns + */ + export function modifyAgentWithdrawaSwitch (parameter) { + return request({ + url: Api.modifyAgentWithdrawaSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取配置 + * @returns + */ + export function GetConfig () { + return request({ + url: Api.getConfig, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改总开关 + * @returns + */ + export function ModifyMasterSwitch (parameter) { + return request({ + url: Api.modifyMasterSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改直充订单开关 + * @returns + */ + export function ModifyOrderChargingSwitch (parameter) { + return request({ + url: Api.modifyOrderChargingSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改可疑订单开关 + * @returns + */ + export function ModifyOrderKeyiSwitch (parameter) { + return request({ + url: Api.modifyOrderKeyiSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改充值模板提醒开 + * @returns + */ + export function ModifyUserSwitch (parameter) { + return request({ + url: Api.modifyUserSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改充值模板提醒开 + * @returns + */ +export function ModifyChangetplSwitch (parameter) { + return request({ + url: Api.modifyChangetplSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改查询模板提醒开关 + * @param parameter + * @returns {*} + */ + export function ModifyQuerytplSwitch (parameter) { + return request({ + url: Api.modifyQuerytplSwitch, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/* + * 修改配置,刷新时间和超时时间 + * parameter: { + * id: 0 + * } +*/ +export function ModifyConfig (parameter) { + return request({ + url: Api.modifyConfig, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/index/workplace.js b/src/api/index/workplace.js new file mode 100644 index 0000000000..339b365dd7 --- /dev/null +++ b/src/api/index/workplace.js @@ -0,0 +1,130 @@ +/** + * 仪表盘-工作台api接口 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 用户统计 + userStat: '/dashboard/workplace/userStat', + // 总节点统计 + totalNodeStat: '/dashboard/workplace/totalNodeStat', + // 在线节点统计 + onlineNodeStat: '/dashboard/workplace/onlineNodeStat', + // 离线统计 + outlineNodeStat: '/dashboard/workplace/outlineNodeStat', + // 结算金额统计 + settleAmountStat: '/dashboard/workplace/settleAmountStat', + // 统计利润 + manageSettleAmountStat: '/dashboard/workplace/manageSettleAmountStat', + // 余额统计 + moneyStat: '/dashboard/workplace/moneyStat', + // 获取邀请码 + getInviteCode: '/dashboard/workplace/getInviteCode', +} + +/** + * 获取邀请码 + * @returns {*} + */ +export function GetInviteCode () { + return request({ + url: Api.getInviteCode, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 统计利润 + * @returns {*} + */ +export function MoneyStat () { + return request({ + url: Api.moneyStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 统计利润 + * @returns {*} + */ +export function ManageSettleAmountStat () { + return request({ + url: Api.manageSettleAmountStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 结算金额统计 + * @returns {*} + */ +export function SettleAmountStat () { + return request({ + url: Api.settleAmountStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 离线统计 + * @returns {*} + */ +export function OutlineNodeStat () { + return request({ + url: Api.outlineNodeStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 在线节点统计 + * @returns {*} + */ +export function OnlineNodeStat () { + return request({ + url: Api.onlineNodeStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 总节点统计 + * @returns {*} + */ +export function TotalNodeStat () { + return request({ + url: Api.totalNodeStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 用户统计 + * @returns {*} + */ + export function UserStat () { + return request({ + url: Api.userStat, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/line.js b/src/api/line.js new file mode 100644 index 0000000000..14d5bf3b02 --- /dev/null +++ b/src/api/line.js @@ -0,0 +1,50 @@ +/** + * 线路 + */ +import request from '@/utils/request' + +const Api = { + // 线路 + line: '/line', + // 获取线路详情 + getLineDetails: '/line/details', + // 调整线路 + modifyLine: '/line/modifyLine', +} +/** + * 调整线路 + * @param {*} parameter + * @returns + */ +export function ModifyLine(parameter) { + return request({ + url: Api.modifyLine, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json; charset=UTF-8' + } + }) +} + +/** + * 获取线路账户信息 + * @returns + */ +export function GetLineAccount(id) { + return request({ + url: Api.line + '/' + id, + method: 'get', + }) +} + +/** + * 获取线路汇聚信息 + * @returns + */ +export function GetLineDetails(id) { + return request({ + url: Api.getLineDetails + '/' + id, + method: 'get', + }) +} \ No newline at end of file diff --git a/src/api/log/system.js b/src/api/log/system.js new file mode 100644 index 0000000000..36249a21fc --- /dev/null +++ b/src/api/log/system.js @@ -0,0 +1,26 @@ +/** + * 日志-系统日志 + * @date 2021年12月5日 下午3:21:30 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + page: '/log/system/page', +} + +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/log/user.js b/src/api/log/user.js new file mode 100644 index 0000000000..6eb2ec44f9 --- /dev/null +++ b/src/api/log/user.js @@ -0,0 +1,26 @@ +/** + * 门店配置-权限配置 + * @date 2021年11月19日 上午11:08:39 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + page: '/log/user/page', +} + +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/login.js b/src/api/login.js index ea04781586..a366d4e293 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,18 +1,50 @@ import request from '@/utils/request' +import qs from 'qs' const userApi = { - Login: '/auth/login', - Logout: '/auth/logout', - ForgePassword: '/auth/forge-password', + Login: '/index/login', + // Login: '/auth/login', + loginOut: '/index/loginOut', Register: '/auth/register', twoStepCode: '/auth/2step-code', SendSms: '/account/sms', SendSmsErr: '/account/sms_err', // get my info - UserInfo: '/user/info', - UserMenu: '/user/nav' + UserInfo: '/userInfo', + UserMenu: '/managemenu', + getSecurity: '/index/getSecurity', + getSmsCode: '/index/getSmsCode' +} +/** + * 获取短信验证码 + * @param parameter + * @returns {*} + */ + export function getSmsCode (parameter) { + return request({ + url: userApi.getSmsCode, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 是否需要短信验证码验证 + * @param parameter + * @returns {*} + */ + export function getSecurity (parameter) { + return request({ + url: userApi.getSecurity, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) } - /** * login func * parameter: { @@ -24,6 +56,17 @@ const userApi = { * @param parameter * @returns {*} */ + export function login (parameter) { + return request({ + url: userApi.Login, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/* export function login (parameter) { return request({ url: userApi.Login, @@ -31,12 +74,15 @@ export function login (parameter) { data: parameter }) } - +*/ export function getSmsCaptcha (parameter) { return request({ url: userApi.SendSms, method: 'post', - data: parameter + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } }) } @@ -45,7 +91,7 @@ export function getInfo () { url: userApi.UserInfo, method: 'get', headers: { - 'Content-Type': 'application/json;charset=UTF-8' + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } }) } @@ -53,13 +99,16 @@ export function getInfo () { export function getCurrentUserNav () { return request({ url: userApi.UserMenu, - method: 'get' + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } }) } -export function logout () { +export function loginOut () { return request({ - url: userApi.Logout, + url: userApi.loginOut, method: 'post', headers: { 'Content-Type': 'application/json;charset=UTF-8' diff --git a/src/api/node/list.js b/src/api/node/list.js new file mode 100644 index 0000000000..8bf63f449c --- /dev/null +++ b/src/api/node/list.js @@ -0,0 +1,375 @@ +/** + * 节点列表 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/node/list/page', + // 批量删除 + remove: '/node/list/remove', + // 获取节点详情 + details: '/node/list/details', + // 添加节点 + add: '/node/list/add', + // 节点编辑 + edit: '/node/list/edit', + // 节点转移 + nodeTransfer: '/node/list/nodeTransfer', + // 手动拉取上游结算数据 + manualSettle: '/node/list/manualSettle', + // 按节点id手动拉取上游结算数据 + manualSettleByIds: '/node/list/manualSettleByIds', + // 节点清退 + repel: '/node/list/repel', + // 获取资源监控 + getMonitorLogs: '/node/list/getMonitorLogs', + // 节点调度修改 + modifySchedule: '/node/list/modifySchedule', + // 获取节点详情 + getNodeDetails: '/node/list/getNodeDetails', + // 获取网络压测信息 + getNetworkPressure: '/node/list/getNetworkPressure', + // 发起网络压测,上机后使用 + sendNetworkPressure: '/node/list/sendNetworkPressure', + // 获取线路汇聚信息 + getLinesConverge: '/node/list/getLinesConverge', + // 获取运营商 + getIsp: '/node/list/getIsp', + // 获取网络类型 + getNatType: '/node/list/getNatType', + // 获取拨号方式 + getDialMode: '/node/list/getDialMode', + // 测试连接 + detectConnectivity: '/node/list/detectConnectivity', + // 提交拨号信息 + dialSubmit: '/node/list/dialSubmit', + // 按节点id查询是否支持上机前拨号测试和网络压测 + supportPreDialTset: '/node/list/supportPreDialTset', + // 拨号测试 + dialTest: '/node/list/dialTest', + // 发起网络压测,上机前使用 + sendBeforeBindNetworkPressure: '/node/list/sendBeforeBindNetworkPressure', + // 按节点id查询是否需要配置dhcp + isDhcpNeedConfig: '/node/list/isDhcpNeedConfig', + // 获取节点详情 + getNetCard: '/node/list/getNetCard', +} + +/** + * 获取节点网卡信息 + * @param {*} id + * @returns + */ +export function GetNetCard (id) { + return request({ + url: Api.getNetCard + '/' + id, + method: 'get' + }) +} + +/** + * 按节点id查询是否需要配置dhcp + * @returns + */ +export function IsDhcpNeedConfig (id) { + return request({ + url: Api.isDhcpNeedConfig + "/" + id, + method: 'get' + }) +} + +/** + * 拨号测试 + * @returns + */ +export function SendBeforeBindNetworkPressure (id) { + return request({ + url: Api.sendBeforeBindNetworkPressure + "/" + id, + method: 'get' + }) +} + +/** + * 拨号测试 + * @returns + */ +export function DialTest (id) { + return request({ + url: Api.dialTest + "/" + id, + method: 'get' + }) +} + +/** + * 按节点id查询是否支持上机前拨号测试和网络压测 + * @returns + */ +export function SupportPreDialTset (id) { + return request({ + url: Api.supportPreDialTset + "/" + id, + method: 'get' + }) +} + +/** + * 提交拨号信息 + * @returns + */ +export function DialSubmit (id) { + return request({ + url: Api.dialSubmit + "/" + id, + method: 'get' + }) +} + +/** + * 测试连接 + * @returns + */ +export function DetectConnectivity (id) { + return request({ + url: Api.detectConnectivity + "/" + id, + method: 'get' + }) +} +/** + * 获取拨号方式 + * @returns + */ +export function GetDialMode () { + return request({ + url: Api.getDialMode, + method: 'get' + }) +} + +/** + * 获取运营商 + * @returns + */ +export function GetNatType () { + return request({ + url: Api.getNatType, + method: 'get' + }) +} + +/** + * 获取运营商 + * @returns + */ +export function GetIsp () { + return request({ + url: Api.getIsp, + method: 'get' + }) +} +/** + * 添加节点使用post + */ +export function Add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: parameter, + headers: { + // json类型 + 'Content-Type': 'application/json' + } + }) +} + +/** + * 获取线路汇聚信息 + * @param {*} id + * @returns + */ +export function GetLinesConverge (id) { + return request({ + url: Api.getLinesConverge + '/' + id, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 发起网络压测,上机后使用 + * @param {*} id + * @returns + */ +export function SendNetworkPressure (id) { + return request({ + url: Api.sendNetworkPressure + '/' + id, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 获取网络压测信息 + * @param {*} id + * @returns + */ +export function GetNetworkPressure (id) { + return request({ + url: Api.getNetworkPressure + '/' + id, + method: 'get' + }) +} + +/** + * 获取节点详情 + * @param {*} id + * @returns + */ +export function GetNodeDetails (id) { + return request({ + url: Api.getNodeDetails + '/' + id, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 节点调度修改 + * @param parameter 请求参数 + * @returns + */ +export const ModifySchedule = (parameter) => { + return request({ + url: Api.modifySchedule, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取资源监控数据 + * @param {*} parameter + * @returns + */ +export function GetMonitorLogs (parameter) { + return request({ + url: Api.getMonitorLogs + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 节点清退 + * @param parameter + * @returns {*} + */ +export function Repel (parameter) { + return request({ + url: Api.repel, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 手动拉取上游结算数据 + * @param parameter + * @returns {*} + */ +export function ManualSettle (parameter) { + return request({ + url: Api.manualSettle, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 按节点id手动拉取上游结算数据 + * @param parameter + * @returns {*} + */ +export function ManualSettleByIds (parameter) { + return request({ + url: Api.manualSettleByIds, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 节点编辑 + * @param parameter + * @returns {*} + */ +export function Edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 获取节点详情 + * @param {*} nodeId 节点id + * @returns + */ +export function Details (nodeId) { + return request({ + url: Api.details + '/' + nodeId, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 批量删除 + * @param {*} parameter + * @returns + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/node/price.js b/src/api/node/price.js new file mode 100644 index 0000000000..8512c07074 --- /dev/null +++ b/src/api/node/price.js @@ -0,0 +1,41 @@ +/** + * 节点价格 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 批量更新节点价格 + batchUpdatePrice: '/node/price/batchUpdatePrice', + // 更新成本价 + updateCostPrice: '/node/price/updateCostPrice', +} + +/** + * 更新成本价 + */ +export function UpdateCostPrice (parameter) { + return request({ + url: Api.updateCostPrice, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 批量更新节点价格 + */ +export function BatchUpdatePrice (parameter) { + return request({ + url: Api.batchUpdatePrice, + method: 'post', + data: parameter, + headers: { + // json类型 + 'Content-Type': 'application/json' + } + }) +} \ No newline at end of file diff --git a/src/api/notice/manage.js b/src/api/notice/manage.js new file mode 100644 index 0000000000..060d3a0f02 --- /dev/null +++ b/src/api/notice/manage.js @@ -0,0 +1,73 @@ +/** + * 公告-公告管理 + * @date 2021年11月16日 下午12:23:05 + */ + import request from '@/utils/request' + import qs from 'qs' + + const Api = { + page: '/notice/manage/page', + remove: '/notice/manage/removeById', + save: '/notice/manage/save', + getById: '/notice/manage/getById' + } + /** + * 按id查询公告信息 + * @param {*} parameter + * @returns + */ + export function GetById (parameter) { + return request({ + url: Api.getById, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + /** + * 发布或编辑 + * @param {*} parameter + * @returns + */ + export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) + } + /** + * 删除 + * @param {*} parameter + * @returns + */ + export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 分页 + * @param {*} parameter + * @returns + */ + export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } diff --git a/src/api/notice/nodebindDesc.js b/src/api/notice/nodebindDesc.js new file mode 100644 index 0000000000..a27e784a32 --- /dev/null +++ b/src/api/notice/nodebindDesc.js @@ -0,0 +1,73 @@ +/** + * 公告-公告管理 + * @date 2021年11月16日 下午12:23:05 + */ + import request from '@/utils/request' + import qs from 'qs' + + const Api = { + page: '/nodebind/desc/page', + remove: '/nodebind/desc/removeById', + save: '/nodebind/desc/save', + getById: '/nodebind/desc/getById' + } + /** + * 按id查询公告信息 + * @param {*} parameter + * @returns + */ + export function GetById (parameter) { + return request({ + url: Api.getById, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + /** + * 发布或编辑 + * @param {*} parameter + * @returns + */ + export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) + } + /** + * 删除 + * @param {*} parameter + * @returns + */ + export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 分页 + * @param {*} parameter + * @returns + */ + export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } diff --git a/src/api/other/ip.js b/src/api/other/ip.js new file mode 100644 index 0000000000..377dfa5821 --- /dev/null +++ b/src/api/other/ip.js @@ -0,0 +1,41 @@ +/** + * 商品-产品管理 + * @date 2021年11月15日 上午10:37:36 + */ + import request from '@/utils/request' + import qs from 'qs' + + const Api = { + page: '/other/ip/page', + edit: '/other/ip/edit/byId' + } + /** + * 编辑 + * @param {*} parameter + * @returns + */ + export function edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 分页 + * @param {*} parameter + * @returns + */ + export function page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } diff --git a/src/api/other/segment.js b/src/api/other/segment.js new file mode 100644 index 0000000000..3102d6fb27 --- /dev/null +++ b/src/api/other/segment.js @@ -0,0 +1,103 @@ +/** + * 商品-产品管理 + * @date 2021年11月15日 上午10:37:36 + */ + import request from '@/utils/request' + import qs from 'qs' + + const Api = { + page: '/other/segment/page', + batchRemove: '/other/segment/remove/batch', + add: '/other/segment/add/add', + edit: '/other/segment/edit/byId', + batchModifyMobileType: '/other/segment/batchModifyMobileType/byIds', + operatorList: '/other/segment/operatorList' + } + /** + * 批量修改运营商 + * @param {*} parameter + * @returns + */ + export function batchModifyMobileType (parameter) { + return request({ + url: Api.batchModifyMobileType, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 获取运营商类型 + * @returns + */ + export function operatorList (parameter) { + return request({ + url: Api.operatorList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 编辑 + * @param {*} parameter + * @returns + */ + export function edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 添加 + * @param {*} parameter + * @returns + */ + export function add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 批量删除 + * @param {*} parameter + * @returns + */ + export function batchRemove (parameter) { + return request({ + url: Api.batchRemove, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 分页 + * @param {*} parameter + * @returns + */ + export function page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } diff --git a/src/api/public.js b/src/api/public.js new file mode 100644 index 0000000000..23228b849b --- /dev/null +++ b/src/api/public.js @@ -0,0 +1,213 @@ +/** + * 公用接口 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + version: '/version.json', + createKey: '/createKey', + listMenuProductCata: '/listMenuProductCata', + subToken: '/subToken', + listGoodsByProductId: '/listGoodsByProductId', + listProductAreaByFid: '/listProductAreaByFid', + listQueryTpl: '/listQueryTpl', + productTypeEnum: '/productTypeEnum', + productCateList: '/productCateList', + productCateChildren: '/productCateChildren', + queryTypeEnum: '/queryTypeEnum', + operatorList: '/operatorList', + // 获取业务价格分组集合 + businessPriceGroupList: '/businessPriceGroupList', + // 获取地区集合 + areaList: '/areaList', +} + +/** + * 获取地区集合 + */ +export function AreaList () { + return request({ + url: Api.areaList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 获取业务价格组列表 + * @returns 返回一个Promise对象,包含请求结果 + */ +export function BusinessPriceGroupList () { + return request({ + url: Api.businessPriceGroupList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 按运营商类型获取运营商 + * @returns + */ +export function OperatorList (parameter) { + return request({ + url: Api.operatorList, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取全部类型 + * @param {*} parameter + * @returns + */ + export function QueryTypeEnum (parameter) { + return request({ + url: Api.queryTypeEnum, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取全部类目Childre + * @returns + */ + export function ProductCateChildren () { + return request({ + url: Api.productCateChildren, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取全部类目 + * @returns + */ + export function ProductCateList () { + return request({ + url: Api.productCateList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取产品类型枚举 + * @returns + */ +export function ProductTypeEnum () { + return request({ + url: Api.productTypeEnum, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取全部查询模板 + * @returns + */ +export function listQueryTpl () { + return request({ + url: Api.listQueryTpl, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 版本 + * @returns + */ + export function version () { + return request({ + url: Api.version, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取产品地区 + * @param {*} parameter + * @returns + */ + export function listProductAreaByFid (parameter) { + return request({ + url: Api.listProductAreaByFid, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 按产品id获取商品集合 + * @param {*} parameter + * @returns + */ + export function listGoodsByProductId (parameter) { + return request({ + url: Api.listGoodsByProductId, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取提交token + * @returns + */ + export function subToken () { + return request({ + url: Api.subToken, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取菜单商品分类 + * @returns + */ + export function listMenuProductCata () { + return request({ + url: Api.listMenuProductCata, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 生成key + * @returns + */ + export function CreateKey () { + return request({ + url: Api.createKey, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/sms/balance.js b/src/api/sms/balance.js new file mode 100644 index 0000000000..9d1572e9cf --- /dev/null +++ b/src/api/sms/balance.js @@ -0,0 +1,44 @@ +/** + * 用户短信余额 + * @date 2021年10月21日 下午9:19:22 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/sms/balance/page', + // 赠送短信条数 + giftSms: '/sms/balance/giftSms' +} + +/** + * 赠送短信条数 + */ +export function GiftSms (parameter) { + return request({ + url: Api.giftSms, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + + +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/sms/config.js b/src/api/sms/config.js new file mode 100644 index 0000000000..6de7af864e --- /dev/null +++ b/src/api/sms/config.js @@ -0,0 +1,42 @@ +/** + * 短信配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 添加和编辑 + save: '/sms/config/save', + // 获取配置 + getConfig: '/sms/config/getConfig', +} + +/** + * 获取配置 + * @returns + */ +export function GetConfig () { + return request({ + url: Api.getConfig, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 添加和编辑 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/sms/deposit.js b/src/api/sms/deposit.js new file mode 100644 index 0000000000..d3c46f6c93 --- /dev/null +++ b/src/api/sms/deposit.js @@ -0,0 +1,74 @@ +/** + * 短信-短信验证码 + * @date 2021年10月21日 下午9:19:22 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/sms/deposit/page', + add: '/sms/deposit/add/add', + remove: '/sms/deposit/remove/byId', + edit: '/sms/deposit/edit/byId' +} +/** + * 编辑 + * @param {*} parameter + * @returns + */ + export function edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除 + * @param {*} parameter + * @returns + */ + export function remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 添加 + * @param {*} parameter + * @returns + */ + export function add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/sms/plan.js b/src/api/sms/plan.js new file mode 100644 index 0000000000..8d6e75c2aa --- /dev/null +++ b/src/api/sms/plan.js @@ -0,0 +1,57 @@ +/** + * 短信套餐 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 获取全部短信套餐 + list: '/sms/plan/list', + // 添加和编辑 + save: '/sms/plan/save', + // 删除 + remove: '/sms/plan/remove', +} +/** + * 按id删除 + * @param {*} parameter + * @returns + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 添加和编辑 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取全部短信套餐 + * @returns + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/sms/receive.js b/src/api/sms/receive.js new file mode 100644 index 0000000000..8decb85f53 --- /dev/null +++ b/src/api/sms/receive.js @@ -0,0 +1,60 @@ +/** + * 短信-短信验证码 + * @date 2021年10月21日 下午9:19:22 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/sms/receive/page', + // 获取key + getKey: '/sms/receive/config/getKey', + // 保存key + saveKey: '/sms/receive/config/saveKey' +} + +/** + * 保存key + * @param {*} parameter + * @returns + */ + export function SaveKey (parameter) { + return request({ + url: Api.saveKey, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取key + * @param {*} parameter + * @returns + */ + export function GetKey () { + return request({ + url: Api.getKey, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/sms/sendRecord.js b/src/api/sms/sendRecord.js new file mode 100644 index 0000000000..9e32fa3f54 --- /dev/null +++ b/src/api/sms/sendRecord.js @@ -0,0 +1,26 @@ +/** + * 短信发送记录 + * @date 2021年10月21日 下午9:19:22 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/sms/sendRecord/page' +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/staff/manage.js b/src/api/staff/manage.js new file mode 100644 index 0000000000..a19f6892d5 --- /dev/null +++ b/src/api/staff/manage.js @@ -0,0 +1,110 @@ +/** + * 员工-员工管理 + * @date 2021年10月9日 下午5:34:12 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/staff/manage/page', + // 添加用户级别 + add: '/staff/manage/add', + // 删除级别 + removeById: '/staff/manage/removeById', + // 编辑 + edit: '/staff/manage/edit', + listRole: '/staff/manage/listRole', + modifyStateById: '/staff/manage/modifyStateById' +} + +/** + * 修改状态 + * @param {*} parameter + * @returns + */ + export function ModifyStateById (parameter) { + return request({ + url: Api.modifyStateById, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取角色信息 + * @param {*} parameter + * @returns + */ + export function ListRole () { + return request({ + url: Api.listRole, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 添加用户级别 + * @p + * @param parameter + * @returns {*} + */ + export function Add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除用户 + * @param {*} parameter + * @returns + */ +export function RemoveById (parameter) { + return request({ + url: Api.removeById, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 编辑用户信息 + * @param parameter + * @returns {*} + */ +export function Edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/staff/post.js b/src/api/staff/post.js new file mode 100644 index 0000000000..56bcfa1107 --- /dev/null +++ b/src/api/staff/post.js @@ -0,0 +1,121 @@ +/** + * 员工-员工管理 + * @date 2021年10月9日 下午5:34:12 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + init: '/staff/post/init', + // 按菜单id获取操作权限 + listOperationByMenuId: '/staff/post/listOperationByMenuId', + add: '/staff/post/add', + page: '/staff/post/page', + listByRoleId: '/staff/post/listByRoleId', + editById: '/staff/post/editById', + removeById: '/staff/post/removeById' +} +/** + * 按id删除角色 + * @param {*} parameter + * @returns + */ + export function RemoveById (parameter) { + return request({ + url: Api.removeById, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 岗位编辑 + * @param {*} parameter + * @returns + */ + export function EditById (parameter) { + return request({ + url: Api.editById, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 按角色id获取菜单数据 + * @param {*} parameter + * @returns + */ +export function ListByRoleId (parameter) { + return request({ + url: Api.listByRoleId, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 岗位分页 + * @param {*} parameter + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 岗位添加 + * @param {*} parameter + * @returns + */ +export function Add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 按菜单id获取操作权限 + * @param parameter + * @returns {*} + */ +export function ListOperationByMenuId (parameter) { + return request({ + url: Api.listOperationByMenuId, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 添加岗位初始化菜单 + * @param parameter + * @returns {*} + */ + export function Init () { + return request({ + url: Api.init, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/system/security.js b/src/api/system/security.js new file mode 100644 index 0000000000..ec24ff76d5 --- /dev/null +++ b/src/api/system/security.js @@ -0,0 +1,103 @@ +/** + * 系统-登录密码修改 + * @date 2021年11月21日 下午9:59:19 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + modifyPwd: '/system/security/modifyPwd', + modifySuperPwd: '/system/security/modifySuperPwd', + get: '/system/security/get', + getSmsCode: '/system/security/getSmsCode', + bindPhoneNumber: '/system/security/bindPhoneNumber', + modifySecurity: '/system/security/modifySecurity' +} +/** + * 开启短信验证码,如果开启状态,请求后将关闭,反则开启 + * @param {*} parameter + * @returns + */ + export function modifySecurity (parameter) { + return request({ + url: Api.modifySecurity, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 绑定手机号 + * @param {*} parameter + * @returns + */ + export function bindPhoneNumber (parameter) { + return request({ + url: Api.bindPhoneNumber, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取验证码 + * @param {*} parameter + * @returns + */ +export function getSmsCode (parameter) { + return request({ + url: Api.getSmsCode, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取安全配置信息 + * @returns + */ +export function get () { + return request({ + url: Api.get, + method: 'post', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改超级密码 + * @param {*} parameter + * @returns + */ +export function modifySuperPwd (parameter) { + return request({ + url: Api.modifySuperPwd, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改登录密码 + * @param {*} parameter + * @returns + */ +export function modifyPwd (parameter) { + return request({ + url: Api.modifyPwd, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/ticket/list.js b/src/api/ticket/list.js new file mode 100644 index 0000000000..93d16814b8 --- /dev/null +++ b/src/api/ticket/list.js @@ -0,0 +1,130 @@ +/** + * 会员管理-会员列表 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 会员分页 + page: '/ticket/list/page', + /** + * 工单处理 + */ + edit: '/ticket/list/edit', + // 删除工单 + remove: '/ticket/list/remove', + // 添加工单类型 + addTicketType: '/ticket/list/addTicketType', + // 修改工单类型名称 + modifyTicketTypeName: '/ticket/list/modifyTicketTypeName', + // 删除工单类型 + removeTicketType: '/ticket/list/removeTicketType', + // 修改工单类型状态 + ticketTypeList: '/ticket/list/ticketTypeList', +} + +/** + * 删除用户 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 编辑 + * @param {*} parameter + * @returns + */ +export function Edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +// 添加工单类型 +export function AddTicketType (parameter) { + return request({ + url: Api.addTicketType, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 修改工单类型名称 + * @param {*} parameter + * @returns + */ +export function ModifyTicketTypeName (parameter) { + return request({ + url: Api.modifyTicketTypeName, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除工单类型 + * @param {*} parameter + * @returns + */ +export function RemoveTicketType (parameter) { + return request({ + url: Api.removeTicketType, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 工单类型列表 + * @returns 工单类型列表 + */ +export function TicketTypeList () { + return request({ + url: Api.ticketTypeList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/upstream/apiConfig.js b/src/api/upstream/apiConfig.js new file mode 100644 index 0000000000..c3b27468ac --- /dev/null +++ b/src/api/upstream/apiConfig.js @@ -0,0 +1,127 @@ +/** + * 上游接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/upstream/apiConfig/page', + /** + * 添加或更新,传id更新 + */ + save: '/upstream/apiConfig/save', + // 删除 + remove: '/upstream/apiConfig/remove', + // 获取接口配置全部集合 + list: '/upstream/apiConfig/list', + // 获取上游公司 + upstreamCompanyList: '/upstream/apiConfig/upstreamCompanyList', + // 配置规则 + configRule: '/upstream/apiConfig/configRule', + // 修改配置 + updateConfig: '/upstream/apiConfig/updateConfig', +} + +/** + * 修改配置 + */ +export function UpdateConfig (parameter) { + return request({ + url: Api.updateConfig, + method: 'post', + data: parameter, + headers: { + // json类型,utf-8编码 + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} + +/** + * 配置规则 + * @returns + */ +export function ConfigRule () { + return request({ + url: Api.configRule, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 获取上游公司 + * @returns + */ +export function UpstreamCompanyList () { + return request({ + url: Api.upstreamCompanyList, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 获取接口配置全部集合 + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除用户 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 添加或更新,传id更新 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/upstream/business.js b/src/api/upstream/business.js new file mode 100644 index 0000000000..818056cc6b --- /dev/null +++ b/src/api/upstream/business.js @@ -0,0 +1,101 @@ +/** + * 上游业务配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/upstream/business/page', + /** + * 添加或更新,传id更新 + */ + save: '/upstream/business/save', + // 删除 + remove: '/upstream/business/remove', + // 获取列表 + list: '/upstream/business/list', + /** + * 修改价格 + */ + modifyPrice: '/upstream/business/modifyPrice', +} + +/** + * 修改价格 + * @param {*} parameter + * @returns + */ +export function ModifyPrice (parameter) { + return request({ + url: Api.modifyPrice, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 获取列表 + * @returns {*} + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 删除 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 添加或更新,传id更新 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/upstream/script.js b/src/api/upstream/script.js new file mode 100644 index 0000000000..08a04325ef --- /dev/null +++ b/src/api/upstream/script.js @@ -0,0 +1,40 @@ +/** + * 上游脚本配置 + */ +import request from '@/utils/request' + +const Api = { + save: '/upstream/script', + getById: '/upstream/script' +} + +/** + * 保存 + * @param {*} parameter + * @returns + */ +export function Save(parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} + +/** + * 根据上游id查询 + * @param id + * @returns {*} + */ +export function GetByUpstreamId(id) { + return request({ + url: Api.getById + '/' + id, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} diff --git a/src/api/user/bossVersion.js b/src/api/user/bossVersion.js new file mode 100644 index 0000000000..280655cbe2 --- /dev/null +++ b/src/api/user/bossVersion.js @@ -0,0 +1,78 @@ +/** + * 上游接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/user/bossVersion/page', + /** + * 添加或更新,传id更新 + */ + save: '/user/bossVersion/save', + // 删除 + remove: '/user/bossVersion/remove', + // 获取全部集合 + list: '/user/bossVersion/list', +} +/** + * 获取全部集合 + */ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除用户 + * @p + * @param parameter + * @returns {*} + */ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 添加或更新,传id更新 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/user/list.js b/src/api/user/list.js new file mode 100644 index 0000000000..a62d12ce11 --- /dev/null +++ b/src/api/user/list.js @@ -0,0 +1,146 @@ +/** + * 会员管理-会员列表 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 会员分页 + page: '/user/list/page', + // 添加用户 + add: '/user/list/add', + // 编辑 + edit: '/user/list/edit', + // 修改用户状态 + modifyState: '/user/list/modifyState', + // 删除用户 + removeById: '/user/list/removeById', + // 修改价格分组 + modifyPriceGroup: '/user/list/modifyPriceGroup', + // 更改用户类型 + modifyUserType: '/user/list/modifyUserType', + // 修改boss到期时间 + modifyBossDueTime: '/user/list/modifyBossDueTime', +} +/** + * 修改boss到期时间 + * @param parameter + * @returns {*} + */ +export function ModifyBossDueTime (parameter) { + return request({ + url: Api.modifyBossDueTime, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 更改用户类型 + * @param parameter + * @returns {*} + */ +export function ModifyUserType (parameter) { + return request({ + url: Api.modifyUserType, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改价格分组 + * @param {*} parameter 请求对象 + * @returns + */ +export function ModifyPriceGroup (parameter) { + return request({ + url: Api.modifyPriceGroup, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 删除用户 + * @p + * @param parameter + * @returns {*} + */ +export function RemoveById (parameter) { + return request({ + url: Api.removeById, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 分页 + * @param {*} parameter 请求对象 + * @returns + */ +export function Page (parameter) { + return request({ + url: Api.page, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 添加用户 + * @param {*} parameter + * @returns + */ +export function Add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 编辑 + * @param {*} parameter + * @returns + */ +export function Edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改用户状态 + * @param {*} parameter + * @returns + */ +export function ModifyState (parameter) { + return request({ + url: Api.modifyState, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + diff --git a/src/api/user/userAuth.js b/src/api/user/userAuth.js new file mode 100644 index 0000000000..4ef44b8828 --- /dev/null +++ b/src/api/user/userAuth.js @@ -0,0 +1,79 @@ +/** + * 上游接口配置 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/user/userAuth/page', + /** + * 添加或更新,传id更新 + */ + save: '/user/userAuth/save', + // 删除 + removeByIds: '/user/userAuth/removeByIds', + // 批量审核 + batchReview: '/user/userAuth/batchReview', +} +/** + * 批量审核 + * @param {*} parameter + * @returns + */ +export function BatchReview (parameter) { + return request({ + url: Api.batchReview, + method: 'put', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 批量删除实名 + * @param {*} parameter + * @returns + */ +export function BatchRemove (parameter) { + return request({ + url: Api.removeByIds, + method: 'delete', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} + +/** + * 添加或更新,传id更新 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} \ No newline at end of file diff --git a/src/api/web/basic.js b/src/api/web/basic.js new file mode 100644 index 0000000000..4457845911 --- /dev/null +++ b/src/api/web/basic.js @@ -0,0 +1,100 @@ +/** + * 网站配置-基本配置 + * @date 2021年11月17日 上午9:47:10 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + get: '/web/basic/get', + save: '/web/basic/save', + // 删除logo + removeLogo: '/web/basic/removeLogo', + // 删除背景图片 + removeBackgroundImg: '/web/basic/removeBackgroundImg', + // 获取用户协议 + getUserAgreements: '/userAgreements/get', + // 获取隐私政策 + getUserPrivacyPolicies: '/userPrivacyPolicies/get', +} + +/** +* 获取用户协议 +* @returns +*/ +export function GetUserPrivacyPolicies () { + return request({ + url: Api.getUserPrivacyPolicies, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 获取用户协议 +* @returns +*/ +export function GetUserAgreements () { + return request({ + url: Api.getUserAgreements, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 删除背景图片 +* @returns +*/ +export function RemoveBackgroundImg () { + return request({ + url: Api.removeBackgroundImg, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 删除logo +* @returns +*/ +export function RemoveLogo () { + return request({ + url: Api.removeLogo, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 查询 +* @returns +*/ +export function Get () { + return request({ + url: Api.get, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 保存配置 + * @param {*} parameter + * @returns + */ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} diff --git a/src/api/web/beian.js b/src/api/web/beian.js new file mode 100644 index 0000000000..ac9c832283 --- /dev/null +++ b/src/api/web/beian.js @@ -0,0 +1,55 @@ +/** + * 网站配置-客服配置 + * @date 2021年11月18日 下午3:30:16 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + list: '/web/beian/list', + save: '/web/beian/save', + remove: '/web/beian/removeById' +} +/** +* 删除 +* @param {*} parameter +* @returns +*/ +export function Remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 保存 +* @param {*} parameter +* @returns +*/ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 查询全部备案信息 +* @returns +*/ +export function List () { + return request({ + url: Api.list, + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/web/poster.js b/src/api/web/poster.js new file mode 100644 index 0000000000..bab5c31f49 --- /dev/null +++ b/src/api/web/poster.js @@ -0,0 +1,119 @@ +/** + * 网站配置-基本配置 + * @date 2021年11月17日 上午9:47:10 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + list: '/web/poster/list', + remove: '/web/poster/remove/byId', + add: '/web/poster/add/add', + edit: '/web/poster/edit/byId', + getCreatePosterImg: '/web/poster/modify/getCreatePosterImg', + modifyMosterConfig: '/web/poster/modify/posterConfig', + modifyState: '/web/poster/state/modify' +} +/** +* 修改状态 +* @param {*} parameter +* @returns +*/ +export function modifyState (parameter) { + return request({ + url: Api.modifyState, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 海报参数修改 +* @param {*} parameter +* @returns +*/ +export function modifyMosterConfig (parameter) { + return request({ + url: Api.modifyMosterConfig, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 查看生成的海报 +* @param {*} parameter +* @returns +*/ +export function getCreatePosterImg (parameter) { + return request({ + url: Api.getCreatePosterImg, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 编辑 +* @param {*} parameter +* @returns +*/ +export function edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 添加 +* @param {*} parameter +* @returns +*/ +export function add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 删除 +* @param {*} parameter +* @returns +*/ +export function remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 查询全部客服 +* @returns +*/ +export function list () { + return request({ + url: Api.list, + method: 'post', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/web/webService.js b/src/api/web/webService.js new file mode 100644 index 0000000000..5ea1786bd7 --- /dev/null +++ b/src/api/web/webService.js @@ -0,0 +1,151 @@ +/** + * 网站配置-基本配置 + * @date 2021年11月17日 上午9:47:10 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + list: '/web/service/list', + modifyIsShow: '/web/service/isShow/modify', + remove: '/web/service/operation/remove', + add: '/web/service/add/add', + edit: '/web/service/operation/edit', + imgModifyIsshow: '/web/service/imgConfig/modifyIsshow', + imgSaveName: '/web/service/imgConfig/saveName', + uploadImg: '/web/service/imgConfig/uploadImg', + imgConfigGet: '/web/service/imgConfig/get' +} +/** +* 获取客服二维码信息 +* @param {*} parameter +* @returns +*/ +export function imgConfigGet (parameter) { + return request({ + url: Api.imgConfigGet, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 上传修改二维码图片 +* @param {*} parameter +* @returns +*/ +export function uploadImg (parameter) { + return request({ + url: Api.uploadImg, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 保存二维码说明 +* @param {*} parameter +* @returns +*/ +export function imgSaveName (parameter) { + return request({ + url: Api.imgSaveName, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 修改二维码显示状态 +* @param {*} parameter +* @returns +*/ +export function imgModifyIsshow (parameter) { + return request({ + url: Api.imgModifyIsshow, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 编辑 +* @param {*} parameter +* @returns +*/ +export function edit (parameter) { + return request({ + url: Api.edit, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 添加 +* @param {*} parameter +* @returns +*/ +export function add (parameter) { + return request({ + url: Api.add, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 删除 +* @param {*} parameter +* @returns +*/ +export function remove (parameter) { + return request({ + url: Api.remove, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** + * 修改显示状态 + * @param {*} parameter + * @returns + */ +export function modifyIsShow (parameter) { + return request({ + url: Api.modifyIsShow, + method: 'post', + data: qs.stringify(parameter), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} +/** +* 查询全部客服 +* @returns +*/ +export function list () { + return request({ + url: Api.list, + method: 'post', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/withdrawal/allRecord.js b/src/api/withdrawal/allRecord.js new file mode 100644 index 0000000000..4aafbf3a26 --- /dev/null +++ b/src/api/withdrawal/allRecord.js @@ -0,0 +1,25 @@ +/** + * 全部提现记录 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + // 分页 + page: '/withdrawal/allRecord/page', + +} +/** + * 分页 + * @param {*} parameter + * @returns + */ +export function Page(parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} diff --git a/src/api/withdrawal/bankAccount.js b/src/api/withdrawal/bankAccount.js new file mode 100644 index 0000000000..ecf1da7f4a --- /dev/null +++ b/src/api/withdrawal/bankAccount.js @@ -0,0 +1,41 @@ +/** + * 查询-查询配置 + * @date 2021年11月2日 上午9:50:33 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + page: '/withdrawal/bankAccount/page', + remove: '/withdrawal/bankAccount', +} + +/** +* 删除提现账号 +* @param {*} parameter +* @returns +*/ +export function Remove (id) { + return request({ + url: Api.remove + '/' + id, + method: 'delete', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) +} + +/** + * 分页 + * @param parameter + * @returns {*} + */ +export function Page (parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }) +} diff --git a/src/api/withdrawal/config.js b/src/api/withdrawal/config.js new file mode 100644 index 0000000000..062ba929c9 --- /dev/null +++ b/src/api/withdrawal/config.js @@ -0,0 +1,37 @@ +/** + * 提现管理-基本配置 + * @date 2021年11月4日 下午12:41:51 + */ +import request from '@/utils/request' +import qs from 'qs' + +const Api = { + get: '/withdrawal/config/get', + save: '/withdrawal/config/save' +} + +/** +* 保存配置 +* @param {*} parameter +* @returns +*/ +export function Save (parameter) { + return request({ + url: Api.save, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) +} +/** + * 获取配置 + * @returns + */ +export function Get () { + return request({ + url: Api.get, + method: 'get', + }) +} diff --git a/src/api/withdrawal/record.js b/src/api/withdrawal/record.js new file mode 100644 index 0000000000..fcc7fbb49d --- /dev/null +++ b/src/api/withdrawal/record.js @@ -0,0 +1,44 @@ +/** + * 查询-查询配置 + * @date 2021年11月2日 上午9:50:33 + */ + import request from '@/utils/request' + import qs from 'qs' + + const Api = { + // 分页 + page: '/withdrawal/record/page', + + // 修改状态 + modifyState: '/withdrawal/record/modifyState' + } + + /** + * 修改状态 + * @param {*} parameter + * @returns + */ + export function ModifyState (parameter) { + return request({ + url: Api.modifyState, + method: 'post', + data: parameter, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } + /** + * 分页 + * @param {*} parameter + * @returns + */ + export function Page (parameter) { + return request({ + url: Api.page + '?' + qs.stringify(parameter), + method: 'get', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + }) + } diff --git a/src/assets/audio/remind.mp3 b/src/assets/audio/remind.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2613e773372c77bb51573dd2b2bf0f8e63c832eb GIT binary patch literal 17509 zcmeI(bzDF7!U}+gk(`UpA{JDW6%HJ@qab& ze>L#`(;5KIl=?yBp>GAfO&Qb1~GiuugNbY*zl{Bz_jaNB#6LboP(EkO6e<5VIh-*4oRL>>mm^>`L0Ys z%s?WK0nSwV`KYMiAZ&+|0O=4$KjGZHJztLa*0AvLs!6&6e zDaDwc;;FyT$Tn6ck0uZ&(V>B{Y!Pc+Z@<}EwGCZ)GD1t)A3&h=olVe<82nuZ1o{o5 zpr(^x#DSDpvxi~KT1wzmp_y+x#ry+R^43M?nYFr4Xc(F*DQMbHFm{UdyQ0*o$YP!I zjgg2DWcJz;ONGMQz$5%!3~<9nD+sFCZXithTG>-K872=RiFdrMo8|C?vP|%|HQkQ; z&NdFj#OQpQ?U3XNnu$$KR45P=W%;Ve;u00gbEmH`MgB8W3`iix@P(#>bmh!O^?ROuD0taVk*l{218i4kN0rFp3NQ|<*qdR5anth6`&r~I2b z*GA3;;*!yG0g|_w3WDhza(ml)la@8S^|7CC5yV!%^2RqJA2p`uQOfYefgrHo-sE5{ zO3+dI9pt=zg+yGByct zQ`5k4t4ZP($lS?Lxj%yfB;v>Q#qS5V+@H{_QL1m(3>4QqKWOP)6K(o&AZof1B3*Ez zC+PPb;z*)S-efj6%(1tFs1~wq=73A%jD1lA0vx!R1+#2Zv*{C^Zo1?Em@*V!cC~1n z(4FGs7s9cPz%R7)-qT!evfZ(zY{=7s?Vrdz%X#9@T`y>6AwvgwAinggdRKEcf}Jpx(YMxY?I zi;ucH{5p5PFchFW$;iTc3Xz3>-{y5w@%i_01E33MIUyWeo3}FIL91 z0OzlcV^nfKZvZIf_w}(m^cSB^&drvq%1PPOOekJ@|4)or>Po{_;zk}FBCjTQ`*45e z(f$M%!G`RW;~TAJNDuW@c= zny~>YjOqaZQ#2>vY(~i7subAMZ|QL2#f@@x7W$I<+$D4d8XFLLxAE2d*LXM4Mb-rE zc7Qb1!((Q?HeRi*Y)b{(o2vB7!D5Pu>?8CK?w}rHV!zk{3;a63(t^F*25|5I02bNi zxvPZ0oN;V!R=N|n94GP`Zb#-faVLc|9yAO`t1-~;pW_PvS4WyuJ1--3rBeL6R{~cK zMd}iGF!9W07M~|7R14>EAT{b!c_MqI*#rSz;P(aqRIYVCR7%(^r+jzGSFeLst}cB~ zINK*{?tAn55$IRhj1gS$CE{k1i)TS$ATmhCkrC0&5vJ`ipNdY1VMV9N5a3Hy)+j$d zXGr*yh#bd0RNh`HIFJd9S{q~UoU&~BAqti_TEn|JDf|iX?tT#Lv;Xz66NTv=QjgTD z&LpKc|4Zch_45qUoVy(tf4~tamH=trCFIrKb3oxwC#I}%&pk%O1wi%ZH~^S{rA|)X z7Xm&a_FKexPr7g*d+2HY>5cPvVf5&scBK9T6Kiospd>JQ9EPW=;&rcHO$KMK`U{cD~AxR(n)!>U*d*R)3324m~RbB~04nE7vda9Erg9KNG1$n&CiE z%;Fm33Qt#f2rCGL>+E<)OCN|kt<>YybEL}tJ}?XYE{43m3g3C<`S1zsA_G_#Gql@` z0ZncH9HQ5a@nTC!$;lUFT^Ob5j|f5yQ_~sT^nvz~H~e^K7YIyjujt;b+nU8VkUI;b z%7JaTnTGE{Q>BOT4w5j{neD&wu9N8S~pIg>w8d}YYRJ}L2hPHa<9>epg! zRrxCwK3nF;ddDQs;Esk>Tra`K;bnbViUtQ6>pdXoo*u6g}Gp>KJ}2O>&kfYhNO|Q^qh7{fs?x=mq4nLGj@7R3`R_Xv}BMJu+pcyW@ zWQou}!emO1ozDS9p_Um}D|=nREu!g*{8X%w1_$1RIqfxP6TiN@Ab|@wEv`M+ayeUl zAxfcD;X4foW7IpJw^1h&i*qolqBn2Ad&nBOv%mo<5eU~c7?GD zl7t%99XXPWq^k{C{hqI1@kRY1EgbqPkixRJ&%Q4A(=z(;T3a|N4kXU7rEy>%Va5~n z7{-FSTz^}v2Ncavpo*n2hH6Mm%m*dAhUN8XaVqVD+t~=9Jn1d~+)P_hG6)CJe@-MG zy<&JP1CxkB#ZR$(+wYK=H^sd8oqa9R>x>$b77LqWrKi$B;6NOV#nwCa{jg#-jx;+f zDNPC^Ki%TFC9&V!1(=XIo+42mHDA?Tz9w(Roz`NE-yp%rAsU=nX|{5%&Z`|OsZKaW zu>nk~K@kAZM$iFl{`NI(stRfw6AU7JGVK4+Vz}Rw^F0o9n~qEaV;`PA(+#hC92fmJ z;15MNg^f}ZVOl{ZG>byEj+1l*ctb&Zh1_;0n#>6*^=Scsd~rXTT(!r6Kw?3&k82$+-tS@XUI&{M1sUsR6qJs1L5qUQ4hFn(UF5G|lqJC|F- z==!-P0;v0d4R&(^)J1pkxd{@A);sQAfN>x)_?gDBeFTGvJ!j=3iUfCjmg(DL1_|P~ zFtnQPT!{7fYz_oU`Fzb{0eDWzjmo>=wgCVuLg3=I$#KE?lr%55+80l=M7q5);Iv{7 zTYo?!Ftq7YV42s(Cno`B|2i2`i3364*VvXIzAV-c(r&j}$c-4zVb!Y=rtIcZDADHJ zKHW^++2M?G_eDP>Enl4g_GD(g%T637g8{&ZAGq!e?6~=HMs?G*^}gu7f8YXe^TQt- z>M9j+B{cn_yDc=)xyJ~3i~~X7sVb-T;nu^8scifo{hK?I%+6ATs}q!Wm-MfMl`VcV+O$7S40Wwa#88N^wv6S0Wj5y*bdbJ z;57^S#Kz^OgxL4|Z|DPoM`#S?ld-|cvq-lE7X3fb<|ZE7eR3V#KuinQ=PTU=MF9J089a9`w8|ZAfoW1Z&c%0HpV>_IEo+ssTop*)#Ta$rMw+%ez`vc zi7n-*X3gcX535o?IebfH+T4@TS^3>~LTwhy+ut%|)ia-U>B`g#^BOOCVb{894R~tYmxlPma2rTh#>sc#5&r2FL@uq#7@}pWGwH+x~vr zxQ^^U5L8=x$DV8%-bEx%*}UTQI1$4C(>Ay!c3zzinOAPlu&3>7^2VVwaPf?Mu5idFl1la0Bx-2D)%JdjntR0yZCwPFw-~O; z(Zf`V4(vT?Dz$6HNy?|rsd%4j@buTU!jY&cLdO~al>;aK{0X_LK<0}LQNTjRNy%&z ztMoV+xH690037zs;M*d!A9%@D&Hu!>e0AcJRJ$(}{M#W^{G#Q-tF`e{+lQKDw^w9T)mpEzE9p5u|~JQf{xj1Ik@4;+e;eqVd%fGW`&mO=nUX#EWwNR}oCGJpla_fjiu z%dn&Br<&Q~KV^o2Jn3D}W=%|3MJ z;<>TD)Ggw6A7zf+Ti>`)sWw~z7A=dfUpF8z8z`>Z01k8ymIE2L4`=WJFwWeZL`rmB zef3BH+ok}FByyXdlEm>#Z`@bMFLtS&7pBQ1MRFOCL* zd^PLy_%|^9J@y6IHy`hk<{ClYs(!US6%M2Uvw<{7k?oLwZ&bj&1^`OXG?ewt zW;E;rQ|o-Ai|FqabELV`rM}>%88V5L0TE-u#+~ZE&G2fy=s1Rzj`<{TG;;$2llfFi z3wVguM%@DZ7qG=huvC^0LjTZB5>w+q2Jjs09l~E`V8vcTdm$?CcmJF->%136Y%>tu z@U+VWm4O0 zMcHBH0B!aLL5Tg>H)&Dd?PaWSAVXStY@i4;DSR!%d`WCDU{~?Rmi|-Qi^TUQQ>0I= zVt)vA_O(k>LB}W4zpE*I6-|3X;YV;Gtu9GsBF5WCFi8Zps6kB=lYY*zz?f>{Q@SEQ zSJRHCbJ{#~MNWWk93hH0kUsqkWEuwofNj^QW9{r$O6zI;M4qJ;xR}5nRun(|(Bm-D zszW27)0Y}#$3ms9VAmQO!T93e`~LAZp8=sbhWFpDzg2E+|L~I_as%d*m?3)Fxl=Kfse&u}wj#Uxi)(2V%sV%{a$&ixkB;;m(`Eh&@y8;)S+u>k>q9;qkc zz&^_+a6RAaDd?EH;wdNjgyNCg)A;3k8^QA+E5dXnAQ4sGBn65yOl0q<7oF4sR}sKS zB1>^`Wat|qFVZ79c{;-7mPjVDXaO|q9OCt{Bhx&#QNJS+2G7%y^Rc_dhTZP`@-QK0 z@4uj@!!SMq3U*+(*R5x1N#u08~*ioTF(3oLFJ*pDT>kOsy(Ce?t0Cr*aKJ97vC;8%d>74*K< zO&TT{-@rxuJK#G-RWBitS2WP`$r>g%(JAo)-SB1+(NC7AER3`!{QZ*DViE`9piPBz z*%L9q#d(vaid>aqbO7Bf5D#H1AM#&z@*edUJ@V8b0W_e4k}V9!hC;c}F%i^#CF9nQ z8^yI?>`g2?Z;<;Ji+?V1OSeBqS+GeYGuGwcPO}>!6-U8Uv+{2l9Eb%z0;y@o#$jCd z3)FJ`;*3DKlY{sfS!!EuX7@xGH-JN{kok7>q?)qQM_z2P%_$jVUt<)$&VZ){Dog*1 z^jXr3O7@{2A^j$J@P3%nch&Yp-3{-n2qOi0Yy z<{cN>739N!*ndGluUOyEvB!2d(HQ|uqF2zPL}Um6$k$Lxr&CFh@2i=;OZ{JvDL&$^p;X?iw=683PSUkm{{wmWlcHWnKtz zC<>mUp3MhFp=yt8fXe{(4Q!=lbM=0lO(Fd;%oacZ)ssN0dET+|7u=ZQEFJIxbFuf4#suMeVKK3KxTi-x~O=qw@DH2nGz0H_bJUYc& zJ;V52l5x2*E7;;u*^(hZ+8niBkQuGZ1o+VZRQ*F~O^glo?u)|;&(yS=%>$}VK(jK1 z(0T6@&`jARTBH9rQf$){A_1wVcK^sWoyZZzpVEi%0namNyM-1V6L7+5Myii{{xF z?7x;zIy5fRG|}Coo2`d?fGf*;#eh#aE`d-F#KNLI%{OoS4)cuLedoP&JT zUqt=e+T`f%=yqrwsy#k_| zKUxP|73XSe#ImK7&6W;j7hD~p802F0vo3rmfaLJCF4-Tg zM>r4}Er&)4xKIh?q_YweW@3gszu{&wQXjx~ayO3z`)yerewt4Ii~^|SqY2e10JI!! z*Ee<|h!+4{-VHg?+&1}A?tsOA?nVGFKf1j!r@g>-hUC8w*{-CKw8!8VpHBv!6z5;*Fo-KoIB; z=VNnAjlagvZfwEF%wjbGTj2T5Wg`Vzc7_zjD7P3|z0sd4Zy5dopQqvp)w}B~KV;Qw zdg~_LAxm@BroWC1v~u8-m=XztvAz#_49J+_J}k;82o; z6Bc_S!zbj|S9)5DT$t{e4Db=vw>P(?r0Bph#=_^N?9He++Id^hK0An=Uv!z`z30x7 zCW7Zt8S4F!Fc9v}Y>nkyO^2StmIQDdN}>OgP9nksLw`bvX4Yb5mhv+PlVqgkiETx7%X~ z35rV56DzZF?0w)@bnm|9Zfz5=T_O? z!isG>f9d|M+9qyoLV&2MiHNpPoS zp?*joKEiWx-0iWDSqsg6z^FGF#2ZKbR`6xC;ld|k^>1dJN)jx@w6f!teXeQ><6Mu> zM2wfo1cMW4ob7vFw=WGId`^kAM!F*f7){e2r4-x6c9jBrPjMhUsMjlM`=Mc$cQ4V8 zyS-cke%})R=H|I+k~VfbVc5pI)wAW7+g*-|^++pYY@7ev%=q)}3^1PzoFaA|+U_@m z9Q;y|)DQG9*UfnuO{RC`dp7NyYq_Nqji#wfev#jlQDs4-jsw}i81G8ihxSX62htq8 znlm#$yenuITMyDqAm=@w-FSyM-k72Z(Kzo8^oh*gzs4M;AJF{8~=n&EE4ZrOZxRx$Pa^|``^_S-A~TYW{H_SKZ>H9ciD_uXkeUnaKt_hr38^@ zQsQ-F>!Sjty?LrTB(F1VO+EEzzFLz~LJRC(1@tBxV}~S4{eI9;B;3}~Smj;o`vmE6 zo`(pVC9geH;3rqTsu&mEa!;uLTzBhO{su*?h1kkLShU51?wcen@Un+S;s*N6=M7(T zNxhKWFP(l)(PR-5?FX8p8s| zs}qqPp3UZtFS#FW>zbNOGJl@FR#&qlIoQxs++`5P{(n&FPlP#@aoqI8r8A3(^V6f; zhRfL#B38o&PZs$})6%@k(JVzbEBAn=K~ggY3bPU>FU}OGXVk4T&3Tw3R;O2^nJNKS%t$5 z@!VN;!5a=gAKmQ6+%*E)qUbG2@D?)(dj+=(9!ldt@hswE>*m7*7)Je?LW$n-al^m( zR#V-;^-Q2udHLZdfR$F0mmt%Kwq;u2{RdSYrumDT0kLnKg_PVvd8zp#TBI(r8ZzYs zMEp7ef;Cf;UQBa?SD*&B*_wI_e)*}B!)p^sE*!{{X-4>+)H3AP6VFX|UGHbXQ8BJG zxe2}bvWz|;UCp(JcO_ZOuG&ODZrRm-{MUE(gNv3;u5Rm0T)M&iX*;l1uTYDwaE)i8 zx0EF}A31QelWfvuOnD@WWUSCpW{e!CnQ!Ivi6+AE0fgEY}7rt zTY-Sw&sNot;Z;q3U+!yLT?ph;{OA%OM@xGrTVlhMSH&(qm+`PTI+@+D3RJEHeX$jm znlp`ECL2Mowtu9W{gHH+rMD)tlKJ+36GGOn}+$W-lM_9u$Y?{?7u zaB;mmzw4&ZHe5t_)jrsg5p-p>x%9kx-Z8iQsc{N^>4##bOxgM; zIV2_(vtfZEc|3|gNcB~Dn6PHJJNF+E4n#pK$FON0LGZIjYNAE_%SV6CIk}2JCPCzt z;Tv*&%u7Lv3HN8iCPMHr0jY~gZ>Bk42Mh1Ys+wofB|oLw%}q=?ks?xBb85FFzN54R zpV3cmGAo`R1`EIGKMh{sH2zLhH57*fk;5w|i0u3N85Z?vn<7RRO<&3*?yJi{D+aqT z8nhMtd*3xn27*4$`D|m7U4vyb*u7`PH=3T0Joz|_m_eZKH+w+3FxOL6$d2I1w)5(! z#mIZU1)}~%%YoHdTp&Yci3WwM037HRT=o91&%*=`%K=}yepH*qFMnqw8FhZT8$if1cOO0=aQzJ*R`4oLittJFXG;5QANx^eJ6FsPKz20yUj6nU*Sj z-Jw+7E9x%Fw1M&62pRrM{ zj@wt7CHGvch~@L2d{gx~Saq!A;9ZK~`u^Kio~qa1kb;w>e6>m^o9oTLBSvu+T{`)< zZ7D^GuNq!w>k`rXniX%$i{8P3s9*=h_zX(V%?j(A8zW{ckbm|N)sV>Pb&-eVDJl%*@ zp@G9>jnJsIc+1YhD6D_(b&0?sp{fIwv&pNNDz1<8DDTwz!m!YcwgM1IwCGVd85apn zf}E;Rgw{R(PHb})cEL-jpA)7ft;(`a5n$cf_P12;qtR>0+@G@@2`W*=P`~GnH_H(DQA7~_suX{UfP63=~qC^17T>N*zmoj02Uxc3{J+9ejG;5Qe z(Tm~Q5)YgR7o-wzVHOL;CVj9u1t=K4WBRZ^^v|ZV=)GtXpR^e>wQi9Q&;w#Zw{#w5 zk_B1oQdK+XK_2%@;|^+FNAk3z%wLpSJ}th1AGd_R=Ufy>z8c)RfYQ=mmT!!CS?+`T zF6$c><*OY%0wMS7q`)bn`Z$mRjPjbo{^4*q=$R%(vw1Bc8GVrrlJ3Cx2>@K1JpeOG z+>s+zV!7X$6~J)ReZ9aSYb5yjiia=azJaD5G1KZR4TZ>SfhaAFUCiw+chGvi@=5hQ zqZ-KjU-usMg}D!BDwwh1KpHR*X6J7NWE9L?YVob|`3A6W0percD{<`kLbvS3!f%hb z7|vt6db03q-?e$GVi;Pey+XgM#OtuFZ+ z!O3cZ_`4zmaK-Fh4#I(qp^K--7?*jO!OAV=QHtcKFhc@j@9awLx8ug)AXC0%HHD>~ z$dn@{4zj)Io!3fdC`cA5!D!lh@ek+3kt0ewC)@%Z`K4qEe366Nj1fNW0xM4){`7lO z5=G&Exr|zVTVeJX2eN}vzFWV)0x@)v5BM88kMv;j>O9?l44{KBvSXhRgr4ZstQh^< zf6fBV1|7bG18R_mIxppf#cricfBJ3&eHHTHV|VzZDyz&>mXh$K?-k1B5+cz@ylyY; zHr5KBEx1*jo|-1(K%NXxvB~ofTIk4zJi~7s17H83_Ftry_CikH1JHra;EEgcm>B z>$TJ~i?^*NcfE@nl0y)TfuO2i@*P(%k57C>KQrETFIV$aG}iTfxA^S`IzEmw1M_5% zZjd%WMU8(Oo9Dx>6hf!v$rwa5E-GYeFX!{UZmF3335WCGEjnlC0>3t|TQscBx97av z6R+)@HJON58;epKZLH@^FN#`6zS}aWx-6tUS};rDj(ytyE}S^tW7yD(*wROpT9)6?_(Ud~~_mGB!Q%lU537Tss(W##ar?i)cga<*Dun2)x+g zml==#<(P-7IBl4m36Zs9zj>vDVbHj%yo{@Q_R{yPkGpMAlvZ(eO!-DHDce?0W1^ya z@N+yFyX?sdpV4`!k-L@5HuM1_ow+rfEgXmiyY`lmCv0LBuIEqB3k{hfekO_N@LL@L zd0EBnKe3~2rG7J*^2_7X#r~J!%`t*g!Tc?w4gbcE9~6>ZE>uIPC92n#536~csrj@1 zDm&sC=qyqGxU`v@4%d<-1=RVFRLGjr>A2_m^Lrl+#n`|6!{F>Q@}kJ}fG zg+Zj&hkH1X1FVwgz;v-cUo(oC-B&bokI_fIGvw*5{RCTpi~nsWMHOG&f$qDuu&z=E z;B0sKRU4_fim!b2ZqVUHBztevidD6ZfgW0MO0c$!yL~X3iL|dtA#pE2RB-#gbN)Qs z{6fkLyV{Oz+E6(N20QP1=foyTRz%D^W&R`0Su((ZTjAUo$R9xfyBf@iY3%?87;yL{ zOjELt7#Sig7YTDdjzR#KuKv9(|0r-M6rjlqT;sWb1I^D^FG zMQkQmr9T+PLGjnNZ-6>8d9u;T2Z@>V9yVV&b|2;{Afh!@4SsCel%=G}#qHecO#_lR zxpDYyJsW5iM;Nl;odk(uRMGkSX?DVCTAIA7AiPyj+OzDbX#)P-(J+UYIMi^+#^0Ie z67>!TiiT;!e|!$@&o9Alop>7th_$^lb|=e|>8+m-KGG0Rh+sFm3U_rIv;86EsCl z==P>s&%SLFk$^v~>;_*}>9jrr{?zb`NZFULXu7yRx#qdj#1ekycr?c9&+C7cIzOH9 z+rWWdKnvG9KZhmA1Wh|Eou)82rg?%Lmptx4Uk7n@n?6}ZepoU=5)RxKZ66DAs2*s% z@x|^xF?>lz66kJ4Xu3sxB+uv^5Rw&)b&#YGZO{?jX4A(9b^WX3Ac`&5#Iq;y$fR|& zB4E2C`r&4}hU5za9Pj2Cx`T^`3_qeojUN)Tl29R7fT`Zim{2%dO!I_CJ4Ok^a{lXl z-oi-T;~(qLfiBHezs03}yQGE??iujwn?6&Tz771kceiXl0nV@Hl)!lR4(-dICfFq0 z(E2=pQPCZ!;3sR*DC)+~?XKt6dVGD6NE1Q8Ytk45Ctwb_e)LCQ*5nqwaa!M7YTO;_ z<~m%C8!0pd#XGWOB{51EIhJU_#gmqo>LL8vZhdY|PyLj5N2@(MPdEpH)ViwNtQir- z-VVS5Io-80v)7Fzu#4u6d|~I|#4Alt-xb8uK;}McRgUj}7xA`R7CvrOCSZ+S%T?-+ zWt^d?$(x`9tuUZ1=bqM!bS8%6E2dTM&<6BLP;P|C`JMjIw1$m6L9b3`a`R!B;|!&X z*fRWf|DbjW?q<`B0u*yCQJR8bY;XE4_Q;v^n>%*Xhrh3`|78M~rxW!13t|p&ARlg> z`^`;XmL$g~=GENKIIJ&D4)@`~EeJ;OFz3GE$0&EpRJdu68`F`9h#%e#@mv6i3q;D5 ztwiusqh#O?fcUf%kRyjN_Bf;weA}(kJhJl2>)7`ashFxex=`BKTJlY|fK*sCiSj`YSG6T3K6}kaED74Hw$ANCqdZ%*O z@*0=PAJfKL#nx3dq$Xv8MD^9Ec0XKs1gSff%+{ z=tghRXQl@hv#*|*v*+-10t*F)DoE@W2aJnlbdnGztQ|1YW0W2~SGsVdD+)kpeE{ia z4>}DJ`BJi-nh4H~rxrp+w|%B8-hVXNs1aYjGd9-vX2Ca%5eE{6r4X%~dqawB$7@#B z#AOvV5OX9d)WMwI+X-adA!qL9c6ZAfE)JX(Z%2?cL{n@AXuh~LnFGC$7E$F0(wp|) zx@AhUCC24`1lO_=G;e;bOnLRYhib&pb=7i;HfF$JaloDz2a<+*77f@B#U(A4)~F>u z)AqSgsFOsC`>HtuzWYWAz6aHTW}zKZpgv0L!l+!`KotE!AZO_r5|(md9#y4#+LPt#>`GjIJ^BNGA=B^Qc6O^ia{he$BYnd~YEaA?{O^1a_tKZgJlesv z!1Nq-NZ+tDN-_XL@o;RZL!iM!O=iJ{fo~X}xhMq(B8P!?DKI?)y$?8iNI?%aD3<3L zo0eJBlI8lyQ};;Phn;1Lvd|yP6p=1ubfGlVNr~OVNoo%NNFwH5J(l#SDW+1$kQ{uU zYQR-&bzlTyerCbJma0ry>NfAn$p%wC^B!f>z=3F?rxeSWXOJX#?1yBaSz*6;?4Xz_ zypdAWVBdX2T%fDvU00(trX@I2S@9gG_YRiNP2MmM&j1+#Xs2u7nM1oSctGekSR3xH za4ePg#&&6xr(xa?B4JKzeS+5LHnw|UKZOHv!i%WK&4+YvdR_PWVS&LViO@OA+9k*@ zQ@LhZ-*?6Q^zmf~2TZNFz%90J{U^PbLhd=*(Ia(Vp*3=3f z4ZBTIAEivVOjfb%5aR5J%>~*_{w2hLIBDwbcg$ml)Bl~g*4U*boi?;KqEYnYd(q&{ z0_EF)f1RL8Xg6R0BLv-9Z6p3fh`b6;Z##>Rqc#tLwD=MCU7T{Y8qcyj2#Dg3A8 zw>ypWrO!FzIFGJC^Yh`q`)|bU+s!kDLAiiJT-qVByL?rq=o}4X)fc9S7Bpxx3Y@FSl zfOIEFvX#$*`6S;Y!`3kTGg0RE+UC0{`-@(~rDoMn10$czS@Pg_AMQ{lXdVIg9X7B{ znT;(@6yl;>lC&wvNzw?pdZ=201F1o~e6icM^~|@m+qRWE6wZ-TGa<=dFOo9a^FhY7 zjsxBKubG5X!c5*w(Mbr~xASiC)=zEJJ$RMXuJUZ`ek?N~2`5MCIqAsBxs^LKXM9+t zw-f!5#gDuy{Q|j`G#EJ;f?Xa`={JN%=SVXtz0lT*ODZ)a0fjKxcQOozF24iw&GD_(ao z9y}-v@_qmUgNL5(Oe?s2oOi~7?4c@eF>(5PP7<4OP{!C;rCj<@U z7VY)Sk?@<^xl6wPZnGI!ldk)=<*pYqTgoCN=#+Ii@eIj%{d6us=b_fW?&y1hmw6ll zEO!f}bg7LYw?*1yT@U6BaiB-gEbRkS_<)rl^S!)znF@~Fs+PmR^4!t1U*a>8+S~(Z z0?Xmo?vFIt8F;u21EXCGV$y+;GIhndU-?FadOSvtN%r(=%lL$y zCGGkQ*ArBR*{I}!0j~%S6b4h){;S_hVE*v{o|Jn6Az^v7Qu8!x7?W*X)fWRy z;ng)Uv!uSa}q;hlSeRaOQ@!;o7s;V)L49<_(15N z+M_fBK)d{4rPW>fzb|;jLjN^j%zg5S;_WINOc?G|S&NKJQqx&M%*}hsskm-9XSbcT z&k?mE+%Y+#aFWhwJMoFrKw8@S+ZPG8l=pb{;Gs!zT7Gyn4ifspGFoFKQGQW0|yzPZmI7yBFFxkuLg5I@63oosDtQo^`+ zqoKrXs@Tq84@XY=@FeN zDi!^z)qKxp#2#U1l2{OY=kfQz0q?lj;~+|BqP*tftvSTSvC*5t+)bygG#N({y_9-*xlUVF_=3F@?Q&fy)X^#{q_IE5;)(gHSt?|oN zifmz-qaypTz8gM4LW5nBlY>; zXK5w}{LZi!|IJtvxvC)3QePHJWB67=M#o2dFBg?*xWit!6@-I8Od!6ppD~+1cf(*I zS~5~+bYfqIl43>5(Aj9EOT(vU1)uZ&8b@ZCNIyf|y_$CzDplE58l1{;F%`+`dnW2l zQnzp1@TS%CISyn<-(Y{jqG|lG$$&oSg`W(BiI6zMnLGm-=;6M=P!Mhwn&^=jNd;=c zd-(WZcwPi`%%yLPal22Kv&6<_of;Z6l zgEIlE1QghvG1#FG{h2hB#VM665deaMvbpxWLS!RfykmYHo5#}Zd>5EQoCClw7qT@A zPW+c%1&JHKTsYp)a5`x}uMW|DlGkYZ9%7Hh+AacQ-7&EfVu_O*&@xaQsv zKEDnL1ORMa4!i4%dTE#8CR~lda)5<}>IIY*nv>#I+cdx3@v<%G@v^x|vgZ`HA$X(~ zqrU!xX>m(eMx9ROrn`&CuRPsjypu3~Y{6N+b)bgt@u%JSyT-R>{ga(<($qrbct!X_ z4xQ~2Ayl?F&;y#n$`h7^Y)Ut0!$ME>yky<*3He<$l>@}9z_oP|P$)sv?jwh~foM5P ziVy%5{lK}A{Jo}5o0Nr80^iqrO*Fw;L%|ticpJLL7@(_c;Eu3S>xsPe=g-eQR?k^y zqx)j_p>J>?UARBP&a-)PLy`FvcD5TYZWqPP*RSPrdCuCG7@mNLnInwtd(eoX67FBu z#g=d5aucoRoQLk1 zD0XVB)UQMJZ+*M{;bg5vop7{D+dU`0@YAod&k-wyT6Ft(ztBzm3>z08>N|8l=i3_X z+bH=~=_LP*2=E!w==tRIb~a}rFcY+tmyDR5m`}Mmu6du|{aTAddlI`sSzd&9ZC1|Q zi~fR(V^7W2wcq}5-dmka`)PJr(5gya^i~y`hp40ize-2&7v9K-`T(Q>?_fBoEPuZ! zM($r%K((Q6(#h;QzKhJ=jDs{#`D0A^2mE(S-)g?qULyZFFw>kkdWPUlT}57q2d}EB zC*dm2532MUV~_O^aSYd}zLR|}Z#45UF)Y=sd)^H|BY+3!<>r=iwEj&k;o;`14d7ML zZ<*@Mf?ridQGdKz&y?XcJnd3GDU4U85(Icokmtn?ee%%Zu|}_Cr|}QZBJNND9&l;ocSnO6M{bjv<45`11yy zxn?TlOYbZ+Vm4kO{d~%))=xJ$tk>Oe48MR;O5@(o(>LZyfmttX_?j5rXC_>1;y~#z z4*T_I;cC_F6Xjux-Yp11%M2gWn0tB{c777ts%b6m4$uan0IwS>gO})hUc;CEHh!mg zdR4o0NO>kLb&nHoO16*!q^|B^pV@FJp+A)&bb_R-Pd)loqN=eDJ*3N0o#MaL_6z70 zr0r#B|IyRmd1BwHRka1XY75EOemr-gX4j^B*FYsK_#FO9Bn01z&X05r_P32@S&K0Q zXw3*Y0?q_3ClIJgo{#C8dqPw!%qMArI}6Chlib6WXN?OjSB~GmbnN0OW#T~9u=3iM z_6!=D6|LB5owmWW*8{mrpil zAW7;a5JTta7E$Ojl~S_95+b^hAt9s6l)Jy#V$=){k9R?&>#_jgV1WG^t5Sb61t>-k z#-J-m3PBPWd6tH(_Ctl7w>p{1O< zV}q`;p1QcOtgNtP!~b^RK(DCxPYqWg56b_y7ydt9!-3k#_rO>0Na8^Mk7fO@Z~y-Q D(FU;k literal 0 HcmV?d00001 diff --git a/src/assets/icons/diqiu.svg b/src/assets/icons/diqiu.svg new file mode 100644 index 0000000000..09c9ccd1eb --- /dev/null +++ b/src/assets/icons/diqiu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/feiji.svg b/src/assets/icons/feiji.svg new file mode 100644 index 0000000000..70d74fd4ef --- /dev/null +++ b/src/assets/icons/feiji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/huoche.svg b/src/assets/icons/huoche.svg new file mode 100644 index 0000000000..e4efb6cb6b --- /dev/null +++ b/src/assets/icons/huoche.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/ka.svg b/src/assets/icons/ka.svg new file mode 100644 index 0000000000..16c264248c --- /dev/null +++ b/src/assets/icons/ka.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/play-o.svg b/src/assets/icons/play-o.svg new file mode 100644 index 0000000000..800e04235d --- /dev/null +++ b/src/assets/icons/play-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/play.svg b/src/assets/icons/play.svg new file mode 100644 index 0000000000..4eeba7e8e6 --- /dev/null +++ b/src/assets/icons/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/qiche.svg b/src/assets/icons/qiche.svg new file mode 100644 index 0000000000..c1a7687db3 --- /dev/null +++ b/src/assets/icons/qiche.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/renminbi.svg b/src/assets/icons/renminbi.svg new file mode 100644 index 0000000000..0ea63e293d --- /dev/null +++ b/src/assets/icons/renminbi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/shuji.svg b/src/assets/icons/shuji.svg new file mode 100644 index 0000000000..f2aa98a703 --- /dev/null +++ b/src/assets/icons/shuji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/xinhao.svg b/src/assets/icons/xinhao.svg new file mode 100644 index 0000000000..feb457067b --- /dev/null +++ b/src/assets/icons/xinhao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/yinyue.svg b/src/assets/icons/yinyue.svg new file mode 100644 index 0000000000..fe366dd554 --- /dev/null +++ b/src/assets/icons/yinyue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/youxi.svg b/src/assets/icons/youxi.svg new file mode 100644 index 0000000000..9834144899 --- /dev/null +++ b/src/assets/icons/youxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/zuanshi.svg b/src/assets/icons/zuanshi.svg new file mode 100644 index 0000000000..8960d414be --- /dev/null +++ b/src/assets/icons/zuanshi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/GlobalFooter/index.vue b/src/components/GlobalFooter/index.vue index ee1e92c927..50ad7f9962 100644 --- a/src/components/GlobalFooter/index.vue +++ b/src/components/GlobalFooter/index.vue @@ -1,23 +1,85 @@ diff --git a/src/components/GlobalHeader/AvatarDropdown.vue b/src/components/GlobalHeader/AvatarDropdown.vue index a6c89b65dd..6da87a341b 100644 --- a/src/components/GlobalHeader/AvatarDropdown.vue +++ b/src/components/GlobalHeader/AvatarDropdown.vue @@ -1,18 +1,13 @@