From e23911b0752e8ab438bf96e6a85fd95e4503521a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=A6=82?= <8775@163.com>
Date: Thu, 10 Oct 2024 11:35:34 +0800
Subject: [PATCH] 5.0
---
pom.xml | 4 +-
.../sop/adminbackend/common/dto/IdDTO.java | 14 +
.../common/dto/StatusUpdateDTO.java | 16 +
.../common/{ => enums}/ConfigKeyEnum.java | 2 +-
.../adminbackend/common/enums/StatusEnum.java | 33 ++
.../sop/adminbackend/common/req/IdParam.java | 14 +
.../common/req/StatusUpdateParam.java | 16 +
.../sop/adminbackend/common/resp/Result.java | 46 +++
.../sop/adminbackend/config/Configs.java | 2 +-
.../ExceptionHandlerController.java | 2 +-
.../controller/isv/IsvInfoController.java | 91 ++++++
.../controller/isv/dto/IsvKeysDTO.java | 31 ++
.../controller/serve/ApiInfoController.java | 19 +-
.../controller/serve/req/ApiInfoParam.java | 2 +
.../controller/sys/LoginController.java | 2 +-
.../sys/SysAdminUserController.java | 43 +--
.../sop/adminbackend/dao/entity/ApiInfo.java | 5 +
.../service/isv/IsvInfoService.java | 29 ++
.../service/serve/ApiInfoService.java | 8 +
.../service/sys/SysAdminUserService.java | 3 +-
.../service/sys/UpgradeService.java | 2 +-
.../service/sys/login/LoginService.java | 4 +-
.../login/impl/DefaultUserCacheManager.java | 2 +-
.../sop-admin-frontend/mock/asyncRoutes.ts | 77 +++--
.../sop-admin-frontend/src/api/isvList.ts | 52 +++
.../sop-admin-frontend/src/api/routes.ts | 2 +-
.../sop-admin-frontend/src/api/serveApi.ts | 52 +++
.../sop-admin-frontend/src/api/service/api.ts | 0
.../src/api/sysAdminUser.ts | 44 +++
sop-admin/sop-admin-frontend/src/api/user.ts | 13 +-
.../src/model/enums/index.ts | 4 +
.../sop-admin-frontend/src/model/index.ts | 2 +
.../src/utils/http/index.ts | 23 +-
.../src/views/admin/user/index.ts | 306 ++++++++++++++++++
.../src/views/admin/user/index.vue | 62 ++++
.../src/views/isv/list/index.ts | 265 +++++++++++++++
.../src/views/isv/list/index.vue | 82 +++++
.../src/views/isv/list/showKeys.ts | 86 +++++
.../src/views/serve/api/index.ts | 201 +++++++-----
.../src/views/serve/api/index.vue | 7 +-
sop-common/pom.xml | 31 +-
.../gitee/sop/common/bean/SpringContext.java | 32 ++
.../gitee/sop/common/enums}/StatusEnum.java | 6 +-
.../com/gitee/sop/common/req}/IdParam.java | 2 +-
.../sop/common/req/StatusUpdateParam.java | 17 +
.../com/gitee/sop/common/resp}/Result.java | 2 +-
sop-gateway/pom.xml | 266 ++++++++++++---
.../sop/gateway/SopGatewayApplication.java | 15 +-
.../gitee/sop/gateway}/common/ApiInfoDTO.java | 2 +-
.../sop/gateway}/common/AttachmentNames.java | 2 +-
.../sop/gateway}/common/ParamInfoDTO.java | 2 +-
.../sop/gateway}/common/RouteContext.java | 4 +-
.../sop/gateway}/common/SopConstants.java | 2 +-
.../gitee/sop/gateway}/common/StatusEnum.java | 4 +-
.../gitee/sop/gateway/config/ApiConfig.java | 89 +++++
.../sop/gateway}/config/CustomConfig.java | 2 +-
.../sop/gateway}/config/IndexConfig.java | 44 +--
.../gateway}/controller/IndexController.java | 13 +-
.../sop/gateway}/dao/entity/ApiInfo.java | 7 +-
.../sop/gateway}/dao/entity/IsvInfo.java | 2 +-
.../sop/gateway}/dao/entity/IsvKeys.java | 2 +-
.../gateway}/dao/mapper/ApiInfoMapper.java | 4 +-
.../gateway}/dao/mapper/IsvInfoMapper.java | 4 +-
.../gateway}/dao/mapper/IsvKeysMapper.java | 4 +-
.../sop/gateway}/exception/ApiException.java | 6 +-
.../ControllerGlobalExceptionHandler.java | 6 +-
.../gateway}/exception/ExceptionExecutor.java | 6 +-
.../sop/gateway}/exception/SignException.java | 4 +-
.../exception/impl/ExceptionExecutorImpl.java | 12 +-
.../gitee/sop/gateway}/message/ErrorEnum.java | 2 +-
.../sop/gateway}/message/ErrorFactory.java | 2 +-
.../gitee/sop/gateway}/message/ErrorImpl.java | 2 +-
.../gitee/sop/gateway}/message/ErrorMeta.java | 2 +-
.../gitee/sop/gateway}/message/IError.java | 2 +-
.../sop/gateway}/request/ApiRequest.java | 2 +-
.../gateway}/request/ApiRequestContext.java | 2 +-
.../request/ApiRequestContextFactory.java | 11 +-
.../gateway}/request/ApiUploadContext.java | 2 +-
.../gateway}/request/RequestFormatEnum.java | 2 +-
.../sop/gateway}/request/UploadContext.java | 2 +-
.../sop/gateway}/response/ApiResponse.java | 10 +-
.../service/GenericServiceInvoker.java | 2 +-
.../sop/gateway}/service/ParamExecutor.java | 6 +-
.../gateway}/service/ParamExecutorImpl.java | 42 +--
.../sop/gateway}/service/RouteService.java | 6 +-
.../gateway}/service/RouteServiceImpl.java | 28 +-
.../service/dubbo/ApiRegisterServiceImpl.java | 15 +-
.../service/dubbo/IsvServiceImpl.java | 4 +-
.../service/interceptor/RouteInterceptor.java | 6 +-
.../interceptor/RouteInterceptorOrders.java | 2 +-
.../internal/ResultRouteInterceptor.java | 10 +-
.../gateway}/service/manager/ApiManager.java | 4 +-
.../service/manager/IpBlacklistManager.java | 2 +-
.../manager/IsvApiPermissionManager.java | 2 +-
.../gateway}/service/manager/IsvManager.java | 4 +-
.../service/manager/SecretManager.java | 2 +-
.../gateway}/service/manager/dto/IsvDTO.java | 2 +-
.../manager/impl/IpBlacklistManagerImpl.java | 4 +-
.../impl/IsvApiPermissionManagerImpl.java | 4 +-
.../manager/impl/LocalApiManagerImpl.java | 12 +-
.../manager/impl/LocalIsvManagerImpl.java | 12 +-
.../manager/impl/LocalSecretManagerImpl.java | 8 +-
.../manager/impl/RedisApiManagerImpl.java | 10 +-
.../manager/impl/RedisIsvManagerImpl.java | 10 +-
.../manager/impl/RedisSecretManager.java | 4 +-
.../service/validate/AbstractSigner.java | 10 +-
.../service/validate/ApiEncrypter.java | 8 +-
.../service/validate/ApiValidator.java | 39 +--
.../gateway}/service/validate/Encrypter.java | 2 +-
.../gateway}/service/validate/SignConfig.java | 4 +-
.../service/validate/SignEncipher.java | 2 +-
.../service/validate/SignEncipherMD5.java | 2 +-
.../sop/gateway}/service/validate/Signer.java | 4 +-
.../gateway}/service/validate/Validator.java | 6 +-
.../validate/alipay/AlipayConstants.java | 2 +-
.../validate/alipay/AlipaySignature.java | 56 ++--
.../service/validate/alipay/AlipaySigner.java | 44 +--
.../service/validate/alipay/StreamUtil.java | 2 +-
.../service/validate/alipay/StringUtils.java | 2 +-
.../com/gitee/sop/gateway}/util/AESUtil.java | 2 +-
.../gitee/sop/gateway}/util/ClassUtil.java | 2 +-
.../com/gitee/sop/gateway}/util/CopyUtil.java | 2 +-
.../com/gitee/sop/gateway}/util/DateUtil.java | 2 +-
.../com/gitee/sop/gateway}/util/JsonUtil.java | 2 +-
.../com/gitee/sop/gateway}/util/KeyStore.java | 2 +-
.../gitee/sop/gateway}/util/RSANewUtil.java | 2 +-
.../com/gitee/sop/gateway}/util/RSAUtil.java | 2 +-
.../gitee/sop/gateway}/util/RequestUtil.java | 9 +-
.../gitee/sop/gateway}/util/ResponseUtil.java | 10 +-
.../main/resources/application-dev.properties | 20 +-
.../resources/application-test.properties | 6 +-
.../src/main/resources/application.properties | 90 +++++-
.../resources/i18n/open/error_en.properties | 0
.../i18n/open/error_zh_CN.properties | 0
.../src/main/resources/i18n/readme.md | 0
.../main/resources/mybatis/mybatisConfig.xml | 0
{sop-gateway => sop-gateway_old}/.gitignore | 0
sop-gateway_old/pom.xml | 104 ++++++
{sop-gateway => sop-gateway_old}/readme.md | 0
.../sop/gateway/SopGatewayApplication.java | 18 ++
.../gitee/sop/gateway/config/MyConfig.java | 0
.../gitee/sop/gateway/entity/ConfigGray.java | 0
.../gateway/entity/ConfigGrayInstance.java | 0
.../gitee/sop/gateway/entity/ConfigLimit.java | 0
.../sop/gateway/entity/ConfigRouteBase.java | 0
.../gateway/entity/ConfigServiceRoute.java | 0
.../sop/gateway/entity/IsvDetailDTO.java | 0
.../com/gitee/sop/gateway/entity/IsvInfo.java | 0
.../gitee/sop/gateway/entity/MonitorInfo.java | 0
.../sop/gateway/entity/MonitorInfoError.java | 0
.../gitee/sop/gateway/entity/PermIsvRole.java | 0
.../gateway/entity/PermRolePermission.java | 0
.../interceptor/MonitorRouteInterceptor.java | 0
.../MonitorRouteInterceptorService.java | 0
.../interceptor/MyRouteInterceptor.java | 0
.../sop/gateway/manager/DbEnvGrayManager.java | 0
.../gateway/manager/DbIPBlacklistManager.java | 0
.../sop/gateway/manager/DbIsvManager.java | 0
.../manager/DbIsvRoutePermissionManager.java | 0
.../gateway/manager/DbLimitConfigManager.java | 0
.../gateway/manager/DbMonitorInfoManager.java | 0
.../gateway/manager/DbRouteConfigManager.java | 0
.../gateway/manager/DbRoutesProcessor.java | 0
.../mapper/ConfigGrayInstanceMapper.java | 0
.../sop/gateway/mapper/ConfigGrayMapper.java | 0
.../sop/gateway/mapper/ConfigLimitMapper.java | 0
.../gateway/mapper/ConfigRouteBaseMapper.java | 0
.../sop/gateway/mapper/ConfigRouteMapper.java | 0
.../mapper/ConfigServiceRouteMapper.java | 0
.../sop/gateway/mapper/IPBlacklistMapper.java | 0
.../sop/gateway/mapper/IsvInfoMapper.java | 0
.../mapper/MonitorInfoErrorMapper.java | 0
.../sop/gateway/mapper/MonitorInfoMapper.java | 0
.../sop/gateway/mapper/PermIsvRoleMapper.java | 0
.../mapper/PermRolePermissionMapper.java | 0
.../sop/gateway/mapper/SystemLockMapper.java | 0
.../resources/META-INF/gateway.properties | 0
.../main/resources/META-INF/spring.factories | 0
.../main/resources/application-dev.properties | 18 ++
.../src/main/resources/application.properties | 1 +
.../mybatis/mapper/MonitorInfoErrorMapper.xml | 0
.../mybatis/mapper/MonitorInfoMapper.xml | 0
.../com/gitee/sop/gateway/ExcludeTest.java | 0
.../com/gitee/sop/gateway/RoundRobinTest.java | 0
.../gateway/SopGatewayApplicationTests.java | 0
.../com/gitee/sop/gateway/UrlPatternTest.java | 0
sop-index/pom.xml | 278 ----------------
.../gitee/sop/index/SopIndexApplication.java | 15 -
.../com/gitee/sop/index/config/ApiConfig.java | 37 ---
.../sop/index/config/RequestParamConfig.java | 38 ---
.../main/resources/application-dev.properties | 8 -
.../src/main/resources/application.properties | 89 -----
.../gitee/sop/test/AlipayClientPostTest.java | 1 -
193 files changed, 2435 insertions(+), 1008 deletions(-)
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/IdDTO.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/StatusUpdateDTO.java
rename sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/{ => enums}/ConfigKeyEnum.java (88%)
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/StatusEnum.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/IdParam.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/StatusUpdateParam.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/resp/Result.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/IsvInfoController.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/dto/IsvKeysDTO.java
create mode 100644 sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/isv/IsvInfoService.java
create mode 100644 sop-admin/sop-admin-frontend/src/api/isvList.ts
create mode 100644 sop-admin/sop-admin-frontend/src/api/serveApi.ts
delete mode 100644 sop-admin/sop-admin-frontend/src/api/service/api.ts
create mode 100644 sop-admin/sop-admin-frontend/src/api/sysAdminUser.ts
create mode 100644 sop-admin/sop-admin-frontend/src/model/enums/index.ts
create mode 100644 sop-admin/sop-admin-frontend/src/views/admin/user/index.ts
create mode 100644 sop-admin/sop-admin-frontend/src/views/admin/user/index.vue
create mode 100644 sop-admin/sop-admin-frontend/src/views/isv/list/index.ts
create mode 100644 sop-admin/sop-admin-frontend/src/views/isv/list/index.vue
create mode 100644 sop-admin/sop-admin-frontend/src/views/isv/list/showKeys.ts
create mode 100644 sop-common/src/main/java/com/gitee/sop/common/bean/SpringContext.java
rename {sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common => sop-common/src/main/java/com/gitee/sop/common/enums}/StatusEnum.java (84%)
rename {sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common => sop-common/src/main/java/com/gitee/sop/common/req}/IdParam.java (81%)
create mode 100644 sop-common/src/main/java/com/gitee/sop/common/req/StatusUpdateParam.java
rename {sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common => sop-common/src/main/java/com/gitee/sop/common/resp}/Result.java (95%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/common/ApiInfoDTO.java (96%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/common/AttachmentNames.java (95%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/common/ParamInfoDTO.java (78%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/common/RouteContext.java (70%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/common/SopConstants.java (88%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/common/StatusEnum.java (77%)
create mode 100644 sop-gateway/src/main/java/com/gitee/sop/gateway/config/ApiConfig.java
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/config/CustomConfig.java (81%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/config/IndexConfig.java (50%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/controller/IndexController.java (86%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/dao/entity/ApiInfo.java (89%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/dao/entity/IsvInfo.java (94%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/dao/entity/IsvKeys.java (96%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/dao/mapper/ApiInfoMapper.java (80%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/dao/mapper/IsvInfoMapper.java (73%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/dao/mapper/IsvKeysMapper.java (73%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/exception/ApiException.java (88%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/exception/ControllerGlobalExceptionHandler.java (95%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/exception/ExceptionExecutor.java (50%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/exception/SignException.java (83%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/exception/impl/ExceptionExecutorImpl.java (86%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/message/ErrorEnum.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/message/ErrorFactory.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/message/ErrorImpl.java (92%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/message/ErrorMeta.java (94%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/message/IError.java (95%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/request/ApiRequest.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/request/ApiRequestContext.java (92%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/request/ApiRequestContextFactory.java (90%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/request/ApiUploadContext.java (96%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/request/RequestFormatEnum.java (93%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/request/UploadContext.java (94%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/response/ApiResponse.java (92%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/GenericServiceInvoker.java (98%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/ParamExecutor.java (81%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/ParamExecutorImpl.java (70%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/RouteService.java (63%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/RouteServiceImpl.java (91%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/dubbo/ApiRegisterServiceImpl.java (75%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/dubbo/IsvServiceImpl.java (83%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/interceptor/RouteInterceptor.java (88%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/interceptor/RouteInterceptorOrders.java (71%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/interceptor/internal/ResultRouteInterceptor.java (88%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/ApiManager.java (85%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/IpBlacklistManager.java (72%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/IsvApiPermissionManager.java (77%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/IsvManager.java (76%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/SecretManager.java (85%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/dto/IsvDTO.java (72%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/IpBlacklistManagerImpl.java (66%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/IsvApiPermissionManagerImpl.java (69%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/LocalApiManagerImpl.java (75%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/LocalIsvManagerImpl.java (73%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/LocalSecretManagerImpl.java (83%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/RedisApiManagerImpl.java (88%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/RedisIsvManagerImpl.java (86%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/manager/impl/RedisSecretManager.java (93%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/AbstractSigner.java (83%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/ApiEncrypter.java (90%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/ApiValidator.java (90%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/Encrypter.java (97%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/SignConfig.java (89%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/SignEncipher.java (84%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/SignEncipherMD5.java (88%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/Signer.java (75%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/Validator.java (64%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/alipay/AlipayConstants.java (98%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/alipay/AlipaySignature.java (92%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/alipay/AlipaySigner.java (61%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/alipay/StreamUtil.java (98%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/service/validate/alipay/StringUtils.java (98%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/AESUtil.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/ClassUtil.java (97%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/CopyUtil.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/DateUtil.java (89%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/JsonUtil.java (94%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/KeyStore.java (92%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/RSANewUtil.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/RSAUtil.java (99%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/RequestUtil.java (97%)
rename {sop-index/src/main/java/com/gitee/sop/index => sop-gateway/src/main/java/com/gitee/sop/gateway}/util/ResponseUtil.java (88%)
rename {sop-index => sop-gateway}/src/main/resources/application-test.properties (80%)
rename {sop-index => sop-gateway}/src/main/resources/i18n/open/error_en.properties (100%)
rename {sop-index => sop-gateway}/src/main/resources/i18n/open/error_zh_CN.properties (100%)
rename {sop-index => sop-gateway}/src/main/resources/i18n/readme.md (100%)
rename {sop-index => sop-gateway}/src/main/resources/mybatis/mybatisConfig.xml (100%)
rename {sop-gateway => sop-gateway_old}/.gitignore (100%)
create mode 100644 sop-gateway_old/pom.xml
rename {sop-gateway => sop-gateway_old}/readme.md (100%)
create mode 100644 sop-gateway_old/src/main/java/com/gitee/sop/gateway/SopGatewayApplication.java
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/config/MyConfig.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/ConfigGray.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/ConfigGrayInstance.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/ConfigLimit.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/ConfigRouteBase.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/ConfigServiceRoute.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/IsvDetailDTO.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/IsvInfo.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/MonitorInfo.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/MonitorInfoError.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/PermIsvRole.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/entity/PermRolePermission.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/interceptor/MonitorRouteInterceptor.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/interceptor/MonitorRouteInterceptorService.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/interceptor/MyRouteInterceptor.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbEnvGrayManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbIPBlacklistManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbIsvManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbIsvRoutePermissionManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbLimitConfigManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbMonitorInfoManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbRouteConfigManager.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/manager/DbRoutesProcessor.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/ConfigGrayInstanceMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/ConfigGrayMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/ConfigLimitMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/ConfigRouteBaseMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/ConfigRouteMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/ConfigServiceRouteMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/IPBlacklistMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/IsvInfoMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/MonitorInfoErrorMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/MonitorInfoMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/PermIsvRoleMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/PermRolePermissionMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/java/com/gitee/sop/gateway/mapper/SystemLockMapper.java (100%)
rename {sop-gateway => sop-gateway_old}/src/main/resources/META-INF/gateway.properties (100%)
rename {sop-gateway => sop-gateway_old}/src/main/resources/META-INF/spring.factories (100%)
create mode 100644 sop-gateway_old/src/main/resources/application-dev.properties
create mode 100644 sop-gateway_old/src/main/resources/application.properties
rename {sop-gateway => sop-gateway_old}/src/main/resources/mybatis/mapper/MonitorInfoErrorMapper.xml (100%)
rename {sop-gateway => sop-gateway_old}/src/main/resources/mybatis/mapper/MonitorInfoMapper.xml (100%)
rename {sop-gateway => sop-gateway_old}/src/test/java/com/gitee/sop/gateway/ExcludeTest.java (100%)
rename {sop-gateway => sop-gateway_old}/src/test/java/com/gitee/sop/gateway/RoundRobinTest.java (100%)
rename {sop-gateway => sop-gateway_old}/src/test/java/com/gitee/sop/gateway/SopGatewayApplicationTests.java (100%)
rename {sop-gateway => sop-gateway_old}/src/test/java/com/gitee/sop/gateway/UrlPatternTest.java (100%)
delete mode 100644 sop-index/pom.xml
delete mode 100644 sop-index/src/main/java/com/gitee/sop/index/SopIndexApplication.java
delete mode 100644 sop-index/src/main/java/com/gitee/sop/index/config/ApiConfig.java
delete mode 100644 sop-index/src/main/java/com/gitee/sop/index/config/RequestParamConfig.java
delete mode 100644 sop-index/src/main/resources/application-dev.properties
delete mode 100644 sop-index/src/main/resources/application.properties
diff --git a/pom.xml b/pom.xml
index 2053dabe..aae42024 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
doc
-
+ sop-common
sop-example
sop-admin
@@ -25,7 +25,7 @@
sop-test
sop-sdk
- sop-index
+ sop-gateway
sop-registry
sop-support
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/IdDTO.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/IdDTO.java
new file mode 100644
index 00000000..05cd9976
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/IdDTO.java
@@ -0,0 +1,14 @@
+package com.gitee.sop.adminbackend.common.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 六如
+ */
+@Data
+public class IdDTO {
+ @NotNull(message = "id不能为空")
+ private Long id;
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/StatusUpdateDTO.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/StatusUpdateDTO.java
new file mode 100644
index 00000000..33d3e93b
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/dto/StatusUpdateDTO.java
@@ -0,0 +1,16 @@
+package com.gitee.sop.adminbackend.common.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 六如
+ */
+@Data
+public class StatusUpdateDTO extends IdDTO {
+
+ @NotNull(message = "状态不能为空")
+ private Integer status;
+
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/ConfigKeyEnum.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/ConfigKeyEnum.java
similarity index 88%
rename from sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/ConfigKeyEnum.java
rename to sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/ConfigKeyEnum.java
index 482d0dcd..80e3eef2 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/ConfigKeyEnum.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/ConfigKeyEnum.java
@@ -1,4 +1,4 @@
-package com.gitee.sop.adminbackend.common;
+package com.gitee.sop.adminbackend.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/StatusEnum.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/StatusEnum.java
new file mode 100644
index 00000000..a6c64c24
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/enums/StatusEnum.java
@@ -0,0 +1,33 @@
+package com.gitee.sop.adminbackend.common.enums;
+
+import lombok.Getter;
+
+import java.util.Objects;
+
+/**
+ * @author 六如
+ */
+@Getter
+public enum StatusEnum {
+ DISABLED((byte)2),
+ ENABLE((byte)1),
+ SET_PWD((byte)3),
+ ;
+
+ private final int status;
+
+ public static StatusEnum of(Integer value) {
+ for (StatusEnum statusEnum : StatusEnum.values()) {
+ if (Objects.equals(statusEnum.status, value)) {
+ return statusEnum;
+ }
+ }
+ return DISABLED;
+ }
+
+ StatusEnum(byte style) {
+ this.status = style;
+ }
+
+
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/IdParam.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/IdParam.java
new file mode 100644
index 00000000..51bd2732
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/IdParam.java
@@ -0,0 +1,14 @@
+package com.gitee.sop.adminbackend.common.req;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 六如
+ */
+@Data
+public class IdParam {
+ @NotNull(message = "id不能为空")
+ private Long id;
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/StatusUpdateParam.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/StatusUpdateParam.java
new file mode 100644
index 00000000..3ff967fd
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/req/StatusUpdateParam.java
@@ -0,0 +1,16 @@
+package com.gitee.sop.adminbackend.common.req;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 六如
+ */
+@Data
+public class StatusUpdateParam extends IdParam {
+
+ @NotNull(message = "状态不能为空")
+ private Integer status;
+
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/resp/Result.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/resp/Result.java
new file mode 100644
index 00000000..58fb9169
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/common/resp/Result.java
@@ -0,0 +1,46 @@
+package com.gitee.sop.adminbackend.common.resp;
+
+import lombok.Data;
+
+import java.util.Objects;
+
+/**
+ * @author thc
+ */
+@Data
+public class Result {
+
+ private static final Result> RESULT = new Result<>();
+
+ private String code = "0";
+ private T data;
+ private String msg = "success";
+
+ public static Result> ok() {
+ return RESULT;
+ }
+
+ public static Result ok(E obj) {
+ Result result = new Result<>();
+ result.setData(obj);
+ return result;
+ }
+
+ public static Result err(String msg) {
+ Result result = new Result<>();
+ result.setCode("1");
+ result.setMsg(msg);
+ return result;
+ }
+
+ public static Result err(String code, String msg) {
+ Result result = new Result<>();
+ result.setCode(code);
+ result.setMsg(msg);
+ return result;
+ }
+
+ public boolean getSuccess() {
+ return Objects.equals("0", code);
+ }
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/config/Configs.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/config/Configs.java
index 6679aef1..ce95baa9 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/config/Configs.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/config/Configs.java
@@ -1,6 +1,6 @@
package com.gitee.sop.adminbackend.config;
-import com.gitee.sop.adminbackend.common.ConfigKeyEnum;
+import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
import com.gitee.sop.adminbackend.common.IConfig;
import com.gitee.sop.adminbackend.common.SpringContext;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/ExceptionHandlerController.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/ExceptionHandlerController.java
index 06e3b0cd..13956ca7 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/ExceptionHandlerController.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/ExceptionHandlerController.java
@@ -1,6 +1,6 @@
package com.gitee.sop.adminbackend.controller;
-import com.gitee.sop.adminbackend.common.Result;
+import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.common.exception.BizException;
import com.gitee.sop.adminbackend.common.exception.ErrorCode;
import com.gitee.sop.adminbackend.common.exception.ExceptionCode;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/IsvInfoController.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/IsvInfoController.java
new file mode 100644
index 00000000..6143fe97
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/IsvInfoController.java
@@ -0,0 +1,91 @@
+package com.gitee.sop.adminbackend.controller.isv;
+
+import com.gitee.fastmybatis.core.PageInfo;
+import com.gitee.fastmybatis.core.query.Query;
+import com.gitee.fastmybatis.core.query.param.PageParam;
+import com.gitee.sop.adminbackend.common.req.IdParam;
+import com.gitee.sop.adminbackend.common.resp.Result;
+import com.gitee.sop.adminbackend.controller.isv.dto.IsvKeysDTO;
+import com.gitee.sop.adminbackend.dao.entity.IsvInfo;
+import com.gitee.sop.adminbackend.service.isv.IsvInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * @author 六如
+ */
+@RestController
+@RequestMapping("isv")
+public class IsvInfoController {
+
+ @Autowired
+ private IsvInfoService isvInfoService;
+
+ /**
+ * 分页查询
+ *
+ * @param param
+ * @return
+ */
+ @GetMapping("/page")
+ public Result> page(PageParam param) {
+ Query query = param.toQuery();
+ PageInfo pageInfo = isvInfoService.page(query);
+ return Result.ok(pageInfo);
+ }
+
+ /**
+ * 获取秘钥信息
+ *
+ * @param appId
+ * @return
+ */
+ @GetMapping("/getKeys")
+ public Result getKeys(String appId) {
+ IsvKeysDTO isvKeysDTO = isvInfoService.getKeys(appId);
+ return Result.ok(isvKeysDTO);
+ }
+
+ /**
+ * 新增记录
+ *
+ * @param user
+ * @return 返回添加后的主键值
+ */
+ @PostMapping("/add")
+ public Result add(@Validated @RequestBody IsvInfo user) {
+ isvInfoService.save(user);
+ // 返回添加后的主键值
+ return Result.ok(user.getId());
+ }
+
+ /**
+ * 修改记录
+ *
+ * @param user 表单数据
+ * @return 返回影响行数
+ */
+ @PostMapping("/update")
+ public Result update(@Validated @RequestBody IsvInfo user) {
+ return Result.ok(isvInfoService.update(user));
+ }
+
+ /**
+ * 删除记录
+ *
+ * @param param 参数
+ * @return 返回影响行数
+ */
+ @PostMapping("/delete")
+ public Result delete(@Validated @RequestBody IdParam param) {
+ return Result.ok(isvInfoService.deleteById(param.getId()));
+ }
+
+
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/dto/IsvKeysDTO.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/dto/IsvKeysDTO.java
new file mode 100644
index 00000000..5777a427
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/isv/dto/IsvKeysDTO.java
@@ -0,0 +1,31 @@
+package com.gitee.sop.adminbackend.controller.isv.dto;
+
+import lombok.Data;
+
+/**
+ * @author 六如
+ */
+@Data
+public class IsvKeysDTO {
+
+ /**
+ * 开发者生成的公钥, 数据库字段:public_key_isv
+ */
+ private String publicKeyIsv;
+
+ /**
+ * 开发者生成的私钥(交给开发者), 数据库字段:private_key_isv
+ */
+ private String privateKeyIsv;
+
+ /**
+ * 平台生成的公钥(交给开发者), 数据库字段:public_key_platform
+ */
+ private String publicKeyPlatform;
+
+ /**
+ * 平台生成的私钥, 数据库字段:private_key_platform
+ */
+ private String privateKeyPlatform;
+
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/ApiInfoController.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/ApiInfoController.java
index ec23746b..58866196 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/ApiInfoController.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/ApiInfoController.java
@@ -2,11 +2,14 @@ package com.gitee.sop.adminbackend.controller.serve;
import com.gitee.fastmybatis.core.PageInfo;
import com.gitee.fastmybatis.core.query.Query;
-import com.gitee.sop.adminbackend.common.IdParam;
-import com.gitee.sop.adminbackend.common.Result;
+import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
+import com.gitee.sop.adminbackend.common.req.IdParam;
+import com.gitee.sop.adminbackend.common.req.StatusUpdateParam;
+import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.serve.req.ApiInfoParam;
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
import com.gitee.sop.adminbackend.service.serve.ApiInfoService;
+import com.gitee.sop.adminbackend.util.CopyUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@@ -66,6 +69,18 @@ public class ApiInfoController {
return Result.ok(apiInfoService.update(user));
}
+ /**
+ * 修改状态
+ *
+ * @param param 表单数据
+ * @return 返回影响行数
+ */
+ @PostMapping("/updateStatus")
+ public Result updateStatus(@Validated @RequestBody StatusUpdateParam param) {
+ StatusUpdateDTO statusUpdateDTO = CopyUtil.copyBean(param, StatusUpdateDTO::new);
+ return Result.ok(apiInfoService.updateStatus(statusUpdateDTO));
+ }
+
/**
* 删除记录
*
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/req/ApiInfoParam.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/req/ApiInfoParam.java
index 6aebc095..7305b90d 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/req/ApiInfoParam.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/serve/req/ApiInfoParam.java
@@ -14,5 +14,7 @@ public class ApiInfoParam extends PageParam {
@Condition(operator = Operator.like)
private String apiName;
+ @Condition
+ private Integer status;
}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/LoginController.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/LoginController.java
index 1212e29d..f324409d 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/LoginController.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/LoginController.java
@@ -1,6 +1,6 @@
package com.gitee.sop.adminbackend.controller.sys;
-import com.gitee.sop.adminbackend.common.Result;
+import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.sys.req.LoginParam;
import com.gitee.sop.adminbackend.controller.sys.resp.LoginResultVO;
import com.gitee.sop.adminbackend.service.sys.login.LoginService;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/SysAdminUserController.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/SysAdminUserController.java
index b0da1aeb..99a0a831 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/SysAdminUserController.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/controller/sys/SysAdminUserController.java
@@ -3,14 +3,15 @@ package com.gitee.sop.adminbackend.controller.sys;
import com.gitee.fastmybatis.core.PageInfo;
import com.gitee.fastmybatis.core.query.Query;
import com.gitee.fastmybatis.core.query.param.PageParam;
-import com.gitee.sop.adminbackend.common.Result;
+import com.gitee.sop.adminbackend.common.req.IdParam;
+import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.dao.entity.SysAdminUser;
import com.gitee.sop.adminbackend.service.sys.SysAdminUserService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -28,8 +29,8 @@ public class SysAdminUserController {
/**
* 分页查询
*
- * @param param
- * @return
+ * @param param 查询参数
+ * @return 返回分页结果
*/
@GetMapping("/page")
public Result> page(PageParam param) {
@@ -41,36 +42,36 @@ public class SysAdminUserController {
/**
* 新增记录
*
- * @param user
- * @return
+ * @param sysAdminUser 表单参数
+ * @return 返回添加后的主键值
*/
- @PostMapping("/save")
- public Result save(SysAdminUser user) {
- sysAdminUserService.save(user);
+ @PostMapping("/add")
+ public Result add(@Validated @RequestBody SysAdminUser sysAdminUser) {
+ sysAdminUserService.save(sysAdminUser);
// 返回添加后的主键值
- return Result.ok(user.getId());
+ return Result.ok(sysAdminUser.getId());
}
/**
* 修改记录
*
- * @param user 表单数据
- * @return
+ * @param sysAdminUser 表单数据
+ * @return 返回影响行数
*/
- @PutMapping("/update")
- public Result update(SysAdminUser user) {
- return Result.ok(sysAdminUserService.update(user));
+ @PostMapping("/update")
+ public Result update(@Validated @RequestBody SysAdminUser sysAdminUser) {
+ return Result.ok(sysAdminUserService.update(sysAdminUser));
}
/**
* 删除记录
*
- * @param id 主键id
- * @return
+ * @param param 参数
+ * @return 返回影响行数
*/
- @DeleteMapping("/delete")
- public Result> delete(Long id) {
- return Result.ok(sysAdminUserService.deleteById(id));
+ @PostMapping("/delete")
+ public Result delete(@Validated @RequestBody IdParam param) {
+ return Result.ok(sysAdminUserService.deleteById(param.getId()));
}
}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/dao/entity/ApiInfo.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/dao/entity/ApiInfo.java
index 60cbcc38..a654403c 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/dao/entity/ApiInfo.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/dao/entity/ApiInfo.java
@@ -71,6 +71,11 @@ public class ApiInfo {
*/
private Integer isNeedToken;
+ /**
+ * 注册来源,1-系统注册,2-手动注册
+ */
+ private Integer regSource;
+
/**
* 1启用,2禁用
*/
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/isv/IsvInfoService.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/isv/IsvInfoService.java
new file mode 100644
index 00000000..d3538464
--- /dev/null
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/isv/IsvInfoService.java
@@ -0,0 +1,29 @@
+package com.gitee.sop.adminbackend.service.isv;
+
+import com.gitee.fastmybatis.core.support.LambdaService;
+import com.gitee.sop.adminbackend.controller.isv.dto.IsvKeysDTO;
+import com.gitee.sop.adminbackend.dao.entity.IsvInfo;
+import com.gitee.sop.adminbackend.dao.entity.IsvKeys;
+import com.gitee.sop.adminbackend.dao.mapper.IsvInfoMapper;
+import com.gitee.sop.adminbackend.dao.mapper.IsvKeysMapper;
+import com.gitee.sop.adminbackend.util.CopyUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+/**
+ * @author 六如
+ */
+@Service
+public class IsvInfoService implements LambdaService {
+
+ @Resource
+ private IsvKeysMapper isvKeysMapper;
+
+ public IsvKeysDTO getKeys(String appId) {
+ IsvKeys isvKeys = isvKeysMapper.get(IsvKeys::getAppId, appId);
+ return CopyUtil.copyBean(isvKeys, IsvKeysDTO::new);
+ }
+
+}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/serve/ApiInfoService.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/serve/ApiInfoService.java
index fdbb9b24..2f6529bf 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/serve/ApiInfoService.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/serve/ApiInfoService.java
@@ -1,6 +1,7 @@
package com.gitee.sop.adminbackend.service.serve;
import com.gitee.fastmybatis.core.support.LambdaService;
+import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
import com.gitee.sop.adminbackend.dao.mapper.ApiInfoMapper;
import org.springframework.stereotype.Service;
@@ -12,4 +13,11 @@ import org.springframework.stereotype.Service;
@Service
public class ApiInfoService implements LambdaService {
+ public int updateStatus(StatusUpdateDTO statusUpdateDTO) {
+ return this.query()
+ .eq(ApiInfo::getId, statusUpdateDTO.getId())
+ .set(ApiInfo::getStatus, statusUpdateDTO.getStatus())
+ .update();
+ }
+
}
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/SysAdminUserService.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/SysAdminUserService.java
index 03dfcc66..d354ee86 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/SysAdminUserService.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/SysAdminUserService.java
@@ -1,8 +1,7 @@
package com.gitee.sop.adminbackend.service.sys;
import com.gitee.fastmybatis.core.support.LambdaService;
-import com.gitee.sop.adminbackend.common.ConfigKeyEnum;
-import com.gitee.sop.adminbackend.config.AdminConfig;
+import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
import com.gitee.sop.adminbackend.config.Configs;
import com.gitee.sop.adminbackend.dao.entity.SysAdminUser;
import com.gitee.sop.adminbackend.dao.mapper.SysAdminUserMapper;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/UpgradeService.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/UpgradeService.java
index 28712b32..fc5d914a 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/UpgradeService.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/UpgradeService.java
@@ -1,6 +1,6 @@
package com.gitee.sop.adminbackend.service.sys;
-import com.gitee.sop.adminbackend.common.ConfigKeyEnum;
+import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
import com.gitee.sop.adminbackend.dao.entity.SysAdminUser;
import com.gitee.sop.adminbackend.dao.mapper.UpgradeMapper;
import com.gitee.sop.adminbackend.service.sys.login.enums.RegTypeEnum;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/LoginService.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/LoginService.java
index 349aacdf..98a25eb9 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/LoginService.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/LoginService.java
@@ -1,7 +1,7 @@
package com.gitee.sop.adminbackend.service.sys.login;
import com.alibaba.nacos.shaded.com.google.common.collect.Sets;
-import com.gitee.sop.adminbackend.common.ConfigKeyEnum;
+import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
import com.gitee.sop.adminbackend.common.exception.BizException;
import com.gitee.sop.adminbackend.config.Configs;
import com.gitee.sop.adminbackend.dao.entity.SysAdminUser;
@@ -10,7 +10,7 @@ import com.gitee.sop.adminbackend.service.sys.login.dto.LoginDTO;
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginForm;
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginResult;
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginUser;
-import com.gitee.sop.adminbackend.common.StatusEnum;
+import com.gitee.sop.adminbackend.common.enums.StatusEnum;
import com.gitee.sop.adminbackend.service.sys.login.enums.RegTypeEnum;
import com.gitee.sop.adminbackend.util.CopyUtil;
import com.gitee.sop.adminbackend.util.GenerateUtil;
diff --git a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/impl/DefaultUserCacheManager.java b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/impl/DefaultUserCacheManager.java
index c9ee0b77..d25bb834 100644
--- a/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/impl/DefaultUserCacheManager.java
+++ b/sop-admin/sop-admin-backend/src/main/java/com/gitee/sop/adminbackend/service/sys/login/impl/DefaultUserCacheManager.java
@@ -5,7 +5,7 @@ import com.gitee.sop.adminbackend.dao.entity.SysAdminUser;
import com.gitee.sop.adminbackend.service.sys.SysAdminUserService;
import com.gitee.sop.adminbackend.service.sys.login.UserCacheManager;
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginUser;
-import com.gitee.sop.adminbackend.common.StatusEnum;
+import com.gitee.sop.adminbackend.common.enums.StatusEnum;
import com.gitee.sop.adminbackend.util.CopyUtil;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
diff --git a/sop-admin/sop-admin-frontend/mock/asyncRoutes.ts b/sop-admin/sop-admin-frontend/mock/asyncRoutes.ts
index fb894860..7ed613c8 100644
--- a/sop-admin/sop-admin-frontend/mock/asyncRoutes.ts
+++ b/sop-admin/sop-admin-frontend/mock/asyncRoutes.ts
@@ -1,27 +1,62 @@
// 模拟后端动态生成路由
import { defineFakeRoute } from "vite-plugin-fake-server/client";
-/**
- * 服务管理
- */
-const apiRouter = {
- path: "/serve",
- meta: {
- title: "服务管理",
- icon: "ri:server-line",
- rank: 10
- },
- children: [
- {
- path: "/serve/api/index",
- name: "ApiManage",
- meta: {
- title: "接口管理",
- roles: ["admin"]
+const apiRouters = [
+ {
+ path: "/serve",
+ meta: {
+ title: "服务管理",
+ icon: "ri:server-line",
+ rank: 10
+ },
+ children: [
+ {
+ path: "/serve/api/index",
+ name: "ApiManage",
+ meta: {
+ title: "接口管理",
+ roles: ["admin"]
+ }
}
- }
- ]
-};
+ ]
+ },
+ {
+ path: "/isv",
+ meta: {
+ title: "ISV管理",
+ icon: "ri:shield-user-line",
+ rank: 10
+ },
+ children: [
+ {
+ path: "/isv/list/index",
+ name: "IsvManage",
+ meta: {
+ title: "ISV列表",
+ roles: ["admin"]
+ }
+ }
+ ]
+ },
+ {
+ path: "/sys",
+ meta: {
+ title: "系统管理",
+ icon: "ri:settings-2-line",
+ rank: 10
+ },
+ children: [
+ {
+ path: "/admin/user/index",
+ name: "AdminUser",
+ meta: {
+ title: "用户管理",
+ roles: ["admin"]
+ }
+ }
+ ]
+ }
+];
export default defineFakeRoute([
{
@@ -30,7 +65,7 @@ export default defineFakeRoute([
response: () => {
return {
success: true,
- data: [apiRouter]
+ data: apiRouters
};
}
}
diff --git a/sop-admin/sop-admin-frontend/src/api/isvList.ts b/sop-admin/sop-admin-frontend/src/api/isvList.ts
new file mode 100644
index 00000000..7c4f0d52
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/api/isvList.ts
@@ -0,0 +1,52 @@
+import { createUrl, http } from "@/utils/http";
+import type { PageResult, Result } from "@/model";
+
+// 后端请求接口
+const apiUrl: any = createUrl({
+ page: "/isv/page",
+ add: "/isv/add",
+ update: "/isv/update",
+ del: "/isv/delete",
+ getKeys: "/isv/getKeys"
+});
+
+/**
+ * 接口管理
+ */
+export const api: any = {
+ /**
+ * 分页查询
+ * @param params 查询参数
+ */
+ page(params: object): Promise {
+ return http.get(apiUrl.page, { params });
+ },
+ /**
+ * 新增
+ * @param data 表单内容
+ */
+ add(data: object) {
+ return http.post(apiUrl.add, { data });
+ },
+ /**
+ * 修改
+ * @param data 表单内容
+ */
+ update(data: object) {
+ return http.post(apiUrl.update, { data });
+ },
+ /**
+ * 删除
+ * @param data 表单内容
+ */
+ del(data: object) {
+ return http.post(apiUrl.del, { data });
+ },
+ /**
+ * 查看秘钥
+ * @param params
+ */
+ viewKeys(params: object) {
+ return http.get(apiUrl.getKeys, { params });
+ }
+};
diff --git a/sop-admin/sop-admin-frontend/src/api/routes.ts b/sop-admin/sop-admin-frontend/src/api/routes.ts
index 915ca377..501ea3c7 100644
--- a/sop-admin/sop-admin-frontend/src/api/routes.ts
+++ b/sop-admin/sop-admin-frontend/src/api/routes.ts
@@ -6,5 +6,5 @@ type Result = {
};
export const getAsyncRoutes = () => {
- return http.request("get", "/mock/get-async-routes");
+ return http.request("get", "/get-async-routes");
};
diff --git a/sop-admin/sop-admin-frontend/src/api/serveApi.ts b/sop-admin/sop-admin-frontend/src/api/serveApi.ts
new file mode 100644
index 00000000..e8d9d28c
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/api/serveApi.ts
@@ -0,0 +1,52 @@
+import { createUrl, http } from "@/utils/http";
+import type { PageResult, Result } from "@/model";
+
+// 后端请求接口
+const apiUrl: any = createUrl({
+ page: "/serve/api/page",
+ add: "/serve/api/add",
+ update: "/serve/api/update",
+ del: "/serve/api/delete",
+ updateStatus: "/serve/api/updateStatus"
+});
+
+/**
+ * 接口管理
+ */
+export const api: any = {
+ /**
+ * 分页查询
+ * @param params 查询参数
+ */
+ page(params: object): Promise {
+ return http.get(apiUrl.page, { params });
+ },
+ /**
+ * 新增
+ * @param data 表单内容
+ */
+ add(data: object) {
+ return http.post(apiUrl.add, { data });
+ },
+ /**
+ * 修改
+ * @param data 表单内容
+ */
+ update(data: object) {
+ return http.post(apiUrl.update, { data });
+ },
+ /**
+ * 删除
+ * @param data 表单内容
+ */
+ del(data: object) {
+ return http.post(apiUrl.del, { data });
+ },
+ /**
+ * 修改状态
+ * @param data 表单内容
+ */
+ updateStatus(data: object) {
+ return http.post(apiUrl.updateStatus, { data });
+ }
+};
diff --git a/sop-admin/sop-admin-frontend/src/api/service/api.ts b/sop-admin/sop-admin-frontend/src/api/service/api.ts
deleted file mode 100644
index e69de29b..00000000
diff --git a/sop-admin/sop-admin-frontend/src/api/sysAdminUser.ts b/sop-admin/sop-admin-frontend/src/api/sysAdminUser.ts
new file mode 100644
index 00000000..6d91f314
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/api/sysAdminUser.ts
@@ -0,0 +1,44 @@
+import { createUrl, http } from "@/utils/http";
+import type { PageResult, Result } from "@/model";
+
+// 后端请求接口
+const apiUrl: any = createUrl({
+ page: "/sys/adminuser/page",
+ add: "/sys/adminuser/add",
+ update: "/sys/adminuser/update",
+ del: "/sys/adminuser/delete"
+});
+
+/**
+ * 接口管理
+ */
+export const api: any = {
+ /**
+ * 分页查询
+ * @param params 查询参数
+ */
+ page(params: object): Promise {
+ return http.get(apiUrl.page, { params });
+ },
+ /**
+ * 新增
+ * @param data 表单内容
+ */
+ add(data: object) {
+ return http.post(apiUrl.add, { data });
+ },
+ /**
+ * 修改
+ * @param data 表单内容
+ */
+ update(data: object) {
+ return http.post(apiUrl.update, { data });
+ },
+ /**
+ * 删除
+ * @param data 表单内容
+ */
+ del(data: object) {
+ return http.post(apiUrl.del, { data });
+ }
+};
diff --git a/sop-admin/sop-admin-frontend/src/api/user.ts b/sop-admin/sop-admin-frontend/src/api/user.ts
index 7ba6d46e..5479e14c 100644
--- a/sop-admin/sop-admin-frontend/src/api/user.ts
+++ b/sop-admin/sop-admin-frontend/src/api/user.ts
@@ -1,4 +1,4 @@
-import { http } from "@/utils/http";
+import { baseUrl, http } from "@/utils/http";
export type UserResult = {
success: boolean;
@@ -34,12 +34,19 @@ export type RefreshTokenResult = {
};
};
+const apiUrl = {
+ login: baseUrl("/sys/login"),
+ refreshToken: baseUrl("/sys/refresh-token")
+};
+
/** 登录 */
export const getLogin = (data?: object) => {
- return http.request("post", "/sys/login", { data });
+ return http.request("post", apiUrl.login, { data });
};
/** 刷新`token` */
export const refreshTokenApi = (data?: object) => {
- return http.request("post", "/refresh-token", { data });
+ return http.request("post", apiUrl.refreshToken, {
+ data
+ });
};
diff --git a/sop-admin/sop-admin-frontend/src/model/enums/index.ts b/sop-admin/sop-admin-frontend/src/model/enums/index.ts
new file mode 100644
index 00000000..4f876df6
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/model/enums/index.ts
@@ -0,0 +1,4 @@
+export enum StatusEnum {
+ ENABLE = 1,
+ DISABLE = 2
+}
diff --git a/sop-admin/sop-admin-frontend/src/model/index.ts b/sop-admin/sop-admin-frontend/src/model/index.ts
index 6f5d8806..401b0326 100644
--- a/sop-admin/sop-admin-frontend/src/model/index.ts
+++ b/sop-admin/sop-admin-frontend/src/model/index.ts
@@ -1,6 +1,8 @@
export type Result = {
success: boolean;
data: object;
+ msg: "";
+ code: "";
};
export type PageResult = {
diff --git a/sop-admin/sop-admin-frontend/src/utils/http/index.ts b/sop-admin/sop-admin-frontend/src/utils/http/index.ts
index 632274a9..41d37e20 100644
--- a/sop-admin/sop-admin-frontend/src/utils/http/index.ts
+++ b/sop-admin/sop-admin-frontend/src/utils/http/index.ts
@@ -13,19 +13,23 @@ import { stringify } from "qs";
import NProgress from "../progress";
import { getToken, formatToken } from "@/utils/auth";
import { useUserStoreHook } from "@/store/modules/user";
-
-const PREFIX_MOCK: string = "mock";
+import { ElMessage } from "element-plus";
export const baseUrl = (url: string) => {
if (url.startsWith("/")) {
url = url.substring(1);
}
- if (url.startsWith(PREFIX_MOCK)) {
- return url.substring(PREFIX_MOCK.length);
- }
return `/api/${url}`;
};
+export const createUrl = (data: object) => {
+ const ret = {};
+ for (const dataKey in data) {
+ ret[dataKey] = baseUrl(data[dataKey]);
+ }
+ return ret;
+};
+
// 相关配置请参考:www.axios-js.com/zh-cn/docs/#axios-request-config-1
const defaultConfig: AxiosRequestConfig = {
// 请求超时时间
@@ -45,6 +49,13 @@ class PureHttp {
constructor() {
this.httpInterceptorsRequest();
this.httpInterceptorsResponse();
+ PureHttp.initConfig.beforeResponseCallback = response => {
+ const resp = response.data || {};
+ if (resp.code && resp.code !== "0") {
+ console.log(resp);
+ ElMessage.error(resp.msg || "后台出错,请查看日志");
+ }
+ };
}
/** `token`过期后,暂存待执行的请求 */
@@ -166,7 +177,7 @@ class PureHttp {
): Promise {
const config = {
method,
- url: baseUrl(url),
+ url: url,
...param,
...axiosConfig
} as PureHttpRequestConfig;
diff --git a/sop-admin/sop-admin-frontend/src/views/admin/user/index.ts b/sop-admin/sop-admin-frontend/src/views/admin/user/index.ts
new file mode 100644
index 00000000..35dd6478
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/views/admin/user/index.ts
@@ -0,0 +1,306 @@
+import { computed, ref } from "vue";
+import {
+ type ButtonsCallBackParams,
+ type FieldValues,
+ type PageInfo,
+ type PlusColumn,
+ useTable
+} from "plus-pro-components";
+import { ElMessage } from "element-plus";
+import { api } from "@/api/sysAdminUser";
+
+const isAdd = ref(false);
+
+// ========= search form =========
+
+// 查询表单对象
+export const searchFormData = ref({
+ id: "",
+ username: "",
+ password: "",
+ nickname: "",
+ email: "",
+ avatar: "",
+ status: "",
+ regType: "",
+ addTime: "",
+ updateTime: "",
+ pageIndex: 1,
+ pageSize: 10
+});
+
+// 查询表单字段定义
+export const searchFormColumns: PlusColumn[] = [
+ {
+ label: "用户名",
+ prop: "username"
+ },
+ {
+ label: "密码",
+ prop: "password"
+ },
+ {
+ label: "用户名",
+ prop: "nickname"
+ },
+ {
+ label: "邮箱",
+ prop: "email"
+ },
+ {
+ label: "头像",
+ prop: "avatar"
+ },
+ {
+ label: "状态,1:启用,2:禁用",
+ prop: "status"
+ },
+ {
+ label: "注册类型",
+ prop: "regType"
+ },
+ {
+ label: "addTime",
+ prop: "addTime"
+ },
+ {
+ label: "updateTime",
+ prop: "updateTime"
+ }
+];
+
+// ========= table =========
+
+// 表格对象
+export const {
+ tableData,
+ total,
+ pageInfo,
+ buttons: actionButtons
+} = useTable();
+// 默认每页条数,默认10
+pageInfo.value.pageSize = 10;
+
+// 表格字段定义
+export const tableColumns: PlusColumn[] = [
+ {
+ label: "用户名",
+ prop: "username"
+ },
+ {
+ label: "密码",
+ prop: "password"
+ },
+ {
+ label: "用户名",
+ prop: "nickname"
+ },
+ {
+ label: "邮箱",
+ prop: "email"
+ },
+ {
+ label: "头像",
+ prop: "avatar"
+ },
+ {
+ label: "状态,1:启用,2:禁用",
+ prop: "status"
+ },
+ {
+ label: "注册类型",
+ prop: "regType"
+ },
+ {
+ label: "addTime",
+ prop: "addTime"
+ },
+ {
+ label: "updateTime",
+ prop: "updateTime"
+ }
+];
+// 表格按钮定义
+actionButtons.value = [
+ {
+ // 修改
+ text: "修改",
+ code: "edit",
+ props: {
+ type: "primary"
+ },
+ show: computed(() => true),
+ onClick(params: ButtonsCallBackParams) {
+ isAdd.value = false;
+ editFormData.value = Object.assign({}, params.row);
+ dlgTitle.value = "修改";
+ dlgShow.value = true;
+ }
+ },
+ {
+ // 删除
+ text: "删除",
+ code: "delete",
+ props: {
+ type: "danger"
+ },
+ confirm: {
+ options: { draggable: false }
+ },
+ onConfirm(params: ButtonsCallBackParams) {
+ api.del(params).then(() => {
+ ElMessage({
+ message: "删除成功",
+ type: "success"
+ });
+ dlgShow.value = false;
+ search();
+ });
+ }
+ }
+];
+
+// ========= dialog form =========
+
+// 弹窗显示
+export const dlgShow = ref(false);
+export const dlgTitle = ref("");
+// 表单值
+const editFormDataGen = () => {
+ return {
+ username: "",
+ password: "",
+ nickname: "",
+ email: "",
+ avatar: "",
+ status: "",
+ regType: "",
+ addTime: "",
+ updateTime: ""
+ };
+};
+export const editFormData = ref(editFormDataGen());
+export const editFormRules = {
+ id: [{ required: true, message: "请输入id" }],
+ username: [{ required: true, message: "请输入用户名" }],
+ password: [{ required: true, message: "请输入密码" }],
+ nickname: [{ required: true, message: "请输入用户名" }],
+ email: [{ required: true, message: "请输入邮箱" }],
+ avatar: [{ required: true, message: "请输入头像" }],
+ status: [{ required: true, message: "请输入状态,1:启用,2:禁用" }],
+ regType: [{ required: true, message: "请输入注册类型" }],
+ addTime: [{ required: true, message: "请输入addTime" }],
+ updateTime: [{ required: true, message: "请输入updateTime" }]
+};
+
+// 表单内容
+export const editFormColumns: PlusColumn[] = [
+ {
+ label: "id",
+ prop: "id",
+ valueType: "copy"
+ },
+ {
+ label: "用户名",
+ prop: "username",
+ valueType: "copy"
+ },
+ {
+ label: "密码",
+ prop: "password",
+ valueType: "copy"
+ },
+ {
+ label: "用户名",
+ prop: "nickname",
+ valueType: "copy"
+ },
+ {
+ label: "邮箱",
+ prop: "email",
+ valueType: "copy"
+ },
+ {
+ label: "头像",
+ prop: "avatar",
+ valueType: "copy"
+ },
+ {
+ label: "状态,1:启用,2:禁用",
+ prop: "status",
+ valueType: "copy"
+ },
+ {
+ label: "注册类型",
+ prop: "regType",
+ valueType: "copy"
+ },
+ {
+ label: "addTime",
+ prop: "addTime",
+ valueType: "copy"
+ },
+ {
+ label: "updateTime",
+ prop: "updateTime",
+ valueType: "copy"
+ }
+];
+
+// ========= event =========
+
+// 添加按钮事件
+export const handleAdd = () => {
+ isAdd.value = true;
+ editFormData.value = editFormDataGen();
+ dlgTitle.value = "新增";
+ dlgShow.value = true;
+};
+
+// 保存按钮事件,校验成功后触发
+export const handleSave = () => {
+ const postData = editFormData.value;
+ const pms = isAdd.value ? api.add(postData) : api.update(postData);
+ pms.then(() => {
+ ElMessage({
+ message: "保存成功",
+ type: "success"
+ });
+ dlgShow.value = false;
+ search();
+ });
+};
+
+// 点击查询按钮
+export const handleSearch = () => {
+ pageInfo.value.page = 1;
+ search();
+};
+
+// 分页事件
+export const handlePaginationChange = (_pageInfo: PageInfo): void => {
+ pageInfo.value = _pageInfo;
+ search();
+};
+
+// 查询
+const search = async () => {
+ try {
+ const { data } = await doSearch();
+ tableData.value = data.list;
+ total.value = data.total;
+ } catch (error) {}
+};
+// 请求接口
+const doSearch = async () => {
+ // 查询参数
+ const data = searchFormData.value;
+ // 添加分页参数
+ data.pageIndex = pageInfo.value.page;
+ data.pageSize = pageInfo.value.pageSize;
+
+ return api.page(data);
+};
+
+// 页面加载
+search();
diff --git a/sop-admin/sop-admin-frontend/src/views/admin/user/index.vue b/sop-admin/sop-admin-frontend/src/views/admin/user/index.vue
new file mode 100644
index 00000000..86fbcddb
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/views/admin/user/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
diff --git a/sop-admin/sop-admin-frontend/src/views/isv/list/index.ts b/sop-admin/sop-admin-frontend/src/views/isv/list/index.ts
new file mode 100644
index 00000000..d82bdd1b
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/views/isv/list/index.ts
@@ -0,0 +1,265 @@
+import { computed, ref } from "vue";
+import {
+ type ButtonsCallBackParams,
+ type FieldValues,
+ type PageInfo,
+ type PlusColumn,
+ useTable
+} from "plus-pro-components";
+import { ElMessage } from "element-plus";
+import { StatusEnum } from "@/model/enums";
+import { api } from "@/api/isvList";
+
+const isAdd = ref(false);
+
+// ========= search form =========
+
+// 查询表单对象
+export const searchFormData = ref({
+ id: "",
+ appId: "",
+ status: "",
+ remark: "",
+ pageIndex: 1,
+ pageSize: 10
+});
+
+// 查询表单字段定义
+export const searchFormColumns: PlusColumn[] = [
+ {
+ label: "AppID",
+ prop: "appId"
+ },
+ {
+ label: "状态",
+ prop: "status",
+ valueType: "select",
+ options: [
+ {
+ label: "启用",
+ value: StatusEnum.ENABLE,
+ color: "green"
+ },
+ {
+ label: "禁用",
+ value: StatusEnum.DISABLE,
+ color: "red"
+ }
+ ]
+ }
+];
+
+// ========= table =========
+
+// 表格对象
+export const {
+ tableData,
+ total,
+ pageInfo,
+ buttons: actionButtons
+} = useTable();
+// 默认每页条数,默认10
+pageInfo.value.pageSize = 10;
+
+// 表格字段定义
+export const tableColumns: PlusColumn[] = [
+ {
+ label: "AppID",
+ prop: "appId",
+ width: 230
+ },
+ {
+ label: "秘钥",
+ prop: "keys",
+ width: 80
+ },
+ {
+ label: "角色",
+ prop: "roleNames",
+ width: 120
+ },
+ {
+ label: "状态",
+ prop: "status",
+ width: 80,
+ valueType: "select",
+ options: [
+ {
+ label: "启用",
+ value: StatusEnum.ENABLE,
+ color: "green"
+ },
+ {
+ label: "禁用",
+ value: StatusEnum.DISABLE,
+ color: "red"
+ }
+ ]
+ },
+ {
+ label: "备注",
+ prop: "remark"
+ },
+ {
+ label: "添加时间",
+ prop: "addTime"
+ },
+ {
+ label: "修改时间",
+ prop: "updateTime"
+ }
+];
+// 表格按钮定义
+actionButtons.value = [
+ {
+ // 修改
+ text: "修改",
+ code: "edit",
+ props: {
+ type: "primary"
+ },
+ show: computed(() => true),
+ onClick(params: ButtonsCallBackParams) {
+ isAdd.value = false;
+ editFormData.value = Object.assign({}, params.row);
+ dlgTitle.value = "修改";
+ dlgShow.value = true;
+ }
+ },
+ {
+ // 删除
+ text: "删除",
+ code: "delete",
+ props: {
+ type: "danger"
+ },
+ confirm: {
+ options: { draggable: false }
+ },
+ onConfirm(params: ButtonsCallBackParams) {
+ api.del(params).then(() => {
+ ElMessage({
+ message: "删除成功",
+ type: "success"
+ });
+ dlgShow.value = false;
+ search();
+ });
+ }
+ }
+];
+
+// ========= dialog form =========
+
+// 弹窗显示
+export const dlgShow = ref(false);
+export const dlgTitle = ref("");
+// 表单值
+const editFormDataGen = () => {
+ return {
+ id: "",
+ appId: "",
+ status: "",
+ remark: "",
+ addTime: "",
+ updateTime: ""
+ };
+};
+export const editFormData = ref(editFormDataGen());
+export const editFormRules = {
+ id: [{ required: true, message: "请输入id" }],
+ appId: [{ required: true, message: "请输入appKey" }],
+ status: [{ required: true, message: "请输入1启用,2禁用" }]
+};
+
+// 表单内容
+export const editFormColumns: PlusColumn[] = [
+ {
+ label: "id",
+ prop: "id",
+ valueType: "copy"
+ },
+ {
+ label: "AppID",
+ prop: "appId",
+ valueType: "copy"
+ },
+ {
+ label: "1启用,2禁用",
+ prop: "status",
+ valueType: "copy"
+ },
+ {
+ label: "备注",
+ prop: "remark",
+ valueType: "copy"
+ },
+ {
+ label: "addTime",
+ prop: "addTime",
+ valueType: "copy"
+ },
+ {
+ label: "updateTime",
+ prop: "updateTime",
+ valueType: "copy"
+ }
+];
+
+// ========= event =========
+
+// 添加按钮事件
+export const handleAdd = () => {
+ isAdd.value = true;
+ editFormData.value = editFormDataGen();
+ dlgTitle.value = "新增";
+ dlgShow.value = true;
+};
+
+// 保存按钮事件,校验成功后触发
+export const handleSave = () => {
+ const postData = editFormData.value;
+ const pms = isAdd.value ? api.add(postData) : api.update(postData);
+ pms.then(() => {
+ ElMessage({
+ message: "保存成功",
+ type: "success"
+ });
+ dlgShow.value = false;
+ search();
+ });
+};
+
+// 点击查询按钮
+export const handleSearch = () => {
+ pageInfo.value.page = 1;
+ search();
+};
+
+// 分页事件
+export const handlePaginationChange = (_pageInfo: PageInfo): void => {
+ pageInfo.value = _pageInfo;
+ search();
+};
+
+// 查询
+const search = async () => {
+ try {
+ const { data } = await doSearch();
+ tableData.value = data.list;
+ total.value = data.total;
+ } catch (error) {}
+};
+// 请求接口
+const doSearch = async () => {
+ // 查询参数
+ const data = searchFormData.value;
+ // 添加分页参数
+ data.pageIndex = pageInfo.value.page;
+ data.pageSize = pageInfo.value.pageSize;
+
+ return api.page(data);
+};
+
+// 页面加载
+search();
diff --git a/sop-admin/sop-admin-frontend/src/views/isv/list/index.vue b/sop-admin/sop-admin-frontend/src/views/isv/list/index.vue
new file mode 100644
index 00000000..d1ca8c61
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/views/isv/list/index.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+ 新增
+
+
+ 查看
+
+
+
+
+
+ 关闭
+
+
+
+
diff --git a/sop-admin/sop-admin-frontend/src/views/isv/list/showKeys.ts b/sop-admin/sop-admin-frontend/src/views/isv/list/showKeys.ts
new file mode 100644
index 00000000..60589600
--- /dev/null
+++ b/sop-admin/sop-admin-frontend/src/views/isv/list/showKeys.ts
@@ -0,0 +1,86 @@
+import { ref } from "vue";
+import type { PlusFormGroupRow } from "plus-pro-components";
+import { CreditCard } from "@element-plus/icons-vue";
+import { api } from "@/api/isvList";
+
+// 弹窗显示
+export const dlgKeysShow = ref(false);
+export const showKeysFormData = ref