├── vue └── y9vue-interfacePlatform │ ├── src │ ├── views │ │ ├── 404 │ │ │ └── index.vue │ │ ├── parameter │ │ │ └── limitinfo.vue │ │ └── interfaceTest │ │ │ └── testWindow.vue │ ├── layouts │ │ └── components │ │ │ ├── IconSvg │ │ │ ├── index.ts │ │ │ └── index.vue │ │ │ ├── ALink │ │ │ └── index.vue │ │ │ ├── Icon.vue │ │ │ ├── useTopMenuWidth.ts │ │ │ ├── search │ │ │ └── index.vue │ │ │ └── RightTopMessage.vue │ ├── assets │ │ ├── font │ │ │ └── yjsz.TTF │ │ ├── images │ │ │ ├── bg.jpg │ │ │ ├── logo.png │ │ │ ├── yun.png │ │ │ ├── app-icon.png │ │ │ ├── bg-smooth.jpg │ │ │ ├── meeting.jpg │ │ │ ├── menu-bg1.png │ │ │ ├── menu-bg10.png │ │ │ ├── menu-bg5.png │ │ │ ├── menu-bg7.png │ │ │ ├── menu-bg8.png │ │ │ ├── menu-bg9.png │ │ │ ├── touxiang.png │ │ │ ├── yunLogo.png │ │ │ └── youshengyunLogo.png │ │ ├── icons │ │ │ ├── png │ │ │ │ ├── cloud.png │ │ │ │ ├── file.png │ │ │ │ ├── metro.png │ │ │ │ ├── search.png │ │ │ │ ├── folder-open.png │ │ │ │ ├── node_home.png │ │ │ │ ├── node_system.png │ │ │ │ ├── user_female.png │ │ │ │ ├── user_gray.png │ │ │ │ └── user_male.png │ │ │ ├── treeIcon │ │ │ │ ├── group.png │ │ │ │ ├── folder_user.png │ │ │ │ ├── user_female.png │ │ │ │ ├── user_male.png │ │ │ │ └── chart_organization.png │ │ │ └── svg │ │ │ │ ├── home.svg │ │ │ │ ├── pagelist.svg │ │ │ │ ├── s-fold.svg │ │ │ │ ├── s-unfold.svg │ │ │ │ ├── editor.svg │ │ │ │ ├── roles.svg │ │ │ │ ├── users.svg │ │ │ │ ├── chart.svg │ │ │ │ ├── layers.svg │ │ │ │ ├── tree.svg │ │ │ │ ├── ask.svg │ │ │ │ ├── control.svg │ │ │ │ ├── message.svg │ │ │ │ ├── pagedetails.svg │ │ │ │ ├── history.svg │ │ │ │ ├── pageform.svg │ │ │ │ ├── other.svg │ │ │ │ ├── page.svg │ │ │ │ ├── set.svg │ │ │ │ ├── monitoring.svg │ │ │ │ ├── image-text.svg │ │ │ │ └── y9-logo.svg │ │ ├── css │ │ │ ├── tablestatusfontcolor.css │ │ │ └── nprogress.css │ │ └── iconsvg │ │ │ ├── arrow-up.svg │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-left.svg │ │ │ ├── arrow-right.svg │ │ │ ├── svgo.yml │ │ │ ├── refresh.svg │ │ │ ├── close.svg │ │ │ ├── home.svg │ │ │ ├── list.svg │ │ │ ├── arrow-left2.svg │ │ │ ├── icon.svg │ │ │ ├── arrow-right2.svg │ │ │ ├── more.svg │ │ │ ├── search.svg │ │ │ ├── editor.svg │ │ │ ├── close2.svg │ │ │ ├── menu-fold.svg │ │ │ ├── menu-unfold.svg │ │ │ ├── chart.svg │ │ │ ├── bnb-fill.svg │ │ │ ├── control.svg │ │ │ ├── message.svg │ │ │ ├── detail.svg │ │ │ ├── user.svg │ │ │ ├── pwd.svg │ │ │ ├── language-outline.svg │ │ │ ├── edit.svg │ │ │ ├── page.svg │ │ │ ├── permissions.svg │ │ │ └── set.svg │ ├── theme │ │ ├── blue │ │ │ └── blue.scss │ │ ├── green │ │ │ └── green.scss │ │ ├── global-vars.scss │ │ ├── dark │ │ │ └── dark.scss │ │ └── default │ │ │ └── default.scss │ ├── api │ │ ├── test │ │ │ └── index.ts │ │ ├── logMonitoring │ │ │ └── logMonitoring.ts │ │ ├── apply │ │ │ └── apply.ts │ │ ├── serviceResourceIndicators │ │ │ └── serviceResourceIndicators.ts │ │ ├── execute │ │ │ └── execute.ts │ │ ├── blacklisting │ │ │ └── blacklisting.ts │ │ └── systemidentifier │ │ │ └── systemidentifier.ts │ ├── language │ │ ├── index.ts │ │ ├── zh.json │ │ └── en.json │ ├── router │ │ ├── modules │ │ │ ├── authInfoRouter.ts │ │ │ ├── flowInfoRouter.ts │ │ │ ├── interfaceRegister.ts │ │ │ ├── testInterfaceRouter.ts │ │ │ ├── blacklistingRouter.ts │ │ │ ├── executeRouter.ts │ │ │ ├── systemidentifierRouter.ts │ │ │ ├── homeRouter.ts │ │ │ ├── interfaceRouter.ts │ │ │ ├── approveRouter.ts │ │ │ ├── logMonitoringRouter.ts │ │ │ ├── personalInterfaceRouter.ts │ │ │ └── mangeInterfaceRouter.ts │ │ ├── getInitData.js │ │ └── checkRole.js │ ├── store │ │ ├── index.ts │ │ └── modules │ │ │ └── routerStore.ts │ ├── utils │ │ ├── echarts.ts │ │ ├── watermark.ts │ │ └── validate.ts │ └── settings.ts │ ├── public │ └── yun.ico │ ├── .prettierignore │ ├── .eslintignore │ ├── prettier.config.js │ ├── index.html │ ├── tsconfig.json │ ├── README.md │ ├── .env.production │ ├── .env.development │ ├── .eslintrc.js │ └── package.json ├── y9-module-interface ├── risenet-y9boot-support-interface-approve │ ├── lombok.config │ └── src │ │ └── main │ │ └── java │ │ └── net │ │ └── risesoft │ │ ├── util │ │ ├── BizException.java │ │ └── RestUtil.java │ │ ├── model │ │ ├── ThresholdType.java │ │ ├── ApplyType.java │ │ ├── InterfaceStatus.java │ │ ├── Effect.java │ │ ├── ParameterType.java │ │ └── ApproveStatus.java │ │ └── service │ │ ├── StatisticsService.java │ │ └── ApproveService.java ├── risenet-y9boot-webapp-interface-platform-execute │ ├── lombok.config │ └── src │ │ └── main │ │ ├── java │ │ └── net │ │ │ └── risesoft │ │ │ ├── util │ │ │ ├── BizException.java │ │ │ ├── RestUtil.java │ │ │ └── WebServiceForwardUtil.java │ │ │ ├── InterfaceServletInitializer.java │ │ │ ├── model │ │ │ ├── ThresholdType.java │ │ │ ├── ApplyType.java │ │ │ ├── InterfaceStatus.java │ │ │ ├── Effect.java │ │ │ ├── ParameterType.java │ │ │ └── ApproveStatus.java │ │ │ ├── service │ │ │ └── UseInterfaceService.java │ │ │ ├── InterfaceExecuteApplication.java │ │ │ ├── config │ │ │ ├── CheckLoginFilter.java │ │ │ └── RestConfig.java │ │ │ └── controller │ │ │ ├── RestInterfaceManageController.java │ │ │ └── UseInterfaceController.java │ │ └── resources │ │ ├── logback.xml │ │ └── banner.txt ├── risenet-y9boot-webapp-interface-platform-manager │ ├── lombok.config │ └── src │ │ └── main │ │ ├── java │ │ └── net │ │ │ └── risesoft │ │ │ ├── util │ │ │ └── BizException.java │ │ │ ├── InterfaceServletInitializer.java │ │ │ ├── model │ │ │ ├── ThresholdType.java │ │ │ ├── ApplyType.java │ │ │ ├── InterfaceStatus.java │ │ │ ├── Effect.java │ │ │ ├── ParameterType.java │ │ │ └── ApproveStatus.java │ │ │ ├── service │ │ │ ├── BlacklistingService.java │ │ │ ├── ParameterService.java │ │ │ ├── SystemIdentifierService.java │ │ │ ├── AuthDictService.java │ │ │ └── InterfaceApplyService.java │ │ │ ├── InterfaceManagementPlatformApplication.java │ │ │ └── config │ │ │ ├── CheckLoginFilter.java │ │ │ └── TokenFilterConfig.java │ │ └── resources │ │ ├── logback.xml │ │ └── banner.txt ├── risenet-y9boot-support-interface-jpa-repository │ └── src │ │ └── main │ │ └── java │ │ └── net │ │ └── risesoft │ │ └── y9public │ │ ├── vo │ │ ├── UserData.java │ │ ├── AuthSelectVo.java │ │ └── ApplyVo.java │ │ ├── repository │ │ ├── ViewApproveRepository.java │ │ ├── SystemIdentifierRepository.java │ │ ├── BlacklistingRepository.java │ │ ├── InterfaceLimitInfoRepository.java │ │ ├── ParameterRepository.java │ │ ├── CallApiLogRepository.java │ │ ├── AuthDictRepository.java │ │ └── ApproveRepository.java │ │ ├── entity │ │ ├── InstanceNum.java │ │ ├── BaseEntity.java │ │ ├── SystemIdentifier.java │ │ └── Blacklisting.java │ │ └── dto │ │ ├── ViewApproveDTO.java │ │ ├── ParameterDTO.java │ │ ├── AuthDictDTO.java │ │ └── ApproveDTO.java └── pom.xml └── .gitignore /vue/y9vue-interfacePlatform/src/views/parameter/limitinfo.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/layouts/components/IconSvg/index.ts: -------------------------------------------------------------------------------- 1 | import iconsvg from "./index.vue"; 2 | 3 | export default iconsvg; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/public/yun.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/public/yun.ico -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/.prettierignore: -------------------------------------------------------------------------------- 1 | /dist/* 2 | .local 3 | .output.js 4 | /node_modules/** 5 | 6 | **/*.svg 7 | **/*.sh 8 | 9 | /public/* 10 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/font/yjsz.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/font/yjsz.TTF -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/bg.jpg -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/logo.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/yun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/yun.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/cloud.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/file.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/metro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/metro.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/search.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/app-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/app-icon.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/bg-smooth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/bg-smooth.jpg -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/meeting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/meeting.jpg -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/menu-bg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/menu-bg1.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/menu-bg10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/menu-bg10.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/menu-bg5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/menu-bg5.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/menu-bg7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/menu-bg7.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/menu-bg8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/menu-bg8.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/menu-bg9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/menu-bg9.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/touxiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/touxiang.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/yunLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/yunLogo.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/folder-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/folder-open.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/node_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/node_home.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/node_system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/node_system.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/user_female.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/user_female.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/user_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/user_gray.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/png/user_male.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/png/user_male.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/group.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/images/youshengyunLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/images/youshengyunLogo.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/folder_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/folder_user.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/user_female.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/user_female.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/user_male.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/user_male.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | *.sh 3 | node_modules 4 | *.md 5 | *.woff 6 | *.ttf 7 | .vscode 8 | .idea 9 | dist 10 | /public 11 | .husky 12 | .local 13 | /bin 14 | Dockerfile 15 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/chart_organization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/risesoft-y9/API-Platform/HEAD/vue/y9vue-interfacePlatform/src/assets/icons/treeIcon/chart_organization.png -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/css/tablestatusfontcolor.css: -------------------------------------------------------------------------------- 1 | .successText{ 2 | color: #67c23a!important; 3 | } 4 | .stopText{ 5 | color: red!important; 6 | } 7 | .otherText{ 8 | color: #e27005e1!important; 9 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/arrow-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/arrow-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/arrow-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/arrow-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.toString.doNotUseGetters=true 2 | lombok.toString.callSuper=call 3 | 4 | lombok.equalsAndHashCode.doNotUseGetters=true 5 | lombok.equalsAndHashCode.callSuper=call 6 | 7 | lombok.addLombokGeneratedAnnotation=true 8 | 9 | config.stopBubbling=true 10 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/util/BizException.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.util; 2 | 3 | public class BizException extends RuntimeException { 4 | public BizException() { 5 | } 6 | 7 | public BizException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.toString.doNotUseGetters=true 2 | lombok.toString.callSuper=call 3 | 4 | lombok.equalsAndHashCode.doNotUseGetters=true 5 | lombok.equalsAndHashCode.callSuper=call 6 | 7 | lombok.addLombokGeneratedAnnotation=true 8 | 9 | config.stopBubbling=true 10 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/util/BizException.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.util; 2 | 3 | public class BizException extends RuntimeException { 4 | public BizException() { 5 | } 6 | 7 | public BizException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.toString.doNotUseGetters=true 2 | lombok.toString.callSuper=call 3 | 4 | lombok.equalsAndHashCode.doNotUseGetters=true 5 | lombok.equalsAndHashCode.callSuper=call 6 | 7 | lombok.addLombokGeneratedAnnotation=true 8 | 9 | config.stopBubbling=true 10 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/util/BizException.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.util; 2 | 3 | public class BizException extends RuntimeException { 4 | public BizException() { 5 | } 6 | 7 | public BizException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/vo/UserData.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.vo; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | @Data 7 | @NoArgsConstructor 8 | public class UserData { 9 | private String id; 10 | private String name; 11 | } 12 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/theme/blue/blue.scss: -------------------------------------------------------------------------------- 1 | @forward "element-plus/theme-chalk/src/common/var.scss" with ( 2 | $colors: ( 3 | "primary": ( 4 | "base": #1e5896, 5 | ), 6 | ), 7 | $bg-color: ("":"#ffffff !default") 8 | ); 9 | 10 | // .theme-test2:root { 11 | // --primary-color: #448800; 12 | // --ddd: #55f900; 13 | // } 14 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/theme/green/green.scss: -------------------------------------------------------------------------------- 1 | @forward "element-plus/theme-chalk/src/common/var.scss" with ( 2 | $colors: ( 3 | "primary": ( 4 | "base": #4e9876, 5 | ), 6 | ), 7 | $bg-color: ("":"#ffffff !default"), 8 | $color-info: #ddd !default 9 | ); 10 | 11 | // .theme-test2:root { 12 | // --primary-color: #448800; 13 | // --ddd: #55f900; 14 | // } 15 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Build and Release Folders 2 | target/ 3 | 4 | # Eclipse 5 | .settings/ 6 | *.classpath 7 | *.project 8 | *.factorypath 9 | 10 | # IntelliJ IDEA 11 | .idea 12 | *.iml 13 | 14 | # vscode 15 | .vscode 16 | 17 | # JRebel 18 | rebel.xml 19 | 20 | # macOS 21 | .DS_Store 22 | 23 | # svn 24 | .svn/ 25 | 26 | # vue 27 | kernel-standard/ 28 | node_modules/ 29 | auto-imports.d.ts 30 | 31 | .flattened-pom.xml -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/refresh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/api/test/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import Request from "@/api/lib/request"; 3 | 4 | const platformRequest = Request(); 5 | 6 | 7 | /** 8 | * 获取字典类型列表 9 | * @param params 10 | * @returns 11 | */ 12 | export const getOptionClassList = async () => { 13 | return await platformRequest({ 14 | url: "/api/rest/optionClass/getOptionClassList", 15 | method: 'GET', 16 | cType: false, 17 | params: {}, 18 | }); 19 | }; 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/repository/ViewApproveRepository.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.repository; 2 | 3 | import net.risesoft.y9public.entity.ViewApprove; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | 8 | public interface ViewApproveRepository extends JpaRepository, JpaSpecificationExecutor{ 9 | 10 | } 11 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/home.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/home.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/InterfaceServletInitializer.java: -------------------------------------------------------------------------------- 1 | package net.risesoft; 2 | 3 | import org.springframework.boot.builder.SpringApplicationBuilder; 4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 5 | 6 | 7 | public class InterfaceServletInitializer extends SpringBootServletInitializer { 8 | 9 | @Override 10 | protected SpringApplicationBuilder configure(final SpringApplicationBuilder builder) { 11 | return builder.sources(InterfaceExecuteApplication.class); 12 | } 13 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/views/interfaceTest/testWindow.vue: -------------------------------------------------------------------------------- 1 | 7 | 13 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/InterfaceServletInitializer.java: -------------------------------------------------------------------------------- 1 | package net.risesoft; 2 | 3 | import org.springframework.boot.builder.SpringApplicationBuilder; 4 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 5 | 6 | 7 | public class InterfaceServletInitializer extends SpringBootServletInitializer { 8 | 9 | @Override 10 | protected SpringApplicationBuilder configure(final SpringApplicationBuilder builder) { 11 | return builder.sources(InterfaceManagementPlatformApplication.class); 12 | } 13 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/model/ThresholdType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 限流类型枚举类 5 | */ 6 | public enum ThresholdType { 7 | //自定义 8 | TYPE_ZDY("0", "自定义"), 9 | //QPS 10 | QPS("1", "QPS"); 11 | 12 | private final String enName; 13 | private final String name; 14 | 15 | private ThresholdType(String enName, String name) { 16 | this.enName = enName; 17 | this.name = name; 18 | } 19 | 20 | public String getEnName() { 21 | return enName; 22 | } 23 | 24 | public String getName() { 25 | return name; 26 | } 27 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/model/ThresholdType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 限流类型枚举类 5 | */ 6 | public enum ThresholdType { 7 | //自定义 8 | TYPE_ZDY("0", "自定义"), 9 | //QPS 10 | QPS("1", "QPS"); 11 | 12 | private final String enName; 13 | private final String name; 14 | 15 | ThresholdType(String enName, String name) { 16 | this.enName = enName; 17 | this.name = name; 18 | } 19 | 20 | public String getEnName() { 21 | return enName; 22 | } 23 | 24 | public String getName() { 25 | return name; 26 | } 27 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/list.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/model/ThresholdType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 限流类型枚举类 5 | */ 6 | public enum ThresholdType { 7 | //自定义 8 | TYPE_ZDY("0", "自定义"), 9 | //QPS 10 | QPS("1", "QPS"); 11 | 12 | private final String enName; 13 | private final String name; 14 | 15 | private ThresholdType(String enName, String name) { 16 | this.enName = enName; 17 | this.name = name; 18 | } 19 | 20 | public String getEnName() { 21 | return enName; 22 | } 23 | 24 | public String getName() { 25 | return name; 26 | } 27 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/pagelist.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | printWidth: 120, 3 | tabWidth: 4, 4 | useTabs: false, 5 | semi: true, // 末尾分号 6 | vueIndentScriptAndStyle: true, 7 | singleQuote: true, // 单引号 8 | quoteProps: 'as-needed', 9 | bracketSpacing: true, 10 | trailingComma: 'none', // 数组末尾逗号 11 | jsxBracketSameLine: false, 12 | jsxSingleQuote: false, 13 | arrowParens: 'always', 14 | insertPragma: false, 15 | requirePragma: false, 16 | proseWrap: 'never', 17 | htmlWhitespaceSensitivity: 'strict', 18 | endOfLine: 'lf', 19 | rangeStart: 0, 20 | }; 21 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/arrow-left2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/arrow-right2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/language/index.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { createI18n } from 'vue-i18n' 4 | //本地语言包 5 | import zh from './zh.json' 6 | import en from './en.json' 7 | 8 | // 获取本地框架配置 9 | const userSettingData = JSON.parse(localStorage.getItem('userSettingData')); 10 | 11 | const messages = { 12 | zh: { 13 | ...zh, 14 | }, 15 | en: { 16 | ...en, 17 | } 18 | } 19 | 20 | const i18n = createI18n({ 21 | locale: userSettingData?.webLanguage || 'zh', 22 | legacy: false,// 使用 Composition API 模式,则需要将其设置为false 23 | globalInjection: true,// 全局注入 $t 函数 24 | messages, 25 | }) 26 | 27 | export default i18n -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/model/ApplyType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 申请类型枚举类 5 | */ 6 | public enum ApplyType { 7 | //接口调用申请 8 | INVOKE("0", "调用"), 9 | //接口停用申请 10 | PUB_INTERFACE("2", "发布"), 11 | //接口发布申请 12 | STOP_INTERFACE("1", "停用"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | private ApplyType(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/model/ApplyType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 申请类型枚举类 5 | */ 6 | public enum ApplyType { 7 | //接口调用申请 8 | INVOKE("0", "调用"), 9 | //接口停用申请 10 | PUB_INTERFACE("2", "发布"), 11 | //接口发布申请 12 | STOP_INTERFACE("1", "停用"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | ApplyType(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/more.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/model/InterfaceStatus.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 接口状态枚举类 5 | */ 6 | public enum InterfaceStatus { 7 | //申请发布 8 | SUBMIT_APPROVE("1", "待发布"), 9 | //发布 10 | APPROVE("2", "发布"), 11 | //停用 12 | UN_APPROVE("3", "停用"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | private InterfaceStatus(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/model/InterfaceStatus.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 接口状态枚举类 5 | */ 6 | public enum InterfaceStatus { 7 | //申请发布 8 | SUBMIT_APPROVE("1", "待发布"), 9 | //发布 10 | APPROVE("2", "发布"), 11 | //停用 12 | UN_APPROVE("3", "停用"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | InterfaceStatus(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/model/ApplyType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 申请类型枚举类 5 | */ 6 | public enum ApplyType { 7 | //接口调用申请 8 | INVOKE("0", "调用"), 9 | //接口停用申请 10 | PUB_INTERFACE("2", "发布"), 11 | //接口发布申请 12 | STOP_INTERFACE("1", "停用"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | private ApplyType(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/model/InterfaceStatus.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 接口状态枚举类 5 | */ 6 | public enum InterfaceStatus { 7 | //申请发布 8 | SUBMIT_APPROVE("1", "待发布"), 9 | //发布 10 | APPROVE("2", "发布"), 11 | //停用 12 | UN_APPROVE("3", "停用"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | private InterfaceStatus(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | _____ _ __ ___ _ _ __ __ _ 2 | \_ \_ __ | |_ ___ _ __ / _| __ _ ___ ___ / _ \ | __ _| |_ / _| ___ _ __ _ __ ___ /__\_ _____ ___ _ _| |_ ___ 3 | / /\/ '_ \| __/ _ \ '__| |_ / _` |/ __/ _ \/ /_)/ |/ _` | __| |_ / _ \| '__| '_ ` _ \ /_\ \ \/ / _ \/ __| | | | __/ _ \ 4 | /\/ /_ | | | | || __/ | | _| (_| | (_| __/ ___/| | (_| | |_| _| (_) | | | | | | | //__ > < __/ (__| |_| | || __/ 5 | \____/ |_| |_|\__\___|_| |_| \__,_|\___\___\/ |_|\__,_|\__|_| \___/|_| |_| |_| |_\__/ /_/\_\___|\___|\__,_|\__\___| -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/service/UseInterfaceService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import net.risesoft.y9public.dto.InterfaceManageDTO; 4 | import org.springframework.http.ResponseEntity; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | import javax.servlet.http.HttpServletResponse; 8 | 9 | public interface UseInterfaceService { 10 | //接口转发 11 | ResponseEntity forward(String id, HttpServletRequest request,HttpServletResponse responseRt); 12 | 13 | //接口测试 14 | ResponseEntity testForward(InterfaceManageDTO interfaceManageDTO, HttpServletRequest request, HttpServletResponse responseRt); 15 | } 16 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/s-fold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/s-unfold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/model/Effect.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 流控效果枚举类:快速失败(1);Warm Up(2);排队等候(3) 5 | */ 6 | public enum Effect { 7 | //快速失败 8 | FAIL_FAST("1", "快速失败"), 9 | //Warm Up 10 | WARM_UP("2", "Warm Up"), 11 | //排队等候 12 | WAIT("3", "排队等候"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | private Effect(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/model/ParameterType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 数据类型枚举类 5 | */ 6 | public enum ParameterType { 7 | //INT类型 8 | INTEGER("integer", "integer"), 9 | //BOOLEAN 10 | BOOLEAN("boolean", "boolean"), 11 | //INT类型 12 | STRING("String", "String"), 13 | //DOUBLE 14 | DOUBLE("double", "double"); 15 | 16 | private final String enName; 17 | private final String name; 18 | 19 | private ParameterType(String enName, String name) { 20 | this.enName = enName; 21 | this.name = name; 22 | } 23 | 24 | public String getEnName() { 25 | return enName; 26 | } 27 | 28 | public String getName() { 29 | return name; 30 | } 31 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/model/Effect.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 流控效果枚举类:快速失败(1);Warm Up(2);排队等候(3) 5 | */ 6 | public enum Effect { 7 | //快速失败 8 | FAIL_FAST("1", "快速失败"), 9 | //Warm Up 10 | WARM_UP("2", "Warm Up"), 11 | //排队等候 12 | WAIT("3", "排队等候"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | Effect(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/model/ParameterType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 数据类型枚举类 5 | */ 6 | public enum ParameterType { 7 | //INT类型 8 | INTEGER("integer", "integer"), 9 | //BOOLEAN 10 | BOOLEAN("boolean", "boolean"), 11 | //INT类型 12 | STRING("String", "String"), 13 | //DOUBLE 14 | DOUBLE("double", "double"); 15 | 16 | private final String enName; 17 | private final String name; 18 | 19 | ParameterType(String enName, String name) { 20 | this.enName = enName; 21 | this.name = name; 22 | } 23 | 24 | public String getEnName() { 25 | return enName; 26 | } 27 | 28 | public String getName() { 29 | return name; 30 | } 31 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/editor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/editor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/api/logMonitoring/logMonitoring.ts: -------------------------------------------------------------------------------- 1 | 2 | import Request from "@/api/lib/request"; 3 | const platformRequest = Request(); 4 | 5 | /** 6 | * 获取接口日志下拉选项值 7 | * @returns 8 | */ 9 | export const getOptions = async () => { 10 | return await platformRequest({ 11 | url: "/api/rest/statistics/logMonitoring/options", 12 | method: 'GET', 13 | cType: false, 14 | }); 15 | }; 16 | 17 | /** 18 | * 获取接口日志信息 19 | * @returns 20 | */ 21 | export const getLogMonitoring = async (data) => { 22 | return await platformRequest({ 23 | url: "/api/rest/statistics/logMonitoring", 24 | method: 'POST', 25 | JSON:true, 26 | cType: false, 27 | data 28 | }); 29 | }; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/authInfoRouter.ts: -------------------------------------------------------------------------------- 1 | const interfaceRouter = { 2 | path: "/auth", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"authIndex", 5 | redirect: "/auth", 6 | meta: { 7 | title: "权限配置管理", 8 | icon: "ri-share-line",//remix 图标 优先级最高 9 | // elIcon: "House"//element-plus 图标 优先级第二 10 | }, 11 | children: [ 12 | { 13 | path: "/authInfo", 14 | component: () => import("@/views/auth/index.vue"), 15 | name: "authInfo", 16 | meta: { 17 | title: "权限配置管理", 18 | icon: "ri-share-line",//remix 图标 优先级最高 19 | // elIcon: "House"//element-plus 图标 优先级第二 20 | }, 21 | } 22 | 23 | ] 24 | }; 25 | 26 | export default interfaceRouter; -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/model/Effect.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 流控效果枚举类:快速失败(1);Warm Up(2);排队等候(3) 5 | */ 6 | public enum Effect { 7 | //快速失败 8 | FAIL_FAST("1", "快速失败"), 9 | //Warm Up 10 | WARM_UP("2", "Warm Up"), 11 | //排队等候 12 | WAIT("3", "排队等候"); 13 | 14 | private final String enName; 15 | private final String name; 16 | 17 | private Effect(String enName, String name) { 18 | this.enName = enName; 19 | this.name = name; 20 | } 21 | 22 | public String getEnName() { 23 | return enName; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/model/ParameterType.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | /** 4 | * 数据类型枚举类 5 | */ 6 | public enum ParameterType { 7 | //INT类型 8 | INTEGER("integer", "integer"), 9 | //BOOLEAN 10 | BOOLEAN("boolean", "boolean"), 11 | //INT类型 12 | STRING("String", "String"), 13 | //DOUBLE 14 | DOUBLE("double", "double"); 15 | 16 | private final String enName; 17 | private final String name; 18 | 19 | private ParameterType(String enName, String name) { 20 | this.enName = enName; 21 | this.name = name; 22 | } 23 | 24 | public String getEnName() { 25 | return enName; 26 | } 27 | 28 | public String getName() { 29 | return name; 30 | } 31 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/index.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 接口管理 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/model/ApproveStatus.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | 4 | /** 5 | * 审批状态枚举类 6 | */ 7 | public enum ApproveStatus { 8 | //未提交审批(初始状态) 9 | UN_SUBMIT_APPROVE("0", "未提交"), 10 | //未审批 11 | SUBMIT_APPROVE("1", "未审批"), 12 | //审批中 13 | NOW_APPROVE("2", "审批中"), 14 | //通过 15 | APPROVE("3", "通过"), 16 | //不通过 17 | UN_APPROVE("4", "不通过"); 18 | 19 | private final String enName; 20 | private final String name; 21 | 22 | private ApproveStatus(String enName, String name) { 23 | this.enName = enName; 24 | this.name = name; 25 | } 26 | 27 | public String getEnName() { 28 | return enName; 29 | } 30 | 31 | public String getName() { 32 | return name; 33 | } 34 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/model/ApproveStatus.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | 4 | /** 5 | * 审批状态枚举类 6 | */ 7 | public enum ApproveStatus { 8 | //未提交审批(初始状态) 9 | UN_SUBMIT_APPROVE("0", "未提交"), 10 | //未审批 11 | SUBMIT_APPROVE("1", "未审批"), 12 | //审批中 13 | NOW_APPROVE("2", "审批中"), 14 | //通过 15 | APPROVE("3", "通过"), 16 | //不通过 17 | UN_APPROVE("4", "不通过"); 18 | 19 | private final String enName; 20 | private final String name; 21 | 22 | ApproveStatus(String enName, String name) { 23 | this.enName = enName; 24 | this.name = name; 25 | } 26 | 27 | public String getEnName() { 28 | return enName; 29 | } 30 | 31 | public String getName() { 32 | return name; 33 | } 34 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/flowInfoRouter.ts: -------------------------------------------------------------------------------- 1 | const interfaceRouter = { 2 | path: "/flow", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"flow", 5 | redirect: "/flow", 6 | meta: { 7 | roles: ['V2'], 8 | title: "流程配置管理", 9 | icon: "ri-settings-3-fill",//remix 图标 优先级最高 10 | // elIcon: "House"//element-plus 图标 优先级第二 11 | }, 12 | children: [ 13 | { 14 | path: "/flowInfo", 15 | component: () => import("@/views/flownode/flow.vue"), 16 | name: "flowInfo", 17 | meta: { 18 | title: "流程配置管理", 19 | icon: "ri-settings-3-fill",//remix 图标 优先级最高 20 | // elIcon: "House"//element-plus 图标 优先级第二 21 | }, 22 | } 23 | 24 | ] 25 | }; 26 | 27 | export default interfaceRouter; -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/model/ApproveStatus.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.model; 2 | 3 | 4 | /** 5 | * 审批状态枚举类 6 | */ 7 | public enum ApproveStatus { 8 | //未提交审批(初始状态) 9 | UN_SUBMIT_APPROVE("0", "未提交"), 10 | //未审批 11 | SUBMIT_APPROVE("1", "未审批"), 12 | //审批中 13 | NOW_APPROVE("2", "审批中"), 14 | //通过 15 | APPROVE("3", "通过"), 16 | //不通过 17 | UN_APPROVE("4", "不通过"); 18 | 19 | private final String enName; 20 | private final String name; 21 | 22 | private ApproveStatus(String enName, String name) { 23 | this.enName = enName; 24 | this.name = name; 25 | } 26 | 27 | public String getEnName() { 28 | return enName; 29 | } 30 | 31 | public String getName() { 32 | return name; 33 | } 34 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | _____ _ __ ___ _ _ __ 2 | \_ \_ __ | |_ ___ _ __ / _| __ _ ___ ___ / _ \ | __ _| |_ / _| ___ _ __ _ __ ___ /\/\ __ _ _ __ __ _ __ _ ___ _ __ 3 | / /\/ '_ \| __/ _ \ '__| |_ / _` |/ __/ _ \/ /_)/ |/ _` | __| |_ / _ \| '__| '_ ` _ \ / \ / _` | '_ \ / _` |/ _` |/ _ \ '__| 4 | /\/ /_ | | | | || __/ | | _| (_| | (_| __/ ___/| | (_| | |_| _| (_) | | | | | | | / /\/\ \ (_| | | | | (_| | (_| | __/ | 5 | \____/ |_| |_|\__\___|_| |_| \__,_|\___\___\/ |_|\__,_|\__|_| \___/|_| |_| |_| |_\/ \/\__,_|_| |_|\__,_|\__, |\___|_| 6 | |___/ -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/interfaceRegister.ts: -------------------------------------------------------------------------------- 1 | const interfaceRegisterRouter = { 2 | path: "/register", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"register", 5 | redirect: "/register", 6 | meta: { 7 | title: "接口注册", 8 | icon: "ri-settings-4-line",//remix 图标 优先级最高 9 | // elIcon: "House"//element-plus 图标 优先级第二 10 | }, 11 | children: [ 12 | { 13 | path: "/interfaceInfo", 14 | component: () => import("@/views/interface/interfaceRegister.vue"), 15 | name: "interfaceInfo", 16 | meta: { 17 | title: "接口注册", 18 | icon: "ri-add-circle-line",//remix 图标 优先级最高 19 | // elIcon: "House"//element-plus 图标 优先级第二 20 | }, 21 | }, 22 | 23 | ] 24 | }; 25 | 26 | export default interfaceRegisterRouter; -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/InterfaceExecuteApplication.java: -------------------------------------------------------------------------------- 1 | package net.risesoft; 2 | 3 | import net.risesoft.y9.configuration.Y9Properties; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.boot.context.properties.EnableConfigurationProperties; 7 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 8 | 9 | 10 | @SpringBootApplication 11 | @EnableEurekaClient 12 | @EnableConfigurationProperties(Y9Properties.class) 13 | public class InterfaceExecuteApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(InterfaceExecuteApplication.class, args); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/close2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/testInterfaceRouter.ts: -------------------------------------------------------------------------------- 1 | const testInterfaceRouter = { 2 | path: "/testInterface", 3 | component: () => import("@/layouts/index.vue"), 4 | redirect: "/testInterface", 5 | name:"testInterfaceIndex", 6 | meta: { 7 | title: "接口测试", 8 | icon: "ri-dashboard-line",//remix 图标 优先级最高 9 | // elIcon: "House"//element-plus 图标 优先级第二 10 | }, 11 | children: [ 12 | { 13 | path: "/testInterface", 14 | component: () => import("@/views/interfaceTest/testDialog.vue"), 15 | name: "testInterface", 16 | meta: { 17 | title: "接口测试", 18 | icon: "ri-dashboard-line",//remix 图标 优先级最高 19 | // elIcon: "House"//element-plus 图标 优先级第二 20 | }, 21 | }, 22 | 23 | ] 24 | }; 25 | 26 | export default testInterfaceRouter; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/layouts/components/ALink/index.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/entity/InstanceNum.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.entity; 2 | 3 | public class InstanceNum { 4 | private Integer num; 5 | private String instanceId; 6 | 7 | public InstanceNum() { 8 | } 9 | 10 | public InstanceNum(Long num, String instanceId) { 11 | this.num = num.intValue(); 12 | this.instanceId = instanceId; 13 | } 14 | 15 | public Integer getNum() { 16 | return num; 17 | } 18 | 19 | public void setNum(Integer num) { 20 | this.num = num; 21 | } 22 | 23 | public String getInstanceId() { 24 | return instanceId; 25 | } 26 | 27 | public void setInstanceId(String instanceId) { 28 | this.instanceId = instanceId; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/vo/AuthSelectVo.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.vo; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import net.risesoft.y9public.entity.AuthDict; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * 构建权限信息前端下拉框数据 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | public class AuthSelectVo { 15 | private String id; 16 | private String label; 17 | private String value; 18 | private String pid; 19 | private Boolean disabled; 20 | private List children; 21 | 22 | public AuthSelectVo(AuthDict dto) { 23 | this.id = dto.getId(); 24 | this.label = dto.getShowVal(); 25 | this.value = dto.getFieldVal(); 26 | this.pid = dto.getPid(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/blacklistingRouter.ts: -------------------------------------------------------------------------------- 1 | const interfaceRouter = { 2 | path: "/blacklisting", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"blacklistingIndex", 5 | redirect: "/blacklisting", 6 | meta: { 7 | title: "黑名单管理", 8 | roles: ['systemAdmin'], 9 | icon: "ri-alert-fill",//remix 图标 优先级最高 10 | // elIcon: "House"//element-plus 图标 优先级第二 11 | }, 12 | children: [ 13 | { 14 | path: "/blacklisting", 15 | component: () => import("@/views/blacklisting/blacklisting.vue"), 16 | name: "blacklisting", 17 | meta: { 18 | title: "黑名单管理", 19 | roles: ['systemAdmin'], 20 | icon: "ri-alert-fill",//remix 图标 优先级最高 21 | // elIcon: "House"//element-plus 图标 优先级第二 22 | }, 23 | }, 24 | 25 | ] 26 | }; 27 | 28 | export default interfaceRouter; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/roles.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/executeRouter.ts: -------------------------------------------------------------------------------- 1 | const interfaceRouter = { 2 | path: "/executeManger", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"executeMangerIndex", 5 | redirect: "/executeManger", 6 | meta: { 7 | title: "执行端管理", 8 | roles: ['systemAdmin'], 9 | icon: "ri-list-settings-line",//remix 图标 优先级最高 10 | // elIcon: "House"//element-plus 图标 优先级第二 11 | }, 12 | children: [ 13 | { 14 | path: "/executeManger", 15 | component: () => import("@/views/execute/index.vue"), 16 | name: "executeManger", 17 | meta: { 18 | title: "执行端管理", 19 | roles: ['systemAdmin'], 20 | icon: "ri-list-settings-line",//remix 图标 优先级最高 21 | // elIcon: "House"//element-plus 图标 优先级第二 22 | }, 23 | }, 24 | 25 | ] 26 | }; 27 | 28 | export default interfaceRouter; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { createPinia } from 'pinia'; 2 | import { useSettingStore } from "./modules/settingStore"; 3 | // init pinia 4 | const pinia = createPinia() 5 | 6 | export function setupStore(app) { 7 | app.use(pinia) 8 | 9 | // 示例代码(持久化pinia的settingStore模块) 10 | const settingStore = useSettingStore() 11 | // settingStore-persist-key 12 | const persistKey = 'userSettingData' 13 | const object = localStorage.getItem(persistKey) && JSON.parse(localStorage.getItem(persistKey)) 14 | if (object) { 15 | for (const key in object) { 16 | settingStore.$patch({ 17 | [key]: object[key] 18 | }) 19 | } 20 | 21 | } 22 | settingStore.$subscribe((mutation, state) => { 23 | localStorage.setItem(persistKey, JSON.stringify(state)) 24 | }) 25 | } 26 | 27 | export default pinia -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/systemidentifierRouter.ts: -------------------------------------------------------------------------------- 1 | const interfaceRouter = { 2 | path: "/systemidentifier", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"systemidentifierIndex", 5 | redirect: "/systemidentifier", 6 | meta: { 7 | title: "系统标识管理", 8 | roles: ['systemAdmin'], 9 | icon: "ri-settings-4-line",//remix 图标 优先级最高 10 | // elIcon: "House"//element-plus 图标 优先级第二 11 | }, 12 | children: [ 13 | { 14 | path: "/systemidentifier", 15 | component: () => import("@/views/systemidentifier/index.vue"), 16 | name: "systemidentifier", 17 | meta: { 18 | title: "系统标识管理", 19 | roles: ['systemAdmin'], 20 | icon: "ri-settings-4-line",//remix 图标 优先级最高 21 | // elIcon: "House"//element-plus 图标 优先级第二 22 | }, 23 | }, 24 | 25 | ] 26 | }; 27 | 28 | export default interfaceRouter; -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/service/BlacklistingService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import net.risesoft.y9public.entity.Blacklisting; 4 | import org.springframework.data.domain.Page; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public interface BlacklistingService { 10 | 11 | /** 12 | * 获取page数据 13 | * @param blacklisting 14 | * @return 15 | */ 16 | Page getPage(Blacklisting blacklisting, int page, int limit); 17 | 18 | //删除信息 19 | Map delInfo(String id); 20 | 21 | Map saveInfo(Blacklisting blacklisting); 22 | 23 | Blacklisting getInfoById(String id); 24 | 25 | Map updateEnable(Blacklisting blacklisting); 26 | 27 | List getListByInterfaceId(String interfaceId); 28 | } 29 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/service/ParameterService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import net.risesoft.y9public.dto.InterfaceManageDTO; 4 | import net.risesoft.y9public.entity.Parameter; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public interface ParameterService { 10 | //根据接口id组装数据,并转为JSON 11 | Map getParameterData(String interfaceId,String method,String interfaceType); 12 | //保存参数数据 13 | Map saveParameterData(InterfaceManageDTO interfaceManageDTO); 14 | 15 | //根据接口id组装数据,获取必填参数 16 | List getRequiredParameterData(String interfaceId); 17 | 18 | //根据接口id集合获取参数数据 19 | List getParameterDataByInterfaceIds(List interfaceIds); 20 | 21 | //保存参数数据 22 | void saveAllParameterData(List list); 23 | } 24 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/menu-fold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/menu-unfold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/service/StatisticsService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * @author : lxd 7 | * @description : 用于统计首页可视化的统计数据 8 | * @createDate : 2024/10/30 14:48 9 | */ 10 | public interface StatisticsService { 11 | 12 | Map getInterfaceOverview(); 13 | 14 | Map getCallTrend(String type); 15 | 16 | Map getLogOverview(); 17 | 18 | Map getException(int page, int limit); 19 | 20 | Map getLogMonitoringInfo(Map conditionMap); 21 | 22 | Map getRealTimeLog(int page, int limit); 23 | 24 | Map getRunningCount(); 25 | 26 | Map getLogMonitoringOptions(); 27 | 28 | Map getInvokeNumToday(String id); 29 | } 30 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/users.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/InterfaceManagementPlatformApplication.java: -------------------------------------------------------------------------------- 1 | package net.risesoft; 2 | 3 | import net.risesoft.y9.configuration.Y9Properties; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.boot.context.properties.EnableConfigurationProperties; 7 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 8 | import org.springframework.transaction.annotation.EnableTransactionManagement; 9 | 10 | 11 | @SpringBootApplication 12 | @EnableEurekaServer 13 | @EnableTransactionManagement 14 | @EnableConfigurationProperties(Y9Properties.class) 15 | public class InterfaceManagementPlatformApplication { 16 | 17 | public static void main(String[] args) { 18 | SpringApplication.run(InterfaceManagementPlatformApplication.class, args); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/layers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/tree.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/bnb-fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "moduleResolution": "node", 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "allowSyntheticDefaultImports": true, 9 | "jsx": "preserve", 10 | "baseUrl": ".", 11 | "importHelpers": true, 12 | "isolatedModules": true, 13 | "sourceMap": true, 14 | "resolveJsonModule": true, 15 | "esModuleInterop": true, 16 | "noImplicitAny": false, 17 | "lib": [ 18 | "esnext", 19 | "dom", 20 | "dom.iterable", 21 | "scripthost" 22 | ], 23 | "types": [ 24 | "vite/client","element-plus/global" 25 | ], 26 | "paths": { 27 | "@/*": [ 28 | "src/*" 29 | ] 30 | }, 31 | }, 32 | "include": [ 33 | "src/**/*.ts", 34 | "src/**/*.d.ts", 35 | "src/**/*.tsx", 36 | "src/**/*.vue", 37 | "tests/**/*.ts", 38 | "tests/**/*.tsx" 39 | ], 40 | "exclude": ["node_modules", "dist", "**/*.js"] 41 | } 42 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/homeRouter.ts: -------------------------------------------------------------------------------- 1 | const homeRouter = { 2 | path: "/home", 3 | component: () => import("@/layouts/index.vue"), 4 | redirect: "/home", 5 | name:"homeIndex", 6 | meta: { 7 | title: "首页", 8 | icon: "ri-home-8-line",//remix 图标 优先级最高 9 | // elIcon: "House"//element-plus 图标 优先级第二 10 | }, 11 | children: [ 12 | { 13 | path: "/home", 14 | component: () => import("@/views/home/home.vue"), 15 | name: "home", 16 | meta: { 17 | title: "首页", 18 | roles: ['V1'], 19 | icon: "ri-home-8-line",//remix 图标 优先级最高 20 | // elIcon: "House"//element-plus 图标 优先级第二 21 | }, 22 | }, 23 | { 24 | path: "/home", 25 | component: () => import("@/views/home/home-v2.vue"), 26 | name: "home", 27 | meta: { 28 | title: "首页", 29 | roles: ['V2'], 30 | icon: "ri-home-8-line",//remix 图标 优先级最高 31 | // elIcon: "House"//element-plus 图标 优先级第二 32 | }, 33 | }, 34 | 35 | ] 36 | }; 37 | 38 | export default homeRouter; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/ask.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/control.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/control.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/theme/global-vars.scss: -------------------------------------------------------------------------------- 1 | // logo宽度 2 | $logoWidth: 34px; 3 | // 菜单宽度 4 | $leftSideBarWidth: 260px; 5 | // 头部高度 6 | $headerHeight: 60px; 7 | // 头部下方面包屑高度 8 | $headerBreadcrumbHeight: 80px; 9 | // 头部下方面包屑宽度 10 | $headerBreadcrumbWidth: 1000px; 11 | // 头部面包屑下tab导航高度 12 | $headerTabNavHeight: 36px; 13 | // Menu 14 | $menu-collapsed-width: 54px; 15 | // menu separate后的边界宽度 16 | $sidebar-separate-margin-left: 20px; 17 | //pc main-padding 18 | $main-padding: 35px; 19 | //mobile main-padding 20 | $mobile-main-padding: 15px; 21 | // 固定背景色 22 | $background-color: #eff1f7; 23 | 24 | // 滚轴适应性和样式 25 | @mixin scrollbar { 26 | ::-webkit-scrollbar { 27 | width: 6px; 28 | height: 6px; 29 | } 30 | ::-webkit-scrollbar-thumb { 31 | background: hsla(0,0%,100%,.2); 32 | border-radius: 3px; 33 | box-shadow: inset 0 0 5px hsla(0,0%,100%,.05); 34 | } 35 | ::-webkit-scrollbar-track { 36 | background: hsla(0,0%,100%,.15); 37 | border-radius: 3px; 38 | box-shadow: inset 0 0 5px rgba(37,37,37,.05); 39 | } 40 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/config/CheckLoginFilter.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.config; 2 | 3 | import java.io.IOException; 4 | 5 | import javax.servlet.Filter; 6 | import javax.servlet.FilterChain; 7 | import javax.servlet.FilterConfig; 8 | import javax.servlet.ServletException; 9 | import javax.servlet.ServletRequest; 10 | import javax.servlet.ServletResponse; 11 | 12 | import org.slf4j.Logger; 13 | import org.slf4j.LoggerFactory; 14 | 15 | 16 | public class CheckLoginFilter implements Filter { 17 | protected final Logger log = LoggerFactory.getLogger(CheckLoginFilter.class); 18 | 19 | @Override 20 | public void destroy() { 21 | } 22 | 23 | @Override 24 | public void init(final FilterConfig filterConfig) throws ServletException { 25 | } 26 | 27 | @Override 28 | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { 29 | chain.doFilter(servletRequest, servletResponse); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/config/CheckLoginFilter.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.config; 2 | 3 | import java.io.IOException; 4 | 5 | import javax.servlet.Filter; 6 | import javax.servlet.FilterChain; 7 | import javax.servlet.FilterConfig; 8 | import javax.servlet.ServletException; 9 | import javax.servlet.ServletRequest; 10 | import javax.servlet.ServletResponse; 11 | 12 | import org.slf4j.Logger; 13 | import org.slf4j.LoggerFactory; 14 | 15 | 16 | public class CheckLoginFilter implements Filter { 17 | protected final Logger log = LoggerFactory.getLogger(CheckLoginFilter.class); 18 | 19 | @Override 20 | public void destroy() { 21 | } 22 | 23 | @Override 24 | public void init(final FilterConfig filterConfig) throws ServletException { 25 | } 26 | 27 | @Override 28 | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { 29 | chain.doFilter(servletRequest, servletResponse); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/language/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "全局模块": "全局模块", 3 | "单一模块": "单一模块", 4 | "布局影响": "布局影响", 5 | "数字底座": "数字底座", 6 | "锁屏": "锁屏", 7 | "刷新": "刷新", 8 | "搜索": "搜索", 9 | "全屏": "全屏", 10 | "设置": "设置", 11 | "系统管理员": "系统管理员", 12 | "个人中心": "个人中心", 13 | "已签到": "已签到", 14 | "已签退": "已签退", 15 | "选择切换部门": "选择切换部门", 16 | "退出": "退出", 17 | "网站设置": "网站设置", 18 | "布局": "布局", 19 | "左右": "左右", 20 | "上下": "上下", 21 | "浮动": "浮动", 22 | "语言": "语言", 23 | "字号": "字号", 24 | "大": "大", 25 | "中": "中", 26 | "小": "小", 27 | "主题": "主题", 28 | "默认": "默认", 29 | "绿": "绿", 30 | "蓝": "蓝", 31 | "菜单背景": "菜单背景", 32 | "菜单动画": "菜单动画", 33 | "菜单宽度": "菜单宽度", 34 | "设置动画": "设置动画", 35 | "左移入效果": "左移入效果", 36 | "右移入效果": "右移入效果", 37 | "下拉效果": "下拉效果", 38 | "上拉效果": "上拉效果", 39 | "设置宽度": "设置宽度", 40 | "头部固定": "头部固定", 41 | "进度条": "进度条", 42 | "通知": "通知", 43 | "页面动画": "页面动画", 44 | "锁屏功能": "锁屏功能", 45 | "锁屏密码": "锁屏密码", 46 | "保存": "保存", 47 | "恢复默认": "恢复默认", 48 | 49 | "序号": "序号", 50 | "姓名": "姓名", 51 | "性别": "性别", 52 | "操作": "操作", 53 | "详情": "详情", 54 | "重要信息请勿泄漏": "重要信息请勿泄漏", 55 | "首页": "首页", 56 | "保守秘密,慎之又慎": "保守秘密,慎之又慎" 57 | } 58 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/layouts/components/Icon.vue: -------------------------------------------------------------------------------- 1 | 9 | 12 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/service/SystemIdentifierService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import net.risesoft.y9public.entity.SystemIdentifier; 4 | import org.springframework.data.domain.Page; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public interface SystemIdentifierService { 10 | 11 | /** 12 | * 获取page数据 13 | * @param systemIdentifier 14 | * @return 15 | */ 16 | Page getSystemIdentifierPage(SystemIdentifier systemIdentifier, int page, int limit); 17 | 18 | /** 19 | * 获取对应数据类型数据 20 | * @param type 21 | * @return 22 | */ 23 | List getSystemIdentifierList(String type); 24 | 25 | /** 26 | * 根据父级id获取数据列表 27 | * @param id 28 | * @return 29 | */ 30 | List getSystemIdentifierListByPid(String id); 31 | 32 | //删除信息 33 | Map delInfo(String id); 34 | 35 | Map saveInfo(SystemIdentifier systemIdentifier); 36 | 37 | SystemIdentifier getInfoById(String id); 38 | } 39 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/detail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/pagedetails.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Vite 2 | 3 | This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` 42 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/page.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/page.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/language/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "全局模块": "global module", 3 | "单一模块": "single module", 4 | "布局影响": "layout influence", 5 | "数字底座": "Digital Infrastructure", 6 | "锁屏": "screen lock", 7 | "刷新": "refresh", 8 | "搜索": "search", 9 | "全屏": "full screen", 10 | "设置": "settings", 11 | "系统管理员": "System administrator", 12 | "个人中心": "personal center", 13 | "已签到": "signed in", 14 | "已签退": "signed out", 15 | "选择切换部门": "select switch department", 16 | "退出": "quit", 17 | "网站设置": "Website settings", 18 | "布局": "layout", 19 | "左右": "left-right", 20 | "上下": "up-down", 21 | "浮动": "float", 22 | "语言": "language", 23 | "字号": "fontsize", 24 | "中": "middle", 25 | "大": "large", 26 | "小": "small", 27 | "主题": "theme", 28 | "默认": "default", 29 | "绿": "green", 30 | "蓝": "blue", 31 | "菜单背景": "menu background", 32 | "菜单动画": "menu animation", 33 | "菜单宽度": "menu width", 34 | "设置动画": "set animation", 35 | "设置宽度": "set width", 36 | "左移入效果": "shift left in effect", 37 | "右移入效果": "shift right in effect", 38 | "下拉效果": "drop-down effect", 39 | "上拉效果": "pull-up effect", 40 | "头部固定": "head fixed", 41 | "进度条": "progress bar", 42 | "通知": "notice", 43 | "页面动画": "page animation", 44 | "锁屏功能": "screen-lock function", 45 | "锁屏密码": "screen-lock password", 46 | "保存": "save", 47 | "恢复默认": "reset", 48 | 49 | "序号": "index", 50 | "姓名": "name", 51 | "性别": "sex", 52 | "操作": "action", 53 | "详情": "detail", 54 | "重要信息请勿泄漏": "Don't disclose important information", 55 | "首页": "Home", 56 | "保守秘密,慎之又慎": "Keep secrets with caution" 57 | } 58 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/service/InterfaceApplyService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import net.risesoft.y9public.dto.ApproveDTO; 4 | import net.risesoft.y9public.dto.InterfaceManageDTO; 5 | import net.risesoft.y9public.entity.*; 6 | import net.risesoft.y9public.vo.ApplyVo; 7 | import org.springframework.data.domain.Page; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | public interface InterfaceApplyService { 13 | 14 | /** 15 | * 获取page数据 16 | * @param interfaceManageDTO 17 | * @return 18 | */ 19 | Page getApproveList(InterfaceManageDTO interfaceManageDTO); 20 | 21 | //保存接口信息 22 | Map saveInfo(InterfaceApply apply); 23 | 24 | 25 | //生成接口调用申请审批信息 26 | Map createData(InterfaceApply apply,String interfaceStatus); 27 | 28 | 29 | //根据id查询申请信息 30 | InterfaceApply getApplyInfoById(String id); 31 | 32 | //获取已申请接口id 33 | List getInterfaceIdsByPersonId(); 34 | 35 | //获取对应接口的申请id 36 | List getApplyIdsByPersonIdAndInterfaceId(String interfaceId); 37 | 38 | //获取对应接口的申请信息 39 | InterfaceApply getApplyInfoByPersonIdAndInterfaceId(String interfaceId); 40 | 41 | //根据id查询申请信息 42 | Page getApplyListById(String id, Integer page, Integer limit); 43 | 44 | //根据id查询判断当前登录人是否已经通过接口调用申请审批 45 | Boolean findIsPass(String id); 46 | 47 | //生成用户key和密钥 48 | void createSecret(InterfaceApply interfaceApply); 49 | } 50 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/permissions.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/store/modules/routerStore.ts: -------------------------------------------------------------------------------- 1 | import { remove } from "lodash"; 2 | import { defineStore } from 'pinia'; 3 | 4 | export const useRouterStore = defineStore('routerStore', { 5 | state: () => { 6 | return { 7 | PermissionRoutes: [], 8 | tabs: [], 9 | activeRoute: '/index' 10 | } 11 | }, 12 | getters: { 13 | getPermissionRoutes: (state) => { 14 | return state.PermissionRoutes 15 | }, 16 | getTabs: (state) => { 17 | return state.tabs 18 | }, 19 | getActiveRoute: (state) => { 20 | return state.activeRoute 21 | }, 22 | }, 23 | actions: { 24 | addTab (item) { 25 | // 当前 active路由 26 | this.activeRoute = item.path 27 | // 检查是否存在 28 | function checkItem(it) { 29 | return it.path === item.path 30 | } 31 | // 添加 32 | if (!this.tabs.some(checkItem)) { 33 | this.tabs.push(item) 34 | } 35 | // tabs是否超过6个 36 | 37 | }, 38 | removeTab (tabName: String, tabPosition: String) { 39 | // 位置是top时 移除时,如果有则留下一个名为首页的标签 40 | if (tabPosition === 'top' && tabName !== '首页') { 41 | this.tabs = remove(this.tabs, (item) => item.path !== tabName) 42 | } 43 | // 位置不是top时 移除时,不留任何标签 44 | if (tabPosition !== 'top') { 45 | this.tabs = remove(this.tabs, (item) => item.path !== tabName) 46 | } 47 | } 48 | } 49 | }) -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/repository/CallApiLogRepository.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.repository; 2 | 3 | import net.risesoft.y9public.entity.Blacklisting; 4 | import net.risesoft.y9public.entity.CallApiRequestLogInfo; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 7 | import org.springframework.data.jpa.repository.Query; 8 | 9 | import java.util.Date; 10 | import java.util.List; 11 | import java.util.Map; 12 | 13 | public interface CallApiLogRepository extends JpaRepository, JpaSpecificationExecutor { 14 | @Query(value = "SELECT GROUP_CONCAT(DISTINCT INTERFACETYPE) as interfaceType," + 15 | "GROUP_CONCAT(DISTINCT LIMITRESULT) as limitResult,GROUP_CONCAT(DISTINCT AUTHENTIC) as authentic," + 16 | "GROUP_CONCAT(DISTINCT AUTHENTICATIONRESULT) as authenticationResult,GROUP_CONCAT(DISTINCT ISLIMIT) as isLimit," + 17 | "RESPONSEMSG as responseMsg" + 18 | " from y9_call_api_request_log_info group by RESPONSEMSG" ,nativeQuery = true) 19 | List> getDataGroup(); 20 | 21 | @Query(value = "SELECT GROUP_CONCAT(DISTINCT APPLYSYSTEMNAME) as applySystemName,DEPTNAME as deptName" + 22 | " from y9_call_api_request_log_info group by DEPTNAME" ,nativeQuery = true) 23 | List> getDataGroupByDeptName(); 24 | 25 | Long countByRequestStartTimeBetweenAndInterfaceIdIn(Date start, Date end, List interfaceIds); 26 | } 27 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/layouts/components/useTopMenuWidth.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: your name 3 | * @Date: 2022-01-13 17:34:55 4 | * @LastEditTime: 2022-01-13 17:43:25 5 | * @LastEditors: your name 6 | * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE 7 | * @FilePath: /sz- team-frontend-9.6.x/y9vue-home/src/layouts/components/useTopMenuWidth.ts 8 | */ 9 | /** 10 | * 设置 IndexLayout TopMenuWidth 11 | * @author LiQingSong 12 | */ 13 | import { ComputedRef, onMounted, Ref, ref, watch, nextTick, computed } from 'vue'; 14 | 15 | export default function useTopMenuWidth(topNavEnable: ComputedRef | Ref) { 16 | 17 | const topMenuCon = ref(null); 18 | 19 | const topMenuWidth = ref('auto'); 20 | 21 | const setWidth = async () => { 22 | await nextTick(); 23 | if (topMenuCon.value && topNavEnable.value) { 24 | let width = 0; 25 | const child = topMenuCon.value.children; 26 | for (let index = 0, len = child.length; index < len; index++) { 27 | const element = child[index] as HTMLElement; 28 | width = width + element.offsetWidth + 0.5; 29 | } 30 | topMenuWidth.value = width + 'px'; 31 | } else { 32 | topMenuWidth.value = 'auto'; 33 | } 34 | }; 35 | 36 | 37 | watch(topNavEnable,()=> { 38 | setWidth(); 39 | }) 40 | 41 | 42 | onMounted(()=> { 43 | setWidth(); 44 | }) 45 | 46 | 47 | return { 48 | topMenuCon, 49 | topMenuWidth 50 | } 51 | 52 | 53 | 54 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-manager/src/main/java/net/risesoft/config/TokenFilterConfig.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.config; 2 | 3 | import net.risesoft.y9.configuration.Y9Properties; 4 | import net.risesoft.y9.configuration.feature.oauth2.resource.Y9Oauth2ResourceProperties; 5 | import org.springframework.beans.factory.annotation.Value; 6 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; 7 | import org.springframework.boot.context.properties.EnableConfigurationProperties; 8 | import org.springframework.boot.web.servlet.FilterRegistrationBean; 9 | import org.springframework.context.annotation.Bean; 10 | import org.springframework.context.annotation.Configuration; 11 | import y9.oauth2.resource.filter.Y9Oauth2ResourceFilter; 12 | 13 | /** 14 | * @author 乌力吉 15 | */ 16 | @Configuration 17 | @EnableConfigurationProperties({Y9Properties.class}) 18 | @ConditionalOnProperty( 19 | name = {"y9.feature.oauth2.resource.enabled"}, 20 | havingValue = "true", 21 | matchIfMissing = true 22 | ) 23 | public class TokenFilterConfig { 24 | 25 | @Value("${spring.eureka.token}") 26 | private String token; 27 | 28 | @Bean 29 | public FilterRegistrationBean tokenAuthenticationFilter(Y9Oauth2ResourceProperties y9Oauth2ResourceProperties) { 30 | FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); 31 | registrationBean.setFilter(new TokenAuthenticationFilter(y9Oauth2ResourceProperties, token)); 32 | registrationBean.addUrlPatterns("/eureka/*"); // 设置过滤器应用的URL模式 33 | return registrationBean; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/dto/ParameterDTO.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.dto; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import net.risesoft.y9public.entity.Parameter; 6 | 7 | import java.io.Serializable; 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | public class ParameterDTO implements Serializable{ 13 | 14 | private static final long serialVersionUID = 3821646146259274267L; 15 | 16 | private String id; 17 | 18 | private String interfaceId; 19 | 20 | private String parameterKey; 21 | 22 | private String val; 23 | 24 | private String defaultVal; 25 | 26 | private String parameterType; 27 | 28 | private String required; 29 | 30 | private String notes; 31 | 32 | private String personId; 33 | 34 | private String parameterStatus; 35 | 36 | private String pid; 37 | 38 | private Integer level; 39 | 40 | private Integer sort; 41 | 42 | private String isItems; 43 | 44 | private List children; 45 | 46 | public ParameterDTO(Parameter dto) { 47 | this.id = dto.getId(); 48 | this.interfaceId = dto.getInterfaceId(); 49 | this.parameterKey = dto.getParameterKey(); 50 | this.val = dto.getVal(); 51 | this.defaultVal = dto.getDefaultVal(); 52 | this.parameterType = dto.getParameterType(); 53 | this.required = dto.getRequired(); 54 | this.notes = dto.getNotes(); 55 | this.personId = dto.getPersonId(); 56 | this.parameterStatus = dto.getParameterStatus(); 57 | this.pid = dto.getPid(); 58 | this.level = dto.getLevel(); 59 | this.isItems = dto.getIsItems(); 60 | this.sort = dto.getSort(); 61 | } 62 | } 63 | 64 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/api/execute/execute.ts: -------------------------------------------------------------------------------- 1 | 2 | import Request from "@/api/lib/request"; 3 | 4 | const platformRequest = Request(); 5 | 6 | 7 | /** 8 | * 获取注册列表 9 | * @param params 10 | * @returns 11 | */ 12 | export const getPage = async (params) => { 13 | return await platformRequest({ 14 | url: "/eureka/apps", 15 | method: 'GET', 16 | cType: false, 17 | params: params, 18 | }); 19 | }; 20 | 21 | /** 22 | * 保存信息 23 | * @param dataJson 24 | * @returns 25 | */ 26 | export const saveInfo = async (data) => { 27 | return await platformRequest({ 28 | url: "/eureka/apps"+data.url, 29 | method: 'PUT' 30 | }); 31 | }; 32 | 33 | /** 34 | * 获取值 35 | * @param params 36 | * @returns 37 | */ 38 | export const getInfoById = async (params) => { 39 | return await platformRequest({ 40 | url: "/api/rest/blacklisting/getInfoById", 41 | method: 'GET', 42 | cType: false, 43 | params: params, 44 | }); 45 | }; 46 | /** 47 | * 删除 48 | * @param params 49 | * @returns 50 | */ 51 | export const delInfoById = async (params) => { 52 | return await platformRequest({ 53 | url: "/api/rest/blacklisting/delInfoById", 54 | method: 'GET', 55 | cType: false, 56 | params: params, 57 | }); 58 | }; 59 | 60 | /** 61 | * 修改启用停用状态 62 | * @param dataJson 63 | * @returns 64 | */ 65 | export const updateEnable = async (data) => { 66 | return await platformRequest({ 67 | url: "/api/rest/blacklisting/updateEnable", 68 | method: 'POST', 69 | dataType: 'json', 70 | cType: false, 71 | data: data 72 | }); 73 | }; -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/controller/RestInterfaceManageController.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.controller; 2 | 3 | import net.risesoft.log.OperationTypeEnum; 4 | import net.risesoft.log.annotation.RiseLog; 5 | import net.risesoft.service.UseInterfaceService; 6 | import net.risesoft.y9public.dto.InterfaceManageDTO; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.ResponseEntity; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestBody; 12 | import org.springframework.web.bind.annotation.RequestMapping; 13 | import org.springframework.web.bind.annotation.ResponseBody; 14 | 15 | import javax.servlet.http.HttpServletRequest; 16 | import javax.servlet.http.HttpServletResponse; 17 | import java.util.HashMap; 18 | import java.util.Map; 19 | 20 | /** 21 | * 接口管理 22 | * 23 | * @author duanzhixin 24 | */ 25 | @Controller 26 | @RequestMapping("/api/rest/interface") 27 | public class RestInterfaceManageController { 28 | 29 | @Autowired 30 | private UseInterfaceService useInterfaceService; 31 | 32 | //测试接口 33 | @PostMapping(value = "/testInterface") 34 | @ResponseBody 35 | @RiseLog(operationType = OperationTypeEnum.SEND, operationName = "接口测试") 36 | public ResponseEntity testInterface(@RequestBody InterfaceManageDTO interfaceManageDTO, HttpServletRequest request,HttpServletResponse responseRt) { 37 | Map map = new HashMap<>(); 38 | return useInterfaceService.testForward(interfaceManageDTO,request,responseRt); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/entity/BaseEntity.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.EqualsAndHashCode; 5 | import org.hibernate.annotations.CreationTimestamp; 6 | import org.hibernate.annotations.UpdateTimestamp; 7 | 8 | import javax.persistence.Column; 9 | import javax.persistence.MappedSuperclass; 10 | import java.io.Serializable; 11 | import java.util.Date; 12 | 13 | @MappedSuperclass 14 | @EqualsAndHashCode 15 | public class BaseEntity implements Serializable { 16 | 17 | private static final long serialVersionUID = -882997958502745042L; 18 | 19 | /** 20 | * 创建时间 21 | */ 22 | @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 23 | @CreationTimestamp 24 | @Column(name = "CREATETIME", updatable = false) 25 | protected Date createTime; 26 | 27 | /** 28 | * 更新时间 29 | */ 30 | @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 31 | @UpdateTimestamp 32 | @Column(name = "UPDATETIME") 33 | protected Date updateTime; 34 | 35 | public Date getCreateTime() { 36 | return createTime; 37 | } 38 | 39 | /** 40 | * 创建时会自动设值 41 | * 42 | * @param createTime 43 | */ 44 | public void setCreateTime(Date createTime) { 45 | this.createTime = createTime; 46 | } 47 | 48 | public Date getUpdateTime() { 49 | return updateTime; 50 | } 51 | 52 | /** 53 | * 更新时会自动设值 54 | * 55 | * @param updateTime 56 | */ 57 | public void setUpdateTime(Date updateTime) { 58 | this.updateTime = updateTime; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/set.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/iconsvg/set.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/dto/AuthDictDTO.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.dto; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import net.risesoft.y9public.entity.AuthDict; 6 | import net.risesoft.y9public.entity.BaseEntity; 7 | 8 | import java.io.Serializable; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | public class AuthDictDTO extends BaseEntity implements Serializable{ 13 | 14 | private static final long serialVersionUID = 3121642144259272227L; 15 | 16 | private String id; 17 | 18 | private String interfaceId; 19 | 20 | private String parameterName; 21 | 22 | private String fieldName; 23 | 24 | private String fieldVal; 25 | 26 | private String showVal; 27 | 28 | private String parameterType; 29 | 30 | private String parameterId; 31 | 32 | private String isDelete; 33 | 34 | private String pid; 35 | 36 | private Integer sort; 37 | 38 | private String isTree; 39 | 40 | private String isPrimary; 41 | 42 | private String personId; 43 | 44 | private String personName; 45 | 46 | private Boolean hasChildren; 47 | 48 | public AuthDictDTO(AuthDict dto) { 49 | this.id = dto.getId(); 50 | this.interfaceId = dto.getInterfaceId(); 51 | this.parameterName = dto.getParameterName(); 52 | this.fieldName = dto.getFieldName(); 53 | this.fieldVal = dto.getFieldVal(); 54 | this.showVal = dto.getShowVal(); 55 | this.parameterType = dto.getParameterType(); 56 | this.parameterId = dto.getParameterId(); 57 | this.isDelete = dto.getIsDelete(); 58 | this.pid = dto.getPid(); 59 | this.sort = dto.getSort(); 60 | this.isTree = dto.getIsTree(); 61 | this.isPrimary = dto.getIsPrimary(); 62 | this.personId = dto.getPersonId(); 63 | this.personName = dto.getPersonName(); 64 | } 65 | } 66 | 67 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/api/blacklisting/blacklisting.ts: -------------------------------------------------------------------------------- 1 | 2 | import Request from "@/api/lib/request"; 3 | 4 | const platformRequest = Request(); 5 | 6 | 7 | /** 8 | * 获取黑名单管理列表 9 | * @param params 10 | * @returns 11 | */ 12 | export const getPage = async (params) => { 13 | return await platformRequest({ 14 | url: "/api/rest/blacklisting/getPage", 15 | method: 'GET', 16 | cType: false, 17 | params: params, 18 | }); 19 | }; 20 | 21 | /** 22 | * 保存信息 23 | * @param dataJson 24 | * @returns 25 | */ 26 | export const saveInfo = async (data) => { 27 | return await platformRequest({ 28 | url: "/api/rest/blacklisting/saveInfo", 29 | method: 'POST', 30 | dataType: 'json', 31 | cType: false, 32 | data: data 33 | }); 34 | }; 35 | 36 | /** 37 | * 获取值 38 | * @param params 39 | * @returns 40 | */ 41 | export const getInfoById = async (params) => { 42 | return await platformRequest({ 43 | url: "/api/rest/blacklisting/getInfoById", 44 | method: 'GET', 45 | cType: false, 46 | params: params, 47 | }); 48 | }; 49 | /** 50 | * 删除 51 | * @param params 52 | * @returns 53 | */ 54 | export const delInfoById = async (params) => { 55 | return await platformRequest({ 56 | url: "/api/rest/blacklisting/delInfoById", 57 | method: 'GET', 58 | cType: false, 59 | params: params, 60 | }); 61 | }; 62 | 63 | /** 64 | * 修改启用停用状态 65 | * @param dataJson 66 | * @returns 67 | */ 68 | export const updateEnable = async (data) => { 69 | return await platformRequest({ 70 | url: "/api/rest/blacklisting/updateEnable", 71 | method: 'POST', 72 | dataType: 'json', 73 | cType: false, 74 | data: data 75 | }); 76 | }; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/layouts/components/search/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 31 | 32 | 52 | 53 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/monitoring.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/dto/ApproveDTO.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.dto; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import net.risesoft.y9public.entity.Approve; 6 | import net.risesoft.y9public.entity.BaseEntity; 7 | 8 | import java.io.Serializable; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | public class ApproveDTO extends BaseEntity implements Serializable{ 13 | 14 | private static final long serialVersionUID = 3121652146259274217L; 15 | 16 | private String id; 17 | 18 | private String interfaceId; 19 | 20 | private String applyId; 21 | 22 | private String illustrate; 23 | 24 | private String approveStatus; 25 | 26 | private String notes; 27 | 28 | private String personName; 29 | 30 | private String personId; 31 | 32 | private String interfaceStatus; 33 | 34 | private String isOver; 35 | 36 | private String isNew; 37 | 38 | private String interfaceName; 39 | 40 | private String version; 41 | 42 | private String approveOption; 43 | 44 | private String flowNode; 45 | 46 | private String alreadyApproveUser; 47 | 48 | private String currentUserId; 49 | 50 | private String currentNode; 51 | 52 | public ApproveDTO(Approve dto) { 53 | this.id = dto.getId(); 54 | this.interfaceId = dto.getInterfaceId(); 55 | this.illustrate = dto.getIllustrate(); 56 | this.approveStatus = dto.getApproveStatus(); 57 | this.notes = dto.getNotes(); 58 | this.personName = dto.getPersonName(); 59 | this.personId = dto.getPersonId(); 60 | this.interfaceStatus = dto.getInterfaceStatus(); 61 | this.isOver = dto.getIsOver(); 62 | this.flowNode = dto.getFlowNode(); 63 | this.alreadyApproveUser = dto.getAlreadyApproveUser(); 64 | this.currentUserId = dto.getCurrentUserId(); 65 | this.currentNode = dto.getCurrentNode(); 66 | } 67 | } 68 | 69 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/entity/SystemIdentifier.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.entity; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import org.hibernate.annotations.Comment; 6 | 7 | import javax.persistence.Column; 8 | import javax.persistence.Entity; 9 | import javax.persistence.Id; 10 | import javax.persistence.Table; 11 | import java.io.Serializable; 12 | 13 | @Data 14 | @NoArgsConstructor 15 | @Entity 16 | @Table(name = "Y9_INTERFACE_SYSTEM_IDENTIFIER") 17 | @org.hibernate.annotations.Table(comment = "系统标识录入", appliesTo = "Y9_INTERFACE_SYSTEM_IDENTIFIER") 18 | public class SystemIdentifier extends BaseEntity implements Serializable{ 19 | 20 | private static final long serialVersionUID = 3121642146259274227L; 21 | 22 | @Id 23 | @Column(name = "ID", columnDefinition = "varchar(36) default '' comment 'ID'") 24 | private String id; 25 | 26 | @Column(name = "name", columnDefinition = "varchar(100) default '' comment 'name'") 27 | @Comment(value = "名称") 28 | private String name; 29 | 30 | @Column(name = "PARAMETER_TYPE", columnDefinition = "varchar(20) default '' comment '数据类型0是单位,1是系统'") 31 | @Comment(value = "数据类型") 32 | private String parameterType; 33 | 34 | @Column(name = "PID", columnDefinition = "varchar(36) default '' comment '父级id'") 35 | @Comment(value = "父级id") 36 | private String pid; 37 | 38 | @Column(name = "PNAME", columnDefinition = "varchar(100) default '' comment '父级名称'") 39 | @Comment(value = "父级名称") 40 | private String pname; 41 | 42 | @Column(name = "SORT", columnDefinition = "int comment '排序'") 43 | @Comment(value = "排序") 44 | private Integer sort; 45 | 46 | @Column(name = "IS_DELETE", columnDefinition = "varchar(10) default 'N' comment '是否删除Y删除,N未删除'") 47 | @Comment(value = "是否删除") 48 | private String isDelete; 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/repository/AuthDictRepository.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.repository; 2 | 3 | import net.risesoft.y9public.entity.AuthDict; 4 | import org.springframework.data.domain.Page; 5 | import org.springframework.data.domain.Pageable; 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 8 | import org.springframework.data.jpa.repository.Modifying; 9 | import org.springframework.data.jpa.repository.Query; 10 | import org.springframework.data.repository.query.Param; 11 | 12 | import javax.transaction.Transactional; 13 | import java.util.List; 14 | 15 | public interface AuthDictRepository extends JpaRepository, JpaSpecificationExecutor{ 16 | 17 | //获取字典key和字典主id 18 | @Query(value="select dia.parameterId,dia.fieldName,dia.parameterName from AuthDict dia where dia.parameterName like :parameterName and dia.fieldName like :fieldName") 19 | Page findDictKeyPage(@Param("fieldName") String fieldName,@Param("parameterName") String parameterName, Pageable pageable); 20 | 21 | @Modifying 22 | @Transactional 23 | @Query(value = "delete from Y9_INTERFACE_AUTH_DICT where INTERFACE_ID = ?1 " ,nativeQuery = true) 24 | void deleteInfoByInterfaceId(String interfaceId); 25 | 26 | @Modifying 27 | @Transactional 28 | @Query(value = "update Y9_INTERFACE_AUTH_DICT set IS_DELETE = 'Y' where INTERFACE_ID = ?1 " ,nativeQuery = true) 29 | void deleteInfoByInterfaceIdLogic(String interfaceId); 30 | 31 | List findByInterfaceId(String interfaceId); 32 | 33 | List findByParameterId(String parameterId); 34 | 35 | List findByParameterIdIn(List parameterIds); 36 | 37 | List findByInterfaceIdAndIsDelete(String interfaceId,String isDelete); 38 | } 39 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/settings.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: your name 3 | * @Date: 2022-01-13 17:37:14 4 | * @LastEditTime: 2022-01-17 18:35:30 5 | * @LastEditors: your name 6 | * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE 7 | * @FilePath: /sz- team-frontend-9.6.x/y9vue-home/src/settings.ts 8 | */ 9 | import { RoutesDataItem } from "@/utils/routes"; 10 | /** 11 | * 站点配置 12 | * @author LiQingSong 13 | */ 14 | export interface SettingsType { 15 | /** 16 | * 站点名称 17 | */ 18 | siteTitle: string; 19 | 20 | /** 21 | * 顶部菜单开启 22 | */ 23 | topNavEnable: boolean; 24 | 25 | /** 26 | * 头部固定开启 27 | */ 28 | headFixed: boolean; 29 | 30 | /** 31 | * tab菜单开启 32 | */ 33 | tabNavEnable: boolean; 34 | 35 | /** 36 | * 站点首页路由 37 | */ 38 | homeRouteItem: RoutesDataItem; 39 | 40 | /** 41 | * 站点本地存储Token 的 Key值 42 | */ 43 | siteTokenKey: string; 44 | 45 | /** 46 | * Ajax请求头发送Token 的 Key值 47 | */ 48 | ajaxHeadersTokenKey: string; 49 | 50 | /** 51 | * Ajax返回值不参加统一验证的api地址 52 | */ 53 | ajaxResponseNoVerifyUrl: string[]; 54 | 55 | /** 56 | * iconfont.cn 项目在线生成的 js 地址 57 | */ 58 | iconfontUrl: string[]; 59 | } 60 | 61 | const settings: SettingsType = { 62 | siteTitle: 'Y9-ADMIN-VUE', 63 | topNavEnable: true, 64 | headFixed: true, 65 | tabNavEnable: true, 66 | homeRouteItem: { 67 | icon: 'control', 68 | title: 'index-layout.menu.home.workplace', 69 | path: '/home/workplace', 70 | component: ()=> import('@/App.vue') 71 | }, 72 | siteTokenKey: 'y9AT', 73 | ajaxHeadersTokenKey: 'x-token', 74 | ajaxResponseNoVerifyUrl: [ 75 | '/user/login', // 用户登录 76 | '/user/info', // 获取用户信息 77 | ], 78 | iconfontUrl: [], 79 | }; 80 | 81 | export default settings; 82 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/image-text.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/getInitData.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: your name 3 | * @Date: 2021-12-22 16:50:57 4 | * @LastEditTime: 2022-01-20 17:08:52 5 | * @LastEditors: Please set LastEditors 6 | * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE 7 | * @FilePath: /sz-team-frontend-9.5.x/y9vue-home/src/router/getData.js 8 | */ 9 | 10 | 11 | export async function getLoginInfo() { 12 | let sessionObj = JSON.parse(sessionStorage.getItem( 13 | import.meta.env. VUE_APP_SSO_SITETOKEN_KEY)); 14 | return await fetch(import.meta.env.VUE_APP_CONTEXT + 'api/rest/info/getLoginInfo', { 15 | method: 'GET', 16 | headers: { 17 | 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 18 | 'Authorization': 'Bearer ' + sessionObj.access_token 19 | } 20 | }).then(res => { 21 | return res.json(); 22 | }).then((res) => { 23 | // console.log(res.data); 24 | sessionStorage.setItem("getLoginInfo","true") 25 | sessionStorage.setItem('departmentMapList', JSON.stringify(res.data.departmentMapList)); 26 | if (res.data.isShowMenu && res.data.person.tenantManager) { 27 | // store.commit('user/SET_ROLES', ['admin']); // AAAAA 28 | 29 | } else if (!res.data.person.tenantManager) { 30 | // store.commit('user/SET_ROLES', ['user']); // AAAAA 31 | } else { 32 | // store.commit('user/SET_ROLES', ['admin']); // AAAAA 33 | } 34 | // store.commit('user/SET_INITINFO', res.data); // AAAAA 35 | return res; 36 | }).catch(e => { 37 | console.log(e) 38 | // sessionStorage.clear(); 39 | // window.location = window.location.origin + window.location.pathname; 40 | sessionStorage.setItem("getLoginInfo","false") 41 | window.location = window.location.origin + window.location.pathname; 42 | }); 43 | } -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-approve/src/main/java/net/risesoft/service/ApproveService.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.service; 2 | 3 | import net.risesoft.y9public.dto.ApproveDTO; 4 | import net.risesoft.y9public.dto.InterfaceApplyDTO; 5 | import net.risesoft.y9public.dto.InterfaceManageDTO; 6 | import net.risesoft.y9public.dto.ViewApproveDTO; 7 | import net.risesoft.y9public.entity.*; 8 | import net.risesoft.y9public.vo.ViewApproveVo; 9 | import org.springframework.data.domain.Page; 10 | 11 | import java.util.List; 12 | import java.util.Map; 13 | 14 | public interface ApproveService { 15 | 16 | /** 17 | * 获取page数据 18 | * @param interfaceManageDTO 19 | * @return 20 | */ 21 | Page getApproveList(InterfaceManageDTO interfaceManageDTO); 22 | 23 | /** 24 | * 获取page数据 25 | * @param viewApproveDTO 26 | * @return 27 | */ 28 | Page getViewApproveList(ViewApproveDTO viewApproveDTO); 29 | 30 | //保存接口信息 31 | Map saveApproveInfo(Approve approve); 32 | 33 | //根据id查询服务器信息 34 | ApproveDTO getApproveById(String id); 35 | 36 | //根据id查询服务器信息 37 | Approve findApproveById(String id); 38 | 39 | //审批通过接口信息 40 | Map agreeApproveInfo(Approve approve); 41 | 42 | //审批拒绝接口信息 43 | Map refuseApproveInfo(Approve approve); 44 | 45 | //审批通过接口信息 46 | Map submitData(Approve approve); 47 | 48 | //根据接口id获取审批进度 49 | List getApproveByInterfaceId(String id,Boolean applyType); 50 | 51 | //构建审批记录 52 | Map buildApprove(Approve approve,String flowId); 53 | 54 | //发布接口 55 | Map pubInterface(InterfaceApplyDTO apply); 56 | 57 | //停用接口 58 | Map stopInterface(InterfaceApplyDTO apply); 59 | 60 | //调用接口申请 61 | Map useInterfaceApply(InterfaceApplyDTO apply, Boolean flag); 62 | 63 | 64 | } 65 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/css/nprogress.css: -------------------------------------------------------------------------------- 1 | /* Make clicks pass-through */ 2 | #nprogress { 3 | pointer-events: none; 4 | } 5 | 6 | #nprogress .bar { 7 | background: #29d; 8 | 9 | position: fixed; 10 | z-index: 1031; 11 | top: 0; 12 | left: 0; 13 | 14 | width: 100%; 15 | height: 2px; 16 | } 17 | 18 | /* Fancy blur effect */ 19 | #nprogress .peg { 20 | display: block; 21 | position: absolute; 22 | right: 0px; 23 | width: 100px; 24 | height: 100%; 25 | box-shadow: 0 0 10px #29d, 0 0 5px #29d; 26 | opacity: 1.0; 27 | 28 | -webkit-transform: rotate(3deg) translate(0px, -4px); 29 | -ms-transform: rotate(3deg) translate(0px, -4px); 30 | transform: rotate(3deg) translate(0px, -4px); 31 | } 32 | 33 | /* Remove these to get rid of the spinner */ 34 | #nprogress .spinner { 35 | display: block; 36 | position: fixed; 37 | z-index: 1031; 38 | top: 15px; 39 | right: 15px; 40 | } 41 | 42 | #nprogress .spinner-icon { 43 | width: 18px; 44 | height: 18px; 45 | box-sizing: border-box; 46 | 47 | border: solid 2px transparent; 48 | border-top-color: #29d; 49 | border-left-color: #29d; 50 | border-radius: 50%; 51 | 52 | -webkit-animation: nprogress-spinner 400ms linear infinite; 53 | animation: nprogress-spinner 400ms linear infinite; 54 | } 55 | 56 | .nprogress-custom-parent { 57 | overflow: hidden; 58 | position: relative; 59 | } 60 | 61 | .nprogress-custom-parent #nprogress .spinner, 62 | .nprogress-custom-parent #nprogress .bar { 63 | position: absolute; 64 | } 65 | 66 | @-webkit-keyframes nprogress-spinner { 67 | 0% { -webkit-transform: rotate(0deg); } 68 | 100% { -webkit-transform: rotate(360deg); } 69 | } 70 | @keyframes nprogress-spinner { 71 | 0% { transform: rotate(0deg); } 72 | 100% { transform: rotate(360deg); } 73 | } 74 | 75 | -------------------------------------------------------------------------------- /y9-module-interface/pom.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 4.0.0 6 | 7 | 8 | net.risesoft 9 | y9-digitalbase 10 | v9.6.9-SNAPSHOT 11 | 12 | 13 | 14 | y9-module-interface 15 | pom 16 | y9-module-interface 17 | InterfacePlatform Engine y9-module-interface project parent pom.xml file 18 | 19 | 20 | risenet-y9boot-support-interface-approve 21 | risenet-y9boot-support-interface-jpa-repository 22 | risenet-y9boot-webapp-interface-platform-execute 23 | risenet-y9boot-webapp-interface-platform-manager 24 | 25 | 26 | 27 | 28 | deploy-maven-central 29 | 30 | 31 | 32 | org.sonatype.central 33 | central-publishing-maven-plugin 34 | 35 | 36 | risenet-y9boot-webapp-interface-platform-execute 37 | risenet-y9boot-webapp-interface-platform-manager 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/utils/watermark.ts: -------------------------------------------------------------------------------- 1 | // // 水印 2 | 3 | export const getmark = () => { 4 | const setWatermark = (str: any) => { 5 | const id = "1.23452384164.123412416"; 6 | 7 | if (document.getElementById(id) !== null) { 8 | document.body.removeChild(document.getElementById(id)!); 9 | } 10 | 11 | //创建一个画布 12 | const can = document.createElement("canvas"); 13 | //设置画布的长宽 14 | can.width = 350; 15 | can.height = 280; 16 | 17 | const cans = can.getContext("2d")!; 18 | //旋转角度 19 | cans.rotate((-15 * Math.PI) / 180); 20 | cans.font = "14px Vedana"; 21 | //设置填充绘画的颜色、渐变或者模式 22 | cans.fillStyle = "rgba(200, 200, 200, 0.40)"; 23 | //设置文本内容的当前对齐方式 24 | cans.textAlign = "left"; 25 | //设置在绘制文本时使用的当前文本基线 26 | // cans.textBaseline = "Middle"; 27 | //在画布上绘制填色的文本(输出的文本,开始绘制文本的X坐标位置,开始绘制文本的Y坐标位置) 28 | cans.fillText(str, can.width / 8, can.height / 2); 29 | 30 | const div = document.createElement("div"); 31 | div.id = id; 32 | div.style.pointerEvents = "none"; 33 | div.style.top = "0px"; 34 | div.style.left = "0px"; 35 | div.style.position = "fixed"; 36 | div.style.zIndex = "1"; 37 | div.style.width = document.documentElement.clientWidth + "px"; 38 | div.style.height = document.documentElement.clientHeight + "px"; 39 | div.style.background = 40 | "url(" + can.toDataURL("image/png") + ") left top repeat"; 41 | document.body.appendChild(div); 42 | return id; 43 | }; 44 | 45 | // 该方法只允许调用一次 46 | const watermark = (str: string) => { 47 | let id = setWatermark(str); 48 | setInterval(() => { 49 | if (document.getElementById(id) === null) { 50 | id = setWatermark(str); 51 | } 52 | }, 500); 53 | window.onresize = () => { 54 | setWatermark(str); 55 | }; 56 | }; 57 | return { watermark }; 58 | }; 59 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/entity/Blacklisting.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.entity; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import org.hibernate.annotations.Comment; 6 | 7 | import javax.persistence.Column; 8 | import javax.persistence.Entity; 9 | import javax.persistence.Id; 10 | import javax.persistence.Table; 11 | import java.io.Serializable; 12 | 13 | @Data 14 | @NoArgsConstructor 15 | @Entity 16 | @Table(name = "Y9_INTERFACE_BLACKLISTING") 17 | @org.hibernate.annotations.Table(comment = "黑名单录入", appliesTo = "Y9_INTERFACE_BLACKLISTING") 18 | public class Blacklisting extends BaseEntity implements Serializable{ 19 | 20 | private static final long serialVersionUID = 3121642146259214221L; 21 | 22 | @Id 23 | @Column(name = "ID", columnDefinition = "varchar(50) default '' comment 'ID'") 24 | private String id; 25 | 26 | @Column(name = "name", columnDefinition = "varchar(100) default '' comment '名称'") 27 | @Comment(value = "名称") 28 | private String name; 29 | 30 | @Column(name = "IP", columnDefinition = "varchar(300) default '' comment '黑名单IP'") 31 | @Comment(value = "黑名单IP") 32 | private String ip; 33 | 34 | @Column(name = "INTERFACE_IDS", columnDefinition = "varchar(1000) default '' comment '接口id'") 35 | @Comment(value = "接口id") 36 | private String interfaceIds; 37 | 38 | @Column(name = "notes", columnDefinition = "varchar(254) default '' comment '备注'") 39 | @Comment(value = "备注") 40 | private String notes; 41 | 42 | @Column(name = "SORT", columnDefinition = "int comment '排序'") 43 | @Comment(value = "排序") 44 | private Integer sort; 45 | 46 | @Column(name = "IS_DELETE", columnDefinition = "varchar(10) default 'N' comment '是否删除Y删除,N未删除'") 47 | @Comment(value = "是否删除") 48 | private String isDelete; 49 | 50 | @Column(name = "IS_ENABLE", columnDefinition = "varchar(10) default 'N' comment '参数类型(true启用;false停用)'") 51 | @Comment(value = "是否启用") 52 | private String isEnable; 53 | 54 | } 55 | 56 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/utils/validate.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 判断是否是外链 3 | * @param {string} path 4 | * @returns {Boolean} 5 | * @author LiQingSong 6 | */ 7 | export const isExternal = (path: string): boolean => { 8 | return /^(https?:|mailto:|tel:)/.test(path); 9 | }; 10 | 11 | /** 12 | * @description 判断是否为空 13 | * @param value 14 | * @returns {boolean} 15 | */ 16 | export function isBlank(value) { 17 | return ( 18 | value === null || 19 | false || 20 | value === '' || 21 | value.trim() === '' || 22 | value.toLocaleLowerCase().trim() === 'null' 23 | ) 24 | } 25 | 26 | /** 27 | * 校验正则 28 | * @param {string} type 29 | * @param {string} value 30 | * @returns {Boolean} 31 | * @author Fuyu 32 | */ 33 | export function $validCheck(type:string,value:string,isCallbackMsg:boolean) :boolean | object{ 34 | 35 | let regular = "";//正则 36 | let msg = ""; 37 | switch(type){ 38 | case 'email'://邮箱 39 | regular = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]w+)*$/; 40 | msg = "请输入正确的邮箱格式"; 41 | break; 42 | case 'phone'://11位手机号 43 | regular = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; 44 | msg = "请输入正确的手机号码格式"; 45 | break; 46 | case 'idCard': 47 | regular = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/; 48 | msg = "请输入正确的身份证格式"; 49 | break; 50 | case 'url': 51 | regular = /^(http|ftp|https):\/\/[^\u4e00-\u9fa5]/; 52 | msg = "请输入正确的接口调用地址"; 53 | break; 54 | case 'nopreurl': 55 | regular = /^(?!https?:\/\/)[\S]+(?:\.[^\.\s]+)+$/; 56 | msg = "请输入正确的接口调用地址"; 57 | break; 58 | case 'version': 59 | regular = /^V[0-9.]+$/; 60 | msg = "请输入正确的版本,版本例如V1.1.1"; 61 | break; 62 | case 'number': 63 | regular = /^[0-9]+$/; 64 | msg = "只能输入正数"; 65 | break; 66 | case 'special': 67 | regular = /^[`~!@#$%^&*\+=|{}!??]$/; 68 | msg = "不能输入特殊字符"; 69 | break; 70 | } 71 | 72 | if(regular){ 73 | return isCallbackMsg ? {valid:regular.test(value),msg:msg} :value ? regular.test(value) : regular; 74 | }else { 75 | 76 | console.log("校验类型不存在,请检查") 77 | return false 78 | } 79 | 80 | 81 | } 82 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/layouts/components/RightTopMessage.vue: -------------------------------------------------------------------------------- 1 | 9 | 19 | 55 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/modules/mangeInterfaceRouter.ts: -------------------------------------------------------------------------------- 1 | const interfaceRouter = { 2 | path: "/mangeInterface", 3 | component: () => import("@/layouts/index.vue"), 4 | name:"mangeInterfaceIndex", 5 | redirect: "/mangeInterface", 6 | meta: { 7 | roles: ['V1'], 8 | title: "管理中心", 9 | icon: "ri-user-line",//remix 图标 优先级最高 10 | // elIcon: "House"//element-plus 图标 优先级第二 11 | }, 12 | children: [ 13 | { 14 | path: "/registerInterface", 15 | component: () => import("@/views/interface/index.vue"), 16 | name: "registerInterface", 17 | props:{status:"待发布"}, 18 | meta: { 19 | title: "已注册接口", 20 | icon: "ri-settings-6-line",//remix 图标 优先级最高 21 | // elIcon: "House"//element-plus 图标 优先级第二 22 | }, 23 | }, 24 | { 25 | path: "/alreadyInterface", 26 | component: () => import("@/views/interface/index.vue"), 27 | name: "alreadyInterface", 28 | props:{status:"已发布"}, 29 | meta: { 30 | title: "已发布接口", 31 | icon: "ri-share-forward-box-line",//remix 图标 优先级最高 32 | // elIcon: "House"//element-plus 图标 优先级第二 33 | }, 34 | }, 35 | { 36 | path: "/stopInterface", 37 | component: () => import("@/views/interface/index.vue"), 38 | name: "stopInterface", 39 | props:{status:"停用"}, 40 | meta: { 41 | title: "已停用接口", 42 | icon: "ri-indeterminate-circle-line",//remix 图标 优先级最高 43 | // elIcon: "House"//element-plus 图标 优先级第二 44 | }, 45 | }, 46 | { 47 | path: "/alreadyApply", 48 | component: () => import("@/views/interface/index.vue"), 49 | name: "alreadyApply", 50 | props:{status:"申请"}, 51 | meta: { 52 | title: "已申请接口", 53 | icon: "ri-list-settings-line",//remix 图标 优先级最高 54 | // elIcon: "House"//element-plus 图标 优先级第二 55 | }, 56 | }, 57 | { 58 | path: "/authInfo", 59 | component: () => import("@/views/auth/index.vue"), 60 | name: "authInfo", 61 | meta: { 62 | roles: ['none'], 63 | title: "权限配置管理", 64 | icon: "ri-share-line",//remix 图标 优先级最高 65 | // elIcon: "House"//element-plus 图标 优先级第二 66 | }, 67 | } 68 | ] 69 | }; 70 | 71 | export default interfaceRouter; -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-support-interface-jpa-repository/src/main/java/net/risesoft/y9public/repository/ApproveRepository.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.y9public.repository; 2 | 3 | import net.risesoft.y9public.entity.Approve; 4 | import org.springframework.data.domain.Page; 5 | import org.springframework.data.domain.Pageable; 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 8 | import org.springframework.data.jpa.repository.Query; 9 | import org.springframework.data.repository.query.Param; 10 | 11 | import java.util.List; 12 | 13 | public interface ApproveRepository extends JpaRepository, JpaSpecificationExecutor{ 14 | List findByInterfaceIdInAndIsNewAndApplyTypeIn(List interfaceIds,String isNew,List applyType); 15 | 16 | List findByInterfaceIdInAndIsOver(List interfaceIds,String isOver); 17 | 18 | @Query(value="select nia from Approve nia left join InterfaceManage nimi on nia.interfaceId = nimi.id where nimi.interfaceName like :interfaceName order by nia.isOver ,nia.createTime desc") 19 | Page findListPage(@Param("interfaceName") String interfaceName, Pageable pageable); 20 | @Query(value="select nia.* from y9_interface_approve nia left join y9_interface_manage_info nimi \n" + 21 | "on nia.INTERFACE_ID = nimi.ID order by IS_OVER ,CREATETIME desc",nativeQuery = true) 22 | List findList(); 23 | 24 | //根据接口id查询是否有正在审核的审核记录 25 | List findByInterfaceIdAndIsOver(String interfaceId,String isOver); 26 | 27 | //根据接口id查询是否有最新的审核记录 28 | List findByInterfaceIdAndIsNewAndApplyTypeIn(String interfaceId,String isNew,List applyTypes); 29 | 30 | //根据申请id查询审批信息 31 | List findByApplyIdInAndApplyType(List applyId, String applyType); 32 | 33 | //根据申请id查询正在审批的信息 34 | List findByApplyIdInAndApplyTypeAndIsOver(List applyId, String applyType,String isOver); 35 | 36 | //根据申请id查询最新的审批信息 37 | List findByApplyIdInAndApplyTypeAndIsNew(List applyId, String applyType,String isNew); 38 | 39 | } 40 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/api/systemidentifier/systemidentifier.ts: -------------------------------------------------------------------------------- 1 | 2 | import Request from "@/api/lib/request"; 3 | import { dataType } from "element-plus/es/components/table-v2/src/common"; 4 | 5 | const platformRequest = Request(); 6 | import qs from 'qs' 7 | 8 | 9 | /** 10 | * 获取系统标识管理列表 11 | * @param params 12 | * @returns 13 | */ 14 | export const getPage = async (params) => { 15 | return await platformRequest({ 16 | url: "/api/rest/identifier/getPage", 17 | method: 'GET', 18 | cType: false, 19 | params: params, 20 | }); 21 | }; 22 | 23 | /** 24 | * 获取参数值列表 25 | * @param params 26 | * @returns 27 | */ 28 | export const getListByType = async (params) => { 29 | return await platformRequest({ 30 | url: "/api/rest/identifier/getListByType", 31 | method: 'GET', 32 | cType: false, 33 | params: params, 34 | }); 35 | }; 36 | 37 | /** 38 | * 获取参数值列表 39 | * @param params 40 | * @returns 41 | */ 42 | export const getListByPid = async (params) => { 43 | return await platformRequest({ 44 | url: "/api/rest/identifier/getListByPid", 45 | method: 'GET', 46 | cType: false, 47 | params: params, 48 | }); 49 | }; 50 | 51 | /** 52 | * 保存接口信息 53 | * @param dataJson 54 | * @returns 55 | */ 56 | export const saveInfo = async (data) => { 57 | return await platformRequest({ 58 | url: "/api/rest/identifier/saveInfo", 59 | method: 'POST', 60 | dataType: 'json', 61 | cType: false, 62 | data: data 63 | }); 64 | }; 65 | 66 | /** 67 | * 获取值 68 | * @param params 69 | * @returns 70 | */ 71 | export const getInfoById = async (params) => { 72 | return await platformRequest({ 73 | url: "/api/rest/identifier/getInfoById", 74 | method: 'GET', 75 | cType: false, 76 | params: params, 77 | }); 78 | }; 79 | /** 80 | * 删除 81 | * @param params 82 | * @returns 83 | */ 84 | export const delInfoById = async (params) => { 85 | return await platformRequest({ 86 | url: "/api/rest/identifier/delInfoById", 87 | method: 'GET', 88 | cType: false, 89 | params: params, 90 | }); 91 | }; -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/views/404/index.vue: -------------------------------------------------------------------------------- 1 | 9 | 21 | 40 | 72 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/assets/icons/svg/y9-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/controller/UseInterfaceController.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.controller; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import net.risesoft.log.OperationTypeEnum; 5 | import net.risesoft.log.annotation.RiseLog; 6 | import net.risesoft.service.UseInterfaceService; 7 | import net.risesoft.y9public.entity.Parameter; 8 | import org.apache.commons.lang3.StringUtils; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.http.HttpHeaders; 11 | import org.springframework.http.ResponseEntity; 12 | import org.springframework.stereotype.Controller; 13 | import org.springframework.web.bind.annotation.RequestMapping; 14 | import org.springframework.web.bind.annotation.ResponseBody; 15 | 16 | import javax.servlet.ServletOutputStream; 17 | import javax.servlet.http.HttpServletRequest; 18 | import javax.servlet.http.HttpServletResponse; 19 | import java.io.*; 20 | import java.net.URLDecoder; 21 | import java.net.URLEncoder; 22 | import java.nio.charset.StandardCharsets; 23 | import java.util.Enumeration; 24 | import java.util.HashMap; 25 | import java.util.Map; 26 | 27 | /** 28 | * 外部调用 29 | * 30 | * @author duanzhixin 31 | */ 32 | @Controller 33 | @RequestMapping("/openInterface") 34 | public class UseInterfaceController { 35 | 36 | @Autowired 37 | private UseInterfaceService useInterfaceService; 38 | 39 | /** 40 | * 接口转发 41 | * 42 | * @param userKey 用户秘钥 43 | * @return 44 | */ 45 | @RiseLog(operationType = OperationTypeEnum.SEND, operationName = "接口转发") 46 | @RequestMapping("/forward") 47 | public ResponseEntity personPage(HttpServletRequest request, String userKey,HttpServletResponse responseRt) { 48 | if (StringUtils.isBlank(userKey)) { 49 | userKey = request.getHeader("userKey"); 50 | } 51 | return useInterfaceService.forward(userKey, request,responseRt); 52 | } 53 | 54 | 55 | public static void main(String[] args) { 56 | File file = new File(" D:\\interfaceFile\\1761068070845026304\\V2.1\\1761071017150648320_H3C服务器系统下通过StorCLI工具收集LSI-9440 9460 9361 L460 9560阵列卡日志 (8).pdf"); 57 | System.out.println(file.getName()); 58 | 59 | } 60 | 61 | 62 | 63 | 64 | } 65 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true, 5 | node: true, 6 | }, 7 | extends: [ 8 | 'eslint:recommended', 9 | 'plugin:vue/essential', 10 | 'plugin:@typescript-eslint/recommended', 11 | 'plugin:vue/vue3-recommended', 12 | 'prettier', 13 | ], 14 | parserOptions: { 15 | ecmaVersion: 'latest', 16 | parser: '@typescript-eslint/parser', 17 | sourceType: 'module', 18 | }, 19 | plugins: ['vue', '@typescript-eslint', '@babel/plugin-syntax-dynamic-import', 'html', 'prettier'], 20 | rules: { 21 | '@typescript-eslint/ban-ts-ignore': 'off', 22 | '@typescript-eslint/explicit-function-return-type': 'off', 23 | '@typescript-eslint/no-explicit-any': 'off', 24 | '@typescript-eslint/no-var-requires': 'off', 25 | '@typescript-eslint/no-empty-function': 'off', 26 | 'vue/custom-event-name-casing': 'off', 27 | 'no-use-before-define': 'off', 28 | // 'no-use-before-define": [ 29 | // 'error", 30 | // { 31 | // functions: false, 32 | // classes: true, 33 | // }, 34 | // ], 35 | '@typescript-eslint/no-use-before-define': 'off', 36 | // "@typescript-eslint/no-use-before-define": [ 37 | // 'error", 38 | // { 39 | // functions: false, 40 | // classes: true, 41 | // }, 42 | // ], 43 | '@typescript-eslint/ban-ts-comment': 'off', 44 | '@typescript-eslint/ban-types': 'off', 45 | '@typescript-eslint/no-non-null-assertion': 'off', 46 | '@typescript-eslint/explicit-module-boundary-types': 'off', 47 | '@typescript-eslint/no-unused-vars': [ 48 | 'error', 49 | { 50 | argsIgnorePattern: '^h$', 51 | varsIgnorePattern: '^h$', 52 | }, 53 | ], 54 | 'no-unused-vars': [ 55 | 'error', 56 | { 57 | argsIgnorePattern: '^h$', 58 | varsIgnorePattern: '^h$', 59 | }, 60 | ], 61 | 'space-before-function-paren': 'off', 62 | quotes: ['error', 'single'], 63 | 'comma-dangle': ['error', 'never'], 64 | }, 65 | }; 66 | -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/src/router/checkRole.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Author: your name 3 | * @Date: 2021-12-22 15:41:55 4 | * @LastEditTime: 2022-01-20 17:08:18 5 | * @LastEditors: Please set LastEditors 6 | * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE 7 | * @FilePath: /sz-team-frontend-9.5.x/y9vue-home/src/router/checkRole.js 8 | */ 9 | import router, { asyncRoutes } from "@/router"; 10 | import { useRouterStore } from "@/store/modules/routerStore"; 11 | 12 | 13 | /** 14 | * 根据 meta.role 判断当前用户是否有权限 15 | * @param roles 用户的权限 16 | * @param route 路由 17 | */ 18 | function hasPermission(roles, route) { 19 | if (route.meta && route.meta.roles) { 20 | return roles.some(role => route.meta.roles.includes(role)); 21 | } else { 22 | return true; 23 | } 24 | } 25 | 26 | /** 27 | * 根据权限 - 递归过滤异步路由 - 深度优先遍历 - 留下有权限的路由 28 | * @param routes asyncRoutes 29 | * @param roles 30 | */ 31 | function filterAsyncRoutes(routes, roles) { 32 | const res = []; 33 | 34 | routes.forEach(route => { 35 | const tmp = {...route }; 36 | if (hasPermission(roles, tmp)) { 37 | if (tmp.children) { 38 | tmp.children = filterAsyncRoutes(tmp.children, roles); 39 | } 40 | res.push(tmp); 41 | } 42 | }); 43 | return res; 44 | } 45 | 46 | 47 | /** 48 | * 获取对应权限路由 49 | * @param routes asyncRoutes 50 | * @param roles 51 | */ 52 | export function getPermissionRoutes(rolesArr = ['systemAdmin']) { 53 | const routerStore = useRouterStore() 54 | const roles = rolesArr; 55 | const permissionRoutes = filterAsyncRoutes(asyncRoutes, roles); 56 | // 项目存储中心 pinia - routerStore模块 存储有权限的所有路由源数据,permissionRoutes即包含项目所有可跳转的路由 57 | routerStore.$patch({ 58 | PermissionRoutes: permissionRoutes 59 | }) 60 | return permissionRoutes; 61 | } 62 | 63 | // 查询路由权限 64 | export async function checkRole(rolesArr = ['systemAdmin']) { 65 | // 获取权限路由 66 | const permissionRoutes = getPermissionRoutes(rolesArr); 67 | if (permissionRoutes.length !== 0) { 68 | await permissionRoutes.map((route) => { 69 | router.addRoute(route); 70 | }); 71 | return permissionRoutes; 72 | 73 | } else { 74 | // console.log("没有权限"); 75 | return false; 76 | } 77 | } -------------------------------------------------------------------------------- /vue/y9vue-interfacePlatform/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "interface", 3 | "version": "1.0.0", 4 | "author": "Fuyu", 5 | "description": "接口管理", 6 | "main": "/electron/main.js", 7 | "scripts": { 8 | "serve": "vite --mode development --host 0.0.0.0", 9 | "build": "vite build", 10 | "preview": "vite preview", 11 | "svgo": "svgo -f src/assets/iconsvg --config=src/assets/iconsvg/svgo.yml" 12 | }, 13 | "dependencies": { 14 | "@element-plus/icons": "0.0.11", 15 | "@sxzz/popperjs-es": "^2.11.7", 16 | "@types/lodash": "^4.14.180", 17 | "@typescript-eslint/eslint-plugin": "^5.27.0", 18 | "@typescript-eslint/parser": "^5.27.0", 19 | "@vueuse/core": "^7.7.1", 20 | "animate.css": "^4.1.1", 21 | "axios": "^0.24.0", 22 | "core-js": "^3.20.1", 23 | "echarts": "^5.3.2", 24 | "echarts-liquidfill": "^3.1.0", 25 | "element-plus": "^2.3.9", 26 | "js-cookie": "^3.0.1", 27 | "lodash": "^4.17.21", 28 | "md5": "^2.3.0", 29 | "moment": "^2.29.3", 30 | "normalize.css": "^8.0.1", 31 | "nprogress": "^0.2.0", 32 | "pinia": "^2.0.11", 33 | "progress": "^2.0.3", 34 | "qs": "^6.10.2", 35 | "remixicon": "^2.5.0", 36 | "sass": "^1.77.8", 37 | "v-viewer": "^3.0.10", 38 | "viewerjs": "^1.11.6", 39 | "vue": "^3.3.4", 40 | "vue-demi": "^0.12.4", 41 | "vue-i18n": "^9.1.9", 42 | "vue-json-pretty": "^2.4.0", 43 | "vue-router": "^4.0.13", 44 | "vxe-table": "^4.3.5", 45 | "xe-utils": "^3.5.7", 46 | "y9plugin-components": "^2.1.8", 47 | "y9plugin-sso": "^4.2.9", 48 | "y9plugin-watermark": "^1.2.0" 49 | }, 50 | "devDependencies": { 51 | "@babel/plugin-syntax-dynamic-import": "^7.8.3", 52 | "@iconify/json": "^2.1.14", 53 | "@vitejs/plugin-vue": "^4.6.2", 54 | "@vue/compiler-sfc": "^3.2.32", 55 | "@zougt/vite-plugin-theme-preprocessor": "^1.4.4", 56 | "babel-eslint": "^10.1.0", 57 | "eslint": "^8.17.0", 58 | "eslint-config-prettier": "^8.5.0", 59 | "eslint-plugin-html": "^6.2.0", 60 | "eslint-plugin-prettier": "^4.0.0", 61 | "eslint-plugin-vue": "^8.7.1", 62 | "path": "^0.12.7", 63 | "prettier": "^2.6.2", 64 | "svgo": "^1.3.2", 65 | "typescript": "^4.5.4", 66 | "unplugin-auto-import": "^0.17.5", 67 | "unplugin-icons": "^0.18.5", 68 | "unplugin-vue-components": "^0.26.0", 69 | "vite": "^4.4.9" 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /y9-module-interface/risenet-y9boot-webapp-interface-platform-execute/src/main/java/net/risesoft/config/RestConfig.java: -------------------------------------------------------------------------------- 1 | package net.risesoft.config; 2 | 3 | import org.apache.http.client.HttpClient; 4 | import org.apache.http.client.config.RequestConfig; 5 | import org.apache.http.config.Registry; 6 | import org.apache.http.config.RegistryBuilder; 7 | import org.apache.http.conn.socket.ConnectionSocketFactory; 8 | import org.apache.http.conn.socket.PlainConnectionSocketFactory; 9 | import org.apache.http.conn.ssl.SSLConnectionSocketFactory; 10 | import org.apache.http.impl.client.HttpClientBuilder; 11 | import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; 12 | import org.springframework.context.annotation.Bean; 13 | import org.springframework.context.annotation.Configuration; 14 | import org.springframework.http.client.ClientHttpRequestFactory; 15 | import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; 16 | import org.springframework.web.client.RestTemplate; 17 | 18 | /** 19 | * 采用连接池的配置方法 20 | */ 21 | @Configuration 22 | public class RestConfig { 23 | @Bean 24 | public RestTemplate restTemplate(){ 25 | return new RestTemplate(httpRequestFactory()); 26 | } 27 | @Bean 28 | public ClientHttpRequestFactory httpRequestFactory(){ 29 | return new HttpComponentsClientHttpRequestFactory(httpClient()); 30 | } 31 | @Bean 32 | public HttpClient httpClient(){ 33 | Registry registry = RegistryBuilder.create() 34 | .register("http", PlainConnectionSocketFactory.getSocketFactory()) 35 | .register("https", SSLConnectionSocketFactory.getSocketFactory()) 36 | .build(); 37 | PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); 38 | connectionManager.setMaxTotal(400); 39 | connectionManager.setDefaultMaxPerRoute(100); 40 | RequestConfig requestConfig = RequestConfig.custom() 41 | .setSocketTimeout(30000)//返回数据的超时时间 42 | .setConnectTimeout(20000)//连接上服务器的超时时间 43 | .setConnectionRequestTimeout(1000)//从连接池中获取连接的超时时间 44 | .build(); 45 | return HttpClientBuilder.create() 46 | .setDefaultRequestConfig(requestConfig) 47 | .setConnectionManager(connectionManager) 48 | .build(); 49 | } 50 | } 51 | --------------------------------------------------------------------------------