From f2cd5237d515a7b6a4a7b0904e162a32287a6386 Mon Sep 17 00:00:00 2001
From: zhaoh
Date: Wed, 10 Dec 2025 11:05:25 +0800
Subject: [PATCH 01/13] refactor: rename project package to himarket
Change-Id: I961a47e80c0b30ba94befcf786cd68eb922bd171
---
.github/workflows/code-check.yml | 127 +++++
...10\344\270\216\344\276\235\350\265\226.md" | 3 +-
...20\347\273\264\346\214\207\345\215\227.md" | 2 +-
CONTRIBUTING.md | 224 +++++++++
CONTRIBUTING_zh.md | 224 +++++++++
build.sh | 6 +-
checkstyle.xml | 56 +++
.../Dockerfile | 0
.../pom.xml | 4 +-
.../alibaba/himarket/HimarketApplication.java | 6 +-
.../alibaba/himarket}/config/AsyncConfig.java | 2 +-
.../himarket}/config/FilterConfig.java | 8 +-
.../himarket}/config/FlywayConfig.java | 2 +-
.../himarket}/config/RestTemplateConfig.java | 2 +-
.../himarket}/config/SecurityConfig.java | 17 +-
.../himarket}/config/SwaggerConfig.java | 2 +-
.../himarket}/config/WebMvcConfig.java | 2 +-
.../filter/PortalResolvingFilter.java | 6 +-
.../src/main/resources/application.yml | 4 +-
.../migration/V1__Create_baseline_schema.sql | 0
.../db/migration/V2__Migrate_to_v1_0_5.sql | 0
.../db/migration/V3__Add_chat_tables.sql | 0
.../src/main/resources/logback-spring.xml | 2 +-
{portal-dal => himarket-dal}/pom.xml | 2 +-
.../converter/APIGConfigConverter.java | 4 +-
.../converter/APIGRefConfigConverter.java | 4 +-
.../AdpAIGatewayConfigConverter.java | 4 +-
.../converter/ApiKeyConfigConverter.java | 4 +-
.../ApsaraGatewayConfigConverter.java | 4 +-
.../converter/ChatUsageConverter.java | 4 +-
.../ConsumerAuthConfigConverter.java | 4 +-
.../converter/GatewayConfigConverter.java | 4 +-
.../converter/HigressConfigConverter.java | 4 +-
.../converter/HigressRefConfigConverter.java | 4 +-
.../converter/HmacConfigConverter.java | 4 +-
.../himarket}/converter/IconConverter.java | 4 +-
.../himarket}/converter/JsonConverter.java | 6 +-
.../converter/JwtConfigConverter.java | 4 +-
.../converter/ListJsonConverter.java | 2 +-
.../converter/NacosRefConfigConverter.java | 4 +-
.../PortalSettingConfigConverter.java | 4 +-
.../converter/PortalUiConfigConverter.java | 4 +-
.../converter/ProductFeatureConverter.java | 4 +-
.../himarket}/entity/Administrator.java | 2 +-
.../alibaba/himarket}/entity/BaseEntity.java | 2 +-
.../com/alibaba/himarket}/entity/Chat.java | 12 +-
.../himarket}/entity/ChatAttachment.java | 4 +-
.../alibaba/himarket}/entity/ChatSession.java | 4 +-
.../alibaba/himarket}/entity/Consumer.java | 4 +-
.../himarket}/entity/ConsumerCredential.java | 16 +-
.../alibaba/himarket}/entity/ConsumerRef.java | 8 +-
.../alibaba/himarket}/entity/Developer.java | 7 +-
.../entity/DeveloperExternalIdentity.java | 4 +-
.../com/alibaba/himarket}/entity/Gateway.java | 20 +-
.../himarket}/entity/NacosInstance.java | 2 +-
.../com/alibaba/himarket}/entity/Portal.java | 10 +-
.../himarket}/entity/PortalDomain.java | 6 +-
.../com/alibaba/himarket}/entity/Product.java | 14 +-
.../himarket}/entity/ProductCategory.java | 6 +-
.../entity/ProductCategoryRelation.java | 2 +-
.../himarket}/entity/ProductPublication.java | 2 +-
.../alibaba/himarket}/entity/ProductRef.java | 18 +-
.../himarket}/entity/ProductSubscription.java | 8 +-
.../repository/AdministratorRepository.java | 4 +-
.../himarket}/repository/BaseRepository.java | 3 +-
.../repository/ChatAttachmentRepository.java | 4 +-
.../himarket}/repository/ChatRepository.java | 6 +-
.../repository/ChatSessionRepository.java | 4 +-
.../ConsumerCredentialRepository.java | 4 +-
.../repository/ConsumerRefRepository.java | 8 +-
.../repository/ConsumerRepository.java | 4 +-
.../DeveloperExternalIdentityRepository.java | 4 +-
.../repository/DeveloperRepository.java | 5 +-
.../repository/GatewayRepository.java | 4 +-
.../repository/NacosInstanceRepository.java | 7 +-
.../repository/PortalDomainRepository.java | 4 +-
.../repository/PortalRepository.java | 4 +-
.../ProductCategoryRelationRepository.java | 4 +-
.../repository/ProductCategoryRepository.java | 6 +-
.../ProductPublicationRepository.java | 4 +-
.../repository/ProductRefRepository.java | 6 +-
.../repository/ProductRepository.java | 4 +-
.../repository/SubscriptionRepository.java | 4 +-
.../himarket}/support/chat/ChatMessage.java | 2 +-
.../himarket}/support/chat/ChatUsage.java | 2 +-
.../chat/attachment/ChatAttachmentConfig.java | 4 +-
.../support/chat/content/AudioUrlContent.java | 4 +-
.../support/chat/content/ImageUrlContent.java | 4 +-
.../support/chat/content/MessageContent.java | 2 +-
.../support/chat/content/TextContent.java | 4 +-
.../support/chat/content/VideoUrlContent.java | 4 +-
.../support/chat/mcp/MCPTransportConfig.java | 20 +
.../support/chat/search/SearchContext.java | 2 +-
.../support/chat/search/SearchInput.java | 2 +-
.../support/chat/search/SearchOutput.java | 2 +-
.../himarket}/support/common/Encrypted.java | 2 +-
.../himarket}/support/common/Encryptor.java | 2 +-
.../himarket}/support/common/User.java | 4 +-
.../support/consumer/APIGAuthConfig.java | 2 +-
.../support/consumer/AdpAIAuthConfig.java | 2 +-
.../support/consumer/ApiKeyConfig.java | 4 +-
.../support/consumer/ConsumerAuthConfig.java | 2 +-
.../support/consumer/HigressAuthConfig.java | 2 +-
.../support/consumer/HmacConfig.java | 4 +-
.../himarket}/support/consumer/JwtConfig.java | 2 +-
.../himarket}/support/enums/AIProtocol.java | 2 +-
.../himarket}/support/enums/APIGAPIType.java | 2 +-
.../support/enums/APIGResourceType.java | 2 +-
.../support/enums/AttachmentDataType.java | 2 +-
.../support/enums/ChatAttachmentType.java | 2 +-
.../himarket}/support/enums/ChatRole.java | 2 +-
.../support/enums/ChatSessionStatus.java | 2 +-
.../himarket}/support/enums/ChatStatus.java | 2 +-
.../support/enums/ConsumerAuthType.java | 2 +-
.../support/enums/ConsumerStatus.java | 2 +-
.../himarket}/support/enums/ContentType.java | 2 +-
.../support/enums/CredentialMode.java | 2 +-
.../support/enums/DeveloperAuthType.java | 2 +-
.../support/enums/DeveloperStatus.java | 2 +-
.../himarket}/support/enums/DomainType.java | 2 +-
.../himarket}/support/enums/GatewayType.java | 6 +-
.../himarket}/support/enums/GrantType.java | 2 +-
.../support/enums/HigressAPIType.java | 2 +-
.../himarket}/support/enums/IconType.java | 2 +-
.../himarket}/support/enums/JwtAlgorithm.java | 2 +-
.../support/enums/MCPTransportMode.java | 22 +
.../support/enums/ProductStatus.java | 2 +-
.../himarket}/support/enums/ProductType.java | 2 +-
.../himarket}/support/enums/ProtocolType.java | 2 +-
.../support/enums/PublicKeyFormat.java | 2 +-
.../support/enums/SearchEngineType.java | 2 +-
.../himarket}/support/enums/SlsAuthType.java | 2 +-
.../himarket}/support/enums/SourceType.java | 2 +-
.../support/enums/SubscriptionStatus.java | 2 +-
.../himarket}/support/enums/TalkType.java | 2 +-
.../himarket}/support/enums/UserType.java | 2 +-
.../himarket}/support/gateway/APIGConfig.java | 11 +-
.../support/gateway/AdpAIGatewayConfig.java | 7 +-
.../support/gateway/ApsaraGatewayConfig.java | 11 +-
.../support/gateway/GatewayConfig.java | 6 +-
.../support/portal/AuthCodeConfig.java | 2 +-
.../support/portal/IdentityMapping.java | 2 +-
.../support/portal/JwtBearerConfig.java | 2 +-
.../support/portal/OAuth2Config.java | 4 +-
.../himarket}/support/portal/OidcConfig.java | 4 +-
.../support/portal/PortalSettingConfig.java | 2 +-
.../support/portal/PortalUiConfig.java | 2 +-
.../support/portal/PublicKeyConfig.java | 4 +-
.../support/portal/SearchEngineConfig.java | 6 +-
.../support/product/APIGRefConfig.java | 2 +-
.../support/product/HigressRefConfig.java | 2 +-
.../himarket}/support/product/Icon.java | 4 +-
.../support/product/ModelFeature.java | 2 +-
.../support/product/NacosRefConfig.java | 2 +-
.../support/product/ProductFeature.java | 2 +-
.../lib/csb220230206-1.5.3.jar | Bin
{portal-server => himarket-server}/pom.xml | 11 +-
.../alibaba/himarket}/config/SlsConfig.java | 4 +-
.../controller/AdministratorController.java | 18 +-
.../himarket}/controller/ChatController.java | 10 +-
.../controller/ConsumerController.java | 32 +-
.../controller/DeveloperController.java | 18 +-
.../controller/GatewayController.java | 29 +-
.../himarket}/controller/NacosController.java | 26 +-
.../controller/OAuth2Controller.java | 6 +-
.../himarket}/controller/OidcController.java | 8 +-
.../controller/PortalController.java | 23 +-
.../controller/ProductCategoryController.java | 18 +-
.../controller/ProductController.java | 36 +-
.../controller/SearchEngineController.java | 12 +-
.../controller/SessionController.java | 18 +-
.../himarket}/controller/SlsController.java | 18 +-
.../core/advice/ExceptionAdvice.java | 8 +-
.../himarket}/core/advice/ResponseAdvice.java | 4 +-
.../himarket}/core/annotation/AdminAuth.java | 2 +-
.../core/annotation/AdminOrDeveloperAuth.java | 2 +-
.../core/annotation/DeveloperAuth.java | 2 +-
.../core/constant/CommonConstants.java | 2 +-
.../himarket}/core/constant/IdpConstants.java | 2 +-
.../himarket}/core/constant/JwtConstants.java | 2 +-
.../himarket}/core/constant/Resources.java | 2 +-
.../core/event/ChatSessionDeletingEvent.java | 2 +-
.../core/event/DeveloperDeletingEvent.java | 2 +-
.../core/event/PortalDeletingEvent.java | 2 +-
.../core/event/ProductDeletingEvent.java | 2 +-
.../core/exception/BusinessException.java | 2 +-
.../himarket}/core/exception/ChatError.java | 8 +-
.../himarket}/core/exception/ErrorCode.java | 2 +-
.../himarket}/core/response/Response.java | 2 +-
.../core/security/ContextHolder.java | 6 +-
.../DeveloperAuthenticationProvider.java | 4 +-
.../security/JwtAuthenticationFilter.java | 8 +-
.../himarket}/core/utils/CacheUtil.java | 2 +-
.../himarket}/core/utils/IdGenerator.java | 2 +-
.../himarket}/core/utils/PasswordHasher.java | 2 +-
.../himarket}/core/utils/TokenUtil.java | 8 +-
.../dto/converter/InputConverter.java | 2 +-
.../dto/converter/NacosAgentConverter.java | 4 +-
.../NacosToGatewayToolsConverter.java | 4 +-
.../dto/converter/OutputConverter.java | 2 +-
.../dto/converter/SlsResponseConverter.java | 6 +-
.../dto/params/admin/AdminCreateParam.java | 8 +-
.../dto/params/admin/AdminLoginParam.java | 3 +-
.../dto/params/admin/ResetPasswordParam.java | 2 +-
.../category/CreateProductCategoryParam.java | 8 +-
.../category/QueryProductCategoryParam.java | 2 +-
.../category/UpdateProductCategoryParam.java | 8 +-
.../dto/params/chat/ChatContext.java | 38 +-
.../dto/params/chat/CreateChatParam.java | 8 +-
.../params/chat/CreateChatSessionParam.java | 8 +-
.../dto/params/chat/InvokeModelParam.java | 58 +++
.../dto/params/chat/McpToolMeta.java | 9 +-
.../dto/params/chat/ToolContext.java | 2 +-
.../params/chat/UpdateChatSessionParam.java | 14 +
.../params/consumer/CreateConsumerParam.java | 6 +-
.../consumer/CreateCredentialParam.java | 12 +-
.../consumer/CreateSubscriptionParam.java | 6 +-
.../params/consumer/QueryConsumerParam.java | 2 +-
.../consumer/QuerySubscriptionParam.java | 4 +-
.../consumer/UpdateCredentialParam.java | 12 +-
.../developer/CreateDeveloperParam.java | 6 +-
.../CreateExternalDeveloperParam.java | 8 +-
.../params/developer/DeveloperLoginParam.java | 2 +-
.../params/developer/QueryDeveloperParam.java | 4 +-
.../UnbindExternalIdentityParam.java | 2 +-
.../developer/UpdateDeveloperParam.java | 6 +-
.../developer/UpdateDeveloperStatusParam.java | 4 +-
.../params/gateway/ImportGatewayParam.java | 33 +-
.../dto/params/gateway/QueryAPIGParam.java | 8 +-
.../gateway/QueryAdpAIGatewayParam.java | 6 +-
.../gateway/QueryApsaraGatewayParam.java | 6 +-
.../dto/params/gateway/QueryGatewayParam.java | 4 +-
.../params/gateway/UpdateGatewayParam.java | 42 ++
.../dto/params/nacos/CreateNacosParam.java | 6 +-
.../nacos/QueryNacosNamespaceParam.java | 2 +-
.../dto/params/nacos/QueryNacosParam.java | 2 +-
.../dto/params/nacos/UpdateNacosParam.java | 6 +-
.../dto/params/portal/BindDomainParam.java | 10 +-
.../dto/params/portal/CreatePortalParam.java | 6 +-
.../dto/params/portal/UpdatePortalParam.java | 10 +-
.../params/product/CreateProductParam.java | 12 +-
.../params/product/CreateProductRefParam.java | 16 +-
.../params/product/PublishProductParam.java | 6 +-
.../dto/params/product/QueryProductParam.java | 6 +-
.../QueryProductSubscriptionParam.java | 4 +-
.../params/product/UnPublishProductParam.java | 2 +-
.../params/product/UpdateProductParam.java | 12 +-
.../params/sls/GenericSlsQueryRequest.java | 2 +-
.../params/sls/GenericSlsQueryResponse.java | 2 +-
.../dto/params/sls/ScenarioQueryResponse.java | 4 +-
.../params/sls/SlsCheckLogstoreRequest.java | 2 +-
.../params/sls/SlsCheckProjectRequest.java | 2 +-
.../dto/params/sls/SlsCommonQueryRequest.java | 2 +-
.../params/sls/TimeSeriesChartResponse.java | 2 +-
.../dto/result/ProductCategoryResult.java | 8 +-
.../dto/result/admin/AdminResult.java | 6 +-
.../dto/result/agent/AgentAPIResult.java | 2 +-
.../dto/result/agent/AgentConfigResult.java | 4 +-
.../dto/result/agent/NacosAgentResult.java | 2 +-
.../dto/result/chat/ChatAnswerMessage.java | 6 +-
.../himarket}/dto/result/chat/ChatResult.java | 10 +-
.../dto/result/chat/ChatSessionResult.java | 8 +-
.../result/chat/ConversationResult_V1.java | 6 +-
.../dto/result/chat/LlmChatRequest.java | 42 +-
.../dto/result/chat/LlmInvokeResult.java | 7 +-
.../result/chat/OpenAIChatStreamResponse.java | 4 +-
.../chat/ProductConversationResult.java | 6 +-
.../dto/result/common/AuthResult.java | 2 +-
.../dto/result/common/DomainResult.java | 2 +-
.../dto/result/common/PageResult.java | 4 +-
.../consumer/ConsumerCredentialResult.java | 12 +-
.../dto/result/consumer/ConsumerResult.java | 6 +-
.../result/consumer/CredentialContext.java | 21 +-
.../dto/result/developer/DeveloperResult.java | 6 +-
.../gateway/AdpGatewayInstanceResult.java | 2 +-
.../dto/result/gateway/GatewayResult.java | 19 +-
.../result/higress/HigressRouteResult.java | 0
.../dto/result/httpapi/APIConfigResult.java | 2 +-
.../dto/result/httpapi/APIResult.java | 4 +-
.../dto/result/httpapi/BackendResult.java | 4 +-
.../dto/result/httpapi/HttpRouteResult.java | 8 +-
.../dto/result/httpapi/ServiceResult.java | 4 +-
.../himarket}/dto/result/idp/IdpResult.java | 2 +-
.../himarket}/dto/result/idp/IdpState.java | 2 +-
.../dto/result/idp/IdpTokenResult.java | 2 +-
.../dto/result/mcp/APIGMCPServerResult.java | 4 +-
.../dto/result/mcp/AdpMCPServerResult.java | 2 +-
.../result/mcp/AdpMcpServerListResult.java | 2 +-
.../result/mcp/GatewayMCPServerResult.java | 2 +-
.../result/mcp/HigressMCPServerResult.java | 6 +-
.../dto/result/mcp/MCPConfigResult.java | 88 ++--
.../dto/result/mcp/MCPServerResult.java | 2 +-
.../dto/result/mcp/McpToolListResult.java | 2 +-
.../dto/result/mcp/NacosMCPServerResult.java | 4 +-
.../dto/result/model/AIGWModelAPIResult.java | 2 +-
.../result/model/GatewayModelAPIResult.java | 2 +-
.../dto/result/model/HigressModelResult.java | 2 +-
.../dto/result/model/ModelConfigResult.java | 6 +-
.../dto/result/nacos/MseNacosResult.java | 2 +-
.../result/nacos/NacosNamespaceResult.java | 4 +-
.../dto/result/nacos/NacosResult.java | 6 +-
.../dto/result/portal/PortalResult.java | 16 +-
.../product/ProductPublicationResult.java | 6 +-
.../dto/result/product/ProductRefResult.java | 16 +-
.../dto/result/product/ProductResult.java | 26 +-
.../result/product/SubscriptionResult.java | 8 +-
.../search/AvailableSearchEngineResult.java | 4 +-
.../service/AdministratorService.java | 6 +-
.../service/ChatAttachmentService.java | 2 +-
.../himarket}/service/ChatService.java | 8 +-
.../himarket}/service/ChatSessionService.java | 16 +-
.../himarket}/service/ConsumerService.java | 26 +-
.../himarket}/service/DeveloperService.java | 22 +-
.../himarket}/service/GatewayService.java | 37 +-
.../alibaba/himarket}/service/IdpService.java | 8 +-
.../alibaba/himarket}/service/LlmService.java | 10 +-
.../himarket}/service/NacosService.java | 22 +-
.../himarket}/service/OAuth2Service.java | 4 +-
.../himarket}/service/OidcService.java | 6 +-
.../himarket}/service/PortalService.java | 28 +-
.../service/ProductCategoryService.java | 10 +-
.../himarket}/service/ProductService.java | 30 +-
.../service/SearchRewriteService.java | 8 +-
.../himarket}/service/SlsLogService.java | 12 +-
.../service/TalkSearchAbilityService.java | 7 +-
.../himarket}/service/TalkSearchService.java | 6 +-
.../service/gateway/AIGWOperator.java | 46 +-
.../service/gateway/APIGOperator.java | 49 +-
.../service/gateway/AdpAIGatewayOperator.java | 50 +-
.../gateway/ApsaraGatewayOperator.java | 46 +-
.../service/gateway/GatewayOperator.java | 37 +-
.../service/gateway/client/APIGClient.java | 8 +-
.../gateway/client/AdpAIGatewayClient.java | 8 +-
.../gateway/client/ApsaraGatewayClient.java | 8 +-
.../client/ApsaraStackGatewayClient.java | 6 +-
.../service/gateway/client/GatewayClient.java | 2 +-
.../service/gateway/client/HigressClient.java | 6 +-
.../gateway/client/PopGatewayClient.java | 4 +-
.../gateway/factory/HTTPClientFactory.java | 2 +-
.../gateway/factory/SlsClientFactory.java | 11 +-
.../gateway/factory/SlsPresetSqlRegistry.java | 2 +-
.../impl/AdministratorServiceImpl.java | 28 +-
.../impl/ChatAttachmentServiceImpl.java | 6 +-
.../service/impl/ChatServiceImpl.java | 99 ++--
.../service/impl/ChatSessionServiceImpl.java | 40 +-
.../service/impl/ConsumerServiceImpl.java | 72 +--
.../service/impl/DeveloperServiceImpl.java | 58 +--
.../service/impl/GatewayServiceImpl.java | 61 ++-
.../service/impl/IdpServiceImpl.java | 16 +-
.../service/impl/McpClientFactory.java | 80 ++-
.../service/impl/McpClientWrapper.java | 14 +-
.../service/impl/NacosServiceImpl.java | 49 +-
.../service/impl/OAuth2ServiceImpl.java | 36 +-
.../service/impl/OidcServiceImpl.java | 44 +-
.../service/impl/PortalServiceImpl.java | 84 ++--
.../impl/ProductCategoryServiceImpl.java | 36 +-
.../service/impl/ProductServiceImpl.java | 84 ++--
.../impl/SearchRewirteServiceImpl.java | 41 +-
.../service/impl/SlsLogServiceImpl.java | 24 +-
.../TalkSearchAbilityServiceGoogleImpl.java | 15 +-
.../service/impl/TalkSearchFactory.java | 4 +-
.../service/impl/TalkSearchServiceImpl.java | 20 +-
.../himarket-admin}/.env | 0
.../himarket-admin}/.gitignore | 0
.../himarket-admin}/Dockerfile | 0
.../himarket-admin}/README.md | 0
.../himarket-admin}/bin/replace_var.py | 0
.../himarket-admin}/bin/start.sh | 0
.../himarket-admin}/eslint.config.js | 0
.../himarket-admin}/index.html | 0
.../himarket-admin}/nginx.conf | 0
.../himarket-admin}/package.json | 0
.../himarket-admin}/postcss.config.js | 0
.../himarket-admin}/proxy.conf | 0
.../himarket-admin}/public/logo.png | Bin
.../himarket-admin}/public/vite.svg | 0
.../himarket-admin}/src/App.css | 0
.../himarket-admin}/src/App.tsx | 0
.../himarket-admin}/src/aliyunThemeToken.ts | 0
.../himarket-admin}/src/assets/react.svg | 0
.../himarket-admin}/src/components/Layout.tsx | 0
.../src/components/LayoutWrapper.tsx | 0
.../api-product/ApiProductApiDocs.tsx | 0
.../api-product/ApiProductFormModal.tsx | 0
.../api-product/ApiProductLinkApi.tsx | 0
.../api-product/ApiProductOverview.tsx | 0
.../api-product/ApiProductPolicy.tsx | 0
.../api-product/ApiProductPortal.tsx | 0
.../api-product/ApiProductUsageGuide.tsx | 0
.../api-product/ModelFeatureForm.tsx | 0
.../api-product/SwaggerUIWrapper.css | 0
.../api-product/SwaggerUIWrapper.tsx | 0
.../src/components/common/AdvancedSearch.tsx | 0
.../src/components/common/index.ts | 0
.../components/console/EditGatewayModal.tsx | 440 +++++++++++++++++
.../console/GatewayTypeSelector.tsx | 0
.../components/console/ImportGatewayModal.tsx | 2 +-
.../components/console/ImportHigressModal.tsx | 71 ++-
.../console/ImportMseNacosModal.tsx | 0
.../components/console/NacosTypeSelector.tsx | 0
.../src/components/icons/McpServerIcon.tsx | 0
.../src/components/portal/PortalConsumers.tsx | 0
.../src/components/portal/PortalDashboard.tsx | 0
.../components/portal/PortalDevelopers.tsx | 0
.../src/components/portal/PortalDomain.tsx | 0
.../src/components/portal/PortalFormModal.tsx | 0
.../src/components/portal/PortalOverview.tsx | 0
.../components/portal/PortalPublishedApis.tsx | 0
.../src/components/portal/PortalSecurity.tsx | 0
.../src/components/portal/PortalSettings.tsx | 0
.../components/portal/PublicKeyManager.tsx | 0
.../portal/ThirdPartyAuthManager.tsx | 0
.../product-category/AddProductModal.tsx | 0
.../product-category/CategoryFormModal.tsx | 0
.../subscription/SubscriptionListModal.tsx | 0
.../src/contexts/LoadingContext.tsx | 0
.../himarket-admin}/src/index.css | 0
.../himarket-admin}/src/lib/api.ts | 4 +
.../himarket-admin}/src/lib/constant.ts | 0
.../src/lib/productCategoryApi.ts | 0
.../himarket-admin}/src/lib/slsApi.ts | 0
.../himarket-admin}/src/lib/utils.ts | 31 +-
.../himarket-admin}/src/main.tsx | 0
.../src/pages/ApiProductDetail.tsx | 0
.../himarket-admin}/src/pages/ApiProducts.tsx | 0
.../himarket-admin}/src/pages/Dashboard.tsx | 0
.../src/pages/GatewayConsoles.tsx | 68 ++-
.../himarket-admin}/src/pages/Login.tsx | 0
.../himarket-admin}/src/pages/McpMonitor.tsx | 0
.../src/pages/ModelDashboard.tsx | 0
.../src/pages/NacosConsoles.tsx | 0
.../src/pages/PortalDetail.tsx | 3 +-
.../himarket-admin}/src/pages/Portals.tsx | 0
.../src/pages/ProductCategories.tsx | 0
.../src/pages/ProductCategoryDetail.tsx | 3 +-
.../himarket-admin}/src/pages/Register.tsx | 0
.../himarket-admin}/src/routes/index.tsx | 0
.../himarket-admin}/src/types/api-product.ts | 0
.../himarket-admin}/src/types/consumer.ts | 0
.../himarket-admin}/src/types/gateway.ts | 24 +-
.../himarket-admin}/src/types/index.ts | 0
.../himarket-admin}/src/types/portal.ts | 0
.../src/types/product-category.ts | 0
.../src/types/shims-js-yaml.d.ts | 0
.../himarket-admin}/src/types/sls.ts | 0
.../himarket-admin}/src/types/subscription.ts | 0
.../himarket-admin}/src/utils/chartUtils.ts | 0
.../src/utils/dateTimeUtils.ts | 0
.../himarket-admin}/src/vite-env.d.ts | 0
.../himarket-admin}/tailwind.config.js | 0
.../himarket-admin}/tsconfig.json | 0
.../himarket-admin}/tsconfig.node.json | 0
.../himarket-admin}/vite.config.ts | 0
.../himarket-frontend}/.env | 0
.../himarket-frontend}/.gitignore | 0
.../himarket-frontend}/.husky/pre-commit | 0
.../himarket-frontend}/CLAUDE.md | 0
.../himarket-frontend}/Dockerfile | 0
.../himarket-frontend}/IMPLEMENTATION.md | 0
.../himarket-frontend}/README.md | 0
.../himarket-frontend}/bin/replace_var.py | 0
.../himarket-frontend}/bin/start.sh | 0
.../himarket-frontend}/components.json | 0
.../himarket-frontend}/eslint.config.js | 0
.../himarket-frontend}/index.html | 0
.../himarket-frontend}/nginx.conf | 0
.../himarket-frontend}/package.json | 0
.../himarket-frontend}/postcss.config.js | 0
.../himarket-frontend}/proxy.conf | 0
.../himarket-frontend}/public/MCP.png | Bin
.../himarket-frontend}/public/MCP.svg | 0
.../himarket-frontend}/public/favicon.ico | 0
.../himarket-frontend}/public/logo.png | Bin
.../himarket-frontend}/public/logo.svg | 0
.../himarket-frontend}/public/vite.svg | 0
.../himarket-frontend}/src/App.css | 0
.../himarket-frontend}/src/App.tsx | 0
.../src/aliyunThemeToken.ts | 0
.../himarket-frontend}/src/assets/aliyun.png | Bin
.../himarket-frontend}/src/assets/bg.png | Bin
.../src/assets/chat-thum-card.svg | 0
.../src/assets/chat-thum.svg | 0
.../himarket-frontend}/src/assets/chatgpt.svg | 0
.../src/assets/deepseek.svg | 0
.../himarket-frontend}/src/assets/empty.svg | 0
.../himarket-frontend}/src/assets/github.png | Bin
.../himarket-frontend}/src/assets/google.png | Bin
.../src/assets/home-model-card-bg.svg | 0
.../himarket-frontend}/src/assets/more.svg | 0
.../himarket-frontend}/src/assets/person1.svg | 0
.../himarket-frontend}/src/assets/person2.svg | 0
.../himarket-frontend}/src/assets/person3.svg | 0
.../himarket-frontend}/src/assets/person4.svg | 0
.../himarket-frontend}/src/assets/qwen.svg | 0
.../himarket-frontend}/src/assets/react.svg | 0
.../src/components/Header.tsx | 0
.../src/components/Layout.tsx | 0
.../src/components/MarkdownRender.tsx | 0
.../src/components/Navigation.tsx | 0
.../src/components/ProductHeader.tsx | 0
.../src/components/SwaggerUIWrapper.css | 0
.../src/components/SwaggerUIWrapper.tsx | 0
.../src/components/TextType.tsx | 0
.../src/components/UserInfo.css | 0
.../src/components/UserInfo.tsx | 0
.../src/components/card/APICard.tsx | 0
.../src/components/card/AgentCard.tsx | 0
.../src/components/card/ChatCard.tsx | 0
.../src/components/card/CommonCard.tsx | 0
.../src/components/card/HomeMcpCard.tsx | 0
.../src/components/card/ModelCard.tsx | 0
.../src/components/card/circle.tsx | 0
.../src/components/chat/Area.tsx | 0
.../src/components/chat/InputBox.tsx | 0
.../src/components/chat/McpCard.tsx | 0
.../src/components/chat/McpModal.tsx | 0
.../src/components/chat/McpToolCallPanel.tsx | 0
.../src/components/chat/Messages.tsx | 0
.../src/components/chat/ModelSelector.tsx | 0
.../components/chat/MultiModelSelector.tsx | 0
.../src/components/chat/Sidebar.css | 0
.../src/components/chat/Sidebar.tsx | 0
.../components/chat/SuggestedQuestions.tsx | 0
.../src/components/common/AdvancedSearch.tsx | 0
.../src/components/common/index.ts | 0
.../src/components/consumer/AuthConfig.tsx | 0
.../components/consumer/ConsumerBasicInfo.tsx | 0
.../components/consumer/CredentialManager.tsx | 0
.../consumer/SubscriptionManager.tsx | 0
.../src/components/consumer/index.ts | 0
.../components/icon/ProductIconRenderer.tsx | 0
.../src/components/icon/index.tsx | 0
.../src/components/scroll-to-top/index.tsx | 0
.../src/components/send-button/index.tsx | 0
.../src/components/square/CategoryMenu.tsx | 0
.../src/components/square/ModelCard.tsx | 0
.../components/switch-button.tsx/index.tsx | 0
.../src/hooks/useCategories.ts | 0
.../src/hooks/useProducts.ts | 0
.../himarket-frontend}/src/index.css | 0
.../himarket-frontend}/src/lib/api.ts | 0
.../src/lib/apis/category.ts | 0
.../himarket-frontend}/src/lib/apis/chat.ts | 0
.../src/lib/apis/consumer.ts | 0
.../src/lib/apis/developer.ts | 0
.../himarket-frontend}/src/lib/apis/index.ts | 0
.../src/lib/apis/product.ts | 0
.../himarket-frontend}/src/lib/apis/typing.ts | 0
.../himarket-frontend}/src/lib/iconUtils.tsx | 0
.../himarket-frontend}/src/lib/request.ts | 0
.../himarket-frontend}/src/lib/sse.ts | 0
.../himarket-frontend}/src/lib/statusUtils.ts | 0
.../himarket-frontend}/src/lib/styles.ts | 0
.../himarket-frontend}/src/lib/utils.ts | 0
.../himarket-frontend}/src/lib/uuid.ts | 0
.../himarket-frontend}/src/main.tsx | 0
.../himarket-frontend}/src/pages/Agent.tsx | 0
.../src/pages/AgentDetail.tsx | 0
.../src/pages/ApiDetail.tsx | 0
.../himarket-frontend}/src/pages/Apis.tsx | 0
.../himarket-frontend}/src/pages/Callback.tsx | 0
.../himarket-frontend}/src/pages/Chat.tsx | 0
.../src/pages/ConsumerDetail.tsx | 0
.../src/pages/Consumers.tsx | 0
.../src/pages/GettingStarted.tsx | 0
.../himarket-frontend}/src/pages/Home.tsx | 0
.../himarket-frontend}/src/pages/Login.tsx | 0
.../himarket-frontend}/src/pages/Mcp.tsx | 0
.../src/pages/McpDetail.tsx | 0
.../himarket-frontend}/src/pages/Model.tsx | 0
.../src/pages/ModelDetail.tsx | 0
.../src/pages/OidcCallback.tsx | 0
.../himarket-frontend}/src/pages/Profile.tsx | 0
.../himarket-frontend}/src/pages/Register.tsx | 0
.../himarket-frontend}/src/pages/Square.tsx | 0
.../himarket-frontend}/src/pages/Test.css | 0
.../himarket-frontend}/src/router.tsx | 0
.../himarket-frontend}/src/styles/table.css | 0
.../himarket-frontend}/src/types/consumer.ts | 0
.../himarket-frontend}/src/types/index.ts | 0
.../himarket-frontend}/src/vite-env.d.ts | 0
.../himarket-frontend}/tailwind.config.js | 0
.../himarket-frontend}/tsconfig.app.json | 0
.../himarket-frontend}/tsconfig.json | 0
.../himarket-frontend}/tsconfig.node.json | 0
.../himarket-frontend}/vite.config.ts | 0
pom.xml | 50 +-
.../support/chat/mcp/McpServerConfig.java | 39 --
.../dto/params/chat/ChatContent.java | 47 --
.../dto/params/chat/ChatRequestBody.java | 39 --
.../dto/params/chat/InvokeModelParam.java | 41 --
.../params/chat/UpdateChatSessionParam.java | 14 -
.../service/impl/AbstractLlmService.java | 170 -------
.../service/impl/OpenAILlmService.java | 467 ------------------
594 files changed, 3084 insertions(+), 2422 deletions(-)
create mode 100644 .github/workflows/code-check.yml
create mode 100644 CONTRIBUTING.md
create mode 100644 CONTRIBUTING_zh.md
create mode 100644 checkstyle.xml
rename {portal-bootstrap => himarket-bootstrap}/Dockerfile (100%)
rename {portal-bootstrap => himarket-bootstrap}/pom.xml (96%)
rename portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/HiMarketApplication.java => himarket-bootstrap/src/main/java/com/alibaba/himarket/HimarketApplication.java (88%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/AsyncConfig.java (97%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/FilterConfig.java (88%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/FlywayConfig.java (97%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/RestTemplateConfig.java (97%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/SecurityConfig.java (93%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/SwaggerConfig.java (96%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/config/WebMvcConfig.java (98%)
rename {portal-bootstrap/src/main/java/com/alibaba/apiopenplatform => himarket-bootstrap/src/main/java/com/alibaba/himarket}/filter/PortalResolvingFilter.java (95%)
rename {portal-bootstrap => himarket-bootstrap}/src/main/resources/application.yml (94%)
rename {portal-bootstrap => himarket-bootstrap}/src/main/resources/db/migration/V1__Create_baseline_schema.sql (100%)
rename {portal-bootstrap => himarket-bootstrap}/src/main/resources/db/migration/V2__Migrate_to_v1_0_5.sql (100%)
rename {portal-bootstrap => himarket-bootstrap}/src/main/resources/db/migration/V3__Add_chat_tables.sql (100%)
rename {portal-bootstrap => himarket-bootstrap}/src/main/resources/logback-spring.xml (92%)
rename {portal-dal => himarket-dal}/pom.xml (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/APIGConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/APIGRefConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/AdpAIGatewayConfigConverter.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/ApiKeyConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/ApsaraGatewayConfigConverter.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/ChatUsageConverter.java (69%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/ConsumerAuthConfigConverter.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/GatewayConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/HigressConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/HigressRefConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/HmacConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/IconConverter.java (67%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/JsonConverter.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/JwtConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/ListJsonConverter.java (84%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/NacosRefConfigConverter.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/PortalSettingConfigConverter.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/PortalUiConfigConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/converter/ProductFeatureConverter.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Administrator.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/BaseEntity.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Chat.java (85%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ChatAttachment.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ChatSession.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Consumer.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ConsumerCredential.java (79%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ConsumerRef.java (87%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Developer.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/DeveloperExternalIdentity.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Gateway.java (77%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/NacosInstance.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Portal.java (86%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/PortalDomain.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/Product.java (84%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ProductCategory.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ProductCategoryRelation.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ProductPublication.java (96%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ProductRef.java (84%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/entity/ProductSubscription.java (88%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/AdministratorRepository.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/BaseRepository.java (93%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ChatAttachmentRepository.java (77%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ChatRepository.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ChatSessionRepository.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ConsumerCredentialRepository.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ConsumerRefRepository.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ConsumerRepository.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/DeveloperExternalIdentityRepository.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/DeveloperRepository.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/GatewayRepository.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/NacosInstanceRepository.java (83%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/PortalDomainRepository.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/PortalRepository.java (93%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ProductCategoryRelationRepository.java (93%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ProductCategoryRepository.java (85%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ProductPublicationRepository.java (93%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ProductRefRepository.java (88%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/ProductRepository.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/repository/SubscriptionRepository.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/ChatMessage.java (76%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/ChatUsage.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/attachment/ChatAttachmentConfig.java (55%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/content/AudioUrlContent.java (82%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/content/ImageUrlContent.java (82%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/content/MessageContent.java (65%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/content/TextContent.java (67%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/content/VideoUrlContent.java (82%)
create mode 100644 himarket-dal/src/main/java/com/alibaba/himarket/support/chat/mcp/MCPTransportConfig.java
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/search/SearchContext.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/search/SearchInput.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/chat/search/SearchOutput.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/common/Encrypted.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/common/Encryptor.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/common/User.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/APIGAuthConfig.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/AdpAIAuthConfig.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/ApiKeyConfig.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/ConsumerAuthConfig.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/HigressAuthConfig.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/HmacConfig.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/consumer/JwtConfig.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/AIProtocol.java (63%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/APIGAPIType.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/APIGResourceType.java (85%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/AttachmentDataType.java (62%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ChatAttachmentType.java (68%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ChatRole.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ChatSessionStatus.java (72%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ChatStatus.java (68%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ConsumerAuthType.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ConsumerStatus.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ContentType.java (85%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/CredentialMode.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/DeveloperAuthType.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/DeveloperStatus.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/DomainType.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/GatewayType.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/GrantType.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/HigressAPIType.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/IconType.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/JwtAlgorithm.java (94%)
create mode 100644 himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ProductStatus.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ProductType.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/ProtocolType.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/PublicKeyFormat.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/SearchEngineType.java (97%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/SlsAuthType.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/SourceType.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/SubscriptionStatus.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/TalkType.java (58%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/enums/UserType.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/gateway/APIGConfig.java (74%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/gateway/AdpAIGatewayConfig.java (87%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/gateway/ApsaraGatewayConfig.java (86%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/gateway/GatewayConfig.java (88%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/AuthCodeConfig.java (96%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/IdentityMapping.java (96%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/JwtBearerConfig.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/OAuth2Config.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/OidcConfig.java (92%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/PortalSettingConfig.java (96%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/PortalUiConfig.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/PublicKeyConfig.java (91%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/portal/SearchEngineConfig.java (90%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/product/APIGRefConfig.java (96%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/product/HigressRefConfig.java (94%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/product/Icon.java (89%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/product/ModelFeature.java (96%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/product/NacosRefConfig.java (95%)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/product/ProductFeature.java (94%)
rename {portal-server => himarket-server}/lib/csb220230206-1.5.3.jar (100%)
rename {portal-server => himarket-server}/pom.xml (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/config/SlsConfig.java (93%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/AdministratorController.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/ChatController.java (71%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/ConsumerController.java (83%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/DeveloperController.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/GatewayController.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/NacosController.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/OAuth2Controller.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/OidcController.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/PortalController.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/ProductCategoryController.java (85%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/ProductController.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/SearchEngineController.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/SessionController.java (74%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/controller/SlsController.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/advice/ExceptionAdvice.java (93%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/advice/ResponseAdvice.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/annotation/AdminAuth.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/annotation/AdminOrDeveloperAuth.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/annotation/DeveloperAuth.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/constant/CommonConstants.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/constant/IdpConstants.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/constant/JwtConstants.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/constant/Resources.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/event/ChatSessionDeletingEvent.java (87%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/event/DeveloperDeletingEvent.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/event/PortalDeletingEvent.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/event/ProductDeletingEvent.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/exception/BusinessException.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/exception/ChatError.java (78%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/exception/ErrorCode.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/response/Response.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/security/ContextHolder.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/security/DeveloperAuthenticationProvider.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/security/JwtAuthenticationFilter.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/utils/CacheUtil.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/utils/IdGenerator.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/utils/PasswordHasher.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/core/utils/TokenUtil.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/converter/InputConverter.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/converter/NacosAgentConverter.java (93%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/converter/NacosToGatewayToolsConverter.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/converter/OutputConverter.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/converter/SlsResponseConverter.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/admin/AdminCreateParam.java (82%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/admin/AdminLoginParam.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/admin/ResetPasswordParam.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/category/CreateProductCategoryParam.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/category/QueryProductCategoryParam.java (72%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/category/UpdateProductCategoryParam.java (83%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/chat/ChatContext.java (70%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/chat/CreateChatParam.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/chat/CreateChatSessionParam.java (73%)
create mode 100644 himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/chat/McpToolMeta.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/chat/ToolContext.java (97%)
create mode 100644 himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/UpdateChatSessionParam.java
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/consumer/CreateConsumerParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/consumer/CreateCredentialParam.java (76%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/consumer/CreateSubscriptionParam.java (85%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/consumer/QueryConsumerParam.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/consumer/QuerySubscriptionParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/consumer/UpdateCredentialParam.java (73%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/CreateDeveloperParam.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/CreateExternalDeveloperParam.java (81%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/DeveloperLoginParam.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/QueryDeveloperParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/UnbindExternalIdentityParam.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/UpdateDeveloperParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/developer/UpdateDeveloperStatusParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/gateway/ImportGatewayParam.java (54%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/gateway/QueryAPIGParam.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/gateway/QueryAdpAIGatewayParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/gateway/QueryApsaraGatewayParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/gateway/QueryGatewayParam.java (88%)
create mode 100644 himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/UpdateGatewayParam.java
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/nacos/CreateNacosParam.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/nacos/QueryNacosNamespaceParam.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/nacos/QueryNacosParam.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/nacos/UpdateNacosParam.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/portal/BindDomainParam.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/portal/CreatePortalParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/portal/UpdatePortalParam.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/CreateProductParam.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/CreateProductRefParam.java (75%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/PublishProductParam.java (85%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/QueryProductParam.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/QueryProductSubscriptionParam.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/UnPublishProductParam.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/product/UpdateProductParam.java (81%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/GenericSlsQueryRequest.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/GenericSlsQueryResponse.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/ScenarioQueryResponse.java (88%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/SlsCheckLogstoreRequest.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/SlsCheckProjectRequest.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/SlsCommonQueryRequest.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/params/sls/TimeSeriesChartResponse.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/ProductCategoryResult.java (83%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/admin/AdminResult.java (85%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/agent/AgentAPIResult.java (76%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/agent/AgentConfigResult.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/agent/NacosAgentResult.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/ChatAnswerMessage.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/ChatResult.java (60%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/ChatSessionResult.java (63%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/ConversationResult_V1.java (82%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/LlmChatRequest.java (62%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/LlmInvokeResult.java (72%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/OpenAIChatStreamResponse.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/chat/ProductConversationResult.java (82%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/common/AuthResult.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/common/DomainResult.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/common/PageResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/consumer/ConsumerCredentialResult.java (73%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/consumer/ConsumerResult.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/consumer/CredentialContext.java (68%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/developer/DeveloperResult.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/gateway/AdpGatewayInstanceResult.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/gateway/GatewayResult.java (79%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/higress/HigressRouteResult.java (100%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/httpapi/APIConfigResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/httpapi/APIResult.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/httpapi/BackendResult.java (87%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/httpapi/HttpRouteResult.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/httpapi/ServiceResult.java (71%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/idp/IdpResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/idp/IdpState.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/idp/IdpTokenResult.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/APIGMCPServerResult.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/AdpMCPServerResult.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/AdpMcpServerListResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/GatewayMCPServerResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/HigressMCPServerResult.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/MCPConfigResult.java (62%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/MCPServerResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/McpToolListResult.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/mcp/NacosMCPServerResult.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/model/AIGWModelAPIResult.java (79%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/model/GatewayModelAPIResult.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/model/HigressModelResult.java (77%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/model/ModelConfigResult.java (68%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/nacos/MseNacosResult.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/nacos/NacosNamespaceResult.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/nacos/NacosResult.java (87%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/portal/PortalResult.java (79%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/product/ProductPublicationResult.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/product/ProductRefResult.java (76%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/product/ProductResult.java (68%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/product/SubscriptionResult.java (83%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/dto/result/search/AvailableSearchEngineResult.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/AdministratorService.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/ChatAttachmentService.java (59%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/ChatService.java (67%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/ChatSessionService.java (76%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/ConsumerService.java (82%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/DeveloperService.java (83%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/GatewayService.java (79%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/IdpService.java (85%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/LlmService.java (63%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/NacosService.java (85%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/OAuth2Service.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/OidcService.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/PortalService.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/ProductCategoryService.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/ProductService.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/SearchRewriteService.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/SlsLogService.java (73%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/TalkSearchAbilityService.java (81%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/TalkSearchService.java (84%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/AIGWOperator.java (93%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/APIGOperator.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/AdpAIGatewayOperator.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/ApsaraGatewayOperator.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/GatewayOperator.java (79%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/APIGClient.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/AdpAIGatewayClient.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/ApsaraGatewayClient.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/ApsaraStackGatewayClient.java (98%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/GatewayClient.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/HigressClient.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/client/PopGatewayClient.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/factory/HTTPClientFactory.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/factory/SlsClientFactory.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/factory/SlsPresetSqlRegistry.java (99%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/AdministratorServiceImpl.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/ChatAttachmentServiceImpl.java (59%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/ChatServiceImpl.java (81%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/ChatSessionServiceImpl.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/ConsumerServiceImpl.java (92%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/DeveloperServiceImpl.java (87%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/GatewayServiceImpl.java (86%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/IdpServiceImpl.java (95%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/McpClientFactory.java (51%)
rename portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientHolder.java => himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientWrapper.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/NacosServiceImpl.java (94%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/OAuth2ServiceImpl.java (87%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/OidcServiceImpl.java (90%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/PortalServiceImpl.java (80%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/ProductCategoryServiceImpl.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/ProductServiceImpl.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/SearchRewirteServiceImpl.java (89%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/SlsLogServiceImpl.java (97%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/TalkSearchAbilityServiceGoogleImpl.java (96%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/TalkSearchFactory.java (91%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/impl/TalkSearchServiceImpl.java (91%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/.env (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/.gitignore (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/Dockerfile (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/README.md (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/bin/replace_var.py (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/bin/start.sh (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/eslint.config.js (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/index.html (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/nginx.conf (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/package.json (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/postcss.config.js (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/proxy.conf (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/public/logo.png (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/public/vite.svg (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/App.css (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/App.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/aliyunThemeToken.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/assets/react.svg (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/Layout.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/LayoutWrapper.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductApiDocs.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductFormModal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductLinkApi.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductOverview.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductPolicy.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductPortal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ApiProductUsageGuide.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/ModelFeatureForm.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/SwaggerUIWrapper.css (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/api-product/SwaggerUIWrapper.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/common/AdvancedSearch.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/common/index.ts (100%)
create mode 100644 himarket-web/himarket-admin/src/components/console/EditGatewayModal.tsx
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/console/GatewayTypeSelector.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/console/ImportGatewayModal.tsx (99%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/console/ImportHigressModal.tsx (56%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/console/ImportMseNacosModal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/console/NacosTypeSelector.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/icons/McpServerIcon.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalConsumers.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalDashboard.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalDevelopers.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalDomain.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalFormModal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalOverview.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalPublishedApis.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalSecurity.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PortalSettings.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/PublicKeyManager.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/portal/ThirdPartyAuthManager.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/product-category/AddProductModal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/product-category/CategoryFormModal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/components/subscription/SubscriptionListModal.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/contexts/LoadingContext.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/index.css (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/lib/api.ts (98%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/lib/constant.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/lib/productCategoryApi.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/lib/slsApi.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/lib/utils.ts (89%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/main.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/ApiProductDetail.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/ApiProducts.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/Dashboard.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/GatewayConsoles.tsx (87%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/Login.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/McpMonitor.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/ModelDashboard.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/NacosConsoles.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/PortalDetail.tsx (99%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/Portals.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/ProductCategories.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/ProductCategoryDetail.tsx (99%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/pages/Register.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/routes/index.tsx (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/api-product.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/consumer.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/gateway.ts (64%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/index.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/portal.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/product-category.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/shims-js-yaml.d.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/sls.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/types/subscription.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/utils/chartUtils.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/utils/dateTimeUtils.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/src/vite-env.d.ts (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/tailwind.config.js (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/tsconfig.json (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/tsconfig.node.json (100%)
rename {portal-web/api-portal-admin => himarket-web/himarket-admin}/vite.config.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/.env (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/.gitignore (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/.husky/pre-commit (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/CLAUDE.md (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/Dockerfile (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/IMPLEMENTATION.md (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/README.md (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/bin/replace_var.py (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/bin/start.sh (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/components.json (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/eslint.config.js (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/index.html (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/nginx.conf (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/package.json (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/postcss.config.js (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/proxy.conf (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/public/MCP.png (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/public/MCP.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/public/favicon.ico (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/public/logo.png (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/public/logo.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/public/vite.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/App.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/App.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/aliyunThemeToken.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/aliyun.png (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/bg.png (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/chat-thum-card.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/chat-thum.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/chatgpt.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/deepseek.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/empty.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/github.png (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/google.png (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/home-model-card-bg.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/more.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/person1.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/person2.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/person3.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/person4.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/qwen.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/assets/react.svg (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/Header.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/Layout.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/MarkdownRender.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/Navigation.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/ProductHeader.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/SwaggerUIWrapper.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/SwaggerUIWrapper.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/TextType.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/UserInfo.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/UserInfo.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/APICard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/AgentCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/ChatCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/CommonCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/HomeMcpCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/ModelCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/card/circle.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/Area.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/InputBox.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/McpCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/McpModal.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/McpToolCallPanel.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/Messages.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/ModelSelector.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/MultiModelSelector.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/Sidebar.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/Sidebar.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/chat/SuggestedQuestions.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/common/AdvancedSearch.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/common/index.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/consumer/AuthConfig.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/consumer/ConsumerBasicInfo.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/consumer/CredentialManager.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/consumer/SubscriptionManager.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/consumer/index.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/icon/ProductIconRenderer.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/icon/index.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/scroll-to-top/index.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/send-button/index.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/square/CategoryMenu.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/square/ModelCard.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/components/switch-button.tsx/index.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/hooks/useCategories.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/hooks/useProducts.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/index.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/api.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/category.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/chat.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/consumer.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/developer.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/index.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/product.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/apis/typing.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/iconUtils.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/request.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/sse.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/statusUtils.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/styles.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/utils.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/lib/uuid.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/main.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Agent.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/AgentDetail.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/ApiDetail.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Apis.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Callback.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Chat.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/ConsumerDetail.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Consumers.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/GettingStarted.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Home.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Login.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Mcp.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/McpDetail.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Model.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/ModelDetail.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/OidcCallback.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Profile.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Register.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Square.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/pages/Test.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/router.tsx (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/styles/table.css (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/types/consumer.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/types/index.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/src/vite-env.d.ts (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/tailwind.config.js (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/tsconfig.app.json (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/tsconfig.json (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/tsconfig.node.json (100%)
rename {portal-web/api-portal-frontend => himarket-web/himarket-frontend}/vite.config.ts (100%)
delete mode 100644 portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/mcp/McpServerConfig.java
delete mode 100644 portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContent.java
delete mode 100644 portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatRequestBody.java
delete mode 100644 portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/InvokeModelParam.java
delete mode 100644 portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/UpdateChatSessionParam.java
delete mode 100644 portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AbstractLlmService.java
delete mode 100644 portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OpenAILlmService.java
diff --git a/.github/workflows/code-check.yml b/.github/workflows/code-check.yml
new file mode 100644
index 000000000..1069ecdcb
--- /dev/null
+++ b/.github/workflows/code-check.yml
@@ -0,0 +1,127 @@
+name: Code Check
+
+on:
+ pull_request:
+ types: [opened, synchronize, reopened]
+ push:
+ branches:
+ - main
+ - develop
+
+jobs:
+ code-format-check:
+ name: Code Format Check
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ cache: maven
+
+ - name: Check Code Format
+ run: mvn spotless:check
+ continue-on-error: false
+
+ - name: Comment on PR if format check fails
+ if: failure() && github.event_name == 'pull_request'
+ uses: actions/github-script@v7
+ with:
+ script: |
+ github.rest.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ body: '## ❌ Code Format Check Failed\n\n' +
+ 'Your code does not follow the project formatting standards.\n\n' +
+ '**Please run the following command:**\n' +
+ '```bash\n' +
+ 'mvn spotless:apply\n' +
+ '```\n\n' +
+ 'Then commit the changes:\n' +
+ '```bash\n' +
+ 'git add .\n' +
+ 'git commit -m "style: format code with spotless"\n' +
+ 'git push\n' +
+ '```\n\n' +
+ 'The check will automatically re-run after you push.'
+ });
+
+ checkstyle-check:
+ name: Checkstyle Check
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v3
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ cache: maven
+
+ - name: Run Checkstyle
+ run: mvn checkstyle:check
+ continue-on-error: true
+
+ - name: Comment on PR with Checkstyle warnings
+ if: failure() && github.event_name == 'pull_request'
+ uses: actions/github-script@v7
+ with:
+ script: |
+ github.rest.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ body: '## ⚠️ Checkstyle Warnings\n\n' +
+ 'Your code has some style issues that should be addressed.\n\n' +
+ '**These are warnings and won\'t block your PR**, but please consider fixing them:\n\n' +
+ '- Check variable and method naming conventions\n' +
+ '- Review code complexity and method length\n' +
+ '- Ensure proper Javadoc documentation\n' +
+ '- Avoid empty catch blocks and magic numbers\n\n' +
+ '**To check locally:**\n' +
+ '```bash\n' +
+ 'mvn checkstyle:check\n' +
+ '```\n\n' +
+ '**View detailed report:**\n' +
+ 'Check the CI logs above for specific violations.\n\n' +
+ '*Note: This check follows [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)*'
+ });
+
+ # unit-tests:
+ # name: Unit Tests
+ # runs-on: ubuntu-latest
+ # steps:
+ # - name: Checkout
+ # uses: actions/checkout@v3
+ # - name: Set up JDK 17
+ # uses: actions/setup-java@v3
+ # with:
+ # java-version: '17'
+ # distribution: 'temurin'
+ # cache: maven
+ # - name: Run Tests
+ # run: mvn test
+
+ # build-check:
+ # name: Build Check
+ # runs-on: ubuntu-latest
+ # steps:
+ # - name: Checkout
+ # uses: actions/checkout@v3
+ # - name: Set up JDK 17
+ # uses: actions/setup-java@v3
+ # with:
+ # java-version: '17'
+ # distribution: 'temurin'
+ # cache: maven
+ # - name: Build Project
+ # run: mvn clean package -DskipTests
+
+
diff --git "a/.qoder/repowiki/zh/content/\346\212\200\346\234\257\346\240\210\344\270\216\344\276\235\350\265\226.md" "b/.qoder/repowiki/zh/content/\346\212\200\346\234\257\346\240\210\344\270\216\344\276\235\350\265\226.md"
index ea6a45b22..cb0df5c3e 100644
--- "a/.qoder/repowiki/zh/content/\346\212\200\346\234\257\346\240\210\344\270\216\344\276\235\350\265\226.md"
+++ "b/.qoder/repowiki/zh/content/\346\212\200\346\234\257\346\240\210\344\270\216\344\276\235\350\265\226.md"
@@ -234,8 +234,9 @@ public OpenAPI openAPI() {
各子模块通过``标签继承父POM配置,确保依赖版本一致性。例如,`portal-bootstrap`依赖`portal-server`模块:
```xml
+
- com.alibaba.apiopenplatform
+ com.alibaba.himarketcom.alibaba.himarket
portal-server
1.0-SNAPSHOT
diff --git "a/.qoder/repowiki/zh/content/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227.md" "b/.qoder/repowiki/zh/content/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227.md"
index e81f82c78..0df586c08 100644
--- "a/.qoder/repowiki/zh/content/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227.md"
+++ "b/.qoder/repowiki/zh/content/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227/\351\203\250\347\275\262\344\270\216\350\277\220\347\273\264\346\214\207\345\215\227.md"
@@ -256,7 +256,7 @@ encryption:
```yaml
logging:
level:
- com.alibaba.apiopenplatform: INFO
+ com.alibaba.himarket: INFO
```
- 建议生产环境设为 `WARN` 或 `ERROR` 以减少日志量。
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..383c8f3b3
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,224 @@
+# Contributing to Himarket
+
+Thank you for your interest in contributing to Himarket! 🎉
+
+We welcome contributions of all kinds: bug fixes, new features, documentation improvements, and more.
+
+## 🚀 Getting Started
+
+### Fork and Clone the Repository
+
+1. **Fork** the [Himarket repository](https://github.com/higress-group/himarket) to your GitHub account
+2. **Clone** your fork to your local machine:
+
+```bash
+git clone https://github.com/YOUR_USERNAME/himarket.git
+cd himarket
+```
+
+3. **Add the upstream repository** so you can keep your fork in sync:
+
+```bash
+git remote add upstream https://github.com/higress-group/himarket.git
+```
+
+4. **Set up your development environment** by following the instructions in [README.md](README.md)
+
+---
+
+## 🔄 Development Workflow
+
+### 1. Sync and Create a Branch
+
+Before starting work, sync your fork with the upstream repository:
+
+```bash
+# Switch to main branch
+git checkout main
+
+# Pull latest changes from upstream
+git pull upstream main
+
+# Push updates to your fork
+git push origin main
+
+# Create a new feature branch
+git checkout -b feat/your-feature-name
+```
+
+### 2. Write Your Code
+
+Write your code following our [coding standards](#-coding-standards).
+
+### 3. Format Your Code
+
+**Before committing**, always format your code to ensure it meets our style guidelines:
+
+```bash
+# Format Java code (required)
+mvn spotless:apply
+
+# Format frontend code if you modified it
+cd himarket-web/himarket-admin
+npm run format
+```
+
+### 4. Commit Your Changes
+
+We follow the [Conventional Commits](https://www.conventionalcommits.org/) specification. Your commit messages should be clear and descriptive:
+
+```bash
+git add .
+git commit -m "feat: add user authentication feature"
+```
+
+**Commit message format:**
+```
+type: brief description (50 chars or less)
+
+[Optional detailed explanation if needed]
+```
+
+**Common types:**
+- `feat` - A new feature
+- `fix` - A bug fix
+- `docs` - Documentation changes
+- `style` - Code style changes (formatting, missing semicolons, etc.)
+- `refactor` - Code refactoring without changing functionality
+- `perf` - Performance improvements
+- `test` - Adding or updating tests
+- `chore` - Maintenance tasks, dependency updates, etc.
+
+### 5. Push to Your Fork
+
+```bash
+git push origin feat/your-feature-name
+```
+
+### 6. Create a Pull Request
+
+1. Go to your fork on GitHub
+2. Click the **"New Pull Request"** button
+3. Ensure the base repository is `higress-group/himarket` and the base branch is `main`
+4. Select your feature branch as the compare branch
+5. Fill in the **PR template** (auto-loaded) with details about your changes
+6. Click **"Create Pull Request"**
+
+---
+
+## 📝 Pull Request Guidelines
+
+### PR Title
+
+Your PR title must follow the format: `type: brief description`
+
+**Good examples:**
+```
+✅ feat: add product feature configuration
+✅ fix: resolve pagination issue in product list
+✅ docs: update deployment guide in README
+✅ refactor: simplify client initialization logic
+```
+
+**Bad examples:**
+```
+❌ Add new feature (missing type)
+❌ feat: Add Feature (description should be lowercase)
+❌ update code (not descriptive)
+```
+
+### PR Description
+
+Your PR **must include** the following sections:
+
+1. **Description** (Required)
+ - Clearly explain what changes you made and why
+ - Use bullet points for clarity
+ - Minimum 10 characters
+
+2. **Related Issues** (Optional but recommended)
+ - Link to related issues using keywords: `Fix #123`, `Close #456`, `Resolve #789`
+ - This helps us track which issues are being addressed
+
+3. **Checklist** (Required)
+ - Confirm you've run `mvn spotless:apply` to format your code
+ - Indicate whether you've added tests or updated documentation
+ - Check off applicable items
+
+**Example PR description:**
+```markdown
+## Description
+
+- Add feature configuration field to Product entity
+- Create ModelFeatureForm component for the admin UI
+- Implement backend service to persist feature settings
+- Add Flyway migration script for database schema changes
+
+## Related Issues
+
+Fix #123
+Close #456
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [x] Tests added/updated (if applicable)
+- [x] Documentation updated (if applicable)
+```
+
+### Automated Checks
+
+Every PR will automatically trigger the following checks:
+
+1. **PR Check** - Validates your PR title and description format (Required ✅)
+2. **Code Format Check** - Runs `mvn spotless:check` to verify code formatting (Required ✅)
+3. **Checkstyle Check** - Checks code style and best practices (Warning ⚠️)
+
+**Required checks** must pass before your PR can be merged. **Warning checks** won't block your PR but provide suggestions for improvement.
+
+If a check fails, the bot will comment with instructions on how to fix it.
+
+**For more detailed PR guidelines, please see:**
+- [PR_GUIDE.md](.github/PR_GUIDE.md) - English version
+- [PR_GUIDE_CN.md](.github/PR_GUIDE_zh) - 中文版本
+
+---
+
+## 💻 Coding Standards
+
+### Java Code
+
+**Code Formatting (Required):**
+- Run `mvn spotless:apply` before committing to auto-format your code
+- This ensures consistent code style across the project
+- **CI will fail** if code is not formatted
+
+**Code Style (Recommended):**
+- We use Checkstyle to check for best practices and style issues
+- Run `mvn checkstyle:check` locally to see suggestions
+- **CI will warn** but not block if there are violations
+
+**Best Practices:**
+- Maximum 120 characters per line
+- Use clear, descriptive names for variables, methods, and classes
+- Add Javadoc comments for public APIs
+- Avoid magic numbers and empty catch blocks
+- Keep methods focused and reasonably sized
+
+### TypeScript/React Code
+
+- **Formatting**: Use Prettier to format your code: `npm run format`
+- **Style Guide**: Follow the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)
+- **Type Safety**: Always use TypeScript types/interfaces; avoid `any` when possible
+- **Components**: Prefer functional components with React Hooks
+- **Naming**: Use descriptive names; follow PascalCase for components, camelCase for functions
+
+### Database Migrations
+
+- **Tool**: Use Flyway for all database schema changes
+- **Location**: Place migration files in `himarket-bootstrap/src/main/resources/db/migration/`
+- **Naming**: Follow the pattern `V{version}__{description}.sql`
+ - Example: `V3__Add_product_feature.sql`
+- **Testing**: Always test your migrations on a clean database before submitting
+
diff --git a/CONTRIBUTING_zh.md b/CONTRIBUTING_zh.md
new file mode 100644
index 000000000..d38352666
--- /dev/null
+++ b/CONTRIBUTING_zh.md
@@ -0,0 +1,224 @@
+# Himarket 贡献指南
+
+感谢你对 Himarket 项目的关注!🎉
+
+我们欢迎各种形式的贡献:Bug 修复、新功能、文档改进等等。
+
+## 🚀 快速开始
+
+### Fork 并 Clone 仓库
+
+1. **Fork** [Himarket 仓库](https://github.com/higress-group/himarket) 到你的 GitHub 账号
+2. **Clone** 你的 Fork 到本地:
+
+```bash
+git clone https://github.com/YOUR_USERNAME/himarket.git
+cd himarket
+```
+
+3. **添加上游仓库**以便保持同步:
+
+```bash
+git remote add upstream https://github.com/higress-group/himarket.git
+```
+
+4. **搭建开发环境**,请按照 [README.md](README.md) 中的说明操作
+
+---
+
+## 🔄 开发流程
+
+### 1. 同步并创建分支
+
+开始工作前,先同步你的 Fork 与上游仓库:
+
+```bash
+# 切换到主分支
+git checkout main
+
+# 拉取上游最新变更
+git pull upstream main
+
+# 推送更新到你的 Fork
+git push origin main
+
+# 创建新的功能分支
+git checkout -b feat/your-feature-name
+```
+
+### 2. 代码修改
+
+编写代码时请遵循我们的[代码规范](#-代码规范)。
+
+### 3. 格式化代码
+
+**提交前**,务必格式化代码以确保符合我们的风格规范:
+
+```bash
+# 格式化 Java 代码(必需)
+mvn spotless:apply
+
+# 如果修改了前端代码,也需要格式化
+cd himarket-web/himarket-admin
+npm run format
+```
+
+### 4. 提交修改
+
+我们遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范。你的提交信息应该清晰且具有描述性:
+
+```bash
+git add .
+git commit -m "feat: add user authentication feature"
+```
+
+**提交信息格式:**
+```
+type: 简短描述(50 字符以内)
+
+[可选的详细说明]
+```
+
+**常用类型:**
+- `feat` - 新功能
+- `fix` - Bug 修复
+- `docs` - 文档变更
+- `style` - 代码格式调整(格式化、缺少分号等)
+- `refactor` - 代码重构(不改变功能)
+- `perf` - 性能优化
+- `test` - 添加或更新测试
+- `chore` - 维护任务、依赖更新等
+
+### 5. 推送到你的 Fork
+
+```bash
+git push origin feat/your-feature-name
+```
+
+### 6. 创建 Pull Request
+
+1. 访问你在 GitHub 上的 Fork
+2. 点击 **"New Pull Request"** 按钮
+3. 确保基础仓库是 `higress-group/himarket`,基础分支是 `main`
+4. 选择你的功能分支作为对比分支
+5. 填写 **PR 模板**(自动加载),详细说明你的修改
+6. 点击 **"Create Pull Request"**
+
+---
+
+## 📝 Pull Request 规范
+
+### PR 标题
+
+你的 PR 标题必须遵循格式:`type: 简短描述`
+
+**正确示例:**
+```
+✅ feat: add product feature configuration
+✅ fix: resolve pagination issue in product list
+✅ docs: update deployment guide in README
+✅ refactor: simplify client initialization logic
+```
+
+**错误示例:**
+```
+❌ Add new feature(缺少类型)
+❌ feat: Add Feature(描述应该小写)
+❌ update code(描述不够清晰)
+```
+
+### PR 描述
+
+你的 PR **必须包含**以下部分:
+
+1. **Description**(必填)
+ - 清楚说明你做了什么修改以及为什么
+ - 使用列表形式以保持清晰
+ - 至少 10 个字符
+
+2. **Related Issues**(可选但推荐)
+ - 使用关键词关联相关 Issue:`Fix #123`、`Close #456`、`Resolve #789`
+ - 这有助于我们追踪哪些问题正在被解决
+
+3. **Checklist**(必填)
+ - 确认你已运行 `mvn spotless:apply` 格式化代码
+ - 说明你是否添加了测试或更新了文档
+ - 勾选适用的项目
+
+**PR 描述示例:**
+```markdown
+## Description
+
+- 在 Product 实体中添加 feature 配置字段
+- 为管理后台创建 ModelFeatureForm 组件
+- 实现后端服务以持久化 feature 设置
+- 添加 Flyway 迁移脚本以更新数据库架构
+
+## Related Issues
+
+Fix #123
+Close #456
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [x] Tests added/updated (if applicable)
+- [x] Documentation updated (if applicable)
+```
+
+### 自动检查
+
+每个 PR 都会自动触发以下检查:
+
+1. **PR Check** - 验证 PR 标题和描述格式(必需 ✅)
+2. **Code Format Check** - 运行 `mvn spotless:check` 验证代码格式(必需 ✅)
+3. **Checkstyle Check** - 检查代码风格和最佳实践(警告 ⚠️)
+
+**必需检查**必须通过才能合并 PR。**警告检查**不会阻止 PR 合并,但会提供改进建议。
+
+如果检查失败,机器人会评论并说明如何修复。
+
+**更详细的 PR 指南,请参考:**
+- [PR_GUIDE.md](.github/PR_GUIDE.md) - English version
+- [PR_GUIDE_CN.md](.github/PR_GUIDE_zh) - 中文版本
+
+---
+
+## 💻 代码规范
+
+### Java 代码
+
+**代码格式化(必需):**
+- 提交前运行 `mvn spotless:apply` 自动格式化代码
+- 确保项目代码风格一致
+- **CI 检查不通过**则无法合并
+
+**代码风格(建议):**
+- 我们使用 Checkstyle 检查最佳实践和风格问题
+- 本地运行 `mvn checkstyle:check` 查看建议
+- **CI 会警告**但不会阻止合并
+
+**最佳实践:**
+- 每行最多 120 个字符
+- 为变量、方法和类使用清晰、描述性的名称
+- 为公共 API 添加 Javadoc 注释
+- 避免魔法数字和空 catch 块
+- 保持方法专注且长度合理
+
+### TypeScript/React 代码
+
+- **格式化**:使用 Prettier 格式化代码:`npm run format`
+- **风格指南**:遵循 [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)
+- **类型安全**:始终使用 TypeScript 类型/接口;尽可能避免 `any`
+- **组件**:优先使用带 React Hooks 的函数式组件
+- **命名**:使用描述性名称;组件用 PascalCase,函数用 camelCase
+
+### 数据库迁移
+
+- **工具**:所有数据库架构变更使用 Flyway
+- **位置**:迁移文件放在 `himarket-bootstrap/src/main/resources/db/migration/`
+- **命名**:遵循格式 `V{版本}__{描述}.sql`
+ - 示例:`V3__Add_product_feature.sql`
+- **测试**:提交前务必在干净的数据库上测试你的迁移
+
diff --git a/build.sh b/build.sh
index 9d505d4e6..5691c3c94 100644
--- a/build.sh
+++ b/build.sh
@@ -9,7 +9,7 @@ echo "=== Building backend server ==="
echo "Building with Maven..."
mvn clean package -DskipTests
-cd portal-bootstrap
+cd himarket-bootstrap
echo "Building backend Docker image..."
docker buildx build \
--platform linux/amd64 \
@@ -19,7 +19,7 @@ echo "Backend server build completed"
cd ..
# 构建 frontend
-cd portal-web/api-portal-frontend
+cd himarket-web/himarket-frontend
echo "=== Building frontend ==="
rm -rf ./dist
npm install --force
@@ -30,7 +30,7 @@ docker buildx build \
--load .
# 构建 admin
-cd ../api-portal-admin
+cd ../himarket-admin
echo "=== Building admin ==="
rm -rf ./dist
npm install --force
diff --git a/checkstyle.xml b/checkstyle.xml
new file mode 100644
index 000000000..97a7a9b78
--- /dev/null
+++ b/checkstyle.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/portal-bootstrap/Dockerfile b/himarket-bootstrap/Dockerfile
similarity index 100%
rename from portal-bootstrap/Dockerfile
rename to himarket-bootstrap/Dockerfile
diff --git a/portal-bootstrap/pom.xml b/himarket-bootstrap/pom.xml
similarity index 96%
rename from portal-bootstrap/pom.xml
rename to himarket-bootstrap/pom.xml
index a016ec7bb..e0e20cee9 100644
--- a/portal-bootstrap/pom.xml
+++ b/himarket-bootstrap/pom.xml
@@ -9,7 +9,7 @@
1.0-SNAPSHOT
- portal-bootstrap
+ himarket-bootstrap
17
@@ -20,7 +20,7 @@
com.alibaba.himarket
- portal-server
+ himarket-server
1.0-SNAPSHOT
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/HiMarketApplication.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/HimarketApplication.java
similarity index 88%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/HiMarketApplication.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/HimarketApplication.java
index 871a0a894..d704353fc 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/HiMarketApplication.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/HimarketApplication.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform;
+package com.alibaba.himarket;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -25,9 +25,9 @@
@SpringBootApplication
@EnableJpaAuditing
-public class HiMarketApplication {
+public class HimarketApplication {
public static void main(String[] args) {
- SpringApplication.run(HiMarketApplication.class, args);
+ SpringApplication.run(HimarketApplication.class, args);
}
}
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/AsyncConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java
similarity index 97%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/AsyncConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java
index 001178f06..b26bf7fe4 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/AsyncConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/FilterConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java
similarity index 88%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/FilterConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java
index 1cbe8ed59..2cd99faba 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/FilterConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.filter.PortalResolvingFilter;
-import com.alibaba.apiopenplatform.service.PortalService;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.filter.PortalResolvingFilter;
+import com.alibaba.himarket.service.PortalService;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/FlywayConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java
similarity index 97%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/FlywayConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java
index 171dbe32a..6105031ee 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/FlywayConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
import lombok.extern.slf4j.Slf4j;
import org.flywaydb.core.Flyway;
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/RestTemplateConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java
similarity index 97%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/RestTemplateConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java
index 529707384..23316a6c6 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/RestTemplateConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
import lombok.RequiredArgsConstructor;
import okhttp3.ConnectionPool;
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/SecurityConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java
similarity index 93%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/SecurityConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java
index 796ca9709..b03670d39 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/SecurityConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
-import com.alibaba.apiopenplatform.core.security.JwtAuthenticationFilter;
+import com.alibaba.himarket.core.security.JwtAuthenticationFilter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
@@ -32,20 +32,19 @@
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-
+
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import java.util.*;
-import com.alibaba.apiopenplatform.core.security.DeveloperAuthenticationProvider;
+import com.alibaba.himarket.core.security.DeveloperAuthenticationProvider;
import jakarta.servlet.DispatcherType;
import org.springframework.http.HttpMethod;
/**
* Spring Security安全配置,集成JWT认证与接口权限控制,支持管理员和开发者多用户体系
- *
*/
@Configuration
@RequiredArgsConstructor
@@ -94,13 +93,13 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.authorizeHttpRequests(auth -> auth
// 异步分发不进行权限检查(解决SSE等流式响应完成后的AccessDenied问题)
.dispatcherTypeMatchers(DispatcherType.ASYNC).permitAll()
- // OPTIONS请求放行
+ // OPTIONS请求放行
.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
- // 认证相关接口放行
+ // 认证相关接口放行
.requestMatchers(AUTH_WHITELIST).permitAll()
- // Swagger相关接口放行
+ // Swagger相关接口放行
.requestMatchers(SWAGGER_WHITELIST).permitAll()
- // 系统路径放行
+ // 系统路径放行
.requestMatchers(SYSTEM_WHITELIST).permitAll()
.anyRequest().authenticated())
.addFilterBefore(new JwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/SwaggerConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java
similarity index 96%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/SwaggerConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java
index 8a7ef7304..fb88b88e2 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/SwaggerConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/WebMvcConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java
similarity index 98%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/WebMvcConfig.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java
index f7ac6281f..de76d1862 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/config/WebMvcConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/filter/PortalResolvingFilter.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java
similarity index 95%
rename from portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/filter/PortalResolvingFilter.java
rename to himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java
index a81c38573..41695b6a1 100644
--- a/portal-bootstrap/src/main/java/com/alibaba/apiopenplatform/filter/PortalResolvingFilter.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.filter;
+package com.alibaba.himarket.filter;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.service.PortalService;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.service.PortalService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
diff --git a/portal-bootstrap/src/main/resources/application.yml b/himarket-bootstrap/src/main/resources/application.yml
similarity index 94%
rename from portal-bootstrap/src/main/resources/application.yml
rename to himarket-bootstrap/src/main/resources/application.yml
index 114a9707f..d01dfd194 100644
--- a/portal-bootstrap/src/main/resources/application.yml
+++ b/himarket-bootstrap/src/main/resources/application.yml
@@ -18,7 +18,7 @@ spring:
db:
host: ${DB_HOST:localhost}
port: ${DB_PORT:3306}
- name: ${DB_NAME:portal_db}
+ name: ${DB_NAME:himarket}
username: ${DB_USERNAME:root}
password: ${DB_PASSWORD:12345678}
@@ -33,7 +33,7 @@ springdoc:
swagger-ui:
path: /portal/swagger-ui.html
disable-swagger-default-url: true
- packages-to-scan: com.alibaba.apiopenplatform.controller
+ packages-to-scan: com.alibaba.himarket.controller
jwt:
secret: YourJWTSecret
diff --git a/portal-bootstrap/src/main/resources/db/migration/V1__Create_baseline_schema.sql b/himarket-bootstrap/src/main/resources/db/migration/V1__Create_baseline_schema.sql
similarity index 100%
rename from portal-bootstrap/src/main/resources/db/migration/V1__Create_baseline_schema.sql
rename to himarket-bootstrap/src/main/resources/db/migration/V1__Create_baseline_schema.sql
diff --git a/portal-bootstrap/src/main/resources/db/migration/V2__Migrate_to_v1_0_5.sql b/himarket-bootstrap/src/main/resources/db/migration/V2__Migrate_to_v1_0_5.sql
similarity index 100%
rename from portal-bootstrap/src/main/resources/db/migration/V2__Migrate_to_v1_0_5.sql
rename to himarket-bootstrap/src/main/resources/db/migration/V2__Migrate_to_v1_0_5.sql
diff --git a/portal-bootstrap/src/main/resources/db/migration/V3__Add_chat_tables.sql b/himarket-bootstrap/src/main/resources/db/migration/V3__Add_chat_tables.sql
similarity index 100%
rename from portal-bootstrap/src/main/resources/db/migration/V3__Add_chat_tables.sql
rename to himarket-bootstrap/src/main/resources/db/migration/V3__Add_chat_tables.sql
diff --git a/portal-bootstrap/src/main/resources/logback-spring.xml b/himarket-bootstrap/src/main/resources/logback-spring.xml
similarity index 92%
rename from portal-bootstrap/src/main/resources/logback-spring.xml
rename to himarket-bootstrap/src/main/resources/logback-spring.xml
index 6d48bea14..2369f2566 100644
--- a/portal-bootstrap/src/main/resources/logback-spring.xml
+++ b/himarket-bootstrap/src/main/resources/logback-spring.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/portal-dal/pom.xml b/himarket-dal/pom.xml
similarity index 97%
rename from portal-dal/pom.xml
rename to himarket-dal/pom.xml
index f3c3e7242..078225f2b 100644
--- a/portal-dal/pom.xml
+++ b/himarket-dal/pom.xml
@@ -9,7 +9,7 @@
1.0-SNAPSHOT
- portal-dal
+ himarket-dal
17
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/APIGConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/APIGConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java
index 659608409..e76ab18a6 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/APIGConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
+import com.alibaba.himarket.support.gateway.APIGConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/APIGRefConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/APIGRefConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java
index e683b3057..6f96aa895 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/APIGRefConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
+import com.alibaba.himarket.support.product.APIGRefConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/AdpAIGatewayConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/AdpAIGatewayConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java
index 0d84d04a4..f9f053f9c 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/AdpAIGatewayConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ApiKeyConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ApiKeyConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java
index 8991d791e..2fd5f19ee 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ApiKeyConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ApsaraGatewayConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ApsaraGatewayConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java
index a9d98ef89..80f9c3078 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ApsaraGatewayConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ChatUsageConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java
similarity index 69%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ChatUsageConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java
index f2e4bb4f7..b7861d581 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ChatUsageConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
+import com.alibaba.himarket.support.chat.ChatUsage;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ConsumerAuthConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ConsumerAuthConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java
index f51d26a25..089faa990 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ConsumerAuthConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/GatewayConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/GatewayConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java
index 4ee82e4d8..e316e57e5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/GatewayConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HigressConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HigressConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java
index de93995b6..3b2330cc5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HigressConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.gateway.HigressConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HigressRefConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HigressRefConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java
index 1fd464f91..0bf635cc5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HigressRefConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.product.HigressRefConfig;
+import com.alibaba.himarket.support.product.HigressRefConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HmacConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HmacConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java
index 26ad1f1b0..7058a98cb 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/HmacConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/IconConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java
similarity index 67%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/IconConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java
index 771f75df7..0344e8de8 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/IconConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.product.Icon;
+import com.alibaba.himarket.support.product.Icon;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/JsonConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/JsonConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java
index 4316f4270..5aeba7bb5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/JsonConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java
@@ -17,14 +17,14 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.support.common.Encrypted;
-import com.alibaba.apiopenplatform.support.common.Encryptor;
+import com.alibaba.himarket.support.common.Encrypted;
+import com.alibaba.himarket.support.common.Encryptor;
import lombok.extern.slf4j.Slf4j;
import jakarta.persistence.AttributeConverter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/JwtConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/JwtConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java
index 4d6b7c335..adf0f5ef2 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/JwtConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.consumer.JwtConfig;
+import com.alibaba.himarket.support.consumer.JwtConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ListJsonConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ListJsonConverter.java
similarity index 84%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ListJsonConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/ListJsonConverter.java
index b9477ebc3..715b30e1f 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ListJsonConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ListJsonConverter.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
import jakarta.persistence.Converter;
import java.util.List;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/NacosRefConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/NacosRefConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java
index 6e7ad46ce..ed15388d2 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/NacosRefConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
+import com.alibaba.himarket.support.product.NacosRefConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/PortalSettingConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/PortalSettingConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java
index 78fac7a3e..5de3b28ac 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/PortalSettingConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.portal.PortalSettingConfig;
+import com.alibaba.himarket.support.portal.PortalSettingConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/PortalUiConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/PortalUiConfigConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java
index f4c879aa6..07094b8f2 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/PortalUiConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.portal.PortalUiConfig;
+import com.alibaba.himarket.support.portal.PortalUiConfig;
import jakarta.persistence.Converter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ProductFeatureConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ProductFeatureConverter.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java
index e20d17f06..e9382b2d6 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/converter/ProductFeatureConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.converter;
+package com.alibaba.himarket.converter;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
+import com.alibaba.himarket.support.product.ProductFeature;
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Administrator.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Administrator.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java
index 13e6c929f..f7b6f6325 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Administrator.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import jakarta.persistence.*;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/BaseEntity.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/BaseEntity.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java
index 7fb73cb91..b96f26b10 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/BaseEntity.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Chat.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java
similarity index 85%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Chat.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java
index 940b0ab76..adfb8f642 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Chat.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java
@@ -1,10 +1,10 @@
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.ChatUsageConverter;
-import com.alibaba.apiopenplatform.converter.ListJsonConverter;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
-import com.alibaba.apiopenplatform.support.chat.attachment.ChatAttachmentConfig;
-import com.alibaba.apiopenplatform.support.enums.ChatStatus;
+import com.alibaba.himarket.converter.ChatUsageConverter;
+import com.alibaba.himarket.converter.ListJsonConverter;
+import com.alibaba.himarket.support.chat.ChatUsage;
+import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
+import com.alibaba.himarket.support.enums.ChatStatus;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ChatAttachment.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ChatAttachment.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java
index ee381c1e2..5e8bee618 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ChatAttachment.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.support.enums.ChatAttachmentType;
+import com.alibaba.himarket.support.enums.ChatAttachmentType;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.annotations.ColumnDefault;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ChatSession.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ChatSession.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java
index 739bac984..fc526c454 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ChatSession.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.ListJsonConverter;
+import com.alibaba.himarket.converter.ListJsonConverter;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Consumer.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Consumer.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java
index 199eb9508..6d086396f 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Consumer.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java
@@ -17,12 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.support.enums.ConsumerStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import org.hibernate.annotations.ColumnDefault;
import jakarta.persistence.*;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ConsumerCredential.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java
similarity index 79%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ConsumerCredential.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java
index 58a8e8155..50a4209c3 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ConsumerCredential.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java
@@ -17,14 +17,14 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
-
-import com.alibaba.apiopenplatform.converter.ApiKeyConfigConverter;
-import com.alibaba.apiopenplatform.converter.HmacConfigConverter;
-import com.alibaba.apiopenplatform.converter.JwtConfigConverter;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
-import com.alibaba.apiopenplatform.support.consumer.JwtConfig;
+package com.alibaba.himarket.entity;
+
+import com.alibaba.himarket.converter.ApiKeyConfigConverter;
+import com.alibaba.himarket.converter.HmacConfigConverter;
+import com.alibaba.himarket.converter.JwtConfigConverter;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.consumer.JwtConfig;
import lombok.Data;
import jakarta.persistence.*;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ConsumerRef.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java
similarity index 87%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ConsumerRef.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java
index 368eadfd0..3f7a7dcef 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ConsumerRef.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.GatewayConfigConverter;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+import com.alibaba.himarket.converter.GatewayConfigConverter;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import lombok.*;
import jakarta.persistence.*;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Developer.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Developer.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java
index 0eff74b62..d9f801e97 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Developer.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java
@@ -17,13 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import jakarta.persistence.*;
-import java.util.Date;
-import com.alibaba.apiopenplatform.support.enums.DeveloperAuthType;
-import com.alibaba.apiopenplatform.support.enums.DeveloperStatus;
+import com.alibaba.himarket.support.enums.DeveloperAuthType;
+import com.alibaba.himarket.support.enums.DeveloperStatus;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/DeveloperExternalIdentity.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/DeveloperExternalIdentity.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java
index 73779443a..a391a3b9b 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/DeveloperExternalIdentity.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import jakarta.persistence.*;
-import com.alibaba.apiopenplatform.support.enums.DeveloperAuthType;
+import com.alibaba.himarket.support.enums.DeveloperAuthType;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Gateway.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java
similarity index 77%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Gateway.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java
index 65f328cbc..2b4576994 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Gateway.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java
@@ -17,17 +17,17 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.APIGConfigConverter;
-import com.alibaba.apiopenplatform.converter.AdpAIGatewayConfigConverter;
-import com.alibaba.apiopenplatform.converter.HigressConfigConverter;
-import com.alibaba.apiopenplatform.converter.ApsaraGatewayConfigConverter;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
-import com.alibaba.apiopenplatform.support.gateway.HigressConfig;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.converter.APIGConfigConverter;
+import com.alibaba.himarket.converter.AdpAIGatewayConfigConverter;
+import com.alibaba.himarket.converter.HigressConfigConverter;
+import com.alibaba.himarket.converter.ApsaraGatewayConfigConverter;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.APIGConfig;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/NacosInstance.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/NacosInstance.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java
index 417451dcc..ea3035c83 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/NacosInstance.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Portal.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java
similarity index 86%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Portal.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java
index f79c9c481..93117f0e7 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Portal.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.PortalSettingConfigConverter;
-import com.alibaba.apiopenplatform.converter.PortalUiConfigConverter;
-import com.alibaba.apiopenplatform.support.portal.PortalSettingConfig;
-import com.alibaba.apiopenplatform.support.portal.PortalUiConfig;
+import com.alibaba.himarket.converter.PortalSettingConfigConverter;
+import com.alibaba.himarket.converter.PortalUiConfigConverter;
+import com.alibaba.himarket.support.portal.PortalSettingConfig;
+import com.alibaba.himarket.support.portal.PortalUiConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/PortalDomain.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/PortalDomain.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java
index 711e8b6e5..cbfd55d02 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/PortalDomain.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.support.enums.DomainType;
-import com.alibaba.apiopenplatform.support.enums.ProtocolType;
+import com.alibaba.himarket.support.enums.DomainType;
+import com.alibaba.himarket.support.enums.ProtocolType;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Product.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java
similarity index 84%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Product.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java
index ac7dda644..251455b50 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/Product.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java
@@ -17,14 +17,14 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.IconConverter;
-import com.alibaba.apiopenplatform.converter.ProductFeatureConverter;
-import com.alibaba.apiopenplatform.support.enums.ProductStatus;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
-import com.alibaba.apiopenplatform.support.product.Icon;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
+import com.alibaba.himarket.converter.IconConverter;
+import com.alibaba.himarket.converter.ProductFeatureConverter;
+import com.alibaba.himarket.support.enums.ProductStatus;
+import com.alibaba.himarket.support.enums.ProductType;
+import com.alibaba.himarket.support.product.Icon;
+import com.alibaba.himarket.support.product.ProductFeature;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductCategory.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductCategory.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java
index 8ee4ebd36..7b681d0c6 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductCategory.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import jakarta.persistence.*;
-import com.alibaba.apiopenplatform.converter.IconConverter;
-import com.alibaba.apiopenplatform.support.product.Icon;
+import com.alibaba.himarket.converter.IconConverter;
+import com.alibaba.himarket.support.product.Icon;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductCategoryRelation.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductCategoryRelation.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java
index 5bfbb049b..f3f52461f 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductCategoryRelation.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductPublication.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java
similarity index 96%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductPublication.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java
index 0e5100b13..44fdbc842 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductPublication.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductRef.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java
similarity index 84%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductRef.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java
index d20e002ec..37d365af2 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductRef.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java
@@ -17,15 +17,15 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
-
-import com.alibaba.apiopenplatform.converter.APIGRefConfigConverter;
-import com.alibaba.apiopenplatform.converter.HigressRefConfigConverter;
-import com.alibaba.apiopenplatform.converter.NacosRefConfigConverter;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
-import com.alibaba.apiopenplatform.support.product.HigressRefConfig;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
+package com.alibaba.himarket.entity;
+
+import com.alibaba.himarket.converter.APIGRefConfigConverter;
+import com.alibaba.himarket.converter.HigressRefConfigConverter;
+import com.alibaba.himarket.converter.NacosRefConfigConverter;
+import com.alibaba.himarket.support.enums.SourceType;
+import com.alibaba.himarket.support.product.APIGRefConfig;
+import com.alibaba.himarket.support.product.HigressRefConfig;
+import com.alibaba.himarket.support.product.NacosRefConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductSubscription.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java
similarity index 88%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductSubscription.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java
index 14102f937..1605d6e77 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/entity/ProductSubscription.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.entity;
+package com.alibaba.himarket.entity;
-import com.alibaba.apiopenplatform.converter.ConsumerAuthConfigConverter;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.SubscriptionStatus;
+import com.alibaba.himarket.converter.ConsumerAuthConfigConverter;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.enums.SubscriptionStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/AdministratorRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/AdministratorRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java
index c01a83c90..a2b083404 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/AdministratorRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.Administrator;
+import com.alibaba.himarket.entity.Administrator;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/BaseRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java
similarity index 93%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/BaseRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java
index ddc0e2f96..985582089 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/BaseRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java
@@ -17,9 +17,8 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ProductPublication;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatAttachmentRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java
similarity index 77%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatAttachmentRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java
index f0f81f6d0..de3ac7701 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatAttachmentRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ChatAttachment;
+import com.alibaba.himarket.entity.ChatAttachment;
import org.springframework.stereotype.Repository;
import java.util.List;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java
index 353415ad9..b62f5741a 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.Chat;
-import com.alibaba.apiopenplatform.support.enums.ChatStatus;
+import com.alibaba.himarket.entity.Chat;
+import com.alibaba.himarket.support.enums.ChatStatus;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatSessionRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatSessionRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java
index 27f2adf59..fe7549887 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ChatSessionRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ChatSession;
+import com.alibaba.himarket.entity.ChatSession;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerCredentialRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerCredentialRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java
index dbef8e6e9..872147e10 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerCredentialRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
+import com.alibaba.himarket.entity.ConsumerCredential;
import java.util.Optional;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerRefRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerRefRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java
index 9c868df62..2c59bd980 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerRefRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ConsumerRef;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+import com.alibaba.himarket.entity.ConsumerRef;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java
index 136eacbc0..7e2180c18 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ConsumerRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.Consumer;
+import com.alibaba.himarket.entity.Consumer;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/DeveloperExternalIdentityRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/DeveloperExternalIdentityRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java
index 7d412f177..3b56aaef0 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/DeveloperExternalIdentityRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.DeveloperExternalIdentity;
+import com.alibaba.himarket.entity.DeveloperExternalIdentity;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/DeveloperRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/DeveloperRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java
index f650e275b..7587e0e1e 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/DeveloperRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java
@@ -17,12 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.Developer;
+import com.alibaba.himarket.entity.Developer;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
import java.util.List;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/GatewayRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/GatewayRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java
index 56e2afa8d..a2c3bba9a 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/GatewayRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.Gateway;
+import com.alibaba.himarket.entity.Gateway;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/NacosInstanceRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java
similarity index 83%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/NacosInstanceRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java
index 0914317a9..93234d0f1 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/NacosInstanceRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java
@@ -17,14 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.NacosInstance;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
+import com.alibaba.himarket.entity.NacosInstance;
import org.springframework.stereotype.Repository;
-import java.util.List;
import java.util.Optional;
@Repository
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/PortalDomainRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/PortalDomainRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java
index 8b17f0466..90d9d5de5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/PortalDomainRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.PortalDomain;
+import com.alibaba.himarket.entity.PortalDomain;
import java.util.List;
import java.util.Optional;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/PortalRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java
similarity index 93%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/PortalRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java
index 0d95da874..ed8a1a274 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/PortalRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.Portal;
+import com.alibaba.himarket.entity.Portal;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductCategoryRelationRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java
similarity index 93%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductCategoryRelationRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java
index 89399f9c4..2c6e1b0ad 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductCategoryRelationRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ProductCategoryRelation;
+import com.alibaba.himarket.entity.ProductCategoryRelation;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.transaction.annotation.Transactional;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductCategoryRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java
similarity index 85%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductCategoryRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java
index d863a48a2..addf45e11 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductCategoryRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java
@@ -17,11 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ProductCategory;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
+import com.alibaba.himarket.entity.ProductCategory;
import org.springframework.stereotype.Repository;
import java.util.List;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductPublicationRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java
similarity index 93%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductPublicationRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java
index 8797a4675..ab49c5d53 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductPublicationRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ProductPublication;
+import com.alibaba.himarket.entity.ProductPublication;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductRefRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java
similarity index 88%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductRefRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java
index 0f38d072d..7311c2234 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductRefRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java
@@ -17,15 +17,13 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ProductRef;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
+import com.alibaba.himarket.entity.ProductRef;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
-import java.util.List;
import java.util.Optional;
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java
index 1db321481..37dc91c45 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/ProductRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
import org.springframework.stereotype.Repository;
import org.springframework.data.domain.Page;
@@ -27,7 +27,7 @@
import java.util.List;
import java.util.Optional;
-import com.alibaba.apiopenplatform.entity.Product;
+import com.alibaba.himarket.entity.Product;
@Repository
public interface ProductRepository extends BaseRepository {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/SubscriptionRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/SubscriptionRepository.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java
index 4eba31b6c..7f0bb52b1 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/repository/SubscriptionRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.repository;
+package com.alibaba.himarket.repository;
-import com.alibaba.apiopenplatform.entity.ProductSubscription;
+import com.alibaba.himarket.entity.ProductSubscription;
import java.util.List;
import java.util.Optional;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/ChatMessage.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/ChatMessage.java
similarity index 76%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/ChatMessage.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/ChatMessage.java
index f731f6580..507f2c98c 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/ChatMessage.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/ChatMessage.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.chat;
+package com.alibaba.himarket.support.chat;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/ChatUsage.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/ChatUsage.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/ChatUsage.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/ChatUsage.java
index f935597f3..041b5d632 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/ChatUsage.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/ChatUsage.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.chat;
+package com.alibaba.himarket.support.chat;
import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/attachment/ChatAttachmentConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/attachment/ChatAttachmentConfig.java
similarity index 55%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/attachment/ChatAttachmentConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/attachment/ChatAttachmentConfig.java
index 8d41f8f71..ff10ea1ee 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/attachment/ChatAttachmentConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/attachment/ChatAttachmentConfig.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.support.chat.attachment;
+package com.alibaba.himarket.support.chat.attachment;
-import com.alibaba.apiopenplatform.support.enums.ChatAttachmentType;
+import com.alibaba.himarket.support.enums.ChatAttachmentType;
import lombok.Data;
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/AudioUrlContent.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/AudioUrlContent.java
similarity index 82%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/AudioUrlContent.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/AudioUrlContent.java
index c5eb08e1d..d193ee202 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/AudioUrlContent.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/AudioUrlContent.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.support.chat.content;
+package com.alibaba.himarket.support.chat.content;
import cn.hutool.core.annotation.Alias;
-import com.alibaba.apiopenplatform.support.enums.ContentType;
+import com.alibaba.himarket.support.enums.ContentType;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/ImageUrlContent.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/ImageUrlContent.java
similarity index 82%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/ImageUrlContent.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/ImageUrlContent.java
index dfc7893af..ba21340ff 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/ImageUrlContent.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/ImageUrlContent.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.support.chat.content;
+package com.alibaba.himarket.support.chat.content;
import cn.hutool.core.annotation.Alias;
-import com.alibaba.apiopenplatform.support.enums.ContentType;
+import com.alibaba.himarket.support.enums.ContentType;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/MessageContent.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/MessageContent.java
similarity index 65%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/MessageContent.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/MessageContent.java
index 04bdbe9be..173c9ee16 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/MessageContent.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/MessageContent.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.chat.content;
+package com.alibaba.himarket.support.chat.content;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/TextContent.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/TextContent.java
similarity index 67%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/TextContent.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/TextContent.java
index 3271f5ba2..bba4a4a40 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/TextContent.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/TextContent.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.support.chat.content;
+package com.alibaba.himarket.support.chat.content;
-import com.alibaba.apiopenplatform.support.enums.ContentType;
+import com.alibaba.himarket.support.enums.ContentType;
import lombok.Data;
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/VideoUrlContent.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/VideoUrlContent.java
similarity index 82%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/VideoUrlContent.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/VideoUrlContent.java
index 4a5d73557..c437edf6e 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/content/VideoUrlContent.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/content/VideoUrlContent.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.support.chat.content;
+package com.alibaba.himarket.support.chat.content;
import cn.hutool.core.annotation.Alias;
-import com.alibaba.apiopenplatform.support.enums.ContentType;
+import com.alibaba.himarket.support.enums.ContentType;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/mcp/MCPTransportConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/mcp/MCPTransportConfig.java
new file mode 100644
index 000000000..d98858c08
--- /dev/null
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/mcp/MCPTransportConfig.java
@@ -0,0 +1,20 @@
+package com.alibaba.himarket.support.chat.mcp;
+
+import com.alibaba.himarket.support.enums.MCPTransportMode;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author zh
+ */
+@Data
+@Builder
+public class MCPTransportConfig {
+
+ private String mcpServerName;
+
+ private MCPTransportMode transportMode;
+
+ private String url;
+}
+
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchContext.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchContext.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchContext.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchContext.java
index dc01b667e..05f3b88d8 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchContext.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchContext.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.chat.search;
+package com.alibaba.himarket.support.chat.search;
import lombok.AllArgsConstructor;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchInput.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchInput.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchInput.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchInput.java
index c390a1344..5aa19158f 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchInput.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchInput.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.chat.search;
+package com.alibaba.himarket.support.chat.search;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchOutput.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchOutput.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java
index fc6171795..ac1f233e7 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/search/SearchOutput.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.chat.search;
+package com.alibaba.himarket.support.chat.search;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/Encrypted.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/Encrypted.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java
index ef37e006f..856ef705e 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/Encrypted.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.common;
+package com.alibaba.himarket.support.common;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/Encryptor.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encryptor.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/Encryptor.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encryptor.java
index 6f5264ade..090aae2f4 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/Encryptor.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encryptor.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.common;
+package com.alibaba.himarket.support.common;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/User.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/User.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/User.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/common/User.java
index d8da85a9f..3ae5b2d23 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/common/User.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/User.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.common;
+package com.alibaba.himarket.support.common;
-import com.alibaba.apiopenplatform.support.enums.UserType;
+import com.alibaba.himarket.support.enums.UserType;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/APIGAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/APIGAuthConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java
index a15b18348..b83471d45 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/APIGAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/AdpAIAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/AdpAIAuthConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java
index 9982d04ac..1e1017ac0 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/AdpAIAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/ApiKeyConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/ApiKeyConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java
index a66714830..ff1107989 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/ApiKeyConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
-import com.alibaba.apiopenplatform.support.enums.CredentialMode;
+import com.alibaba.himarket.support.enums.CredentialMode;
import lombok.Data;
import java.util.List;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/ConsumerAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/ConsumerAuthConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java
index 9d72b2f2e..463edcb83 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/ConsumerAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/HigressAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/HigressAuthConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java
index b440f33ec..4b53b55c5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/HigressAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/HmacConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/HmacConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java
index 8a974ee69..34e2d0fd4 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/HmacConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
-import com.alibaba.apiopenplatform.support.enums.CredentialMode;
+import com.alibaba.himarket.support.enums.CredentialMode;
import lombok.Data;
import java.util.List;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/JwtConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/JwtConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java
index 4cd4c0dd6..619c0821e 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/consumer/JwtConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.consumer;
+package com.alibaba.himarket.support.consumer;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/AIProtocol.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java
similarity index 63%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/AIProtocol.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java
index 4a36217e0..c64eeb301 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/AIProtocol.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/APIGAPIType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/APIGAPIType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java
index 29dfe3a53..983089ee2 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/APIGAPIType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/APIGResourceType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java
similarity index 85%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/APIGResourceType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java
index 950bc1261..938bc49be 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/APIGResourceType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/AttachmentDataType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java
similarity index 62%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/AttachmentDataType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java
index b93aea9fe..ff3167d90 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/AttachmentDataType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatAttachmentType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java
similarity index 68%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatAttachmentType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java
index a84ca424c..185d81ea6 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatAttachmentType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatRole.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatRole.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java
index a20e84304..3ec6d7c42 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatRole.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatSessionStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java
similarity index 72%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatSessionStatus.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java
index 9a425ea59..9014512ef 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatSessionStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java
similarity index 68%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatStatus.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java
index 1022a9fbc..4dcd5a51a 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ChatStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ConsumerAuthType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ConsumerAuthType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java
index 0e276eb83..020588bc1 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ConsumerAuthType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum ConsumerAuthType {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ConsumerStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ConsumerStatus.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java
index eff01219f..4ff584dd5 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ConsumerStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum ConsumerStatus {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ContentType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java
similarity index 85%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ContentType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java
index abe92c699..ec009737e 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ContentType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/CredentialMode.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/CredentialMode.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java
index d5d04cc66..3a5456617 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/CredentialMode.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum CredentialMode {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DeveloperAuthType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DeveloperAuthType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java
index b30f5708b..7e1b6b399 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DeveloperAuthType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DeveloperStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DeveloperStatus.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java
index 364931b8c..4588751d1 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DeveloperStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum DeveloperStatus {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DomainType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DomainType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java
index fbb5148b9..6b02db23b 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/DomainType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum DomainType {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/GatewayType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/GatewayType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java
index 9f9707348..f98ece9bf 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/GatewayType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -60,11 +60,11 @@ public boolean isHigress() {
}
public boolean isAPIG() {
- return this == APIG_API || this == APIG_AI || this == ADP_AI_GATEWAY;
+ return this == APIG_API || this == APIG_AI;
}
public boolean isAIGateway() {
- return this == APIG_AI || this == ADP_AI_GATEWAY;
+ return this == APIG_AI;
}
public boolean isAdpAIGateway() {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/GrantType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/GrantType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java
index ec0d74998..05ab703f9 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/GrantType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/HigressAPIType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/HigressAPIType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java
index de35cb774..e25d14342 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/HigressAPIType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/IconType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/IconType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java
index ef937d78b..e3f17166a 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/IconType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/JwtAlgorithm.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/JwtAlgorithm.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java
index ae67b9473..a38e9d09f 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/JwtAlgorithm.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java
new file mode 100644
index 000000000..f9fa3c28b
--- /dev/null
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java
@@ -0,0 +1,22 @@
+package com.alibaba.himarket.support.enums;
+
+import lombok.Getter;
+
+/**
+ * @author zh
+ */
+@Getter
+public enum MCPTransportMode {
+
+ STDIO("stdio"),
+
+ SSE("sse"),
+
+ STREAMABLE_HTTP("StreamableHTTP");
+
+ private final String mode;
+
+ MCPTransportMode(String mode) {
+ this.mode = mode;
+ }
+}
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProductStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProductStatus.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java
index 3fdefa95d..eff55817a 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProductStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum ProductStatus {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProductType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProductType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java
index 2b7fb191a..78bd8edc0 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProductType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum ProductType {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProtocolType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProtocolType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java
index 34578af46..947cfeb64 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/ProtocolType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum ProtocolType {
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/PublicKeyFormat.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/PublicKeyFormat.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java
index 5d20c40ca..36dcdd900 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/PublicKeyFormat.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum PublicKeyFormat {
PEM,
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SearchEngineType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java
similarity index 97%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SearchEngineType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java
index 7442d4345..78a86ea37 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SearchEngineType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SlsAuthType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SlsAuthType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java
index 86081c21d..7dd84ed63 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SlsAuthType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
import lombok.Getter;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SourceType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SourceType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java
index 667e49a38..556fd3f34 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SourceType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* 数据来源类型枚举
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SubscriptionStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SubscriptionStatus.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java
index 29d1556f6..d103cda93 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/SubscriptionStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum SubscriptionStatus {
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/TalkType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java
similarity index 58%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/TalkType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java
index 2f4a619e5..d2a090655 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/TalkType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
/**
* @author zh
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/UserType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/UserType.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java
index 0cce2e673..205dba9d4 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/enums/UserType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.enums;
+package com.alibaba.himarket.support.enums;
public enum UserType {
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/APIGConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java
similarity index 74%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/APIGConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java
index fddd58c17..556935731 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/APIGConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java
@@ -17,9 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.gateway;
+package com.alibaba.himarket.support.gateway;
-import com.alibaba.apiopenplatform.support.common.Encrypted;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.himarket.support.common.Encrypted;
import lombok.Data;
@Data
@@ -34,6 +35,10 @@ public class APIGConfig {
private String region;
public String buildUniqueKey() {
- return String.format("%s:%s:%s", accessKey, secretKey, region);
+ return StrUtil.join(":", accessKey, secretKey, region);
+ }
+
+ public boolean validate() {
+ return StrUtil.isNotBlank(accessKey) && StrUtil.isNotBlank(secretKey) && StrUtil.isNotBlank(region);
}
}
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/AdpAIGatewayConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java
similarity index 87%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/AdpAIGatewayConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java
index e45426027..9696210d0 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/AdpAIGatewayConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java
@@ -18,8 +18,9 @@
*/
-package com.alibaba.apiopenplatform.support.gateway;
+package com.alibaba.himarket.support.gateway;
+import cn.hutool.core.util.StrUtil;
import lombok.Data;
/**
@@ -54,4 +55,8 @@ public static class AuthHeader {
private String key;
private String value;
}
+
+ public boolean validate() {
+ return StrUtil.isNotBlank(baseUrl) && port != null && StrUtil.isNotBlank(authSeed);
+ }
}
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/ApsaraGatewayConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java
similarity index 86%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/ApsaraGatewayConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java
index 357fd2b51..707db5248 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/ApsaraGatewayConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java
@@ -17,9 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.gateway;
+package com.alibaba.himarket.support.gateway;
-import com.alibaba.apiopenplatform.support.common.Encrypted;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.himarket.support.common.Encrypted;
import lombok.Data;
@Data
@@ -64,4 +65,10 @@ public String buildUniqueKey() {
xAcsCallerType != null ? xAcsCallerType : "",
xAcsRoleId != null ? xAcsRoleId : "");
}
+
+ public boolean validate() {
+ return StrUtil.isNotBlank(regionId)
+ && StrUtil.isNotBlank(accessKeyId)
+ && StrUtil.isNotBlank(accessKeySecret);
+ }
}
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/GatewayConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java
similarity index 88%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/GatewayConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java
index e772e5313..c46b1c6ee 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/GatewayConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.gateway;
+package com.alibaba.himarket.support.gateway;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.support.enums.GatewayType;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/AuthCodeConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java
similarity index 96%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/AuthCodeConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java
index c7df221a8..6c9523963 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/AuthCodeConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/IdentityMapping.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java
similarity index 96%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/IdentityMapping.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java
index 962eba3f9..7164f4088 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/IdentityMapping.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/JwtBearerConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/JwtBearerConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java
index a38207e7e..d8c5d3c9a 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/JwtBearerConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/OAuth2Config.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/OAuth2Config.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java
index 1670a8c78..924539e8b 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/OAuth2Config.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
-import com.alibaba.apiopenplatform.support.enums.GrantType;
+import com.alibaba.himarket.support.enums.GrantType;
import lombok.Data;
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/OidcConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java
similarity index 92%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/OidcConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java
index d30bacdf2..059047019 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/OidcConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
-import com.alibaba.apiopenplatform.support.enums.GrantType;
+import com.alibaba.himarket.support.enums.GrantType;
import lombok.Data;
@Data
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PortalSettingConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java
similarity index 96%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PortalSettingConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java
index cb631b105..835a21e61 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PortalSettingConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PortalUiConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalUiConfig.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PortalUiConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalUiConfig.java
index 37e586e4e..9088c9e65 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PortalUiConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalUiConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PublicKeyConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java
similarity index 91%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PublicKeyConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java
index 5948bb9a2..5fad5dd70 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/PublicKeyConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
-import com.alibaba.apiopenplatform.support.enums.PublicKeyFormat;
+import com.alibaba.himarket.support.enums.PublicKeyFormat;
import lombok.Data;
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/SearchEngineConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java
similarity index 90%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/SearchEngineConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java
index 8de199686..f4a9bee4c 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/portal/SearchEngineConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.portal;
+package com.alibaba.himarket.support.portal;
-import com.alibaba.apiopenplatform.support.common.Encrypted;
-import com.alibaba.apiopenplatform.support.enums.SearchEngineType;
+import com.alibaba.himarket.support.common.Encrypted;
+import com.alibaba.himarket.support.enums.SearchEngineType;
import lombok.Data;
import java.util.HashMap;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/APIGRefConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java
similarity index 96%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/APIGRefConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java
index d6cae0687..d0aa0573b 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/APIGRefConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.product;
+package com.alibaba.himarket.support.product;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/HigressRefConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/HigressRefConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java
index 1841624d8..189007bc0 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/HigressRefConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.product;
+package com.alibaba.himarket.support.product;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/Icon.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java
similarity index 89%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/Icon.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java
index a97fa15db..ac0b52ccd 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/Icon.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.support.product;
+package com.alibaba.himarket.support.product;
-import com.alibaba.apiopenplatform.support.enums.IconType;
+import com.alibaba.himarket.support.enums.IconType;
import lombok.Data;
/**
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/ModelFeature.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java
similarity index 96%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/ModelFeature.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java
index 15b86590f..0d71c4521 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/ModelFeature.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.product;
+package com.alibaba.himarket.support.product;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/NacosRefConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java
similarity index 95%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/NacosRefConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java
index 1b7031e9e..cb88493ce 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/NacosRefConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.product;
+package com.alibaba.himarket.support.product;
import lombok.Data;
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/ProductFeature.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java
similarity index 94%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/ProductFeature.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java
index 345936d72..50bc42cbd 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/product/ProductFeature.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.product;
+package com.alibaba.himarket.support.product;
import lombok.Data;
diff --git a/portal-server/lib/csb220230206-1.5.3.jar b/himarket-server/lib/csb220230206-1.5.3.jar
similarity index 100%
rename from portal-server/lib/csb220230206-1.5.3.jar
rename to himarket-server/lib/csb220230206-1.5.3.jar
diff --git a/portal-server/pom.xml b/himarket-server/pom.xml
similarity index 95%
rename from portal-server/pom.xml
rename to himarket-server/pom.xml
index e02f79c32..1fcff9bfc 100644
--- a/portal-server/pom.xml
+++ b/himarket-server/pom.xml
@@ -9,7 +9,7 @@
1.0-SNAPSHOT
- portal-server
+ himarket-server
17
@@ -20,7 +20,7 @@
com.alibaba.himarket
- portal-dal
+ himarket-dal
1.0-SNAPSHOT
@@ -106,7 +106,6 @@
com.alibaba.nacos
nacos-maintainer-client
- 3.1.0
@@ -124,12 +123,6 @@
-
- com.aliyun
- alibabacloud-sls20201230
- 4.0.11
-
-
io.higress.api
higress-admin-sdk
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/config/SlsConfig.java b/himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java
similarity index 93%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/config/SlsConfig.java
rename to himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java
index fd6ccbc41..8e01ba15a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/config/SlsConfig.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.config;
+package com.alibaba.himarket.config;
-import com.alibaba.apiopenplatform.support.enums.SlsAuthType;
+import com.alibaba.himarket.support.enums.SlsAuthType;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/AdministratorController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/AdministratorController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java
index 3aa4d16ca..368d3c842 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/AdministratorController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.core.utils.TokenUtil;
-import com.alibaba.apiopenplatform.dto.params.admin.AdminCreateParam;
-import com.alibaba.apiopenplatform.dto.params.admin.AdminLoginParam;
-import com.alibaba.apiopenplatform.dto.params.admin.ResetPasswordParam;
-import com.alibaba.apiopenplatform.dto.result.admin.AdminResult;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.service.AdministratorService;
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.core.utils.TokenUtil;
+import com.alibaba.himarket.dto.params.admin.AdminCreateParam;
+import com.alibaba.himarket.dto.params.admin.AdminLoginParam;
+import com.alibaba.himarket.dto.params.admin.ResetPasswordParam;
+import com.alibaba.himarket.dto.result.admin.AdminResult;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.service.AdministratorService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ChatController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java
similarity index 71%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ChatController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java
index fde113c2e..eb62de501 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ChatController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java
@@ -1,9 +1,9 @@
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage;
-import com.alibaba.apiopenplatform.service.ChatService;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
+import com.alibaba.himarket.dto.result.chat.ChatAnswerMessage;
+import com.alibaba.himarket.service.ChatService;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ConsumerController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java
similarity index 83%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ConsumerController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java
index f2e634a95..0f77c6cf4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ConsumerController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java
@@ -17,22 +17,22 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
-
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.core.annotation.DeveloperAuth;
-import com.alibaba.apiopenplatform.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateCredentialParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.QueryConsumerParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateConsumerParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.UpdateCredentialParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateSubscriptionParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.QuerySubscriptionParam;
-import com.alibaba.apiopenplatform.dto.result.consumer.ConsumerCredentialResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.ConsumerResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.service.ConsumerService;
+package com.alibaba.himarket.controller;
+
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.core.annotation.DeveloperAuth;
+import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
+import com.alibaba.himarket.dto.params.consumer.CreateCredentialParam;
+import com.alibaba.himarket.dto.params.consumer.QueryConsumerParam;
+import com.alibaba.himarket.dto.params.consumer.CreateConsumerParam;
+import com.alibaba.himarket.dto.params.consumer.UpdateCredentialParam;
+import com.alibaba.himarket.dto.params.consumer.CreateSubscriptionParam;
+import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
+import com.alibaba.himarket.dto.result.consumer.ConsumerCredentialResult;
+import com.alibaba.himarket.dto.result.consumer.ConsumerResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.service.ConsumerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/DeveloperController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/DeveloperController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
index 4615cdc33..7df8b5246 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/DeveloperController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
@@ -17,15 +17,15 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.core.annotation.DeveloperAuth;
-import com.alibaba.apiopenplatform.dto.params.developer.*;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.developer.DeveloperResult;
-import com.alibaba.apiopenplatform.service.DeveloperService;
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.core.annotation.DeveloperAuth;
+import com.alibaba.himarket.dto.params.developer.*;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.developer.DeveloperResult;
+import com.alibaba.himarket.service.DeveloperService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@@ -34,7 +34,7 @@
import org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid;
import jakarta.servlet.http.HttpServletRequest;
-import com.alibaba.apiopenplatform.dto.params.admin.ResetPasswordParam;
+import com.alibaba.himarket.dto.params.admin.ResetPasswordParam;
@Tag(name = "开发者管理", description = "提供开发者认证、管理等功能")
@RestController
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/GatewayController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/GatewayController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java
index 0cd828d45..81c31afef 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/GatewayController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java
@@ -17,18 +17,17 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
-
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.dto.params.gateway.*;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.AIGWModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.service.GatewayService;
+package com.alibaba.himarket.controller;
+
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.dto.params.gateway.*;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.service.GatewayService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@@ -82,6 +81,12 @@ public void importGateway(@RequestBody @Valid ImportGatewayParam param) {
gatewayService.importGateway(param);
}
+ @Operation(summary = "更新Gateway")
+ @PutMapping("/{gatewayId}")
+ public void updateGateway(@PathVariable String gatewayId, @RequestBody @Valid UpdateGatewayParam param) {
+ gatewayService.updateGateway(gatewayId, param);
+ }
+
@Operation(summary = "删除Gateway")
@DeleteMapping("/{gatewayId}")
public void deleteGateway(@PathVariable String gatewayId) {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/NacosController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/NacosController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java
index 61eadb76d..f79aa6b44 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/NacosController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java
@@ -17,19 +17,19 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
-
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.dto.params.nacos.CreateNacosParam;
-import com.alibaba.apiopenplatform.dto.params.nacos.QueryNacosParam;
-import com.alibaba.apiopenplatform.dto.params.nacos.UpdateNacosParam;
-import com.alibaba.apiopenplatform.dto.result.nacos.MseNacosResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.NacosMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.nacos.NacosNamespaceResult;
-import com.alibaba.apiopenplatform.dto.result.nacos.NacosResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.agent.NacosAgentResult;
-import com.alibaba.apiopenplatform.service.NacosService;
+package com.alibaba.himarket.controller;
+
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.dto.params.nacos.CreateNacosParam;
+import com.alibaba.himarket.dto.params.nacos.QueryNacosParam;
+import com.alibaba.himarket.dto.params.nacos.UpdateNacosParam;
+import com.alibaba.himarket.dto.result.nacos.MseNacosResult;
+import com.alibaba.himarket.dto.result.mcp.NacosMCPServerResult;
+import com.alibaba.himarket.dto.result.nacos.NacosNamespaceResult;
+import com.alibaba.himarket.dto.result.nacos.NacosResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
+import com.alibaba.himarket.service.NacosService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/OAuth2Controller.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/OAuth2Controller.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java
index 31fc8d7b6..150b751e4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/OAuth2Controller.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java
@@ -18,10 +18,10 @@
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.service.OAuth2Service;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.service.OAuth2Service;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/OidcController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/OidcController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java
index cb6549610..f820b720a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/OidcController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java
@@ -18,11 +18,11 @@
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.idp.IdpResult;
-import com.alibaba.apiopenplatform.service.OidcService;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.idp.IdpResult;
+import com.alibaba.himarket.service.OidcService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/PortalController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/PortalController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java
index a2b7ac080..a033ef61e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/PortalController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java
@@ -17,15 +17,15 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.dto.params.consumer.QuerySubscriptionParam;
-import com.alibaba.apiopenplatform.dto.params.portal.*;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.portal.PortalResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.service.PortalService;
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
+import com.alibaba.himarket.dto.params.portal.*;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.portal.PortalResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.service.PortalService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@@ -96,11 +96,4 @@ public PageResult listSubscriptions(@PathVariable String por
Pageable pageable) {
return portalService.listSubscriptions(portalId, param, pageable);
}
-
- @Operation(summary = "获取门户Dashboard监控面板URL")
- @GetMapping("/{portalId}/dashboard")
- public String getDashboard(@PathVariable String portalId,
- @RequestParam(required = false, defaultValue = "Portal") String type) {
- return portalService.getDashboard(portalId);
- }
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ProductCategoryController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java
similarity index 85%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ProductCategoryController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java
index ab9c4c327..f8024a612 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ProductCategoryController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.apiopenplatform.dto.params.category.CreateProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.params.category.QueryProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.params.category.UpdateProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.result.ProductCategoryResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.service.ProductCategoryService;
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
+import com.alibaba.himarket.dto.params.category.CreateProductCategoryParam;
+import com.alibaba.himarket.dto.params.category.QueryProductCategoryParam;
+import com.alibaba.himarket.dto.params.category.UpdateProductCategoryParam;
+import com.alibaba.himarket.dto.result.ProductCategoryResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.service.ProductCategoryService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ProductController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ProductController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java
index 0cf9edc7a..24d0deb4a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/ProductController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java
@@ -17,29 +17,29 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
import java.util.List;
-import com.alibaba.apiopenplatform.dto.result.mcp.McpToolListResult;
+import com.alibaba.himarket.dto.result.mcp.McpToolListResult;
import jakarta.validation.Valid;
-import com.alibaba.apiopenplatform.core.annotation.AdminAuth;
-import com.alibaba.apiopenplatform.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.apiopenplatform.dto.params.product.CreateProductParam;
-import com.alibaba.apiopenplatform.dto.params.product.CreateProductRefParam;
-import com.alibaba.apiopenplatform.dto.result.ProductCategoryResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductPublicationResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.dto.params.product.QueryProductParam;
-import com.alibaba.apiopenplatform.dto.params.product.QueryProductSubscriptionParam;
-import com.alibaba.apiopenplatform.dto.params.product.UpdateProductParam;
-
-import com.alibaba.apiopenplatform.service.ProductCategoryService;
-import com.alibaba.apiopenplatform.service.ProductService;
+import com.alibaba.himarket.core.annotation.AdminAuth;
+import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
+import com.alibaba.himarket.dto.params.product.CreateProductParam;
+import com.alibaba.himarket.dto.params.product.CreateProductRefParam;
+import com.alibaba.himarket.dto.result.ProductCategoryResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.product.ProductPublicationResult;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.dto.params.product.QueryProductParam;
+import com.alibaba.himarket.dto.params.product.QueryProductSubscriptionParam;
+import com.alibaba.himarket.dto.params.product.UpdateProductParam;
+
+import com.alibaba.himarket.service.ProductCategoryService;
+import com.alibaba.himarket.service.ProductService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SearchEngineController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SearchEngineController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java
index a560686e2..055970533 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SearchEngineController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java
@@ -17,13 +17,13 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.DeveloperAuth;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.dto.result.search.AvailableSearchEngineResult;
-import com.alibaba.apiopenplatform.service.PortalService;
-import com.alibaba.apiopenplatform.support.portal.SearchEngineConfig;
+import com.alibaba.himarket.core.annotation.DeveloperAuth;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.dto.result.search.AvailableSearchEngineResult;
+import com.alibaba.himarket.service.PortalService;
+import com.alibaba.himarket.support.portal.SearchEngineConfig;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SessionController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java
similarity index 74%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SessionController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java
index f53231c71..7e5ebf54a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SessionController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java
@@ -1,13 +1,13 @@
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
-import com.alibaba.apiopenplatform.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.service.ChatSessionService;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatSessionResult;
-import com.alibaba.apiopenplatform.dto.result.chat.ConversationResult_V1;
-import com.alibaba.apiopenplatform.dto.result.chat.ProductConversationResult;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatSessionParam;
-import com.alibaba.apiopenplatform.dto.params.chat.UpdateChatSessionParam;
+import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.service.ChatSessionService;
+import com.alibaba.himarket.dto.result.chat.ChatSessionResult;
+import com.alibaba.himarket.dto.result.chat.ConversationResult_V1;
+import com.alibaba.himarket.dto.result.chat.ProductConversationResult;
+import com.alibaba.himarket.dto.params.chat.CreateChatSessionParam;
+import com.alibaba.himarket.dto.params.chat.UpdateChatSessionParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SlsController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SlsController.java
rename to himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java
index d9add80e5..8155cdf76 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/controller/SlsController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java
@@ -1,17 +1,17 @@
-package com.alibaba.apiopenplatform.controller;
+package com.alibaba.himarket.controller;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import com.alibaba.apiopenplatform.config.SlsConfig;
-import com.alibaba.apiopenplatform.dto.converter.SlsResponseConverter;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryResponse;
-import com.alibaba.apiopenplatform.dto.params.sls.ScenarioQueryResponse;
-import com.alibaba.apiopenplatform.dto.params.sls.TimeSeriesChartResponse;
-import com.alibaba.apiopenplatform.service.SlsLogService;
-import com.alibaba.apiopenplatform.service.gateway.factory.SlsPresetSqlRegistry;
+import com.alibaba.himarket.config.SlsConfig;
+import com.alibaba.himarket.dto.converter.SlsResponseConverter;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryRequest;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryResponse;
+import com.alibaba.himarket.dto.params.sls.ScenarioQueryResponse;
+import com.alibaba.himarket.dto.params.sls.TimeSeriesChartResponse;
+import com.alibaba.himarket.service.SlsLogService;
+import com.alibaba.himarket.service.gateway.factory.SlsPresetSqlRegistry;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/advice/ExceptionAdvice.java b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java
similarity index 93%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/advice/ExceptionAdvice.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java
index 7ca0f9181..337dc71ea 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/advice/ExceptionAdvice.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.advice;
+package com.alibaba.himarket.core.advice;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.response.Response;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.response.Response;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.MethodArgumentNotValidException;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/advice/ResponseAdvice.java b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/advice/ResponseAdvice.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java
index 0e23d0e6f..34a3d981b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/advice/ResponseAdvice.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.advice;
+package com.alibaba.himarket.core.advice;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.response.Response;
+import com.alibaba.himarket.core.response.Response;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpStatus;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/AdminAuth.java b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/AdminAuth.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java
index 0b44fa291..c53df9447 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/AdminAuth.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.annotation;
+package com.alibaba.himarket.core.annotation;
import org.springframework.security.access.prepost.PreAuthorize;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/AdminOrDeveloperAuth.java b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/AdminOrDeveloperAuth.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java
index 86d0bb4a2..8474b7ba7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/AdminOrDeveloperAuth.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.annotation;
+package com.alibaba.himarket.core.annotation;
import org.springframework.security.access.prepost.PreAuthorize;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/DeveloperAuth.java b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/DeveloperAuth.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java
index aaf3ce552..c33863203 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/annotation/DeveloperAuth.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.annotation;
+package com.alibaba.himarket.core.annotation;
import org.springframework.security.access.prepost.PreAuthorize;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/CommonConstants.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/CommonConstants.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java
index 98f6b82e5..19d920172 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/CommonConstants.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.constant;
+package com.alibaba.himarket.core.constant;
public class CommonConstants {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/IdpConstants.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/IdpConstants.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java
index 061b608b6..197a1326f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/IdpConstants.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.core.constant;
+package com.alibaba.himarket.core.constant;
/**
* @author zh
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/JwtConstants.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/JwtConstants.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java
index b4f4e17ff..86453bd8e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/JwtConstants.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.constant;
+package com.alibaba.himarket.core.constant;
public class JwtConstants {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/Resources.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/Resources.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java
index d36c6d023..138c9526d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/constant/Resources.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.constant;
+package com.alibaba.himarket.core.constant;
public class Resources {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/ChatSessionDeletingEvent.java b/himarket-server/src/main/java/com/alibaba/himarket/core/event/ChatSessionDeletingEvent.java
similarity index 87%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/ChatSessionDeletingEvent.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/event/ChatSessionDeletingEvent.java
index b5514ef5d..1a2ed2733 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/ChatSessionDeletingEvent.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/event/ChatSessionDeletingEvent.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.core.event;
+package com.alibaba.himarket.core.event;
import lombok.Getter;
import org.springframework.context.ApplicationEvent;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/DeveloperDeletingEvent.java b/himarket-server/src/main/java/com/alibaba/himarket/core/event/DeveloperDeletingEvent.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/DeveloperDeletingEvent.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/event/DeveloperDeletingEvent.java
index b2d4f8892..5cf373fe4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/DeveloperDeletingEvent.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/event/DeveloperDeletingEvent.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.event;
+package com.alibaba.himarket.core.event;
import lombok.Getter;
import org.springframework.context.ApplicationEvent;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/PortalDeletingEvent.java b/himarket-server/src/main/java/com/alibaba/himarket/core/event/PortalDeletingEvent.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/PortalDeletingEvent.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/event/PortalDeletingEvent.java
index e2a5b2423..73e408c87 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/PortalDeletingEvent.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/event/PortalDeletingEvent.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.event;
+package com.alibaba.himarket.core.event;
import lombok.Getter;
import org.springframework.context.ApplicationEvent;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/ProductDeletingEvent.java b/himarket-server/src/main/java/com/alibaba/himarket/core/event/ProductDeletingEvent.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/ProductDeletingEvent.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/event/ProductDeletingEvent.java
index 90daeaa19..c4871aafa 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/event/ProductDeletingEvent.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/event/ProductDeletingEvent.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.event;
+package com.alibaba.himarket.core.event;
import lombok.Getter;
import org.springframework.context.ApplicationEvent;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/BusinessException.java b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/BusinessException.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java
index 4fbd361db..a73f223ab 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/BusinessException.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.exception;
+package com.alibaba.himarket.core.exception;
import lombok.Getter;
import org.springframework.http.HttpStatus;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/ChatError.java b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java
similarity index 78%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/ChatError.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java
index e93a70bf5..2c74fbfd0 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/ChatError.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.core.exception;
+package com.alibaba.himarket.core.exception;
import lombok.Getter;
import org.springframework.web.reactive.function.client.WebClientResponseException;
@@ -11,11 +11,13 @@
@Getter
public enum ChatError {
- WEB_RESPONSE_ERROR("Web Response Error"),
+ WEB_RESPONSE_ERROR("Web response error"),
TIMEOUT("Timeout"),
- UNKNOWN_ERROR("Unknown Error"),
+ UNKNOWN_ERROR("Unknown error"),
+
+ LLM_ERROR("LLM error, please check the input"),
;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/ErrorCode.java b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/ErrorCode.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java
index 885274073..c452657f1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/exception/ErrorCode.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.exception;
+package com.alibaba.himarket.core.exception;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/response/Response.java b/himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/response/Response.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java
index 2cb518155..4ef8bec4f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/response/Response.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.response;
+package com.alibaba.himarket.core.response;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/ContextHolder.java b/himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/ContextHolder.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java
index fbfe4b817..1520dc48d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/ContextHolder.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.security;
+package com.alibaba.himarket.core.security;
import cn.hutool.core.util.EnumUtil;
-import com.alibaba.apiopenplatform.core.constant.CommonConstants;
-import com.alibaba.apiopenplatform.support.enums.UserType;
+import com.alibaba.himarket.core.constant.CommonConstants;
+import com.alibaba.himarket.support.enums.UserType;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
import org.springframework.security.core.Authentication;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/DeveloperAuthenticationProvider.java b/himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/DeveloperAuthenticationProvider.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java
index f25c29ff2..e0f612462 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/DeveloperAuthenticationProvider.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.security;
+package com.alibaba.himarket.core.security;
-import com.alibaba.apiopenplatform.service.DeveloperService;
+import com.alibaba.himarket.service.DeveloperService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.BadCredentialsException;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/JwtAuthenticationFilter.java b/himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/JwtAuthenticationFilter.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java
index de2922f14..fca866810 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/security/JwtAuthenticationFilter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.security;
+package com.alibaba.himarket.core.security;
-import com.alibaba.apiopenplatform.core.constant.CommonConstants;
-import com.alibaba.apiopenplatform.core.utils.TokenUtil;
-import com.alibaba.apiopenplatform.support.common.User;
+import com.alibaba.himarket.core.constant.CommonConstants;
+import com.alibaba.himarket.core.utils.TokenUtil;
+import com.alibaba.himarket.support.common.User;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.core.Authentication;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/CacheUtil.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/CacheUtil.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java
index 44b82c29a..d87043fec 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/CacheUtil.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.core.utils;
+package com.alibaba.himarket.core.utils;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/IdGenerator.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/IdGenerator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java
index e8a897ab2..abae6ad8e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/IdGenerator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.utils;
+package com.alibaba.himarket.core.utils;
import cn.hutool.core.lang.ObjectId;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/PasswordHasher.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/PasswordHasher.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java
index b385d284a..47153ccfa 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/PasswordHasher.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.utils;
+package com.alibaba.himarket.core.utils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/TokenUtil.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/TokenUtil.java
rename to himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java
index c375af2df..aa353bbbb 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/core/utils/TokenUtil.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.core.utils;
+package com.alibaba.himarket.core.utils;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -26,9 +26,9 @@
import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;
import cn.hutool.jwt.signers.JWTSignerUtil;
-import com.alibaba.apiopenplatform.core.constant.CommonConstants;
-import com.alibaba.apiopenplatform.support.common.User;
-import com.alibaba.apiopenplatform.support.enums.UserType;
+import com.alibaba.himarket.core.constant.CommonConstants;
+import com.alibaba.himarket.support.common.User;
+import com.alibaba.himarket.support.enums.UserType;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/InputConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/InputConverter.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java
index e3764b88c..e804b92c9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/InputConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.converter;
+package com.alibaba.himarket.dto.converter;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/NacosAgentConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java
similarity index 93%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/NacosAgentConverter.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java
index a6f5d2d08..ec6e9eccb 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/NacosAgentConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.dto.converter;
+package com.alibaba.himarket.dto.converter;
-import com.alibaba.apiopenplatform.dto.result.agent.NacosAgentResult;
+import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
import com.alibaba.nacos.api.ai.model.a2a.AgentCardVersionInfo;
import org.springframework.stereotype.Component;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/NacosToGatewayToolsConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/NacosToGatewayToolsConverter.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java
index 78318958c..642948316 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/NacosToGatewayToolsConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.converter;
+package com.alibaba.himarket.dto.converter;
import com.alibaba.nacos.api.ai.model.mcp.McpServerDetailInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -29,8 +29,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
@Data
public class NacosToGatewayToolsConverter {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/OutputConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/OutputConverter.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java
index 1e64f96d9..4fc260315 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/OutputConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.converter;
+package com.alibaba.himarket.dto.converter;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/SlsResponseConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/SlsResponseConverter.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java
index ed413de6b..a6fe909fe 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/converter/SlsResponseConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java
@@ -1,12 +1,12 @@
-package com.alibaba.apiopenplatform.dto.converter;
+package com.alibaba.himarket.dto.converter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryResponse;
-import com.alibaba.apiopenplatform.dto.params.sls.TimeSeriesChartResponse;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryResponse;
+import com.alibaba.himarket.dto.params.sls.TimeSeriesChartResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/AdminCreateParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java
similarity index 82%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/AdminCreateParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java
index 832f77a99..a064687bc 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/AdminCreateParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java
@@ -17,14 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.admin;
+package com.alibaba.himarket.dto.params.admin;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Administrator;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Administrator;
import lombok.Data;
-import lombok.NoArgsConstructor;
import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.Size;
/**
* 管理员注册/创建参数DTO
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/AdminLoginParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/AdminLoginParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java
index 7f50217fc..78cee0cf7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/AdminLoginParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java
@@ -17,11 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.admin;
+package com.alibaba.himarket.dto.params.admin;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
-import lombok.NoArgsConstructor;
/**
* 管理员登录参数DTO
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/ResetPasswordParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/ResetPasswordParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java
index ce367f385..0dfd85a2b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/admin/ResetPasswordParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.admin;
+package com.alibaba.himarket.dto.params.admin;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/CreateProductCategoryParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/CreateProductCategoryParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java
index ef70a9a6a..2124fb429 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/CreateProductCategoryParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.category;
+package com.alibaba.himarket.dto.params.category;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ProductCategory;
-import com.alibaba.apiopenplatform.support.product.Icon;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ProductCategory;
+import com.alibaba.himarket.support.product.Icon;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/QueryProductCategoryParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/QueryProductCategoryParam.java
similarity index 72%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/QueryProductCategoryParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/QueryProductCategoryParam.java
index 531f1e8d9..98a8c2adf 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/QueryProductCategoryParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/QueryProductCategoryParam.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.category;
+package com.alibaba.himarket.dto.params.category;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/UpdateProductCategoryParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/UpdateProductCategoryParam.java
similarity index 83%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/UpdateProductCategoryParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/UpdateProductCategoryParam.java
index 1acc78011..43644a888 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/category/UpdateProductCategoryParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/UpdateProductCategoryParam.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.category;
+package com.alibaba.himarket.dto.params.category;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ProductCategory;
-import com.alibaba.apiopenplatform.support.product.Icon;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ProductCategory;
+import com.alibaba.himarket.support.product.Icon;
import lombok.Data;
import jakarta.validation.constraints.Size;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContext.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java
similarity index 70%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContext.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java
index 1d37533bf..bf4d5d2d9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContext.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java
@@ -16,21 +16,21 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.chat;
+package com.alibaba.himarket.dto.params.chat;
import cn.hutool.core.collection.CollUtil;
-import com.alibaba.apiopenplatform.service.impl.McpClientHolder;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
+import com.alibaba.himarket.service.impl.McpClientWrapper;
+import com.alibaba.himarket.support.chat.ChatUsage;
import com.google.common.base.Stopwatch;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
+import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.prompt.ChatOptions;
import java.io.IOException;
import java.util.List;
-import java.util.concurrent.TimeUnit;
/**
* @author shihan
@@ -41,13 +41,14 @@
@Slf4j
public class ChatContext {
+ //region Chat Result - Fields for storing chat response and metrics
private String chatId;
@Builder.Default
private StringBuilder answerContent = new StringBuilder();
@Builder.Default
- Stopwatch stopWatch = Stopwatch.createUnstarted();;
+ Stopwatch stopWatch = Stopwatch.createUnstarted();
private Long firstByteTimeout;
@@ -55,6 +56,10 @@ public class ChatContext {
@Builder.Default
private Boolean success = true;
+ // endregion
+
+ //region Chat Input - Fields for chat request and configuration
+ private List messages;
private ChatOptions chatOptions;
@@ -62,7 +67,14 @@ public class ChatContext {
private ToolContext toolContext;
- private List mcpClientHolders;
+ private List mcpClientWrappers;
+
+ /**
+ * Current round number of tool-calling in the chat
+ */
+ @Builder.Default
+ private int round = 0;
+ // endregion
public void start() {
stopWatch.start();
@@ -70,7 +82,7 @@ public void start() {
public void recordFirstByteTimeout() {
if (firstByteTimeout == null) {
- firstByteTimeout = stopWatch.elapsed(TimeUnit.MILLISECONDS);;
+ firstByteTimeout = stopWatch.elapsed().toMillis();
}
}
@@ -80,7 +92,7 @@ public void stop() {
}
if (chatUsage != null) {
- chatUsage.setElapsedTime(stopWatch.elapsed(TimeUnit.MILLISECONDS));
+ chatUsage.setElapsedTime(stopWatch.elapsed().toMillis());
if (firstByteTimeout != null) {
chatUsage.setFirstByteTimeout(firstByteTimeout);
}
@@ -91,11 +103,15 @@ public void appendAnswer(String content) {
answerContent.append(content);
}
+ public int nextRound() {
+ return ++round;
+ }
+
public void close() {
- if (CollUtil.isNotEmpty(mcpClientHolders)) {
- mcpClientHolders.forEach(mcpClientHolder -> {
+ if (CollUtil.isNotEmpty(mcpClientWrappers)) {
+ mcpClientWrappers.forEach(mcpClientWrapper -> {
try {
- mcpClientHolder.close();
+ mcpClientWrapper.close();
} catch (IOException e) {
log.warn("Close mcp client error", e);
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/CreateChatParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/CreateChatParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java
index e794a6b31..056ddb5a3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/CreateChatParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java
@@ -1,8 +1,8 @@
-package com.alibaba.apiopenplatform.dto.params.chat;
+package com.alibaba.himarket.dto.params.chat;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Chat;
-import com.alibaba.apiopenplatform.support.chat.attachment.ChatAttachmentConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Chat;
+import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/CreateChatSessionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java
similarity index 73%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/CreateChatSessionParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java
index 984a20d53..371f91db3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/CreateChatSessionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java
@@ -1,8 +1,8 @@
-package com.alibaba.apiopenplatform.dto.params.chat;
+package com.alibaba.himarket.dto.params.chat;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ChatSession;
-import com.alibaba.apiopenplatform.support.enums.TalkType;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ChatSession;
+import com.alibaba.himarket.support.enums.TalkType;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java
new file mode 100644
index 000000000..4b41d1d7c
--- /dev/null
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java
@@ -0,0 +1,58 @@
+package com.alibaba.himarket.dto.params.chat;
+
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zh
+ */
+@Data
+@Builder
+public class InvokeModelParam {
+
+ /**
+ * Unique ID
+ */
+ private String chatId;
+
+ /**
+ * Model Product
+ */
+ private ProductResult product;
+
+ /**
+ * User question
+ */
+ private String userQuestion;
+
+ /**
+ * Chat messages in OpenAI-compatible format
+ */
+ private List chatMessages;
+
+ /**
+ * If need web search
+ */
+ private Boolean enableWebSearch;
+
+ /**
+ * Gateway Ips, used to request gatewy
+ */
+ private List gatewayIps;
+
+ /**
+ * MCP servers with transport config
+ */
+ private List mcpConfigs;
+
+ /**
+ * Credential for invoking the Model and MCP
+ */
+ private CredentialContext credentialContext;
+}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/McpToolMeta.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/McpToolMeta.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java
index 5c335f86c..788a52d6a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/McpToolMeta.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java
@@ -16,11 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.chat;
+package com.alibaba.himarket.dto.params.chat;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
+import lombok.*;
/**
* @author shihan
@@ -29,6 +27,9 @@
@Data
@EqualsAndHashCode
@ToString
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
public class McpToolMeta {
/**
* 工具名称
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ToolContext.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ToolContext.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java
index 79ccd2187..362c83602 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ToolContext.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.chat;
+package com.alibaba.himarket.dto.params.chat;
import lombok.Getter;
import lombok.NoArgsConstructor;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/UpdateChatSessionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/UpdateChatSessionParam.java
new file mode 100644
index 000000000..27fd566f9
--- /dev/null
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/UpdateChatSessionParam.java
@@ -0,0 +1,14 @@
+package com.alibaba.himarket.dto.params.chat;
+
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ChatSession;
+import lombok.Data;
+
+/**
+ * @author zh
+ */
+@Data
+public class UpdateChatSessionParam implements InputConverter {
+
+ private String name;
+}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateConsumerParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateConsumerParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java
index a1b1ab250..5aca46299 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateConsumerParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.consumer;
+package com.alibaba.himarket.dto.params.consumer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Consumer;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Consumer;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateCredentialParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java
similarity index 76%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateCredentialParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java
index 62f6fcfcb..eaeced4c3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateCredentialParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java
@@ -17,13 +17,13 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.consumer;
+package com.alibaba.himarket.dto.params.consumer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
-import com.alibaba.apiopenplatform.support.consumer.JwtConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.consumer.JwtConfig;
import lombok.Data;
import jakarta.validation.constraints.AssertTrue;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateSubscriptionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java
similarity index 85%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateSubscriptionParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java
index 325aa7e5b..7bcbca225 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/CreateSubscriptionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.consumer;
+package com.alibaba.himarket.dto.params.consumer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ProductSubscription;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ProductSubscription;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/QueryConsumerParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QueryConsumerParam.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/QueryConsumerParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QueryConsumerParam.java
index df1787cf5..44632580a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/QueryConsumerParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QueryConsumerParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.consumer;
+package com.alibaba.himarket.dto.params.consumer;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/QuerySubscriptionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/QuerySubscriptionParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java
index 4c80463bc..0e663f1e1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/QuerySubscriptionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.consumer;
+package com.alibaba.himarket.dto.params.consumer;
-import com.alibaba.apiopenplatform.support.enums.SubscriptionStatus;
+import com.alibaba.himarket.support.enums.SubscriptionStatus;
import lombok.Data;
@Data
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/UpdateCredentialParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/UpdateCredentialParam.java
similarity index 73%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/UpdateCredentialParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/UpdateCredentialParam.java
index 3898c81ca..8cb3954f9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/consumer/UpdateCredentialParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/UpdateCredentialParam.java
@@ -17,13 +17,13 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.consumer;
+package com.alibaba.himarket.dto.params.consumer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
-import com.alibaba.apiopenplatform.support.consumer.JwtConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.consumer.JwtConfig;
import lombok.Data;
@Data
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/CreateDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/CreateDeveloperParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java
index c18e739d5..f4998ba4b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/CreateDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Developer;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Developer;
import lombok.Data;
import lombok.NoArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/CreateExternalDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java
similarity index 81%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/CreateExternalDeveloperParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java
index fdc6b4175..b217da4ef 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/CreateExternalDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java
@@ -18,11 +18,11 @@
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.DeveloperExternalIdentity;
-import com.alibaba.apiopenplatform.support.enums.DeveloperAuthType;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.DeveloperExternalIdentity;
+import com.alibaba.himarket.support.enums.DeveloperAuthType;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/DeveloperLoginParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/DeveloperLoginParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java
index 1e03e4252..df06e4ae9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/DeveloperLoginParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/QueryDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/QueryDeveloperParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/QueryDeveloperParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/QueryDeveloperParam.java
index cd2503c6e..11193f8f2 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/QueryDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/QueryDeveloperParam.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
-import com.alibaba.apiopenplatform.support.enums.DeveloperStatus;
+import com.alibaba.himarket.support.enums.DeveloperStatus;
import lombok.Data;
@Data
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UnbindExternalIdentityParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UnbindExternalIdentityParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java
index 66b3fe58f..dae4908c1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UnbindExternalIdentityParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UpdateDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UpdateDeveloperParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java
index f7393b6da..c37254b5d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UpdateDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Developer;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Developer;
import lombok.Data;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Size;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UpdateDeveloperStatusParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UpdateDeveloperStatusParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java
index 776bfa361..fb94147f8 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/developer/UpdateDeveloperStatusParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.developer;
+package com.alibaba.himarket.dto.params.developer;
-import com.alibaba.apiopenplatform.support.enums.DeveloperStatus;
+import com.alibaba.himarket.support.enums.DeveloperStatus;
import lombok.Data;
@Data
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/ImportGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java
similarity index 54%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/ImportGatewayParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java
index 3e4276917..0c13f120d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/ImportGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java
@@ -17,19 +17,18 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.gateway;
+package com.alibaba.himarket.dto.params.gateway;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
-import com.alibaba.apiopenplatform.support.gateway.HigressConfig;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.APIGConfig;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import lombok.Data;
-import jakarta.validation.Valid;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
@@ -37,12 +36,10 @@
@Data
public class ImportGatewayParam implements InputConverter {
- @NotBlank(message = "网关名称不能为空")
+ @NotBlank(message = "Gateway name cannot be blank")
private String gatewayName;
- private String description;
-
- @NotNull(message = "网关类型不能为空")
+ @NotNull(message = "Gateway type cannot be null")
private GatewayType gatewayType;
private String gatewayId;
@@ -55,11 +52,11 @@ public class ImportGatewayParam implements InputConverter {
private HigressConfig higressConfig;
- @AssertTrue(message = "网关配置无效")
+ @AssertTrue(message = "Invalid gateway config")
private boolean isGatewayConfigValid() {
- return (gatewayType.isAPIG() && !gatewayType.equals(GatewayType.ADP_AI_GATEWAY) && apigConfig != null && StrUtil.isNotBlank(gatewayId))
- || (gatewayType.equals(GatewayType.ADP_AI_GATEWAY) && adpAIGatewayConfig != null && StrUtil.isNotBlank(gatewayId))
- || (gatewayType.isApsaraGateway() && apsaraGatewayConfig != null && StrUtil.isNotBlank(gatewayId))
- || (gatewayType.isHigress() && higressConfig != null);
+ return gatewayType.isAPIG() && apigConfig != null && StrUtil.isNotBlank(gatewayId) && apigConfig.validate()
+ || gatewayType.isAdpAIGateway() && adpAIGatewayConfig != null && StrUtil.isNotBlank(gatewayId) && adpAIGatewayConfig.validate()
+ || gatewayType.isApsaraGateway() && apsaraGatewayConfig != null && StrUtil.isNotBlank(gatewayId) && apsaraGatewayConfig.validate()
+ || gatewayType.isHigress() && higressConfig != null && higressConfig.validate();
}
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryAPIGParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryAPIGParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java
index e78a7acaf..dbd952932 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryAPIGParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.gateway;
+package com.alibaba.himarket.dto.params.gateway;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.APIGConfig;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryAdpAIGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryAdpAIGatewayParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java
index f4bfa1582..ca76619a1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryAdpAIGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java
@@ -18,10 +18,10 @@
*/
-package com.alibaba.apiopenplatform.dto.params.gateway;
+package com.alibaba.himarket.dto.params.gateway;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryApsaraGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryApsaraGatewayParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java
index a1cbd1434..1361e4b39 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryApsaraGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.dto.params.gateway;
+package com.alibaba.himarket.dto.params.gateway;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryGatewayParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryGatewayParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryGatewayParam.java
index f75337b4d..6e7af801b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/gateway/QueryGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryGatewayParam.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.dto.params.gateway;
+package com.alibaba.himarket.dto.params.gateway;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
+import com.alibaba.himarket.support.enums.GatewayType;
import lombok.Data;
/**
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/UpdateGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/UpdateGatewayParam.java
new file mode 100644
index 000000000..97cdc8820
--- /dev/null
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/UpdateGatewayParam.java
@@ -0,0 +1,42 @@
+package com.alibaba.himarket.dto.params.gateway;
+
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.APIGConfig;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
+import jakarta.validation.constraints.AssertTrue;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author zh
+ */
+@Data
+public class UpdateGatewayParam implements InputConverter {
+
+ @NotNull(message = "Gateway type cannot be null")
+ private GatewayType gatewayType;
+
+ private String gatewayName;
+
+ private String description;
+
+ private APIGConfig apigConfig;
+
+ private AdpAIGatewayConfig adpAIGatewayConfig;
+
+ private ApsaraGatewayConfig apsaraGatewayConfig;
+
+ private HigressConfig higressConfig;
+
+ @AssertTrue(message = "Invalid gateway config")
+ private boolean isGatewayConfigValid() {
+ return gatewayType.isAPIG() && (apigConfig == null || apigConfig.validate())
+ || gatewayType.isAdpAIGateway() && (adpAIGatewayConfig == null || adpAIGatewayConfig.validate())
+ || gatewayType.isApsaraGateway() && (apsaraGatewayConfig == null || apsaraGatewayConfig.validate())
+ || gatewayType.isHigress() && (higressConfig == null || higressConfig.validate());
+ }
+}
\ No newline at end of file
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/CreateNacosParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/CreateNacosParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java
index 813bbdea5..fa89742bc 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/CreateNacosParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.nacos;
+package com.alibaba.himarket.dto.params.nacos;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.NacosInstance;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.NacosInstance;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/QueryNacosNamespaceParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/QueryNacosNamespaceParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java
index 191d9ea3a..1b265c609 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/QueryNacosNamespaceParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.nacos;
+package com.alibaba.himarket.dto.params.nacos;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/QueryNacosParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/QueryNacosParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java
index 5b04b646e..9a01b09d6 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/QueryNacosParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.nacos;
+package com.alibaba.himarket.dto.params.nacos;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/UpdateNacosParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/UpdateNacosParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java
index 7c4f1e1ed..36f294720 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/nacos/UpdateNacosParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.nacos;
+package com.alibaba.himarket.dto.params.nacos;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.NacosInstance;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.NacosInstance;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/BindDomainParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/BindDomainParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java
index 4c1be649e..981bbee35 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/BindDomainParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.portal;
+package com.alibaba.himarket.dto.params.portal;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.PortalDomain;
-import com.alibaba.apiopenplatform.support.enums.DomainType;
-import com.alibaba.apiopenplatform.support.enums.ProtocolType;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.PortalDomain;
+import com.alibaba.himarket.support.enums.DomainType;
+import com.alibaba.himarket.support.enums.ProtocolType;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/CreatePortalParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/CreatePortalParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java
index ee0b735bd..ca1f74aca 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/CreatePortalParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.portal;
+package com.alibaba.himarket.dto.params.portal;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Portal;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Portal;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/UpdatePortalParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/UpdatePortalParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java
index 8718cb06e..3208e1d6e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/portal/UpdatePortalParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.portal;
+package com.alibaba.himarket.dto.params.portal;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Portal;
-import com.alibaba.apiopenplatform.support.portal.PortalSettingConfig;
-import com.alibaba.apiopenplatform.support.portal.PortalUiConfig;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Portal;
+import com.alibaba.himarket.support.portal.PortalSettingConfig;
+import com.alibaba.himarket.support.portal.PortalUiConfig;
import lombok.Data;
import jakarta.validation.constraints.Size;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/CreateProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/CreateProductParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java
index 9babf45ca..8fd3252cb 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/CreateProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.product;
+package com.alibaba.himarket.dto.params.product;
import java.util.List;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Product;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
-import com.alibaba.apiopenplatform.support.product.Icon;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Product;
+import com.alibaba.himarket.support.enums.ProductType;
+import com.alibaba.himarket.support.product.Icon;
+import com.alibaba.himarket.support.product.ProductFeature;
import lombok.Data;
import jakarta.validation.constraints.AssertTrue;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/CreateProductRefParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java
similarity index 75%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/CreateProductRefParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java
index 613179a71..442f2bc3d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/CreateProductRefParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java
@@ -17,14 +17,14 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.product;
-
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ProductRef;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
-import com.alibaba.apiopenplatform.support.product.HigressRefConfig;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
+package com.alibaba.himarket.dto.params.product;
+
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ProductRef;
+import com.alibaba.himarket.support.enums.SourceType;
+import com.alibaba.himarket.support.product.APIGRefConfig;
+import com.alibaba.himarket.support.product.HigressRefConfig;
+import com.alibaba.himarket.support.product.NacosRefConfig;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/PublishProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java
similarity index 85%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/PublishProductParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java
index bd7279d21..4bca196a7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/PublishProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.product;
+package com.alibaba.himarket.dto.params.product;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ProductPublication;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.ProductPublication;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/QueryProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/QueryProductParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java
index 7d8587cd1..5bc18d8c8 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/QueryProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.product;
+package com.alibaba.himarket.dto.params.product;
-import com.alibaba.apiopenplatform.support.enums.ProductStatus;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
+import com.alibaba.himarket.support.enums.ProductStatus;
+import com.alibaba.himarket.support.enums.ProductType;
import lombok.Data;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/QueryProductSubscriptionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/QueryProductSubscriptionParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java
index 1dd563283..23ddad2bb 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/QueryProductSubscriptionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.dto.params.product;
+package com.alibaba.himarket.dto.params.product;
-import com.alibaba.apiopenplatform.support.enums.SubscriptionStatus;
+import com.alibaba.himarket.support.enums.SubscriptionStatus;
import lombok.Data;
/**
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/UnPublishProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/UnPublishProductParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java
index c16b0f1dc..35ed5b6c7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/UnPublishProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.product;
+package com.alibaba.himarket.dto.params.product;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/UpdateProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java
similarity index 81%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/UpdateProductParam.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java
index 0dd0a3fa8..a3af4b5c5 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/product/UpdateProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.params.product;
+package com.alibaba.himarket.dto.params.product;
import java.util.List;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.Product;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
-import com.alibaba.apiopenplatform.support.product.Icon;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
+import com.alibaba.himarket.dto.converter.InputConverter;
+import com.alibaba.himarket.entity.Product;
+import com.alibaba.himarket.support.enums.ProductType;
+import com.alibaba.himarket.support.product.Icon;
+import com.alibaba.himarket.support.product.ProductFeature;
import lombok.Data;
import jakarta.validation.constraints.AssertTrue;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/GenericSlsQueryRequest.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/GenericSlsQueryRequest.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java
index 49299a34a..370e3478d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/GenericSlsQueryRequest.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/GenericSlsQueryResponse.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/GenericSlsQueryResponse.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java
index ec0aac31c..44da6ad54 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/GenericSlsQueryResponse.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import java.util.List;
import java.util.Map;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/ScenarioQueryResponse.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/ScenarioQueryResponse.java
similarity index 88%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/ScenarioQueryResponse.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/ScenarioQueryResponse.java
index 83d6b729d..469067696 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/ScenarioQueryResponse.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/ScenarioQueryResponse.java
@@ -1,9 +1,9 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import java.util.List;
import java.util.Map;
-import com.alibaba.apiopenplatform.service.gateway.factory.SlsPresetSqlRegistry;
+import com.alibaba.himarket.service.gateway.factory.SlsPresetSqlRegistry;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCheckLogstoreRequest.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCheckLogstoreRequest.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCheckLogstoreRequest.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCheckLogstoreRequest.java
index 7201e77b0..e60a4da48 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCheckLogstoreRequest.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCheckLogstoreRequest.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCheckProjectRequest.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCheckProjectRequest.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCheckProjectRequest.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCheckProjectRequest.java
index 42c4277fe..a41de02c7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCheckProjectRequest.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCheckProjectRequest.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCommonQueryRequest.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCommonQueryRequest.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCommonQueryRequest.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCommonQueryRequest.java
index c7c3b5777..b9198cc72 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/SlsCommonQueryRequest.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/SlsCommonQueryRequest.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/TimeSeriesChartResponse.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/TimeSeriesChartResponse.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/TimeSeriesChartResponse.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/TimeSeriesChartResponse.java
index 687c60946..4e1e48ce8 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/sls/TimeSeriesChartResponse.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/TimeSeriesChartResponse.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.params.sls;
+package com.alibaba.himarket.dto.params.sls;
import java.util.List;
import java.util.Map;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/ProductCategoryResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/ProductCategoryResult.java
similarity index 83%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/ProductCategoryResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/ProductCategoryResult.java
index f032f90af..c5c187af4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/ProductCategoryResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/ProductCategoryResult.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result;
+package com.alibaba.himarket.dto.result;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.ProductCategory;
-import com.alibaba.apiopenplatform.support.product.Icon;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.ProductCategory;
+import com.alibaba.himarket.support.product.Icon;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/admin/AdminResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/admin/AdminResult.java
similarity index 85%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/admin/AdminResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/admin/AdminResult.java
index 758a7f5f8..ee2273b90 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/admin/AdminResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/admin/AdminResult.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.admin;
+package com.alibaba.himarket.dto.result.admin;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.Administrator;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.Administrator;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/AgentAPIResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/AgentAPIResult.java
similarity index 76%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/AgentAPIResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/AgentAPIResult.java
index 792609ba7..6e2372053 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/AgentAPIResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/AgentAPIResult.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.result.agent;
+package com.alibaba.himarket.dto.result.agent;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/AgentConfigResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/AgentConfigResult.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/AgentConfigResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/AgentConfigResult.java
index 57fe36db0..4b1e3c536 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/AgentConfigResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/AgentConfigResult.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.dto.result.agent;
+package com.alibaba.himarket.dto.result.agent;
-import com.alibaba.apiopenplatform.dto.result.httpapi.HttpRouteResult;
+import com.alibaba.himarket.dto.result.httpapi.HttpRouteResult;
import com.alibaba.nacos.api.ai.model.a2a.AgentCard;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/NacosAgentResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/NacosAgentResult.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/NacosAgentResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/NacosAgentResult.java
index 39724cc25..4412d71ac 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/agent/NacosAgentResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/agent/NacosAgentResult.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.result.agent;
+package com.alibaba.himarket.dto.result.agent;
import lombok.AllArgsConstructor;
import lombok.Builder;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatAnswerMessage.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatAnswerMessage.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatAnswerMessage.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatAnswerMessage.java
index a55ac0351..7a442f653 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatAnswerMessage.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatAnswerMessage.java
@@ -16,11 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.dto.params.chat.McpToolMeta;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
+import com.alibaba.himarket.dto.params.chat.McpToolMeta;
+import com.alibaba.himarket.support.chat.ChatUsage;
import lombok.*;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.ToolResponseMessage;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatResult.java
similarity index 60%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatResult.java
index 8befbae94..262ee6a17 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatResult.java
@@ -1,9 +1,9 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.Chat;
-import com.alibaba.apiopenplatform.support.chat.attachment.ChatAttachmentConfig;
-import com.alibaba.apiopenplatform.support.enums.ChatStatus;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.Chat;
+import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
+import com.alibaba.himarket.support.enums.ChatStatus;
import lombok.Data;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatSessionResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatSessionResult.java
similarity index 63%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatSessionResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatSessionResult.java
index a38a7f96e..9c169d3b2 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ChatSessionResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ChatSessionResult.java
@@ -1,8 +1,8 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.ChatSession;
-import com.alibaba.apiopenplatform.support.enums.TalkType;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.ChatSession;
+import com.alibaba.himarket.support.enums.TalkType;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ConversationResult_V1.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ConversationResult_V1.java
similarity index 82%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ConversationResult_V1.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ConversationResult_V1.java
index 3fd5b0e02..c2ec38234 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ConversationResult_V1.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ConversationResult_V1.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
-import com.alibaba.apiopenplatform.support.chat.attachment.ChatAttachmentConfig;
+import com.alibaba.himarket.support.chat.ChatUsage;
+import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/LlmChatRequest.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/LlmChatRequest.java
similarity index 62%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/LlmChatRequest.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/LlmChatRequest.java
index 6b646fdd3..817c63efa 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/LlmChatRequest.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/LlmChatRequest.java
@@ -1,11 +1,14 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
import cn.hutool.core.collection.CollUtil;
-import com.alibaba.apiopenplatform.dto.params.chat.ChatRequestBody;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
+import com.alibaba.himarket.support.product.ModelFeature;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.WebSearchOptions;
import java.net.URL;
import java.util.HashMap;
@@ -19,10 +22,20 @@
public class LlmChatRequest {
/**
- * the unique chatId
+ * The unique chatId
*/
private String chatId;
+ /**
+ * User question
+ */
+ private String userQuestion;
+
+ /**
+ * Generic chat messages, convertible to specific SDK formats (e.g., Spring AI Alibaba).
+ */
+ private List chatMessages;
+
/**
* URL, contains protocol, host and path
*/
@@ -34,22 +47,29 @@ public class LlmChatRequest {
private Map headers;
/**
- * the llm api key
+ * If not empty, use these IPs to resolve DNS
*/
- private String apiKey;
+ private List gatewayIps;
/**
- * chatRequest
+ * Credential for invoking the Model and MCP
*/
- private ChatRequestBody chatRequest;
+ private CredentialContext credentialContext;
/**
- * If not empty, use these IPs to resolve DNS
+ * MCP servers with transport config
*/
- private List gatewayIps;
+ private List mcpConfigs;
+ /**
+ * Model feature
+ */
+ private ModelFeature modelFeature;
- private CredentialContext credentialContext;
+ /**
+ * Web search options
+ */
+ private WebSearchOptions webSearchOptions;
public void tryResolveDns() {
if (CollUtil.isEmpty(gatewayIps) || !"http".equalsIgnoreCase(url.getProtocol())) {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/LlmInvokeResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/LlmInvokeResult.java
similarity index 72%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/LlmInvokeResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/LlmInvokeResult.java
index 58d0d49e1..f7d03aba7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/LlmInvokeResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/LlmInvokeResult.java
@@ -1,8 +1,7 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
-import com.alibaba.apiopenplatform.dto.params.chat.ChatContent;
-import com.alibaba.apiopenplatform.dto.params.chat.ChatContext;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
+import com.alibaba.himarket.dto.params.chat.ChatContext;
+import com.alibaba.himarket.support.chat.ChatUsage;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/OpenAIChatStreamResponse.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/OpenAIChatStreamResponse.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/OpenAIChatStreamResponse.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/OpenAIChatStreamResponse.java
index 43df7e736..afb7ef83f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/OpenAIChatStreamResponse.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/OpenAIChatStreamResponse.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
import cn.hutool.core.annotation.Alias;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
+import com.alibaba.himarket.support.chat.ChatUsage;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ProductConversationResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ProductConversationResult.java
similarity index 82%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ProductConversationResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ProductConversationResult.java
index 57dce4728..e0174a1a1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/chat/ProductConversationResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/chat/ProductConversationResult.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.dto.result.chat;
+package com.alibaba.himarket.dto.result.chat;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
-import com.alibaba.apiopenplatform.support.chat.attachment.ChatAttachmentConfig;
+import com.alibaba.himarket.support.chat.ChatUsage;
+import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/AuthResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/AuthResult.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/AuthResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/AuthResult.java
index e45645d28..fc1f35a3e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/AuthResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/AuthResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.common;
+package com.alibaba.himarket.dto.result.common;
import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/DomainResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/DomainResult.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/DomainResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/DomainResult.java
index 40f3c8cd5..94b88b37f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/DomainResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/DomainResult.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.dto.result.common;
+package com.alibaba.himarket.dto.result.common;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/PageResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/PageResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/PageResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/PageResult.java
index a542d8e75..72bf6ce31 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/common/PageResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/common/PageResult.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.common;
+package com.alibaba.himarket.dto.result.common;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/ConsumerCredentialResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/ConsumerCredentialResult.java
similarity index 73%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/ConsumerCredentialResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/ConsumerCredentialResult.java
index 0987c131b..e20fa319e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/ConsumerCredentialResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/ConsumerCredentialResult.java
@@ -17,13 +17,13 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.consumer;
+package com.alibaba.himarket.dto.result.consumer;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
-import com.alibaba.apiopenplatform.support.consumer.JwtConfig;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.consumer.JwtConfig;
import lombok.Data;
@Data
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/ConsumerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/ConsumerResult.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/ConsumerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/ConsumerResult.java
index 567f6c9cd..fda3ebca3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/ConsumerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/ConsumerResult.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.consumer;
+package com.alibaba.himarket.dto.result.consumer;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.Consumer;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.Consumer;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/CredentialContext.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/CredentialContext.java
similarity index 68%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/CredentialContext.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/CredentialContext.java
index 3729feb5b..da0627be1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/consumer/CredentialContext.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/consumer/CredentialContext.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.consumer;
+package com.alibaba.himarket.dto.result.consumer;
import lombok.Builder;
import lombok.Data;
@@ -36,5 +36,24 @@ public class CredentialContext {
@Builder.Default
private Map queryParams = new HashMap<>();
+
+ /**
+ * Returns a copy of headers to prevent modifications to the original map
+ *
+ * @return
+ */
+ public Map copyHeaders() {
+ if (headers == null) {
+ return new HashMap<>();
+ }
+ return new HashMap<>(headers);
+ }
+
+ public Map copyQueryParams() {
+ if (queryParams == null) {
+ return new HashMap<>();
+ }
+ return new HashMap<>(queryParams);
+ }
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/developer/DeveloperResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/developer/DeveloperResult.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/developer/DeveloperResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/developer/DeveloperResult.java
index 23c8628bd..c4b322c1b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/developer/DeveloperResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/developer/DeveloperResult.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.developer;
+package com.alibaba.himarket.dto.result.developer;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.Developer;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.Developer;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/gateway/AdpGatewayInstanceResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/gateway/AdpGatewayInstanceResult.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/gateway/AdpGatewayInstanceResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/gateway/AdpGatewayInstanceResult.java
index 9dc488fcd..0da65925c 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/gateway/AdpGatewayInstanceResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/gateway/AdpGatewayInstanceResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.gateway;
+package com.alibaba.himarket.dto.result.gateway;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/gateway/GatewayResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/gateway/GatewayResult.java
similarity index 79%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/gateway/GatewayResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/gateway/GatewayResult.java
index 44f4a3ee6..f940d7473 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/gateway/GatewayResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/gateway/GatewayResult.java
@@ -17,14 +17,14 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.gateway;
+package com.alibaba.himarket.dto.result.gateway;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
-import com.alibaba.apiopenplatform.support.gateway.HigressConfig;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.APIGConfig;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -55,9 +55,9 @@ public class GatewayResult implements OutputConverter {
@Override
public GatewayResult convertFrom(Gateway source) {
OutputConverter.super.convertFrom(source);
- if (source.getGatewayType().isAPIG() && !source.getGatewayType().equals(GatewayType.ADP_AI_GATEWAY)) {
+ if (source.getGatewayType().isAPIG()) {
setApigConfig(new APIGConfigResult().convertFrom(source.getApigConfig()));
- } else if (source.getGatewayType().equals(GatewayType.ADP_AI_GATEWAY)) {
+ } else if (source.getGatewayType().isAdpAIGateway()) {
setAdpAIGatewayConfig(new AdpAIGatewayConfigResult().convertFrom(source.getAdpAIGatewayConfig()));
} else {
setHigressConfig(new HigressConfigResult().convertFrom(source.getHigressConfig()));
@@ -81,5 +81,6 @@ public static class AdpAIGatewayConfigResult implements OutputConverter {
private String address;
private String username;
+ private String gatewayAddress;
}
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/higress/HigressRouteResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/higress/HigressRouteResult.java
similarity index 100%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/higress/HigressRouteResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/higress/HigressRouteResult.java
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/APIConfigResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/APIConfigResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/APIConfigResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/APIConfigResult.java
index a930c29da..10f96848b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/APIConfigResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/APIConfigResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.httpapi;
+package com.alibaba.himarket.dto.result.httpapi;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/APIResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/APIResult.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/APIResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/APIResult.java
index d73b92075..e629333ba 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/APIResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/APIResult.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.httpapi;
+package com.alibaba.himarket.dto.result.httpapi;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import com.aliyun.sdk.service.apig20240327.models.HttpApiApiInfo;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/BackendResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/BackendResult.java
similarity index 87%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/BackendResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/BackendResult.java
index 7e268d14a..071cc6319 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/BackendResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/BackendResult.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.dto.result.httpapi;
+package com.alibaba.himarket.dto.result.httpapi;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import com.aliyun.sdk.service.apig20240327.models.Backend;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/HttpRouteResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/HttpRouteResult.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/HttpRouteResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/HttpRouteResult.java
index 68fa50ce1..acf48c2ef 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/HttpRouteResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/HttpRouteResult.java
@@ -1,9 +1,9 @@
-package com.alibaba.apiopenplatform.dto.result.httpapi;
+package com.alibaba.himarket.dto.result.httpapi;
import cn.hutool.core.util.BooleanUtil;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.service.gateway.HigressOperator;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.service.gateway.HigressOperator;
import lombok.Builder;
import lombok.Data;
import com.aliyun.sdk.service.apig20240327.models.HttpRoute;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/ServiceResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/ServiceResult.java
similarity index 71%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/ServiceResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/ServiceResult.java
index 0883270c9..00b69efc0 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/httpapi/ServiceResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/httpapi/ServiceResult.java
@@ -1,6 +1,6 @@
-package com.alibaba.apiopenplatform.dto.result.httpapi;
+package com.alibaba.himarket.dto.result.httpapi;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import com.aliyun.sdk.service.apig20240327.models.Backend.Services;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpResult.java
index 9e391f46d..6c1e305cd 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpResult.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.dto.result.idp;
+package com.alibaba.himarket.dto.result.idp;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpState.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpState.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpState.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpState.java
index 6836e5fc7..a0054401d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpState.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpState.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.dto.result.idp;
+package com.alibaba.himarket.dto.result.idp;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpTokenResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpTokenResult.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpTokenResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpTokenResult.java
index 346e03780..52f3f70f5 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/idp/IdpTokenResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/idp/IdpTokenResult.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.dto.result.idp;
+package com.alibaba.himarket.dto.result.idp;
import cn.hutool.core.annotation.Alias;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/APIGMCPServerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/APIGMCPServerResult.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/APIGMCPServerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/APIGMCPServerResult.java
index 2ade5b654..b4ce4d8be 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/APIGMCPServerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/APIGMCPServerResult.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import com.aliyun.sdk.service.apig20240327.models.HttpRoute;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/AdpMCPServerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/AdpMCPServerResult.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/AdpMCPServerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/AdpMCPServerResult.java
index a8fe8ea09..5808c35b3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/AdpMCPServerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/AdpMCPServerResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
import com.aliyun.apsarastack.csb220230206.models.ListMcpServersResponseBody;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/AdpMcpServerListResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/AdpMcpServerListResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/AdpMcpServerListResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/AdpMcpServerListResult.java
index b04a95016..40065b5c9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/AdpMcpServerListResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/AdpMcpServerListResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/GatewayMCPServerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/GatewayMCPServerResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/GatewayMCPServerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/GatewayMCPServerResult.java
index 3317ed3fa..a8ed8bf8d 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/GatewayMCPServerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/GatewayMCPServerResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/HigressMCPServerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/HigressMCPServerResult.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/HigressMCPServerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/HigressMCPServerResult.java
index 99480c3cb..82c288a61 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/HigressMCPServerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/HigressMCPServerResult.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.service.gateway.HigressOperator.HigressMCPConfig;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.service.gateway.HigressOperator.HigressMCPConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/MCPConfigResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/MCPConfigResult.java
similarity index 62%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/MCPConfigResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/MCPConfigResult.java
index 7caa283e0..8b6093398 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/MCPConfigResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/MCPConfigResult.java
@@ -17,19 +17,18 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.support.chat.mcp.McpServerConfig;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.support.enums.MCPTransportMode;
import lombok.Data;
-import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
-import java.util.Collections;
import java.util.List;
import java.util.Random;
@@ -44,46 +43,51 @@ public class MCPConfigResult {
protected McpMetadata meta;
- public McpServerConfig toStandardMcpServer() {
- McpServerConfig mcpServerConfig = new McpServerConfig();
- McpServerConfig.McpServer mcpServer = new McpServerConfig.McpServer();
+ public void convertDomainToGatewayIp(List gatewayIps) {
- mcpServer.setType(StringUtils.isBlank(meta.getProtocol()) ? "sse" : meta.getProtocol().toLowerCase());
List domains = this.mcpServerConfig.getDomains();
- DomainResult domainResult = domains.stream()
- .filter(domain -> !"intranet".equalsIgnoreCase(domain.getNetworkType()) && !"*".equals(domain.getDomain()))
+ for (DomainResult domain : domains) {
+ if (StringUtils.equals(domain.getDomain(), "")) {
+ if (gatewayIps.isEmpty()) {
+ throw new BusinessException(ErrorCode.GATEWAY_ERROR, Resources.GATEWAY, "no available ip to replace ");
+ }
+ String randomGatewayIp = gatewayIps.get(new Random().nextInt(gatewayIps.size()));
+ domain.setDomain(randomGatewayIp);
+ }
+ }
+ }
+
+ public MCPTransportConfig toTransportConfig() {
+ List domains = mcpServerConfig.getDomains();
+ DomainResult domain = domains.stream()
+ .filter(d -> !StrUtil.equalsIgnoreCase(d.getNetworkType(), "intranet"))
.findFirst()
- .orElse(domains.get(0));
- String url = String.format("%s://%s", domainResult.getProtocol(), domainResult.getDomain());
+ .orElse(null);
+ if (domain == null) {
+ return null;
+ }
- String path = this.getMcpServerConfig().getPath();
+ String url = StrUtil.format("{}://{}", domain.getProtocol(), domain.getDomain());
+
+ String path = mcpServerConfig.getPath();
if (StrUtil.isNotBlank(path)) {
url = path.startsWith("/") ? url + path : url + "/" + path;
}
+ // Default: StreamableHTTP
+ MCPTransportMode transportMode = "sse".equalsIgnoreCase(meta.getProtocol()) ?
+ MCPTransportMode.SSE : MCPTransportMode.STREAMABLE_HTTP;
- if (StringUtils.equalsIgnoreCase(mcpServer.getType(), "sse")) {
+ if (transportMode == MCPTransportMode.SSE) {
if (!url.endsWith("/sse")) {
url = url.endsWith("/") ? url + "sse" : url + "/sse";
}
}
- mcpServer.setUrl(url);
-
- mcpServerConfig.setMcpServers(Collections.singletonMap(mcpServerName, mcpServer));
- return mcpServerConfig;
- }
-
- public void convertDomainToGatewayIp(List gatewayIps) {
- List domains = this.mcpServerConfig.getDomains();
- for (DomainResult domain : domains) {
- if (StringUtils.equals(domain.getDomain(), "")) {
- if (gatewayIps.isEmpty()) {
- throw new BusinessException(ErrorCode.GATEWAY_ERROR, Resources.GATEWAY, "no available ip to replace ");
- }
- String randomGatewayIp = gatewayIps.get(new Random().nextInt(gatewayIps.size()));
- domain.setDomain(randomGatewayIp);
- }
- }
+ return MCPTransportConfig.builder()
+ .mcpServerName(mcpServerName)
+ .transportMode(transportMode)
+ .url(url)
+ .build();
}
@Data
@@ -120,19 +124,5 @@ public static class MCPServerConfig {
* for nacos
*/
private Object rawConfig;
-
- private String transportMode = MCPTransportMode.REMOTE.getMode();
- }
-
- @Getter
- public enum MCPTransportMode {
- LOCAL("Local"),
- REMOTE("Remote");
-
- private final String mode;
-
- MCPTransportMode(String mode) {
- this.mode = mode;
- }
}
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/MCPServerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/MCPServerResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/MCPServerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/MCPServerResult.java
index 654c87235..92aab08f5 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/MCPServerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/MCPServerResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/McpToolListResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/McpToolListResult.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/McpToolListResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/McpToolListResult.java
index a2fc72481..c754092f0 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/McpToolListResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/McpToolListResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
import io.modelcontextprotocol.spec.McpSchema;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/NacosMCPServerResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/NacosMCPServerResult.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/NacosMCPServerResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/NacosMCPServerResult.java
index dc9d43bff..51059150e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/mcp/NacosMCPServerResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/mcp/NacosMCPServerResult.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.mcp;
+package com.alibaba.himarket.dto.result.mcp;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import com.alibaba.nacos.api.ai.model.mcp.McpServerBasicInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/AIGWModelAPIResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/AIGWModelAPIResult.java
similarity index 79%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/AIGWModelAPIResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/AIGWModelAPIResult.java
index dc61e4854..2907a6146 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/AIGWModelAPIResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/AIGWModelAPIResult.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.result.model;
+package com.alibaba.himarket.dto.result.model;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/GatewayModelAPIResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/GatewayModelAPIResult.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/GatewayModelAPIResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/GatewayModelAPIResult.java
index 904ba21c3..073c87c73 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/GatewayModelAPIResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/GatewayModelAPIResult.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.result.model;
+package com.alibaba.himarket.dto.result.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/HigressModelResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/HigressModelResult.java
similarity index 77%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/HigressModelResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/HigressModelResult.java
index 395e09727..740a112e0 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/HigressModelResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/HigressModelResult.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.dto.result.model;
+package com.alibaba.himarket.dto.result.model;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/ModelConfigResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/ModelConfigResult.java
similarity index 68%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/ModelConfigResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/ModelConfigResult.java
index cbe2829a5..d198983f0 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/model/ModelConfigResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/model/ModelConfigResult.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.dto.result.model;
+package com.alibaba.himarket.dto.result.model;
-import com.alibaba.apiopenplatform.dto.result.httpapi.HttpRouteResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.ServiceResult;
+import com.alibaba.himarket.dto.result.httpapi.HttpRouteResult;
+import com.alibaba.himarket.dto.result.httpapi.ServiceResult;
import lombok.Builder;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/MseNacosResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/MseNacosResult.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/MseNacosResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/MseNacosResult.java
index 31fb08db3..111764f6f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/MseNacosResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/MseNacosResult.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.nacos;
+package com.alibaba.himarket.dto.result.nacos;
import com.aliyun.mse20190531.models.ListClustersResponseBody.ListClustersResponseBodyData;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/NacosNamespaceResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosNamespaceResult.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/NacosNamespaceResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosNamespaceResult.java
index d8e027082..04004ee05 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/NacosNamespaceResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosNamespaceResult.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.nacos;
+package com.alibaba.himarket.dto.result.nacos;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.converter.OutputConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/NacosResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosResult.java
similarity index 87%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/NacosResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosResult.java
index c453da4fc..41a2c1beb 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/nacos/NacosResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosResult.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.nacos;
+package com.alibaba.himarket.dto.result.nacos;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.NacosInstance;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.NacosInstance;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/portal/PortalResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/portal/PortalResult.java
similarity index 79%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/portal/PortalResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/portal/PortalResult.java
index 4ba2b5e35..d268d276c 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/portal/PortalResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/portal/PortalResult.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.portal;
+package com.alibaba.himarket.dto.result.portal;
import cn.hutool.core.collection.CollUtil;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.Portal;
-import com.alibaba.apiopenplatform.entity.PortalDomain;
-import com.alibaba.apiopenplatform.support.enums.DomainType;
-import com.alibaba.apiopenplatform.support.enums.ProtocolType;
-import com.alibaba.apiopenplatform.support.portal.PortalSettingConfig;
-import com.alibaba.apiopenplatform.support.portal.PortalUiConfig;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.Portal;
+import com.alibaba.himarket.entity.PortalDomain;
+import com.alibaba.himarket.support.enums.DomainType;
+import com.alibaba.himarket.support.enums.ProtocolType;
+import com.alibaba.himarket.support.portal.PortalSettingConfig;
+import com.alibaba.himarket.support.portal.PortalUiConfig;
import lombok.Data;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductPublicationResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductPublicationResult.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductPublicationResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductPublicationResult.java
index 3f6df830f..ccb28d31c 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductPublicationResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductPublicationResult.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.product;
+package com.alibaba.himarket.dto.result.product;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.ProductPublication;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.ProductPublication;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductRefResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductRefResult.java
similarity index 76%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductRefResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductRefResult.java
index bf104fba7..287155166 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductRefResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductRefResult.java
@@ -17,14 +17,14 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.product;
-
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.ProductRef;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
-import com.alibaba.apiopenplatform.support.product.HigressRefConfig;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
+package com.alibaba.himarket.dto.result.product;
+
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.ProductRef;
+import com.alibaba.himarket.support.enums.SourceType;
+import com.alibaba.himarket.support.product.APIGRefConfig;
+import com.alibaba.himarket.support.product.HigressRefConfig;
+import com.alibaba.himarket.support.product.NacosRefConfig;
import lombok.Data;
@Data
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductResult.java
similarity index 68%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductResult.java
index e1f1c6c98..3e5738509 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/ProductResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/ProductResult.java
@@ -17,19 +17,19 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.product;
-
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.dto.result.ProductCategoryResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIConfigResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentConfigResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
-import com.alibaba.apiopenplatform.dto.result.model.ModelConfigResult;
-import com.alibaba.apiopenplatform.entity.Product;
-import com.alibaba.apiopenplatform.support.enums.ProductStatus;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
-import com.alibaba.apiopenplatform.support.product.Icon;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
+package com.alibaba.himarket.dto.result.product;
+
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.dto.result.ProductCategoryResult;
+import com.alibaba.himarket.dto.result.httpapi.APIConfigResult;
+import com.alibaba.himarket.dto.result.agent.AgentConfigResult;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
+import com.alibaba.himarket.dto.result.model.ModelConfigResult;
+import com.alibaba.himarket.entity.Product;
+import com.alibaba.himarket.support.enums.ProductStatus;
+import com.alibaba.himarket.support.enums.ProductType;
+import com.alibaba.himarket.support.product.Icon;
+import com.alibaba.himarket.support.product.ProductFeature;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/SubscriptionResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/SubscriptionResult.java
similarity index 83%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/SubscriptionResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/SubscriptionResult.java
index 7dda326cb..74cb4ed73 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/product/SubscriptionResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/product/SubscriptionResult.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.product;
+package com.alibaba.himarket.dto.result.product;
-import com.alibaba.apiopenplatform.dto.converter.OutputConverter;
-import com.alibaba.apiopenplatform.entity.ProductSubscription;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
+import com.alibaba.himarket.dto.converter.OutputConverter;
+import com.alibaba.himarket.entity.ProductSubscription;
+import com.alibaba.himarket.support.enums.ProductType;
import lombok.Data;
import java.time.LocalDateTime;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/search/AvailableSearchEngineResult.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/search/AvailableSearchEngineResult.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/search/AvailableSearchEngineResult.java
rename to himarket-server/src/main/java/com/alibaba/himarket/dto/result/search/AvailableSearchEngineResult.java
index 489a11600..e761a218a 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/result/search/AvailableSearchEngineResult.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/result/search/AvailableSearchEngineResult.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.dto.result.search;
+package com.alibaba.himarket.dto.result.search;
-import com.alibaba.apiopenplatform.support.enums.SearchEngineType;
+import com.alibaba.himarket.support.enums.SearchEngineType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/AdministratorService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/AdministratorService.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/AdministratorService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/AdministratorService.java
index e66a8b517..39e05888b 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/AdministratorService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/AdministratorService.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.result.admin.AdminResult;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.admin.AdminResult;
+import com.alibaba.himarket.dto.result.common.AuthResult;
/**
* 管理员服务接口,定义管理员相关的核心操作方法
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatAttachmentService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ChatAttachmentService.java
similarity index 59%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatAttachmentService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/ChatAttachmentService.java
index 8a48cbc63..7a53bad80 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatAttachmentService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ChatAttachmentService.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
/**
* @author zh
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ChatService.java
similarity index 67%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/ChatService.java
index 8307a7552..e01806fe4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ChatService.java
@@ -1,8 +1,8 @@
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.core.event.ChatSessionDeletingEvent;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage;
+import com.alibaba.himarket.core.event.ChatSessionDeletingEvent;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.dto.result.chat.ChatAnswerMessage;
import jakarta.servlet.http.HttpServletResponse;
import reactor.core.publisher.Flux;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatSessionService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ChatSessionService.java
similarity index 76%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatSessionService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/ChatSessionService.java
index 0407cfd22..0bdca2239 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ChatSessionService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ChatSessionService.java
@@ -1,12 +1,12 @@
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.entity.ChatSession;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatSessionResult;
-import com.alibaba.apiopenplatform.dto.result.chat.ConversationResult_V1;
-import com.alibaba.apiopenplatform.dto.result.chat.ProductConversationResult;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatSessionParam;
-import com.alibaba.apiopenplatform.dto.params.chat.UpdateChatSessionParam;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.entity.ChatSession;
+import com.alibaba.himarket.dto.result.chat.ChatSessionResult;
+import com.alibaba.himarket.dto.result.chat.ConversationResult_V1;
+import com.alibaba.himarket.dto.result.chat.ProductConversationResult;
+import com.alibaba.himarket.dto.params.chat.CreateChatSessionParam;
+import com.alibaba.himarket.dto.params.chat.UpdateChatSessionParam;
import org.springframework.data.domain.Pageable;
import java.util.*;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ConsumerService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java
similarity index 82%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/ConsumerService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java
index 151740b5b..6836a03e0 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ConsumerService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java
@@ -17,19 +17,19 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
-
-import com.alibaba.apiopenplatform.dto.params.consumer.QueryConsumerParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateConsumerParam;
-import com.alibaba.apiopenplatform.dto.result.consumer.ConsumerResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.ConsumerCredentialResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateCredentialParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.UpdateCredentialParam;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateSubscriptionParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.QuerySubscriptionParam;
+package com.alibaba.himarket.service;
+
+import com.alibaba.himarket.dto.params.consumer.QueryConsumerParam;
+import com.alibaba.himarket.dto.params.consumer.CreateConsumerParam;
+import com.alibaba.himarket.dto.result.consumer.ConsumerResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.consumer.ConsumerCredentialResult;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.params.consumer.CreateCredentialParam;
+import com.alibaba.himarket.dto.params.consumer.UpdateCredentialParam;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.dto.params.consumer.CreateSubscriptionParam;
+import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
import org.springframework.data.domain.Pageable;
public interface ConsumerService {
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/DeveloperService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java
similarity index 83%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/DeveloperService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java
index 1b5876e4f..c0fcc9c1e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/DeveloperService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java
@@ -17,17 +17,17 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
-
-import com.alibaba.apiopenplatform.core.event.PortalDeletingEvent;
-import com.alibaba.apiopenplatform.dto.params.developer.CreateDeveloperParam;
-import com.alibaba.apiopenplatform.dto.params.developer.CreateExternalDeveloperParam;
-import com.alibaba.apiopenplatform.dto.params.developer.QueryDeveloperParam;
-import com.alibaba.apiopenplatform.dto.params.developer.UpdateDeveloperParam;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.developer.DeveloperResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.support.enums.DeveloperStatus;
+package com.alibaba.himarket.service;
+
+import com.alibaba.himarket.core.event.PortalDeletingEvent;
+import com.alibaba.himarket.dto.params.developer.CreateDeveloperParam;
+import com.alibaba.himarket.dto.params.developer.CreateExternalDeveloperParam;
+import com.alibaba.himarket.dto.params.developer.QueryDeveloperParam;
+import com.alibaba.himarket.dto.params.developer.UpdateDeveloperParam;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.developer.DeveloperResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.support.enums.DeveloperStatus;
import org.springframework.data.domain.Pageable;
import jakarta.servlet.http.HttpServletRequest;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/GatewayService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/GatewayService.java
similarity index 79%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/GatewayService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/GatewayService.java
index ffd76af1d..f27cd2f68 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/GatewayService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/GatewayService.java
@@ -17,21 +17,20 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
-
-import com.alibaba.apiopenplatform.dto.params.gateway.*;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.AIGWModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.entity.Consumer;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+package com.alibaba.himarket.service;
+
+import com.alibaba.himarket.dto.params.gateway.*;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.entity.Consumer;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import org.springframework.data.domain.Pageable;
import java.util.List;
@@ -59,6 +58,14 @@ public interface GatewayService {
*/
void importGateway(ImportGatewayParam param);
+ /**
+ * Update gateway config
+ *
+ * @param gatewayId
+ * @param param
+ */
+ void updateGateway(String gatewayId, UpdateGatewayParam param);
+
GatewayResult getGateway(String gatewayId);
/**
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/IdpService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/IdpService.java
similarity index 85%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/IdpService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/IdpService.java
index fa75b16ad..43e8530f8 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/IdpService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/IdpService.java
@@ -18,11 +18,11 @@
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.support.enums.PublicKeyFormat;
-import com.alibaba.apiopenplatform.support.portal.OAuth2Config;
-import com.alibaba.apiopenplatform.support.portal.OidcConfig;
+import com.alibaba.himarket.support.enums.PublicKeyFormat;
+import com.alibaba.himarket.support.portal.OAuth2Config;
+import com.alibaba.himarket.support.portal.OidcConfig;
import java.security.PublicKey;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/LlmService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/LlmService.java
similarity index 63%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/LlmService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/LlmService.java
index fc2caec66..902b5126e 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/LlmService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/LlmService.java
@@ -1,9 +1,9 @@
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.params.chat.InvokeModelParam;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmInvokeResult;
-import com.alibaba.apiopenplatform.support.enums.AIProtocol;
+import com.alibaba.himarket.dto.params.chat.InvokeModelParam;
+import com.alibaba.himarket.dto.result.chat.ChatAnswerMessage;
+import com.alibaba.himarket.dto.result.chat.LlmInvokeResult;
+import com.alibaba.himarket.support.enums.AIProtocol;
import jakarta.servlet.http.HttpServletResponse;
import reactor.core.publisher.Flux;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/NacosService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/NacosService.java
similarity index 85%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/NacosService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/NacosService.java
index 927a9ffbc..a7eff4c0c 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/NacosService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/NacosService.java
@@ -17,19 +17,19 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.params.nacos.CreateNacosParam;
-import com.alibaba.apiopenplatform.dto.params.nacos.QueryNacosParam;
-import com.alibaba.apiopenplatform.dto.params.nacos.UpdateNacosParam;
-import com.alibaba.apiopenplatform.dto.result.nacos.MseNacosResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.NacosMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.nacos.NacosResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
+import com.alibaba.himarket.dto.params.nacos.CreateNacosParam;
+import com.alibaba.himarket.dto.params.nacos.QueryNacosParam;
+import com.alibaba.himarket.dto.params.nacos.UpdateNacosParam;
+import com.alibaba.himarket.dto.result.nacos.MseNacosResult;
+import com.alibaba.himarket.dto.result.mcp.NacosMCPServerResult;
+import com.alibaba.himarket.dto.result.nacos.NacosResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.support.product.NacosRefConfig;
import org.springframework.data.domain.Pageable;
-import com.alibaba.apiopenplatform.dto.result.nacos.NacosNamespaceResult;
-import com.alibaba.apiopenplatform.dto.result.agent.NacosAgentResult;
+import com.alibaba.himarket.dto.result.nacos.NacosNamespaceResult;
+import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
/**
* Nacos服务接口,定义Nacos实例管理和MCP服务器配置相关操作
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/OAuth2Service.java b/himarket-server/src/main/java/com/alibaba/himarket/service/OAuth2Service.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/OAuth2Service.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/OAuth2Service.java
index 3bb6b25f7..bf5fbc95f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/OAuth2Service.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/OAuth2Service.java
@@ -18,9 +18,9 @@
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.common.AuthResult;
/**
* @author zh
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/OidcService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/OidcService.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/OidcService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/OidcService.java
index 23bbfe146..140ace3c4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/OidcService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/OidcService.java
@@ -18,10 +18,10 @@
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.idp.IdpResult;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.idp.IdpResult;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/PortalService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/PortalService.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/PortalService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/PortalService.java
index edc261f86..0458bd331 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/PortalService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/PortalService.java
@@ -17,15 +17,15 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
-
-import com.alibaba.apiopenplatform.dto.params.portal.*;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.portal.PortalResult;
-import com.alibaba.apiopenplatform.dto.params.consumer.QuerySubscriptionParam;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.support.enums.SearchEngineType;
-import com.alibaba.apiopenplatform.support.portal.SearchEngineConfig;
+package com.alibaba.himarket.service;
+
+import com.alibaba.himarket.dto.params.portal.*;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.portal.PortalResult;
+import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.support.enums.SearchEngineType;
+import com.alibaba.himarket.support.portal.SearchEngineConfig;
import org.springframework.data.domain.Pageable;
public interface PortalService {
@@ -120,14 +120,6 @@ public interface PortalService {
*/
String getDefaultPortal();
- /**
- * 获取门户的Dashboard监控面板URL
- *
- * @param portalId 门户ID
- * @return Dashboard URL
- */
- String getDashboard(String portalId);
-
// ========== 搜索引擎配置查询 ==========
/**
@@ -137,7 +129,7 @@ public interface PortalService {
* @param portalId Portal ID
* @param engineType 搜索引擎类型
* @return API Key(自动解密)
- * @throws com.alibaba.apiopenplatform.core.exception.BusinessException 如果未配置搜索引擎或搜索引擎未启用
+ * @throws com.alibaba.himarket.core.exception.BusinessException 如果未配置搜索引擎或搜索引擎未启用
*/
String getSearchEngineApiKey(String portalId, SearchEngineType engineType);
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ProductCategoryService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ProductCategoryService.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/ProductCategoryService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/ProductCategoryService.java
index e0930a618..4d13c1d54 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ProductCategoryService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ProductCategoryService.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.params.category.*;
-import com.alibaba.apiopenplatform.dto.params.category.CreateProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.ProductCategoryResult;
+import com.alibaba.himarket.dto.params.category.*;
+import com.alibaba.himarket.dto.params.category.CreateProductCategoryParam;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.ProductCategoryResult;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ProductService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ProductService.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/ProductService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/ProductService.java
index ed4fcc058..80794f5e3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/ProductService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ProductService.java
@@ -17,16 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
-
-import com.alibaba.apiopenplatform.core.event.PortalDeletingEvent;
-import com.alibaba.apiopenplatform.dto.params.product.*;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.McpToolListResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductPublicationResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
+package com.alibaba.himarket.service;
+
+import com.alibaba.himarket.core.event.PortalDeletingEvent;
+import com.alibaba.himarket.dto.params.product.*;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.mcp.McpToolListResult;
+import com.alibaba.himarket.dto.result.product.ProductPublicationResult;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
import org.springframework.data.domain.Pageable;
import java.util.List;
@@ -132,7 +132,15 @@ public interface ProductService {
*/
void handlePortalDeletion(PortalDeletingEvent event);
- Map getProducts(List productIds);
+ /**
+ * Get API products, if withConfig is true, additional configuration information will be loaded
+ * including categories, API config, MCP config, agent config and model config
+ *
+ * @param productIds
+ * @param withConfig
+ * @return
+ */
+ Map getProducts(List productIds, boolean withConfig);
/**
* Get API product dashboard monitoring panel URL
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/SearchRewriteService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/SearchRewriteService.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/SearchRewriteService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/SearchRewriteService.java
index 0cc71eaea..26a4bddcb 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/SearchRewriteService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/SearchRewriteService.java
@@ -18,11 +18,11 @@
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.search.SearchInput;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.search.SearchInput;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/SlsLogService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/SlsLogService.java
similarity index 73%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/SlsLogService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/SlsLogService.java
index 9af14ca25..2e2161bb2 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/SlsLogService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/SlsLogService.java
@@ -1,10 +1,10 @@
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryResponse;
-import com.alibaba.apiopenplatform.dto.params.sls.SlsCheckLogstoreRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.SlsCheckProjectRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.SlsCommonQueryRequest;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryRequest;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryResponse;
+import com.alibaba.himarket.dto.params.sls.SlsCheckLogstoreRequest;
+import com.alibaba.himarket.dto.params.sls.SlsCheckProjectRequest;
+import com.alibaba.himarket.dto.params.sls.SlsCommonQueryRequest;
/**
* 通用SLS日志查询服务
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/TalkSearchAbilityService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/TalkSearchAbilityService.java
similarity index 81%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/TalkSearchAbilityService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/TalkSearchAbilityService.java
index a96d5f37a..f0c61abd3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/TalkSearchAbilityService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/TalkSearchAbilityService.java
@@ -17,11 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.support.chat.search.SearchContext;
-import com.alibaba.apiopenplatform.support.chat.search.SearchInput;
-import com.alibaba.apiopenplatform.support.chat.search.SearchOutput;
+import com.alibaba.himarket.support.chat.search.SearchContext;
+import com.alibaba.himarket.support.chat.search.SearchInput;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/TalkSearchService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/TalkSearchService.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/TalkSearchService.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/TalkSearchService.java
index 73c0cf5b8..ff7f02bc6 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/TalkSearchService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/TalkSearchService.java
@@ -17,10 +17,10 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service;
+package com.alibaba.himarket.service;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.support.chat.ChatMessage;
import java.util.List;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/AIGWOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/AIGWOperator.java
similarity index 93%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/AIGWOperator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/AIGWOperator.java
index d93f276cc..ea0f7c6a3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/AIGWOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/AIGWOperator.java
@@ -17,33 +17,33 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway;
+package com.alibaba.himarket.service.gateway;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.APIGMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentConfigResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.HttpRouteResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
-import com.alibaba.apiopenplatform.dto.result.model.AIGWModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.ModelConfigResult;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.service.gateway.client.APIGClient;
-import com.alibaba.apiopenplatform.support.consumer.APIGAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.APIGAPIType;
-import com.alibaba.apiopenplatform.support.enums.APIGResourceType;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.mcp.APIGMCPServerResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.agent.AgentConfigResult;
+import com.alibaba.himarket.dto.result.httpapi.HttpRouteResult;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
+import com.alibaba.himarket.dto.result.model.AIGWModelAPIResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.dto.result.model.ModelConfigResult;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.service.gateway.client.APIGClient;
+import com.alibaba.himarket.support.consumer.APIGAuthConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.enums.APIGAPIType;
+import com.alibaba.himarket.support.enums.APIGResourceType;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.product.APIGRefConfig;
import com.aliyun.sdk.gateway.pop.exception.PopClientException;
import com.aliyun.sdk.service.apig20240327.models.*;
import lombok.extern.slf4j.Slf4j;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/APIGOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/APIGOperator.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/APIGOperator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/APIGOperator.java
index f4c42e0d2..e7652f8d6 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/APIGOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/APIGOperator.java
@@ -17,35 +17,35 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway;
+package com.alibaba.himarket.service.gateway;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.dto.params.gateway.QueryAPIGParam;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIConfigResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.support.consumer.APIGAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
-import com.alibaba.apiopenplatform.support.enums.APIGAPIType;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.entity.Consumer;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.service.gateway.client.APIGClient;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
+import com.alibaba.himarket.dto.params.gateway.QueryAPIGParam;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.httpapi.APIConfigResult;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.support.consumer.APIGAuthConfig;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.enums.APIGAPIType;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.entity.Consumer;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.service.gateway.client.APIGClient;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
+import com.alibaba.himarket.support.product.APIGRefConfig;
import com.aliyun.sdk.gateway.pop.exception.PopClientException;
import com.aliyun.sdk.service.apig20240327.models.*;
import com.aliyun.sdk.service.apig20240327.models.CreateConsumerAuthorizationRulesRequest.AuthorizationRules;
@@ -57,7 +57,6 @@
import java.util.*;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import java.util.stream.Stream;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/AdpAIGatewayOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/AdpAIGatewayOperator.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/AdpAIGatewayOperator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/AdpAIGatewayOperator.java
index 864bcb892..23945a721 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/AdpAIGatewayOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/AdpAIGatewayOperator.java
@@ -18,31 +18,31 @@
*/
-package com.alibaba.apiopenplatform.service.gateway;
-
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.dto.params.gateway.QueryAdpAIGatewayParam;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.AdpGatewayInstanceResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.AdpMcpServerListResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.entity.Consumer;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.support.consumer.AdpAIAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
-import com.alibaba.apiopenplatform.service.gateway.client.AdpAIGatewayClient;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
+package com.alibaba.himarket.service.gateway;
+
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.dto.params.gateway.QueryAdpAIGatewayParam;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.AdpGatewayInstanceResult;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.dto.result.mcp.AdpMcpServerListResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.entity.Consumer;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.support.consumer.AdpAIAuthConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.service.gateway.client.AdpAIGatewayClient;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
+import com.alibaba.himarket.support.product.APIGRefConfig;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
import cn.hutool.json.JSONUtil;
import com.aliyun.sdk.service.apig20240327.models.HttpApiApiInfo;
import lombok.Data;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/ApsaraGatewayOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/ApsaraGatewayOperator.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/ApsaraGatewayOperator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/ApsaraGatewayOperator.java
index 47434e334..83c37d2fc 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/ApsaraGatewayOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/ApsaraGatewayOperator.java
@@ -1,28 +1,28 @@
-package com.alibaba.apiopenplatform.service.gateway;
+package com.alibaba.himarket.service.gateway;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.dto.params.gateway.QueryApsaraGatewayParam;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.AdpMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.entity.Consumer;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.service.gateway.client.ApsaraStackGatewayClient;
-import com.alibaba.apiopenplatform.support.consumer.AdpAIAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
-import com.alibaba.apiopenplatform.support.product.APIGRefConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.dto.params.gateway.QueryApsaraGatewayParam;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.dto.result.mcp.AdpMCPServerResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.entity.Consumer;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.service.gateway.client.ApsaraStackGatewayClient;
+import com.alibaba.himarket.support.consumer.AdpAIAuthConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.support.product.APIGRefConfig;
import com.aliyun.sdk.service.apig20240327.models.HttpApiApiInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/GatewayOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/GatewayOperator.java
similarity index 79%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/GatewayOperator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/GatewayOperator.java
index da36cbd4c..d25a455e6 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/GatewayOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/GatewayOperator.java
@@ -17,25 +17,24 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway;
-
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.AIGWModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.entity.*;
-import com.alibaba.apiopenplatform.service.gateway.client.APIGClient;
-import com.alibaba.apiopenplatform.service.gateway.client.GatewayClient;
-import com.alibaba.apiopenplatform.service.gateway.client.HigressClient;
-import com.alibaba.apiopenplatform.service.gateway.client.ApsaraStackGatewayClient;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+package com.alibaba.himarket.service.gateway;
+
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.entity.*;
+import com.alibaba.himarket.service.gateway.client.APIGClient;
+import com.alibaba.himarket.service.gateway.client.GatewayClient;
+import com.alibaba.himarket.service.gateway.client.HigressClient;
+import com.alibaba.himarket.service.gateway.client.ApsaraStackGatewayClient;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import com.aliyun.sdk.service.apig20240327.models.HttpApiApiInfo;
import lombok.extern.slf4j.Slf4j;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/APIGClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/APIGClient.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/APIGClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/APIGClient.java
index fe5d9fe2e..96cc7c5de 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/APIGClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/APIGClient.java
@@ -17,11 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.support.gateway.APIGConfig;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.apig20240327.AsyncClient;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/AdpAIGatewayClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/AdpAIGatewayClient.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/AdpAIGatewayClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/AdpAIGatewayClient.java
index b593f8f1f..d8f6632db 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/AdpAIGatewayClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/AdpAIGatewayClient.java
@@ -18,12 +18,12 @@
*/
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
import cn.hutool.crypto.digest.DigestUtil;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.support.gateway.AdpAIGatewayConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/ApsaraGatewayClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/ApsaraGatewayClient.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/ApsaraGatewayClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/ApsaraGatewayClient.java
index 56ebb93c8..f42be5ff5 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/ApsaraGatewayClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/ApsaraGatewayClient.java
@@ -1,10 +1,10 @@
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/ApsaraStackGatewayClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/ApsaraStackGatewayClient.java
similarity index 98%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/ApsaraStackGatewayClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/ApsaraStackGatewayClient.java
index 3939bdced..ef390bf38 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/ApsaraStackGatewayClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/ApsaraStackGatewayClient.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.apsarastack.csb220230206.Client;
import com.aliyun.apsarastack.csb220230206.models.*;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/GatewayClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/GatewayClient.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/GatewayClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/GatewayClient.java
index baf690a14..9f5f52234 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/GatewayClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/GatewayClient.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
import java.net.InetSocketAddress;
import java.net.Socket;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/HigressClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/HigressClient.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/HigressClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/HigressClient.java
index 7d8fc120c..c333c84cd 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/HigressClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/HigressClient.java
@@ -17,12 +17,12 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.service.gateway.factory.HTTPClientFactory;
-import com.alibaba.apiopenplatform.support.gateway.HigressConfig;
+import com.alibaba.himarket.service.gateway.factory.HTTPClientFactory;
+import com.alibaba.himarket.support.gateway.HigressConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/PopGatewayClient.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/PopGatewayClient.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/PopGatewayClient.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/PopGatewayClient.java
index 03bb14469..747727559 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/client/PopGatewayClient.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/client/PopGatewayClient.java
@@ -18,11 +18,11 @@
*/
-package com.alibaba.apiopenplatform.service.gateway.client;
+package com.alibaba.himarket.service.gateway.client;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.support.gateway.APIGConfig;
+import com.alibaba.himarket.support.gateway.APIGConfig;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/HTTPClientFactory.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/HTTPClientFactory.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/HTTPClientFactory.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/HTTPClientFactory.java
index cf1da6e33..e4ee01680 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/HTTPClientFactory.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/HTTPClientFactory.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway.factory;
+package com.alibaba.himarket.service.gateway.factory;
import lombok.extern.slf4j.Slf4j;
import okhttp3.ConnectionPool;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/SlsClientFactory.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/SlsClientFactory.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/SlsClientFactory.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/SlsClientFactory.java
index 81593e27f..711402ddf 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/SlsClientFactory.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/SlsClientFactory.java
@@ -1,11 +1,11 @@
-package com.alibaba.apiopenplatform.service.gateway.factory;
+package com.alibaba.himarket.service.gateway.factory;
import java.util.concurrent.TimeUnit;
-import com.alibaba.apiopenplatform.config.SlsConfig;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.support.enums.SlsAuthType;
+import com.alibaba.himarket.config.SlsConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.support.enums.SlsAuthType;
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.auth.Credentials;
@@ -14,7 +14,6 @@
import com.github.benmanes.caffeine.cache.Caffeine;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/SlsPresetSqlRegistry.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/SlsPresetSqlRegistry.java
similarity index 99%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/SlsPresetSqlRegistry.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/SlsPresetSqlRegistry.java
index 0a013740e..239346ddc 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/factory/SlsPresetSqlRegistry.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/factory/SlsPresetSqlRegistry.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.service.gateway.factory;
+package com.alibaba.himarket.service.gateway.factory;
import java.util.HashMap;
import java.util.Map;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AdministratorServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AdministratorServiceImpl.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AdministratorServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/AdministratorServiceImpl.java
index ffa98969d..4125a1b8f 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AdministratorServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AdministratorServiceImpl.java
@@ -17,23 +17,23 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
-
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.TokenUtil;
-import com.alibaba.apiopenplatform.dto.result.admin.AdminResult;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.entity.Administrator;
-import com.alibaba.apiopenplatform.repository.AdministratorRepository;
-import com.alibaba.apiopenplatform.service.AdministratorService;
-import com.alibaba.apiopenplatform.core.utils.PasswordHasher;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
+package com.alibaba.himarket.service.impl;
+
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.TokenUtil;
+import com.alibaba.himarket.dto.result.admin.AdminResult;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.entity.Administrator;
+import com.alibaba.himarket.repository.AdministratorRepository;
+import com.alibaba.himarket.service.AdministratorService;
+import com.alibaba.himarket.core.utils.PasswordHasher;
+import com.alibaba.himarket.core.utils.IdGenerator;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
@Service
@RequiredArgsConstructor
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatAttachmentServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatAttachmentServiceImpl.java
similarity index 59%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatAttachmentServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatAttachmentServiceImpl.java
index 32f2bd44b..df40a22f9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatAttachmentServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatAttachmentServiceImpl.java
@@ -1,7 +1,7 @@
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
-import com.alibaba.apiopenplatform.repository.ChatAttachmentRepository;
-import com.alibaba.apiopenplatform.service.ChatAttachmentService;
+import com.alibaba.himarket.repository.ChatAttachmentRepository;
+import com.alibaba.himarket.service.ChatAttachmentService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatServiceImpl.java
similarity index 81%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatServiceImpl.java
index b1b4ccd16..4d0833fc3 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatServiceImpl.java
@@ -1,40 +1,39 @@
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.event.ChatSessionDeletingEvent;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.CacheUtil;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.entity.Chat;
-import com.alibaba.apiopenplatform.entity.ChatAttachment;
-import com.alibaba.apiopenplatform.entity.ChatSession;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.entity.ProductSubscription;
-import com.alibaba.apiopenplatform.repository.ChatAttachmentRepository;
-import com.alibaba.apiopenplatform.repository.SubscriptionRepository;
-import com.alibaba.apiopenplatform.service.*;
-import com.alibaba.apiopenplatform.repository.ChatRepository;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
-import com.alibaba.apiopenplatform.dto.params.chat.InvokeModelParam;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmInvokeResult;
-import com.alibaba.apiopenplatform.support.chat.attachment.ChatAttachmentConfig;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.content.*;
-import com.alibaba.apiopenplatform.support.chat.mcp.McpServerConfig;
-import com.alibaba.apiopenplatform.support.enums.ChatAttachmentType;
-import com.alibaba.apiopenplatform.support.enums.ChatRole;
-import com.alibaba.apiopenplatform.support.enums.ChatStatus;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
+import com.alibaba.himarket.core.event.ChatSessionDeletingEvent;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.CacheUtil;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.result.chat.ChatAnswerMessage;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.entity.Chat;
+import com.alibaba.himarket.entity.ChatAttachment;
+import com.alibaba.himarket.entity.ChatSession;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.entity.ProductSubscription;
+import com.alibaba.himarket.repository.ChatAttachmentRepository;
+import com.alibaba.himarket.repository.SubscriptionRepository;
+import com.alibaba.himarket.service.*;
+import com.alibaba.himarket.repository.ChatRepository;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.dto.params.chat.InvokeModelParam;
+import com.alibaba.himarket.dto.result.chat.LlmInvokeResult;
+import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.content.*;
+import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
+import com.alibaba.himarket.support.enums.ChatAttachmentType;
+import com.alibaba.himarket.support.enums.ChatRole;
+import com.alibaba.himarket.support.enums.ChatStatus;
+import com.alibaba.himarket.support.enums.ProductType;
import com.github.benmanes.caffeine.cache.Cache;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -89,9 +88,7 @@ public Flux chat(CreateChatParam param, HttpServletResponse r
List chatMessages = mergeAndTruncateMessages(currentMessage, historyMessages);
- List mcpResults = buildMcpServerConfigs(param);
-
- InvokeModelParam invokeModelParam = buildInvokeModelParam(param, chatMessages, mcpResults, chat);
+ InvokeModelParam invokeModelParam = buildInvokeModelParam(param, chatMessages, chat);
// Invoke LLM
return llmService.invokeLLM(invokeModelParam, response, r -> updateChatResult(chat.getChatId(), r));
@@ -145,22 +142,6 @@ private void performAllChecks(CreateChatParam param) {
// check once more
}
-
- private List buildMcpServerConfigs(CreateChatParam param) {
- List mcpProducts = param.getMcpProducts();
- if (CollectionUtil.isEmpty(mcpProducts)) {
- return Collections.emptyList();
- }
- List mcpServerConfigs = new ArrayList<>();
- mcpProducts.forEach(productId -> {
- ProductResult product = productService.getProduct(productId);
- if (product.getType() == ProductType.MCP_SERVER && product.getMcpConfig() != null) {
- mcpServerConfigs.add(product.getMcpConfig().toStandardMcpServer());
- }
- });
- return mcpServerConfigs;
- }
-
private List buildHistoryMessages(CreateChatParam param) {
// 1. Get successful chat records
List chats = chatRepository.findBySessionIdAndStatus(
@@ -334,7 +315,7 @@ private List mergeAndTruncateMessages(ChatMessage currentMessage, L
return messages;
}
- private InvokeModelParam buildInvokeModelParam(CreateChatParam param, List chatMessages, List mcpServerConfigs, Chat chat) {
+ private InvokeModelParam buildInvokeModelParam(CreateChatParam param, List chatMessages, Chat chat) {
// Get product config
ProductResult productResult = productService.getProduct(param.getProductId());
@@ -350,13 +331,10 @@ private InvokeModelParam buildInvokeModelParam(CreateChatParam param, List buildMCPConfigs(CreateChatParam param) {
+ if (CollectionUtil.isEmpty(param.getMcpProducts())) {
+ return CollUtil.empty(List.class);
+ }
+
+ return productService.getProducts(param.getMcpProducts(), true).values().stream()
+ .filter(product -> product.getType() == ProductType.MCP_SERVER || product.getMcpConfig() != null)
+ .map(product -> product.getMcpConfig().toTransportConfig())
+ .collect(Collectors.toList());
+ }
+
@EventListener
@Async("taskExecutor")
@Override
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatSessionServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatSessionServiceImpl.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatSessionServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatSessionServiceImpl.java
index 4e4e62d65..62e146b53 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ChatSessionServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ChatSessionServiceImpl.java
@@ -1,22 +1,22 @@
-package com.alibaba.apiopenplatform.service.impl;
-
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.event.ChatSessionDeletingEvent;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.entity.ChatSession;
-import com.alibaba.apiopenplatform.service.ChatSessionService;
-import com.alibaba.apiopenplatform.service.ProductService;
-import com.alibaba.apiopenplatform.repository.ChatRepository;
-import com.alibaba.apiopenplatform.repository.ChatSessionRepository;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatSessionResult;
-import com.alibaba.apiopenplatform.dto.result.chat.ConversationResult_V1;
-import com.alibaba.apiopenplatform.dto.result.chat.ProductConversationResult;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatSessionParam;
-import com.alibaba.apiopenplatform.dto.params.chat.UpdateChatSessionParam;
+package com.alibaba.himarket.service.impl;
+
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.event.ChatSessionDeletingEvent;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.entity.ChatSession;
+import com.alibaba.himarket.service.ChatSessionService;
+import com.alibaba.himarket.service.ProductService;
+import com.alibaba.himarket.repository.ChatRepository;
+import com.alibaba.himarket.repository.ChatSessionRepository;
+import com.alibaba.himarket.dto.result.chat.ChatSessionResult;
+import com.alibaba.himarket.dto.result.chat.ConversationResult_V1;
+import com.alibaba.himarket.dto.result.chat.ProductConversationResult;
+import com.alibaba.himarket.dto.params.chat.CreateChatSessionParam;
+import com.alibaba.himarket.dto.params.chat.UpdateChatSessionParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationEventPublisher;
@@ -26,7 +26,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
-import com.alibaba.apiopenplatform.entity.Chat;
+import com.alibaba.himarket.entity.Chat;
import java.util.*;
import java.util.stream.Collectors;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ConsumerServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java
similarity index 92%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ConsumerServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java
index c3815e8ea..c97eb78d1 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ConsumerServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java
@@ -17,43 +17,43 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.event.DeveloperDeletingEvent;
-import com.alibaba.apiopenplatform.core.event.ProductDeletingEvent;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.params.consumer.QueryConsumerParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateConsumerParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateCredentialParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.UpdateCredentialParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateSubscriptionParam;
-import com.alibaba.apiopenplatform.dto.params.consumer.QuerySubscriptionParam;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.ConsumerCredentialResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.ConsumerResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.dto.result.portal.PortalResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.entity.*;
-import com.alibaba.apiopenplatform.repository.ConsumerRepository;
-import com.alibaba.apiopenplatform.repository.ConsumerCredentialRepository;
-import com.alibaba.apiopenplatform.repository.SubscriptionRepository;
-import com.alibaba.apiopenplatform.service.*;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.HmacConfig;
-import com.alibaba.apiopenplatform.support.enums.CredentialMode;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.event.DeveloperDeletingEvent;
+import com.alibaba.himarket.core.event.ProductDeletingEvent;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.params.consumer.QueryConsumerParam;
+import com.alibaba.himarket.dto.params.consumer.CreateConsumerParam;
+import com.alibaba.himarket.dto.params.consumer.CreateCredentialParam;
+import com.alibaba.himarket.dto.params.consumer.UpdateCredentialParam;
+import com.alibaba.himarket.dto.params.consumer.CreateSubscriptionParam;
+import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.consumer.ConsumerCredentialResult;
+import com.alibaba.himarket.dto.result.consumer.ConsumerResult;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.portal.PortalResult;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.entity.*;
+import com.alibaba.himarket.repository.ConsumerRepository;
+import com.alibaba.himarket.repository.ConsumerCredentialRepository;
+import com.alibaba.himarket.repository.SubscriptionRepository;
+import com.alibaba.himarket.service.*;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.consumer.HmacConfig;
+import com.alibaba.himarket.support.enums.CredentialMode;
+import com.alibaba.himarket.support.enums.SourceType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import cn.hutool.core.util.BooleanUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -75,8 +75,8 @@
import java.util.*;
import java.util.stream.Collectors;
-import com.alibaba.apiopenplatform.support.enums.SubscriptionStatus;
-import com.alibaba.apiopenplatform.repository.ConsumerRefRepository;
+import com.alibaba.himarket.support.enums.SubscriptionStatus;
+import com.alibaba.himarket.repository.ConsumerRefRepository;
@Service
@RequiredArgsConstructor
@@ -356,7 +356,7 @@ public PageResult listSubscriptions(String consumerId, Query
List productIds = subscriptions.getContent().stream()
.map(ProductSubscription::getProductId)
.collect(Collectors.toList());
- Map products = productService.getProducts(productIds);
+ Map products = productService.getProducts(productIds, false);
return new PageResult().convertFrom(subscriptions, s -> {
SubscriptionResult r = new SubscriptionResult().convertFrom(s);
ProductResult product = products.get(r.getProductId());
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/DeveloperServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java
similarity index 87%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/DeveloperServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java
index be3de168a..2120241a9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/DeveloperServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java
@@ -17,34 +17,34 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.event.DeveloperDeletingEvent;
-import com.alibaba.apiopenplatform.core.event.PortalDeletingEvent;
-import com.alibaba.apiopenplatform.core.utils.TokenUtil;
-import com.alibaba.apiopenplatform.dto.params.consumer.CreateConsumerParam;
-import com.alibaba.apiopenplatform.dto.params.developer.CreateDeveloperParam;
-import com.alibaba.apiopenplatform.dto.params.developer.CreateExternalDeveloperParam;
-import com.alibaba.apiopenplatform.dto.params.developer.QueryDeveloperParam;
-import com.alibaba.apiopenplatform.dto.params.developer.UpdateDeveloperParam;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.developer.DeveloperResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.entity.Developer;
-import com.alibaba.apiopenplatform.entity.Portal;
-import com.alibaba.apiopenplatform.repository.DeveloperRepository;
-import com.alibaba.apiopenplatform.repository.PortalRepository;
-import com.alibaba.apiopenplatform.service.ConsumerService;
-import com.alibaba.apiopenplatform.service.DeveloperService;
-import com.alibaba.apiopenplatform.core.utils.PasswordHasher;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.repository.DeveloperExternalIdentityRepository;
-import com.alibaba.apiopenplatform.entity.DeveloperExternalIdentity;
-import com.alibaba.apiopenplatform.support.enums.DeveloperAuthType;
-import com.alibaba.apiopenplatform.support.enums.DeveloperStatus;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.event.DeveloperDeletingEvent;
+import com.alibaba.himarket.core.event.PortalDeletingEvent;
+import com.alibaba.himarket.core.utils.TokenUtil;
+import com.alibaba.himarket.dto.params.consumer.CreateConsumerParam;
+import com.alibaba.himarket.dto.params.developer.CreateDeveloperParam;
+import com.alibaba.himarket.dto.params.developer.CreateExternalDeveloperParam;
+import com.alibaba.himarket.dto.params.developer.QueryDeveloperParam;
+import com.alibaba.himarket.dto.params.developer.UpdateDeveloperParam;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.developer.DeveloperResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.entity.Developer;
+import com.alibaba.himarket.entity.Portal;
+import com.alibaba.himarket.repository.DeveloperRepository;
+import com.alibaba.himarket.repository.PortalRepository;
+import com.alibaba.himarket.service.ConsumerService;
+import com.alibaba.himarket.service.DeveloperService;
+import com.alibaba.himarket.core.utils.PasswordHasher;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.repository.DeveloperExternalIdentityRepository;
+import com.alibaba.himarket.entity.DeveloperExternalIdentity;
+import com.alibaba.himarket.support.enums.DeveloperAuthType;
+import com.alibaba.himarket.support.enums.DeveloperStatus;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationEventPublisher;
@@ -55,9 +55,9 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
import jakarta.persistence.criteria.Predicate;
import java.util.*;
@@ -327,7 +327,7 @@ private Specification buildSpecification(QueryDeveloperParam param) {
@Override
public void logout(HttpServletRequest request) {
// 使用TokenUtil处理登出逻辑
- com.alibaba.apiopenplatform.core.utils.TokenUtil.revokeToken(request);
+ com.alibaba.himarket.core.utils.TokenUtil.revokeToken(request);
}
@Override
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/GatewayServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/GatewayServiceImpl.java
similarity index 86%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/GatewayServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/GatewayServiceImpl.java
index 430027dbf..1c5b4a843 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/GatewayServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/GatewayServiceImpl.java
@@ -17,32 +17,32 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.params.gateway.*;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.entity.*;
-import com.alibaba.apiopenplatform.repository.GatewayRepository;
-import com.alibaba.apiopenplatform.repository.ProductRefRepository;
-import com.alibaba.apiopenplatform.service.GatewayService;
-import com.alibaba.apiopenplatform.service.gateway.GatewayOperator;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.APIGAPIType;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.params.gateway.*;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.entity.*;
+import com.alibaba.himarket.repository.GatewayRepository;
+import com.alibaba.himarket.repository.ProductRefRepository;
+import com.alibaba.himarket.service.GatewayService;
+import com.alibaba.himarket.service.gateway.GatewayOperator;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.enums.APIGAPIType;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
@@ -106,6 +106,21 @@ public void importGateway(ImportGatewayParam param) {
gatewayRepository.save(gateway);
}
+ @Override
+ public void updateGateway(String gatewayId, UpdateGatewayParam param) {
+ Gateway gateway = findGateway(gatewayId);
+ if (!StrUtil.equals(gateway.getGatewayName(), param.getGatewayName())) {
+ gatewayRepository.findByGatewayName(param.getGatewayName())
+ .ifPresent(g -> {
+ throw new BusinessException(ErrorCode.CONFLICT,
+ StrUtil.format("Gateway name '{}' already exists", param.getGatewayName()));
+ });
+ }
+
+ param.update(gateway);
+ gatewayRepository.saveAndFlush(gateway);
+ }
+
@Override
public GatewayResult getGateway(String gatewayId) {
Gateway gateway = findGateway(gatewayId);
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/IdpServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/IdpServiceImpl.java
similarity index 95%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/IdpServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/IdpServiceImpl.java
index 09dbf6bb4..332b444ea 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/IdpServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/IdpServiceImpl.java
@@ -18,19 +18,19 @@
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.constant.IdpConstants;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.service.IdpService;
-import com.alibaba.apiopenplatform.support.enums.GrantType;
-import com.alibaba.apiopenplatform.support.enums.PublicKeyFormat;
-import com.alibaba.apiopenplatform.support.portal.*;
+import com.alibaba.himarket.core.constant.IdpConstants;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.service.IdpService;
+import com.alibaba.himarket.support.enums.GrantType;
+import com.alibaba.himarket.support.enums.PublicKeyFormat;
+import com.alibaba.himarket.support.portal.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpMethod;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientFactory.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientFactory.java
similarity index 51%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientFactory.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientFactory.java
index 6394d49d7..6fe7fccd9 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientFactory.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientFactory.java
@@ -1,6 +1,10 @@
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
+import cn.hutool.core.map.MapUtil;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
+import com.alibaba.himarket.support.enums.MCPTransportMode;
import io.modelcontextprotocol.client.McpClient;
import io.modelcontextprotocol.client.McpSyncClient;
import io.modelcontextprotocol.client.transport.HttpClientSseClientTransport;
@@ -11,8 +15,11 @@
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
+import org.springframework.web.util.UriComponentsBuilder;
+import java.net.MalformedURLException;
import java.net.URI;
+import java.net.URL;
import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
@@ -25,7 +32,7 @@
@Slf4j
public class McpClientFactory {
- public McpClientHolder initClient(String type, String url, Map headers, Map params) {
+ public McpClientWrapper initClient(String type, String url, Map headers, Map params) {
Map mcpHeaders = new HashMap<>(headers);
mcpHeaders.remove("Host");
@@ -78,7 +85,7 @@ public McpClientHolder initClient(String type, String url, Map h
.build();
// Initialize connection
client.initialize();
- return new McpClientHolder(client);
+ return new McpClientWrapper(client);
} catch (Exception e) {
log.error("init mcpSyncClient error", e);
return null;
@@ -95,4 +102,71 @@ private URI getUri(String url) {
}
return uri;
}
+
+ public McpClientWrapper newClient(MCPTransportConfig config, CredentialContext credentialContext) {
+ URL url;
+ try {
+ url = new URL(config.getUrl());
+ } catch (MalformedURLException e) {
+ log.warn("Invalid MCP url: {}", config.getUrl(), e);
+ return null;
+ }
+
+ String baseUrl = String.format("%s://%s", url.getProtocol(), url.getAuthority());
+ String path = url.getPath();
+
+ // Compose path with params
+ Map queryParams = credentialContext.copyQueryParams();
+ if (MapUtil.isNotEmpty(queryParams)) {
+ UriComponentsBuilder builder = UriComponentsBuilder.fromPath(path);
+ queryParams.forEach(builder::queryParam);
+ path = builder.build().toString();
+ }
+
+ try {
+ // Build MCP transport by mode
+ McpClientTransport transport = buildTransport(config.getTransportMode(), baseUrl, path, credentialContext.copyHeaders());
+ if (transport == null) {
+ return null;
+ }
+
+ // Create MCP client
+ McpSyncClient client = McpClient.sync(transport)
+ .requestTimeout(Duration.ofSeconds(10))
+ .capabilities(McpSchema.ClientCapabilities.builder()
+ .roots(true)
+ .build())
+ .build();
+ client.initialize();
+
+ return new McpClientWrapper(client);
+ } catch (Exception e) {
+ log.error("Failed to initialize MCP client for URL: {}", config.getUrl(), e);
+ return null;
+ }
+ }
+
+ private McpClientTransport buildTransport(MCPTransportMode mode, String baseUrl, String path, Map headers) {
+ if (mode == MCPTransportMode.STREAMABLE_HTTP) {
+ return HttpClientStreamableHttpTransport.builder(baseUrl)
+ .customizeRequest(builder -> {
+ if (MapUtils.isNotEmpty(headers)) {
+ headers.forEach(builder::header);
+ }
+ })
+ .endpoint(path)
+ .connectTimeout(Duration.ofSeconds(2))
+ .build();
+ } else {
+ return HttpClientSseClientTransport.builder(baseUrl)
+ .customizeRequest(builder -> {
+ if (MapUtils.isNotEmpty(headers)) {
+ headers.forEach(builder::header);
+ }
+ })
+ .sseEndpoint(path)
+ .connectTimeout(Duration.ofSeconds(2))
+ .build();
+ }
+ }
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientHolder.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientWrapper.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientHolder.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientWrapper.java
index 2919ee54b..8e446e472 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/McpClientHolder.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/McpClientWrapper.java
@@ -16,11 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import io.modelcontextprotocol.client.McpSyncClient;
import io.modelcontextprotocol.spec.McpSchema;
-import lombok.Getter;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.io.Closeable;
@@ -32,15 +32,13 @@
* @author shihan
* @version : McpClientHolder, v0.1 2025年11月26日 21:25 shihan Exp $
*/
+@Data
@Slf4j
-public class McpClientHolder implements Closeable {
- @Getter
- private McpSyncClient mcpSyncClient;
+public class McpClientWrapper implements Closeable {
- public McpClientHolder() {
- }
+ private McpSyncClient mcpSyncClient;
- public McpClientHolder(McpSyncClient mcpSyncClient) {
+ public McpClientWrapper(McpSyncClient mcpSyncClient) {
this.mcpSyncClient = mcpSyncClient;
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/NacosServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/NacosServiceImpl.java
similarity index 94%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/NacosServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/NacosServiceImpl.java
index a4828560f..c90ea26db 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/NacosServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/NacosServiceImpl.java
@@ -17,32 +17,32 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.params.nacos.CreateNacosParam;
-import com.alibaba.apiopenplatform.dto.params.nacos.QueryNacosParam;
-import com.alibaba.apiopenplatform.dto.params.nacos.UpdateNacosParam;
-import com.alibaba.apiopenplatform.dto.result.mcp.NacosMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.nacos.NacosNamespaceResult;
-import com.alibaba.apiopenplatform.dto.result.nacos.NacosResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
-import com.alibaba.apiopenplatform.dto.result.nacos.MseNacosResult;
-import com.alibaba.apiopenplatform.entity.NacosInstance;
-import com.alibaba.apiopenplatform.repository.NacosInstanceRepository;
-import com.alibaba.apiopenplatform.service.NacosService;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
-import com.alibaba.apiopenplatform.dto.converter.NacosToGatewayToolsConverter;
-import com.alibaba.apiopenplatform.dto.converter.NacosAgentConverter;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentConfigResult;
-import com.alibaba.apiopenplatform.dto.result.agent.NacosAgentResult;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.params.nacos.CreateNacosParam;
+import com.alibaba.himarket.dto.params.nacos.QueryNacosParam;
+import com.alibaba.himarket.dto.params.nacos.UpdateNacosParam;
+import com.alibaba.himarket.dto.result.mcp.NacosMCPServerResult;
+import com.alibaba.himarket.dto.result.nacos.NacosNamespaceResult;
+import com.alibaba.himarket.dto.result.nacos.NacosResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
+import com.alibaba.himarket.dto.result.nacos.MseNacosResult;
+import com.alibaba.himarket.entity.NacosInstance;
+import com.alibaba.himarket.repository.NacosInstanceRepository;
+import com.alibaba.himarket.service.NacosService;
+import com.alibaba.himarket.support.enums.SourceType;
+import com.alibaba.himarket.support.product.NacosRefConfig;
+import com.alibaba.himarket.dto.converter.NacosToGatewayToolsConverter;
+import com.alibaba.himarket.dto.converter.NacosAgentConverter;
+import com.alibaba.himarket.dto.result.agent.AgentConfigResult;
+import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
import cn.hutool.json.JSONUtil;
import cn.hutool.crypto.SecureUtil;
import com.alibaba.nacos.api.PropertyKeyConst;
@@ -272,7 +272,6 @@ private MCPConfigResult buildMCPConfigResult(McpServerDetailInfo detail) {
if (detail.getLocalServerConfig() != null) {
serverConfig.setRawConfig(detail.getLocalServerConfig());
- serverConfig.setTransportMode(MCPConfigResult.MCPTransportMode.LOCAL.getMode());
} else if (detail.getRemoteServerConfig() != null || (detail.getBackendEndpoints() != null && !detail.getBackendEndpoints().isEmpty())) {
Object remoteConfig = buildRemoteConnectionConfig(detail);
serverConfig.setRawConfig(remoteConfig);
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OAuth2ServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OAuth2ServiceImpl.java
similarity index 87%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OAuth2ServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/OAuth2ServiceImpl.java
index 958ed5c19..4b97fccc4 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OAuth2ServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OAuth2ServiceImpl.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
@@ -27,23 +27,23 @@
import cn.hutool.jwt.JWTUtil;
import cn.hutool.jwt.signers.JWTSigner;
import cn.hutool.jwt.signers.JWTSignerUtil;
-import com.alibaba.apiopenplatform.core.constant.JwtConstants;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.utils.TokenUtil;
-import com.alibaba.apiopenplatform.dto.params.developer.CreateExternalDeveloperParam;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.developer.DeveloperResult;
-import com.alibaba.apiopenplatform.dto.result.portal.PortalResult;
-import com.alibaba.apiopenplatform.service.DeveloperService;
-import com.alibaba.apiopenplatform.service.IdpService;
-import com.alibaba.apiopenplatform.service.OAuth2Service;
-import com.alibaba.apiopenplatform.service.PortalService;
-import com.alibaba.apiopenplatform.support.enums.DeveloperAuthType;
-import com.alibaba.apiopenplatform.support.enums.GrantType;
-import com.alibaba.apiopenplatform.support.enums.JwtAlgorithm;
-import com.alibaba.apiopenplatform.support.portal.*;
+import com.alibaba.himarket.core.constant.JwtConstants;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.utils.TokenUtil;
+import com.alibaba.himarket.dto.params.developer.CreateExternalDeveloperParam;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.developer.DeveloperResult;
+import com.alibaba.himarket.dto.result.portal.PortalResult;
+import com.alibaba.himarket.service.DeveloperService;
+import com.alibaba.himarket.service.IdpService;
+import com.alibaba.himarket.service.OAuth2Service;
+import com.alibaba.himarket.service.PortalService;
+import com.alibaba.himarket.support.enums.DeveloperAuthType;
+import com.alibaba.himarket.support.enums.GrantType;
+import com.alibaba.himarket.support.enums.JwtAlgorithm;
+import com.alibaba.himarket.support.portal.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OidcServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OidcServiceImpl.java
similarity index 90%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OidcServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/OidcServiceImpl.java
index be8ee8b30..51a360e4c 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OidcServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OidcServiceImpl.java
@@ -18,7 +18,7 @@
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.convert.Convert;
@@ -27,27 +27,27 @@
import cn.hutool.json.JSONUtil;
import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;
-import com.alibaba.apiopenplatform.core.constant.CommonConstants;
-import com.alibaba.apiopenplatform.core.constant.IdpConstants;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.TokenUtil;
-import com.alibaba.apiopenplatform.dto.params.developer.CreateExternalDeveloperParam;
-import com.alibaba.apiopenplatform.dto.result.common.AuthResult;
-import com.alibaba.apiopenplatform.dto.result.developer.DeveloperResult;
-import com.alibaba.apiopenplatform.dto.result.idp.IdpResult;
-import com.alibaba.apiopenplatform.dto.result.idp.IdpState;
-import com.alibaba.apiopenplatform.dto.result.idp.IdpTokenResult;
-import com.alibaba.apiopenplatform.service.OidcService;
-import com.alibaba.apiopenplatform.service.DeveloperService;
-import com.alibaba.apiopenplatform.service.PortalService;
-import com.alibaba.apiopenplatform.support.enums.DeveloperAuthType;
-import com.alibaba.apiopenplatform.support.enums.GrantType;
-import com.alibaba.apiopenplatform.support.portal.AuthCodeConfig;
-import com.alibaba.apiopenplatform.support.portal.IdentityMapping;
-import com.alibaba.apiopenplatform.support.portal.OidcConfig;
+import com.alibaba.himarket.core.constant.CommonConstants;
+import com.alibaba.himarket.core.constant.IdpConstants;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.TokenUtil;
+import com.alibaba.himarket.dto.params.developer.CreateExternalDeveloperParam;
+import com.alibaba.himarket.dto.result.common.AuthResult;
+import com.alibaba.himarket.dto.result.developer.DeveloperResult;
+import com.alibaba.himarket.dto.result.idp.IdpResult;
+import com.alibaba.himarket.dto.result.idp.IdpState;
+import com.alibaba.himarket.dto.result.idp.IdpTokenResult;
+import com.alibaba.himarket.service.OidcService;
+import com.alibaba.himarket.service.DeveloperService;
+import com.alibaba.himarket.service.PortalService;
+import com.alibaba.himarket.support.enums.DeveloperAuthType;
+import com.alibaba.himarket.support.enums.GrantType;
+import com.alibaba.himarket.support.portal.AuthCodeConfig;
+import com.alibaba.himarket.support.portal.IdentityMapping;
+import com.alibaba.himarket.support.portal.OidcConfig;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/PortalServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/PortalServiceImpl.java
similarity index 80%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/PortalServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/PortalServiceImpl.java
index 2442a2164..6bba33d52 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/PortalServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/PortalServiceImpl.java
@@ -17,42 +17,42 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.event.PortalDeletingEvent;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.params.consumer.QuerySubscriptionParam;
-import com.alibaba.apiopenplatform.dto.params.portal.*;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.portal.PortalResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.entity.Portal;
-import com.alibaba.apiopenplatform.entity.PortalDomain;
-import com.alibaba.apiopenplatform.entity.ProductSubscription;
-import com.alibaba.apiopenplatform.repository.PortalDomainRepository;
-import com.alibaba.apiopenplatform.repository.PortalRepository;
-import com.alibaba.apiopenplatform.repository.SubscriptionRepository;
-import com.alibaba.apiopenplatform.repository.ProductPublicationRepository;
-import com.alibaba.apiopenplatform.repository.ProductRefRepository;
-import com.alibaba.apiopenplatform.service.GatewayService;
-import com.alibaba.apiopenplatform.entity.ProductPublication;
-import com.alibaba.apiopenplatform.entity.ProductRef;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.event.PortalDeletingEvent;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
+import com.alibaba.himarket.dto.params.portal.*;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.portal.PortalResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.entity.Portal;
+import com.alibaba.himarket.entity.PortalDomain;
+import com.alibaba.himarket.entity.ProductSubscription;
+import com.alibaba.himarket.repository.PortalDomainRepository;
+import com.alibaba.himarket.repository.PortalRepository;
+import com.alibaba.himarket.repository.SubscriptionRepository;
+import com.alibaba.himarket.repository.ProductPublicationRepository;
+import com.alibaba.himarket.repository.ProductRefRepository;
+import com.alibaba.himarket.service.GatewayService;
+import com.alibaba.himarket.entity.ProductPublication;
+import com.alibaba.himarket.entity.ProductRef;
import org.springframework.data.domain.PageRequest;
-import com.alibaba.apiopenplatform.service.IdpService;
-import com.alibaba.apiopenplatform.service.PortalService;
-import com.alibaba.apiopenplatform.support.enums.DomainType;
-import com.alibaba.apiopenplatform.support.enums.SearchEngineType;
-import com.alibaba.apiopenplatform.support.portal.OidcConfig;
-import com.alibaba.apiopenplatform.support.portal.PortalSettingConfig;
-import com.alibaba.apiopenplatform.support.portal.PortalUiConfig;
-import com.alibaba.apiopenplatform.support.portal.SearchEngineConfig;
+import com.alibaba.himarket.service.IdpService;
+import com.alibaba.himarket.service.PortalService;
+import com.alibaba.himarket.support.enums.DomainType;
+import com.alibaba.himarket.support.enums.SearchEngineType;
+import com.alibaba.himarket.support.portal.OidcConfig;
+import com.alibaba.himarket.support.portal.PortalSettingConfig;
+import com.alibaba.himarket.support.portal.PortalUiConfig;
+import com.alibaba.himarket.support.portal.SearchEngineConfig;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationEventPublisher;
@@ -280,28 +280,6 @@ public String getDefaultPortal() {
return portal.getPortalId();
}
- @Override
- public String getDashboard(String portalId) {
- existsPortal(portalId);
-
- // 找到该门户下任一已发布产品(取第一页第一条)
- ProductPublication pub = publicationRepository.findByPortalId(portalId, PageRequest.of(0, 1))
- .stream()
- .findFirst()
- .orElseThrow(() -> new BusinessException(ErrorCode.NOT_FOUND, Resources.PORTAL, portalId));
-
- // 取产品的网关引用
- ProductRef productRef = productRefRepository.findFirstByProductId(pub.getProductId())
- .orElseThrow(() -> new BusinessException(ErrorCode.NOT_FOUND, Resources.PRODUCT, pub.getProductId()));
-
- if (productRef.getGatewayId() == null) {
- throw new BusinessException(ErrorCode.NOT_FOUND, "网关", "该门户下的产品尚未关联网关服务");
- }
-
- // 复用网关的Dashboard能力
- return gatewayService.getDashboard(productRef.getGatewayId(),"Portal");
- }
-
private Portal findPortal(String portalId) {
return portalRepository.findByPortalId(portalId)
.orElseThrow(() -> new BusinessException(ErrorCode.NOT_FOUND, Resources.PORTAL, portalId));
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ProductCategoryServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ProductCategoryServiceImpl.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ProductCategoryServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/ProductCategoryServiceImpl.java
index b742f43ae..02456b034 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ProductCategoryServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ProductCategoryServiceImpl.java
@@ -17,27 +17,27 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.params.category.QueryProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.params.category.UpdateProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.params.category.CreateProductCategoryParam;
-import com.alibaba.apiopenplatform.dto.result.ProductCategoryResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.entity.Product;
-import com.alibaba.apiopenplatform.entity.ProductCategory;
-import com.alibaba.apiopenplatform.entity.ProductCategoryRelation;
-import com.alibaba.apiopenplatform.repository.ProductCategoryRelationRepository;
-import com.alibaba.apiopenplatform.repository.ProductCategoryRepository;
-import com.alibaba.apiopenplatform.service.ProductCategoryService;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.params.category.QueryProductCategoryParam;
+import com.alibaba.himarket.dto.params.category.UpdateProductCategoryParam;
+import com.alibaba.himarket.dto.params.category.CreateProductCategoryParam;
+import com.alibaba.himarket.dto.result.ProductCategoryResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.entity.Product;
+import com.alibaba.himarket.entity.ProductCategory;
+import com.alibaba.himarket.entity.ProductCategoryRelation;
+import com.alibaba.himarket.repository.ProductCategoryRelationRepository;
+import com.alibaba.himarket.repository.ProductCategoryRepository;
+import com.alibaba.himarket.service.ProductCategoryService;
+import com.alibaba.himarket.support.enums.ProductType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ProductServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ProductServiceImpl.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ProductServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/ProductServiceImpl.java
index a2686075a..c60346913 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/ProductServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ProductServiceImpl.java
@@ -17,16 +17,15 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.dto.result.mcp.McpToolListResult;
-import com.alibaba.apiopenplatform.support.chat.mcp.McpServerConfig;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.mcp.McpToolListResult;
+import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
import io.modelcontextprotocol.spec.McpSchema;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
@@ -36,32 +35,32 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.constant.Resources;
-import com.alibaba.apiopenplatform.core.event.PortalDeletingEvent;
-import com.alibaba.apiopenplatform.core.event.ProductDeletingEvent;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.IdGenerator;
-import com.alibaba.apiopenplatform.dto.params.product.*;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentConfigResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIConfigResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
-import com.alibaba.apiopenplatform.dto.result.model.ModelConfigResult;
-import com.alibaba.apiopenplatform.dto.result.portal.PortalResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductPublicationResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.dto.result.product.SubscriptionResult;
-import com.alibaba.apiopenplatform.entity.*;
-import com.alibaba.apiopenplatform.repository.*;
-import com.alibaba.apiopenplatform.service.*;
-import com.alibaba.apiopenplatform.support.enums.ProductStatus;
-import com.alibaba.apiopenplatform.support.enums.ProductType;
-import com.alibaba.apiopenplatform.support.enums.SourceType;
-import com.alibaba.apiopenplatform.support.product.NacosRefConfig;
+import com.alibaba.himarket.core.constant.Resources;
+import com.alibaba.himarket.core.event.PortalDeletingEvent;
+import com.alibaba.himarket.core.event.ProductDeletingEvent;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.IdGenerator;
+import com.alibaba.himarket.dto.params.product.*;
+import com.alibaba.himarket.dto.result.agent.AgentConfigResult;
+import com.alibaba.himarket.dto.result.httpapi.APIConfigResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
+import com.alibaba.himarket.dto.result.model.ModelConfigResult;
+import com.alibaba.himarket.dto.result.portal.PortalResult;
+import com.alibaba.himarket.dto.result.product.ProductPublicationResult;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.dto.result.product.SubscriptionResult;
+import com.alibaba.himarket.entity.*;
+import com.alibaba.himarket.repository.*;
+import com.alibaba.himarket.service.*;
+import com.alibaba.himarket.support.enums.ProductStatus;
+import com.alibaba.himarket.support.enums.ProductType;
+import com.alibaba.himarket.support.enums.SourceType;
+import com.alibaba.himarket.support.product.NacosRefConfig;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -324,10 +323,19 @@ public void handlePortalDeletion(PortalDeletingEvent event) {
}
@Override
- public Map getProducts(List productIds) {
+ public Map getProducts(List productIds, boolean withConfig) {
List products = productRepository.findByProductIdIn(productIds);
return products.stream()
- .collect(Collectors.toMap(Product::getProductId, product -> new ProductResult().convertFrom(product)));
+ .collect(Collectors.toMap(
+ Product::getProductId,
+ product -> {
+ ProductResult result = new ProductResult().convertFrom(product);
+ if (withConfig) {
+ fillProduct(result);
+ }
+ return result;
+ }
+ ));
}
@Override
@@ -448,8 +456,7 @@ public McpToolListResult listMcpTools(String productId) {
List gatewayIps = gatewayService.fetchGatewayIps(gatewayId);
mcpConfig.convertDomainToGatewayIp(gatewayIps);
- McpServerConfig.McpServer server = mcpConfig.toStandardMcpServer()
- .getMcpServers().get(mcpConfig.getMcpServerName());
+ MCPTransportConfig mcpTransportConfig = mcpConfig.toTransportConfig();
// Get authentication info (use applicationContext to get bean to avoid circular dependency)
CredentialContext credentialContext = consumerService.getDefaultCredential(contextHolder.getUser());
@@ -458,13 +465,12 @@ public McpToolListResult listMcpTools(String productId) {
McpToolListResult mcpToolListResult = new McpToolListResult();
McpClientFactory mcpClientFactory = new McpClientFactory();
- try (McpClientHolder mcpClientHolder =
- mcpClientFactory.initClient(server.getType(), server.getUrl(), credentialContext.getHeaders(), credentialContext.getQueryParams())) {
- if (mcpClientHolder == null) {
+ try (McpClientWrapper mcpClientWrapper = mcpClientFactory.newClient(mcpTransportConfig, credentialContext)) {
+ if (mcpClientWrapper == null) {
log.error("initClient returned null");
throw new BusinessException(ErrorCode.INTERNAL_ERROR, Resources.PRODUCT, productId, "initClient returned null");
}
- List tools = mcpClientHolder.listTools();
+ List tools = mcpClientWrapper.listTools();
mcpToolListResult.setTools(tools);
} catch (IOException e) {
log.error("mcp client close error {}", e.getMessage());
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/SearchRewirteServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/SearchRewirteServiceImpl.java
similarity index 89%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/SearchRewirteServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/SearchRewirteServiceImpl.java
index 7c2328324..8a8c0ca96 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/SearchRewirteServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/SearchRewirteServiceImpl.java
@@ -17,29 +17,29 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.core.utils.CacheUtil;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
-import com.alibaba.apiopenplatform.dto.params.chat.InvokeModelParam;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmInvokeResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.dto.result.product.ProductRefResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.service.ConsumerService;
-import com.alibaba.apiopenplatform.service.GatewayService;
-import com.alibaba.apiopenplatform.service.LlmService;
-import com.alibaba.apiopenplatform.service.ProductService;
-import com.alibaba.apiopenplatform.service.SearchRewriteService;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.search.SearchInput;
-import com.alibaba.apiopenplatform.support.enums.ChatRole;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.core.utils.CacheUtil;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.dto.params.chat.InvokeModelParam;
+import com.alibaba.himarket.dto.result.chat.LlmInvokeResult;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.product.ProductRefResult;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.service.ConsumerService;
+import com.alibaba.himarket.service.GatewayService;
+import com.alibaba.himarket.service.LlmService;
+import com.alibaba.himarket.service.ProductService;
+import com.alibaba.himarket.service.SearchRewriteService;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.search.SearchInput;
+import com.alibaba.himarket.support.enums.ChatRole;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.rholder.retry.BlockStrategies;
import com.github.rholder.retry.RetryException;
@@ -240,10 +240,7 @@ private InvokeModelParam buildInvokeModelParam(List messages, Creat
return InvokeModelParam.builder()
.product(productResult)
- .requestHeaders(credentialContext.getHeaders())
- .queryParams(credentialContext.getQueryParams())
.chatMessages(messages)
- .stream(param.getStream())
.gatewayIps(gatewayIps)
.build();
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/SlsLogServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/SlsLogServiceImpl.java
similarity index 97%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/SlsLogServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/SlsLogServiceImpl.java
index a816f4162..0c80c46f7 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/SlsLogServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/SlsLogServiceImpl.java
@@ -1,4 +1,4 @@
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -17,17 +17,17 @@
import java.util.Set;
import java.util.concurrent.TimeUnit;
-import com.alibaba.apiopenplatform.config.SlsConfig;
-import com.alibaba.apiopenplatform.core.exception.BusinessException;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.GenericSlsQueryResponse;
-import com.alibaba.apiopenplatform.dto.params.sls.SlsCheckLogstoreRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.SlsCheckProjectRequest;
-import com.alibaba.apiopenplatform.dto.params.sls.SlsCommonQueryRequest;
-import com.alibaba.apiopenplatform.service.SlsLogService;
-import com.alibaba.apiopenplatform.service.gateway.factory.SlsClientFactory;
-import com.alibaba.apiopenplatform.support.enums.SlsAuthType;
+import com.alibaba.himarket.config.SlsConfig;
+import com.alibaba.himarket.core.exception.BusinessException;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryRequest;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryResponse;
+import com.alibaba.himarket.dto.params.sls.SlsCheckLogstoreRequest;
+import com.alibaba.himarket.dto.params.sls.SlsCheckProjectRequest;
+import com.alibaba.himarket.dto.params.sls.SlsCommonQueryRequest;
+import com.alibaba.himarket.service.SlsLogService;
+import com.alibaba.himarket.service.gateway.factory.SlsClientFactory;
+import com.alibaba.himarket.support.enums.SlsAuthType;
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.Index;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchAbilityServiceGoogleImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchAbilityServiceGoogleImpl.java
similarity index 96%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchAbilityServiceGoogleImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchAbilityServiceGoogleImpl.java
index 3b20c9b31..606dadc92 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchAbilityServiceGoogleImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchAbilityServiceGoogleImpl.java
@@ -17,17 +17,16 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.support.chat.search.SearchContext;
-import com.alibaba.apiopenplatform.support.chat.search.SearchInput;
-import com.alibaba.apiopenplatform.service.TalkSearchAbilityService;
-import com.alibaba.apiopenplatform.service.PortalService;
-import com.alibaba.apiopenplatform.support.chat.search.SearchOutput;
-import com.alibaba.apiopenplatform.support.enums.SearchEngineType;
+import com.alibaba.himarket.core.security.ContextHolder;
+import com.alibaba.himarket.support.chat.search.SearchContext;
+import com.alibaba.himarket.support.chat.search.SearchInput;
+import com.alibaba.himarket.service.TalkSearchAbilityService;
+import com.alibaba.himarket.service.PortalService;
+import com.alibaba.himarket.support.enums.SearchEngineType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpMethod;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchFactory.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchFactory.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchFactory.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchFactory.java
index 5fe209841..eff975807 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchFactory.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchFactory.java
@@ -17,9 +17,9 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
-import com.alibaba.apiopenplatform.service.TalkSearchAbilityService;
+import com.alibaba.himarket.service.TalkSearchAbilityService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchServiceImpl.java
similarity index 91%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchServiceImpl.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchServiceImpl.java
index 8e238b723..e0d618b52 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/TalkSearchServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/TalkSearchServiceImpl.java
@@ -1,14 +1,14 @@
-package com.alibaba.apiopenplatform.service.impl;
+package com.alibaba.himarket.service.impl;
-import com.alibaba.apiopenplatform.dto.params.chat.CreateChatParam;
-import com.alibaba.apiopenplatform.service.SearchRewriteService;
-import com.alibaba.apiopenplatform.service.TalkSearchAbilityService;
-import com.alibaba.apiopenplatform.service.TalkSearchService;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.content.TextContent;
-import com.alibaba.apiopenplatform.support.chat.search.SearchContext;
-import com.alibaba.apiopenplatform.support.chat.search.SearchInput;
-import com.alibaba.apiopenplatform.support.chat.search.SearchOutput;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import com.alibaba.himarket.service.SearchRewriteService;
+import com.alibaba.himarket.service.TalkSearchAbilityService;
+import com.alibaba.himarket.service.TalkSearchService;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.content.TextContent;
+import com.alibaba.himarket.support.chat.search.SearchContext;
+import com.alibaba.himarket.support.chat.search.SearchInput;
+import com.alibaba.himarket.support.chat.search.SearchOutput;
import com.github.rholder.retry.BlockStrategies;
import com.github.rholder.retry.RetryException;
import com.github.rholder.retry.Retryer;
diff --git a/portal-web/api-portal-admin/.env b/himarket-web/himarket-admin/.env
similarity index 100%
rename from portal-web/api-portal-admin/.env
rename to himarket-web/himarket-admin/.env
diff --git a/portal-web/api-portal-admin/.gitignore b/himarket-web/himarket-admin/.gitignore
similarity index 100%
rename from portal-web/api-portal-admin/.gitignore
rename to himarket-web/himarket-admin/.gitignore
diff --git a/portal-web/api-portal-admin/Dockerfile b/himarket-web/himarket-admin/Dockerfile
similarity index 100%
rename from portal-web/api-portal-admin/Dockerfile
rename to himarket-web/himarket-admin/Dockerfile
diff --git a/portal-web/api-portal-admin/README.md b/himarket-web/himarket-admin/README.md
similarity index 100%
rename from portal-web/api-portal-admin/README.md
rename to himarket-web/himarket-admin/README.md
diff --git a/portal-web/api-portal-admin/bin/replace_var.py b/himarket-web/himarket-admin/bin/replace_var.py
similarity index 100%
rename from portal-web/api-portal-admin/bin/replace_var.py
rename to himarket-web/himarket-admin/bin/replace_var.py
diff --git a/portal-web/api-portal-admin/bin/start.sh b/himarket-web/himarket-admin/bin/start.sh
similarity index 100%
rename from portal-web/api-portal-admin/bin/start.sh
rename to himarket-web/himarket-admin/bin/start.sh
diff --git a/portal-web/api-portal-admin/eslint.config.js b/himarket-web/himarket-admin/eslint.config.js
similarity index 100%
rename from portal-web/api-portal-admin/eslint.config.js
rename to himarket-web/himarket-admin/eslint.config.js
diff --git a/portal-web/api-portal-admin/index.html b/himarket-web/himarket-admin/index.html
similarity index 100%
rename from portal-web/api-portal-admin/index.html
rename to himarket-web/himarket-admin/index.html
diff --git a/portal-web/api-portal-admin/nginx.conf b/himarket-web/himarket-admin/nginx.conf
similarity index 100%
rename from portal-web/api-portal-admin/nginx.conf
rename to himarket-web/himarket-admin/nginx.conf
diff --git a/portal-web/api-portal-admin/package.json b/himarket-web/himarket-admin/package.json
similarity index 100%
rename from portal-web/api-portal-admin/package.json
rename to himarket-web/himarket-admin/package.json
diff --git a/portal-web/api-portal-admin/postcss.config.js b/himarket-web/himarket-admin/postcss.config.js
similarity index 100%
rename from portal-web/api-portal-admin/postcss.config.js
rename to himarket-web/himarket-admin/postcss.config.js
diff --git a/portal-web/api-portal-admin/proxy.conf b/himarket-web/himarket-admin/proxy.conf
similarity index 100%
rename from portal-web/api-portal-admin/proxy.conf
rename to himarket-web/himarket-admin/proxy.conf
diff --git a/portal-web/api-portal-admin/public/logo.png b/himarket-web/himarket-admin/public/logo.png
similarity index 100%
rename from portal-web/api-portal-admin/public/logo.png
rename to himarket-web/himarket-admin/public/logo.png
diff --git a/portal-web/api-portal-admin/public/vite.svg b/himarket-web/himarket-admin/public/vite.svg
similarity index 100%
rename from portal-web/api-portal-admin/public/vite.svg
rename to himarket-web/himarket-admin/public/vite.svg
diff --git a/portal-web/api-portal-admin/src/App.css b/himarket-web/himarket-admin/src/App.css
similarity index 100%
rename from portal-web/api-portal-admin/src/App.css
rename to himarket-web/himarket-admin/src/App.css
diff --git a/portal-web/api-portal-admin/src/App.tsx b/himarket-web/himarket-admin/src/App.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/App.tsx
rename to himarket-web/himarket-admin/src/App.tsx
diff --git a/portal-web/api-portal-admin/src/aliyunThemeToken.ts b/himarket-web/himarket-admin/src/aliyunThemeToken.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/aliyunThemeToken.ts
rename to himarket-web/himarket-admin/src/aliyunThemeToken.ts
diff --git a/portal-web/api-portal-admin/src/assets/react.svg b/himarket-web/himarket-admin/src/assets/react.svg
similarity index 100%
rename from portal-web/api-portal-admin/src/assets/react.svg
rename to himarket-web/himarket-admin/src/assets/react.svg
diff --git a/portal-web/api-portal-admin/src/components/Layout.tsx b/himarket-web/himarket-admin/src/components/Layout.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/Layout.tsx
rename to himarket-web/himarket-admin/src/components/Layout.tsx
diff --git a/portal-web/api-portal-admin/src/components/LayoutWrapper.tsx b/himarket-web/himarket-admin/src/components/LayoutWrapper.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/LayoutWrapper.tsx
rename to himarket-web/himarket-admin/src/components/LayoutWrapper.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductApiDocs.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductApiDocs.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductApiDocs.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductApiDocs.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductFormModal.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductFormModal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductFormModal.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductFormModal.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductLinkApi.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductLinkApi.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductLinkApi.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductLinkApi.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductOverview.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductOverview.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductOverview.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductOverview.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductPolicy.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductPolicy.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductPolicy.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductPolicy.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductPortal.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductPortal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductPortal.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductPortal.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ApiProductUsageGuide.tsx b/himarket-web/himarket-admin/src/components/api-product/ApiProductUsageGuide.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ApiProductUsageGuide.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ApiProductUsageGuide.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/ModelFeatureForm.tsx b/himarket-web/himarket-admin/src/components/api-product/ModelFeatureForm.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/ModelFeatureForm.tsx
rename to himarket-web/himarket-admin/src/components/api-product/ModelFeatureForm.tsx
diff --git a/portal-web/api-portal-admin/src/components/api-product/SwaggerUIWrapper.css b/himarket-web/himarket-admin/src/components/api-product/SwaggerUIWrapper.css
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/SwaggerUIWrapper.css
rename to himarket-web/himarket-admin/src/components/api-product/SwaggerUIWrapper.css
diff --git a/portal-web/api-portal-admin/src/components/api-product/SwaggerUIWrapper.tsx b/himarket-web/himarket-admin/src/components/api-product/SwaggerUIWrapper.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/api-product/SwaggerUIWrapper.tsx
rename to himarket-web/himarket-admin/src/components/api-product/SwaggerUIWrapper.tsx
diff --git a/portal-web/api-portal-admin/src/components/common/AdvancedSearch.tsx b/himarket-web/himarket-admin/src/components/common/AdvancedSearch.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/common/AdvancedSearch.tsx
rename to himarket-web/himarket-admin/src/components/common/AdvancedSearch.tsx
diff --git a/portal-web/api-portal-admin/src/components/common/index.ts b/himarket-web/himarket-admin/src/components/common/index.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/components/common/index.ts
rename to himarket-web/himarket-admin/src/components/common/index.ts
diff --git a/himarket-web/himarket-admin/src/components/console/EditGatewayModal.tsx b/himarket-web/himarket-admin/src/components/console/EditGatewayModal.tsx
new file mode 100644
index 000000000..a619f511a
--- /dev/null
+++ b/himarket-web/himarket-admin/src/components/console/EditGatewayModal.tsx
@@ -0,0 +1,440 @@
+import { useEffect, useState } from 'react'
+import { Modal, Form, Input, message, Select, Button, Switch } from 'antd'
+import { PlusOutlined } from '@ant-design/icons'
+import { gatewayApi } from '@/lib/api'
+import { Gateway, GatewayType } from '@/types'
+import { getGatewayTypeLabel } from '@/lib/constant'
+
+interface EditGatewayModalProps {
+ visible: boolean
+ gateway: Gateway | null
+ onCancel: () => void
+ onSuccess: () => void
+}
+
+export default function EditGatewayModal({ visible, gateway, onCancel, onSuccess }: EditGatewayModalProps) {
+ const [form] = Form.useForm()
+ const [submitting, setSubmitting] = useState(false)
+ const [updateAuth, setUpdateAuth] = useState(false) // 是否更新认证信息
+
+ // 监听表单中的认证方式(ADP 网关使用)
+ const authType = Form.useWatch('authType', form)
+
+ // 表单初始化
+ useEffect(() => {
+ if (visible && gateway) {
+ // 重置更新认证信息状态
+ setUpdateAuth(false)
+
+ const formValues: any = {
+ gatewayName: gateway.gatewayName,
+ }
+
+ // 不初始化认证配置字段,因为默认折叠不修改
+ form.setFieldsValue(formValues)
+ }
+ }, [visible, gateway, form])
+
+ // 处理提交
+ const handleSubmit = async () => {
+ if (!gateway) return
+
+ try {
+ const values = await form.validateFields()
+ setSubmitting(true)
+
+ const payload: any = {
+ gatewayType: gateway.gatewayType,
+ gatewayName: values.gatewayName,
+ }
+
+ // 只有在用户选择更新认证信息时,才构建认证配置对象
+ if (updateAuth) {
+ if (gateway.gatewayType === 'APIG_API' || gateway.gatewayType === 'APIG_AI') {
+ payload.apigConfig = {
+ region: values.region,
+ accessKey: values.accessKey,
+ secretKey: values.secretKey,
+ }
+ } else if (gateway.gatewayType === 'HIGRESS') {
+ payload.higressConfig = {
+ address: values.address,
+ username: values.username,
+ password: values.password,
+ gatewayAddress: values.gatewayAddress,
+ }
+ } else if (gateway.gatewayType === 'ADP_AI_GATEWAY') {
+ payload.adpAIGatewayConfig = {
+ baseUrl: values.baseUrl,
+ port: values.port,
+ authType: values.authType,
+ }
+
+ if (values.authType === 'Seed') {
+ payload.adpAIGatewayConfig.authSeed = values.authSeed
+ } else if (values.authType === 'Header') {
+ payload.adpAIGatewayConfig.authHeaders = values.authHeaders
+ }
+ } else if (gateway.gatewayType === 'APSARA_GATEWAY') {
+ payload.apsaraGatewayConfig = {
+ regionId: values.regionId,
+ accessKeyId: values.accessKeyId,
+ accessKeySecret: values.accessKeySecret,
+ domain: values.domain,
+ product: values.product,
+ version: values.version,
+ xAcsOrganizationId: values.xAcsOrganizationId,
+ ...(values.securityToken && { securityToken: values.securityToken }),
+ ...(values.xAcsCallerSdkSource && { xAcsCallerSdkSource: values.xAcsCallerSdkSource }),
+ ...(values.xAcsResourceGroupId && { xAcsResourceGroupId: values.xAcsResourceGroupId }),
+ ...(values.xAcsCallerType && { xAcsCallerType: values.xAcsCallerType }),
+ }
+ }
+ }
+
+ await gatewayApi.updateGateway(gateway.gatewayId, payload)
+ message.success('更新成功')
+ form.resetFields()
+ onSuccess()
+ } catch (error) {
+ // 错误已在拦截器中处理
+ } finally {
+ setSubmitting(false)
+ }
+ }
+
+ // 处理取消
+ const handleCancel = () => {
+ form.resetFields()
+ setUpdateAuth(false)
+ onCancel()
+ }
+
+
+ // 渲染配置字段(根据网关类型)
+ const renderConfigFields = () => {
+ if (!gateway) return null
+
+ switch (gateway.gatewayType as GatewayType) {
+ case 'APIG_API':
+ case 'APIG_AI':
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ )
+
+ case 'HIGRESS':
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+
+ case 'ADP_AI_GATEWAY':
+ return (
+ <>
+
+
+
+ {
+ if (value === undefined || value === null || value === '') return Promise.resolve()
+ const n = Number(value)
+ return n >= 1 && n <= 65535 ? Promise.resolve() : Promise.reject(new Error('端口范围需在 1-65535'))
+ }
+ }
+ ]}
+ >
+
+
+
+
+ Seed
+ 固定Header
+
+
+ {authType === 'Seed' && (
+
+
+
+ )}
+ {authType === 'Header' && (
+
+
+ {(fields, { add, remove }) => (
+ <>
+ {fields.map(({ key, name, ...restField }) => (
+
+
+
+
+
+
+
+ {fields.length > 1 && (
+ remove(name)}
+ style={{ marginBottom: 0 }}
+ >
+ 删除
+
+ )}
+
+ ))}
+
+ add({ key: '', value: '' })}
+ block
+ icon={ }
+ >
+ 添加Header
+
+
+ >
+ )}
+
+
+ )}
+ >
+ )
+
+ case 'APSARA_GATEWAY':
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+
+ default:
+ return null
+ }
+ }
+
+ return (
+
+ 取消
+ ,
+
+ 保存
+
+ ]}
+ >
+
+
+ )
+}
+
diff --git a/portal-web/api-portal-admin/src/components/console/GatewayTypeSelector.tsx b/himarket-web/himarket-admin/src/components/console/GatewayTypeSelector.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/console/GatewayTypeSelector.tsx
rename to himarket-web/himarket-admin/src/components/console/GatewayTypeSelector.tsx
diff --git a/portal-web/api-portal-admin/src/components/console/ImportGatewayModal.tsx b/himarket-web/himarket-admin/src/components/console/ImportGatewayModal.tsx
similarity index 99%
rename from portal-web/api-portal-admin/src/components/console/ImportGatewayModal.tsx
rename to himarket-web/himarket-admin/src/components/console/ImportGatewayModal.tsx
index 7359f4dd2..472bea248 100644
--- a/portal-web/api-portal-admin/src/components/console/ImportGatewayModal.tsx
+++ b/himarket-web/himarket-admin/src/components/console/ImportGatewayModal.tsx
@@ -146,7 +146,7 @@ export default function ImportGatewayModal({ visible, gatewayType, onCancel, onS
open={visible}
onCancel={handleCancel}
footer={null}
- width={800}
+ width={600}
>
-
-
-
-
+ higress-console服务的地址
+
+ ),
+ placement: "topLeft",
+ overlayInnerStyle: {
+ backgroundColor: '#ffffff',
+ color: '#000000',
+ border: '1px solid #d9d9d9',
+ borderRadius: '6px',
+ boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',
+ },
+ overlayStyle: {
+ maxWidth: '300px'
+ }
+ }}
>
@@ -83,7 +100,7 @@ export default function ImportHigressModal({ visible, onCancel, onSuccess }: Imp
@@ -91,10 +108,42 @@ export default function ImportHigressModal({ visible, onCancel, onSuccess }: Imp
+
+ higress-gateway服务的地址
+
+ ),
+ placement: "topLeft",
+ overlayInnerStyle: {
+ backgroundColor: '#ffffff',
+ color: '#000000',
+ border: '1px solid #d9d9d9',
+ borderRadius: '6px',
+ boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',
+ },
+ overlayStyle: {
+ maxWidth: '300px'
+ }
+ }}
+ >
+
+
+
取消
diff --git a/portal-web/api-portal-admin/src/components/console/ImportMseNacosModal.tsx b/himarket-web/himarket-admin/src/components/console/ImportMseNacosModal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/console/ImportMseNacosModal.tsx
rename to himarket-web/himarket-admin/src/components/console/ImportMseNacosModal.tsx
diff --git a/portal-web/api-portal-admin/src/components/console/NacosTypeSelector.tsx b/himarket-web/himarket-admin/src/components/console/NacosTypeSelector.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/console/NacosTypeSelector.tsx
rename to himarket-web/himarket-admin/src/components/console/NacosTypeSelector.tsx
diff --git a/portal-web/api-portal-admin/src/components/icons/McpServerIcon.tsx b/himarket-web/himarket-admin/src/components/icons/McpServerIcon.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/icons/McpServerIcon.tsx
rename to himarket-web/himarket-admin/src/components/icons/McpServerIcon.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalConsumers.tsx b/himarket-web/himarket-admin/src/components/portal/PortalConsumers.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalConsumers.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalConsumers.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalDashboard.tsx b/himarket-web/himarket-admin/src/components/portal/PortalDashboard.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalDashboard.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalDashboard.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalDevelopers.tsx b/himarket-web/himarket-admin/src/components/portal/PortalDevelopers.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalDevelopers.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalDevelopers.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalDomain.tsx b/himarket-web/himarket-admin/src/components/portal/PortalDomain.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalDomain.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalDomain.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalFormModal.tsx b/himarket-web/himarket-admin/src/components/portal/PortalFormModal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalFormModal.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalFormModal.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalOverview.tsx b/himarket-web/himarket-admin/src/components/portal/PortalOverview.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalOverview.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalOverview.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalPublishedApis.tsx b/himarket-web/himarket-admin/src/components/portal/PortalPublishedApis.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalPublishedApis.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalPublishedApis.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalSecurity.tsx b/himarket-web/himarket-admin/src/components/portal/PortalSecurity.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalSecurity.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalSecurity.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PortalSettings.tsx b/himarket-web/himarket-admin/src/components/portal/PortalSettings.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PortalSettings.tsx
rename to himarket-web/himarket-admin/src/components/portal/PortalSettings.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/PublicKeyManager.tsx b/himarket-web/himarket-admin/src/components/portal/PublicKeyManager.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/PublicKeyManager.tsx
rename to himarket-web/himarket-admin/src/components/portal/PublicKeyManager.tsx
diff --git a/portal-web/api-portal-admin/src/components/portal/ThirdPartyAuthManager.tsx b/himarket-web/himarket-admin/src/components/portal/ThirdPartyAuthManager.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/portal/ThirdPartyAuthManager.tsx
rename to himarket-web/himarket-admin/src/components/portal/ThirdPartyAuthManager.tsx
diff --git a/portal-web/api-portal-admin/src/components/product-category/AddProductModal.tsx b/himarket-web/himarket-admin/src/components/product-category/AddProductModal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/product-category/AddProductModal.tsx
rename to himarket-web/himarket-admin/src/components/product-category/AddProductModal.tsx
diff --git a/portal-web/api-portal-admin/src/components/product-category/CategoryFormModal.tsx b/himarket-web/himarket-admin/src/components/product-category/CategoryFormModal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/product-category/CategoryFormModal.tsx
rename to himarket-web/himarket-admin/src/components/product-category/CategoryFormModal.tsx
diff --git a/portal-web/api-portal-admin/src/components/subscription/SubscriptionListModal.tsx b/himarket-web/himarket-admin/src/components/subscription/SubscriptionListModal.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/components/subscription/SubscriptionListModal.tsx
rename to himarket-web/himarket-admin/src/components/subscription/SubscriptionListModal.tsx
diff --git a/portal-web/api-portal-admin/src/contexts/LoadingContext.tsx b/himarket-web/himarket-admin/src/contexts/LoadingContext.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/contexts/LoadingContext.tsx
rename to himarket-web/himarket-admin/src/contexts/LoadingContext.tsx
diff --git a/portal-web/api-portal-admin/src/index.css b/himarket-web/himarket-admin/src/index.css
similarity index 100%
rename from portal-web/api-portal-admin/src/index.css
rename to himarket-web/himarket-admin/src/index.css
diff --git a/portal-web/api-portal-admin/src/lib/api.ts b/himarket-web/himarket-admin/src/lib/api.ts
similarity index 98%
rename from portal-web/api-portal-admin/src/lib/api.ts
rename to himarket-web/himarket-admin/src/lib/api.ts
index 0ad8f1af4..51c44d712 100644
--- a/portal-web/api-portal-admin/src/lib/api.ts
+++ b/himarket-web/himarket-admin/src/lib/api.ts
@@ -218,6 +218,10 @@ export const gatewayApi = {
importGateway: (data: any) => {
return api.post(`/gateways`, { ...data })
},
+ // 更新网关
+ updateGateway: (gatewayId: string, data: any) => {
+ return api.put(`/gateways/${gatewayId}`, data)
+ },
// 获取网关的REST API列表
getGatewayRestApis: (gatewayId: string, data: any) => {
return api.get(`/gateways/${gatewayId}/rest-apis`, {
diff --git a/portal-web/api-portal-admin/src/lib/constant.ts b/himarket-web/himarket-admin/src/lib/constant.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/lib/constant.ts
rename to himarket-web/himarket-admin/src/lib/constant.ts
diff --git a/portal-web/api-portal-admin/src/lib/productCategoryApi.ts b/himarket-web/himarket-admin/src/lib/productCategoryApi.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/lib/productCategoryApi.ts
rename to himarket-web/himarket-admin/src/lib/productCategoryApi.ts
diff --git a/portal-web/api-portal-admin/src/lib/slsApi.ts b/himarket-web/himarket-admin/src/lib/slsApi.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/lib/slsApi.ts
rename to himarket-web/himarket-admin/src/lib/slsApi.ts
diff --git a/portal-web/api-portal-admin/src/lib/utils.ts b/himarket-web/himarket-admin/src/lib/utils.ts
similarity index 89%
rename from portal-web/api-portal-admin/src/lib/utils.ts
rename to himarket-web/himarket-admin/src/lib/utils.ts
index 63cc9782b..a4a0e78dc 100644
--- a/portal-web/api-portal-admin/src/lib/utils.ts
+++ b/himarket-web/himarket-admin/src/lib/utils.ts
@@ -59,7 +59,7 @@ export const getServiceName = (linkedServiceParam: any) => {
/**
* 格式化日期时间,显示完整的时间点包括小时、分钟、秒
* @param dateString 日期字符串或Date对象
- * @returns 格式化后的日期时间字符串
+ * @returns 格式化后的日期时间字符串 (YYYY-MM-DD HH:mm:ss)
*/
export const formatDateTime = (dateString: string | Date): string => {
try {
@@ -68,15 +68,14 @@ export const formatDateTime = (dateString: string | Date): string => {
return String(dateString);
}
- return date.toLocaleString('zh-CN', {
- year: 'numeric',
- month: '2-digit',
- day: '2-digit',
- hour: '2-digit',
- minute: '2-digit',
- second: '2-digit',
- hour12: false
- });
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ const hours = String(date.getHours()).padStart(2, '0');
+ const minutes = String(date.getMinutes()).padStart(2, '0');
+ const seconds = String(date.getSeconds()).padStart(2, '0');
+
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
} catch {
return String(dateString);
}
@@ -85,7 +84,7 @@ export const formatDateTime = (dateString: string | Date): string => {
/**
* 格式化日期,只显示年月日
* @param dateString 日期字符串或Date对象
- * @returns 格式化后的日期字符串
+ * @returns 格式化后的日期字符串 (YYYY-MM-DD)
*/
export const formatDate = (dateString: string | Date): string => {
try {
@@ -94,11 +93,11 @@ export const formatDate = (dateString: string | Date): string => {
return String(dateString);
}
- return date.toLocaleDateString('zh-CN', {
- year: 'numeric',
- month: '2-digit',
- day: '2-digit'
- });
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+
+ return `${year}-${month}-${day}`;
} catch {
return String(dateString);
}
diff --git a/portal-web/api-portal-admin/src/main.tsx b/himarket-web/himarket-admin/src/main.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/main.tsx
rename to himarket-web/himarket-admin/src/main.tsx
diff --git a/portal-web/api-portal-admin/src/pages/ApiProductDetail.tsx b/himarket-web/himarket-admin/src/pages/ApiProductDetail.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/ApiProductDetail.tsx
rename to himarket-web/himarket-admin/src/pages/ApiProductDetail.tsx
diff --git a/portal-web/api-portal-admin/src/pages/ApiProducts.tsx b/himarket-web/himarket-admin/src/pages/ApiProducts.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/ApiProducts.tsx
rename to himarket-web/himarket-admin/src/pages/ApiProducts.tsx
diff --git a/portal-web/api-portal-admin/src/pages/Dashboard.tsx b/himarket-web/himarket-admin/src/pages/Dashboard.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/Dashboard.tsx
rename to himarket-web/himarket-admin/src/pages/Dashboard.tsx
diff --git a/portal-web/api-portal-admin/src/pages/GatewayConsoles.tsx b/himarket-web/himarket-admin/src/pages/GatewayConsoles.tsx
similarity index 87%
rename from portal-web/api-portal-admin/src/pages/GatewayConsoles.tsx
rename to himarket-web/himarket-admin/src/pages/GatewayConsoles.tsx
index c792be145..7c30204f4 100644
--- a/portal-web/api-portal-admin/src/pages/GatewayConsoles.tsx
+++ b/himarket-web/himarket-admin/src/pages/GatewayConsoles.tsx
@@ -5,6 +5,7 @@ import { gatewayApi } from '@/lib/api'
import ImportGatewayModal from '@/components/console/ImportGatewayModal'
import ImportHigressModal from '@/components/console/ImportHigressModal'
import GatewayTypeSelector from '@/components/console/GatewayTypeSelector'
+import EditGatewayModal from '@/components/console/EditGatewayModal'
import { formatDateTime } from '@/lib/utils'
import { Gateway, GatewayType } from '@/types'
@@ -16,6 +17,8 @@ export default function Consoles() {
const [selectedGatewayType, setSelectedGatewayType] = useState('APIG_API')
const [loading, setLoading] = useState(false)
const [activeTab, setActiveTab] = useState('HIGRESS')
+ const [editVisible, setEditVisible] = useState(false)
+ const [editingGateway, setEditingGateway] = useState(null)
const [pagination, setPagination] = useState({
current: 1,
pageSize: 10,
@@ -72,6 +75,11 @@ export default function Consoles() {
setPagination(prev => ({ ...prev, current: 1 }))
}
+ const handleEditGateway = (gateway: Gateway) => {
+ setEditingGateway(gateway)
+ setEditVisible(true)
+ }
+
const handleDeleteGateway = async (gatewayId: string) => {
Modal.confirm({
title: '确认删除',
@@ -123,7 +131,14 @@ export default function Consoles() {
title: '操作',
key: 'action',
render: (_: any, record: Gateway) => (
- handleDeleteGateway(record.gatewayId)}>删除
+ <>
+ handleEditGateway(record)}>
+ 编辑
+
+ handleDeleteGateway(record.gatewayId)}>
+ 删除
+
+ >
),
},
]
@@ -155,7 +170,14 @@ export default function Consoles() {
title: '操作',
key: 'action',
render: (_: any, record: Gateway) => (
- handleDeleteGateway(record.gatewayId)}>删除
+ <>
+ handleEditGateway(record)}>
+ 编辑
+
+ handleDeleteGateway(record.gatewayId)}>
+ 删除
+
+ >
),
}
]
@@ -187,7 +209,14 @@ export default function Consoles() {
title: '操作',
key: 'action',
render: (_: any, record: Gateway) => (
- handleDeleteGateway(record.gatewayId)}>删除
+ <>
+ handleEditGateway(record)}>
+ 编辑
+
+ handleDeleteGateway(record.gatewayId)}>
+ 删除
+
+ >
),
},
]
@@ -210,7 +239,7 @@ export default function Consoles() {
),
},
{
- title: '服务地址',
+ title: 'Console地址',
dataIndex: 'address',
key: 'address',
render: (_: any, record: Gateway) => {
@@ -218,11 +247,11 @@ export default function Consoles() {
}
},
{
- title: '用户名',
- dataIndex: 'username',
- key: 'username',
+ title: 'Gateway地址',
+ dataIndex: 'gatewayAddress',
+ key: 'gatewayAddress',
render: (_: any, record: Gateway) => {
- return record.higressConfig?.username || '-'
+ return record.higressConfig?.gatewayAddress || '-'
}
},
{
@@ -235,7 +264,14 @@ export default function Consoles() {
title: '操作',
key: 'action',
render: (_: any, record: Gateway) => (
- handleDeleteGateway(record.gatewayId)}>删除
+ <>
+ handleEditGateway(record)}>
+ 编辑
+
+ handleDeleteGateway(record.gatewayId)}>
+ 删除
+
+ >
),
},
]
@@ -414,6 +450,20 @@ export default function Consoles() {
onSuccess={handleImportSuccess}
/>
+ {
+ setEditVisible(false)
+ setEditingGateway(null)
+ }}
+ onSuccess={() => {
+ setEditVisible(false)
+ setEditingGateway(null)
+ fetchGatewaysByType(activeTab, pagination.current, pagination.pageSize)
+ }}
+ />
+
setTypeSelectorVisible(false)}
diff --git a/portal-web/api-portal-admin/src/pages/Login.tsx b/himarket-web/himarket-admin/src/pages/Login.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/Login.tsx
rename to himarket-web/himarket-admin/src/pages/Login.tsx
diff --git a/portal-web/api-portal-admin/src/pages/McpMonitor.tsx b/himarket-web/himarket-admin/src/pages/McpMonitor.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/McpMonitor.tsx
rename to himarket-web/himarket-admin/src/pages/McpMonitor.tsx
diff --git a/portal-web/api-portal-admin/src/pages/ModelDashboard.tsx b/himarket-web/himarket-admin/src/pages/ModelDashboard.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/ModelDashboard.tsx
rename to himarket-web/himarket-admin/src/pages/ModelDashboard.tsx
diff --git a/portal-web/api-portal-admin/src/pages/NacosConsoles.tsx b/himarket-web/himarket-admin/src/pages/NacosConsoles.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/NacosConsoles.tsx
rename to himarket-web/himarket-admin/src/pages/NacosConsoles.tsx
diff --git a/portal-web/api-portal-admin/src/pages/PortalDetail.tsx b/himarket-web/himarket-admin/src/pages/PortalDetail.tsx
similarity index 99%
rename from portal-web/api-portal-admin/src/pages/PortalDetail.tsx
rename to himarket-web/himarket-admin/src/pages/PortalDetail.tsx
index 03103b18b..cfce2eac8 100644
--- a/portal-web/api-portal-admin/src/pages/PortalDetail.tsx
+++ b/himarket-web/himarket-admin/src/pages/PortalDetail.tsx
@@ -8,8 +8,7 @@ import {
ApiOutlined,
TeamOutlined,
SafetyOutlined,
- CloudOutlined,
- DashboardOutlined
+ CloudOutlined
} from '@ant-design/icons'
import { PortalOverview } from '@/components/portal/PortalOverview'
import { PortalPublishedApis } from '@/components/portal/PortalPublishedApis'
diff --git a/portal-web/api-portal-admin/src/pages/Portals.tsx b/himarket-web/himarket-admin/src/pages/Portals.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/Portals.tsx
rename to himarket-web/himarket-admin/src/pages/Portals.tsx
diff --git a/portal-web/api-portal-admin/src/pages/ProductCategories.tsx b/himarket-web/himarket-admin/src/pages/ProductCategories.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/ProductCategories.tsx
rename to himarket-web/himarket-admin/src/pages/ProductCategories.tsx
diff --git a/portal-web/api-portal-admin/src/pages/ProductCategoryDetail.tsx b/himarket-web/himarket-admin/src/pages/ProductCategoryDetail.tsx
similarity index 99%
rename from portal-web/api-portal-admin/src/pages/ProductCategoryDetail.tsx
rename to himarket-web/himarket-admin/src/pages/ProductCategoryDetail.tsx
index f6d1edff9..fe4f49b10 100644
--- a/portal-web/api-portal-admin/src/pages/ProductCategoryDetail.tsx
+++ b/himarket-web/himarket-admin/src/pages/ProductCategoryDetail.tsx
@@ -27,6 +27,7 @@ import {
} from '@ant-design/icons';
import { getProductCategory, unbindProductsFromCategory } from '@/lib/productCategoryApi';
import { apiProductApi } from '@/lib/api';
+import { formatDateTime } from '@/lib/utils';
import type { ProductCategory } from '@/types/product-category';
import type { ApiProduct } from '@/types/api-product';
import CategoryFormModal from '@/components/product-category/CategoryFormModal';
@@ -312,7 +313,7 @@ export default function ProductCategoryDetail() {
ID: {category.categoryId}
{category.createAt && (
- 创建于 {new Date(category.createAt).toLocaleDateString('zh-CN')}
+ 创建于 {formatDateTime(category.createAt)}
)}
diff --git a/portal-web/api-portal-admin/src/pages/Register.tsx b/himarket-web/himarket-admin/src/pages/Register.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/pages/Register.tsx
rename to himarket-web/himarket-admin/src/pages/Register.tsx
diff --git a/portal-web/api-portal-admin/src/routes/index.tsx b/himarket-web/himarket-admin/src/routes/index.tsx
similarity index 100%
rename from portal-web/api-portal-admin/src/routes/index.tsx
rename to himarket-web/himarket-admin/src/routes/index.tsx
diff --git a/portal-web/api-portal-admin/src/types/api-product.ts b/himarket-web/himarket-admin/src/types/api-product.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/api-product.ts
rename to himarket-web/himarket-admin/src/types/api-product.ts
diff --git a/portal-web/api-portal-admin/src/types/consumer.ts b/himarket-web/himarket-admin/src/types/consumer.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/consumer.ts
rename to himarket-web/himarket-admin/src/types/consumer.ts
diff --git a/portal-web/api-portal-admin/src/types/gateway.ts b/himarket-web/himarket-admin/src/types/gateway.ts
similarity index 64%
rename from portal-web/api-portal-admin/src/types/gateway.ts
rename to himarket-web/himarket-admin/src/types/gateway.ts
index cea6bf814..c1e683126 100644
--- a/portal-web/api-portal-admin/src/types/gateway.ts
+++ b/himarket-web/himarket-admin/src/types/gateway.ts
@@ -1,10 +1,12 @@
export interface Gateway {
gatewayId: string
gatewayName: string
+ description?: string
gatewayType: 'APIG_API' | 'HIGRESS' | 'APIG_AI' | 'ADP_AI_GATEWAY' | 'APSARA_GATEWAY'
createAt: string
apigConfig?: ApigConfig
higressConfig?: HigressConfig
+ adpAIGatewayConfig?: AdpAIGatewayConfig
apsaraGatewayConfig?: ApsaraGatewayConfig
}
@@ -18,15 +20,29 @@ export interface HigressConfig {
username: string
address: string
password: string
+ gatewayAddress?: string
+}
+
+export interface AdpAIGatewayConfig {
+ baseUrl: string
+ port: number
+ authType: 'Seed' | 'Header'
+ authSeed?: string
+ authHeaders?: Array<{ key: string; value: string }>
}
export interface ApsaraGatewayConfig {
- endpoint: string
- accessKey: string
- secretKey: string
+ regionId: string
+ accessKeyId: string
+ accessKeySecret?: string
+ securityToken?: string
+ domain: string
product: string
version: string
- xAcsRoleId?: string
+ xAcsOrganizationId: string
+ xAcsCallerSdkSource?: string
+ xAcsResourceGroupId?: string
+ xAcsCallerType?: string
}
export interface NacosInstance {
diff --git a/portal-web/api-portal-admin/src/types/index.ts b/himarket-web/himarket-admin/src/types/index.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/index.ts
rename to himarket-web/himarket-admin/src/types/index.ts
diff --git a/portal-web/api-portal-admin/src/types/portal.ts b/himarket-web/himarket-admin/src/types/portal.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/portal.ts
rename to himarket-web/himarket-admin/src/types/portal.ts
diff --git a/portal-web/api-portal-admin/src/types/product-category.ts b/himarket-web/himarket-admin/src/types/product-category.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/product-category.ts
rename to himarket-web/himarket-admin/src/types/product-category.ts
diff --git a/portal-web/api-portal-admin/src/types/shims-js-yaml.d.ts b/himarket-web/himarket-admin/src/types/shims-js-yaml.d.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/shims-js-yaml.d.ts
rename to himarket-web/himarket-admin/src/types/shims-js-yaml.d.ts
diff --git a/portal-web/api-portal-admin/src/types/sls.ts b/himarket-web/himarket-admin/src/types/sls.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/sls.ts
rename to himarket-web/himarket-admin/src/types/sls.ts
diff --git a/portal-web/api-portal-admin/src/types/subscription.ts b/himarket-web/himarket-admin/src/types/subscription.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/types/subscription.ts
rename to himarket-web/himarket-admin/src/types/subscription.ts
diff --git a/portal-web/api-portal-admin/src/utils/chartUtils.ts b/himarket-web/himarket-admin/src/utils/chartUtils.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/utils/chartUtils.ts
rename to himarket-web/himarket-admin/src/utils/chartUtils.ts
diff --git a/portal-web/api-portal-admin/src/utils/dateTimeUtils.ts b/himarket-web/himarket-admin/src/utils/dateTimeUtils.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/utils/dateTimeUtils.ts
rename to himarket-web/himarket-admin/src/utils/dateTimeUtils.ts
diff --git a/portal-web/api-portal-admin/src/vite-env.d.ts b/himarket-web/himarket-admin/src/vite-env.d.ts
similarity index 100%
rename from portal-web/api-portal-admin/src/vite-env.d.ts
rename to himarket-web/himarket-admin/src/vite-env.d.ts
diff --git a/portal-web/api-portal-admin/tailwind.config.js b/himarket-web/himarket-admin/tailwind.config.js
similarity index 100%
rename from portal-web/api-portal-admin/tailwind.config.js
rename to himarket-web/himarket-admin/tailwind.config.js
diff --git a/portal-web/api-portal-admin/tsconfig.json b/himarket-web/himarket-admin/tsconfig.json
similarity index 100%
rename from portal-web/api-portal-admin/tsconfig.json
rename to himarket-web/himarket-admin/tsconfig.json
diff --git a/portal-web/api-portal-admin/tsconfig.node.json b/himarket-web/himarket-admin/tsconfig.node.json
similarity index 100%
rename from portal-web/api-portal-admin/tsconfig.node.json
rename to himarket-web/himarket-admin/tsconfig.node.json
diff --git a/portal-web/api-portal-admin/vite.config.ts b/himarket-web/himarket-admin/vite.config.ts
similarity index 100%
rename from portal-web/api-portal-admin/vite.config.ts
rename to himarket-web/himarket-admin/vite.config.ts
diff --git a/portal-web/api-portal-frontend/.env b/himarket-web/himarket-frontend/.env
similarity index 100%
rename from portal-web/api-portal-frontend/.env
rename to himarket-web/himarket-frontend/.env
diff --git a/portal-web/api-portal-frontend/.gitignore b/himarket-web/himarket-frontend/.gitignore
similarity index 100%
rename from portal-web/api-portal-frontend/.gitignore
rename to himarket-web/himarket-frontend/.gitignore
diff --git a/portal-web/api-portal-frontend/.husky/pre-commit b/himarket-web/himarket-frontend/.husky/pre-commit
similarity index 100%
rename from portal-web/api-portal-frontend/.husky/pre-commit
rename to himarket-web/himarket-frontend/.husky/pre-commit
diff --git a/portal-web/api-portal-frontend/CLAUDE.md b/himarket-web/himarket-frontend/CLAUDE.md
similarity index 100%
rename from portal-web/api-portal-frontend/CLAUDE.md
rename to himarket-web/himarket-frontend/CLAUDE.md
diff --git a/portal-web/api-portal-frontend/Dockerfile b/himarket-web/himarket-frontend/Dockerfile
similarity index 100%
rename from portal-web/api-portal-frontend/Dockerfile
rename to himarket-web/himarket-frontend/Dockerfile
diff --git a/portal-web/api-portal-frontend/IMPLEMENTATION.md b/himarket-web/himarket-frontend/IMPLEMENTATION.md
similarity index 100%
rename from portal-web/api-portal-frontend/IMPLEMENTATION.md
rename to himarket-web/himarket-frontend/IMPLEMENTATION.md
diff --git a/portal-web/api-portal-frontend/README.md b/himarket-web/himarket-frontend/README.md
similarity index 100%
rename from portal-web/api-portal-frontend/README.md
rename to himarket-web/himarket-frontend/README.md
diff --git a/portal-web/api-portal-frontend/bin/replace_var.py b/himarket-web/himarket-frontend/bin/replace_var.py
similarity index 100%
rename from portal-web/api-portal-frontend/bin/replace_var.py
rename to himarket-web/himarket-frontend/bin/replace_var.py
diff --git a/portal-web/api-portal-frontend/bin/start.sh b/himarket-web/himarket-frontend/bin/start.sh
similarity index 100%
rename from portal-web/api-portal-frontend/bin/start.sh
rename to himarket-web/himarket-frontend/bin/start.sh
diff --git a/portal-web/api-portal-frontend/components.json b/himarket-web/himarket-frontend/components.json
similarity index 100%
rename from portal-web/api-portal-frontend/components.json
rename to himarket-web/himarket-frontend/components.json
diff --git a/portal-web/api-portal-frontend/eslint.config.js b/himarket-web/himarket-frontend/eslint.config.js
similarity index 100%
rename from portal-web/api-portal-frontend/eslint.config.js
rename to himarket-web/himarket-frontend/eslint.config.js
diff --git a/portal-web/api-portal-frontend/index.html b/himarket-web/himarket-frontend/index.html
similarity index 100%
rename from portal-web/api-portal-frontend/index.html
rename to himarket-web/himarket-frontend/index.html
diff --git a/portal-web/api-portal-frontend/nginx.conf b/himarket-web/himarket-frontend/nginx.conf
similarity index 100%
rename from portal-web/api-portal-frontend/nginx.conf
rename to himarket-web/himarket-frontend/nginx.conf
diff --git a/portal-web/api-portal-frontend/package.json b/himarket-web/himarket-frontend/package.json
similarity index 100%
rename from portal-web/api-portal-frontend/package.json
rename to himarket-web/himarket-frontend/package.json
diff --git a/portal-web/api-portal-frontend/postcss.config.js b/himarket-web/himarket-frontend/postcss.config.js
similarity index 100%
rename from portal-web/api-portal-frontend/postcss.config.js
rename to himarket-web/himarket-frontend/postcss.config.js
diff --git a/portal-web/api-portal-frontend/proxy.conf b/himarket-web/himarket-frontend/proxy.conf
similarity index 100%
rename from portal-web/api-portal-frontend/proxy.conf
rename to himarket-web/himarket-frontend/proxy.conf
diff --git a/portal-web/api-portal-frontend/public/MCP.png b/himarket-web/himarket-frontend/public/MCP.png
similarity index 100%
rename from portal-web/api-portal-frontend/public/MCP.png
rename to himarket-web/himarket-frontend/public/MCP.png
diff --git a/portal-web/api-portal-frontend/public/MCP.svg b/himarket-web/himarket-frontend/public/MCP.svg
similarity index 100%
rename from portal-web/api-portal-frontend/public/MCP.svg
rename to himarket-web/himarket-frontend/public/MCP.svg
diff --git a/portal-web/api-portal-frontend/public/favicon.ico b/himarket-web/himarket-frontend/public/favicon.ico
similarity index 100%
rename from portal-web/api-portal-frontend/public/favicon.ico
rename to himarket-web/himarket-frontend/public/favicon.ico
diff --git a/portal-web/api-portal-frontend/public/logo.png b/himarket-web/himarket-frontend/public/logo.png
similarity index 100%
rename from portal-web/api-portal-frontend/public/logo.png
rename to himarket-web/himarket-frontend/public/logo.png
diff --git a/portal-web/api-portal-frontend/public/logo.svg b/himarket-web/himarket-frontend/public/logo.svg
similarity index 100%
rename from portal-web/api-portal-frontend/public/logo.svg
rename to himarket-web/himarket-frontend/public/logo.svg
diff --git a/portal-web/api-portal-frontend/public/vite.svg b/himarket-web/himarket-frontend/public/vite.svg
similarity index 100%
rename from portal-web/api-portal-frontend/public/vite.svg
rename to himarket-web/himarket-frontend/public/vite.svg
diff --git a/portal-web/api-portal-frontend/src/App.css b/himarket-web/himarket-frontend/src/App.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/App.css
rename to himarket-web/himarket-frontend/src/App.css
diff --git a/portal-web/api-portal-frontend/src/App.tsx b/himarket-web/himarket-frontend/src/App.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/App.tsx
rename to himarket-web/himarket-frontend/src/App.tsx
diff --git a/portal-web/api-portal-frontend/src/aliyunThemeToken.ts b/himarket-web/himarket-frontend/src/aliyunThemeToken.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/aliyunThemeToken.ts
rename to himarket-web/himarket-frontend/src/aliyunThemeToken.ts
diff --git a/portal-web/api-portal-frontend/src/assets/aliyun.png b/himarket-web/himarket-frontend/src/assets/aliyun.png
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/aliyun.png
rename to himarket-web/himarket-frontend/src/assets/aliyun.png
diff --git a/portal-web/api-portal-frontend/src/assets/bg.png b/himarket-web/himarket-frontend/src/assets/bg.png
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/bg.png
rename to himarket-web/himarket-frontend/src/assets/bg.png
diff --git a/portal-web/api-portal-frontend/src/assets/chat-thum-card.svg b/himarket-web/himarket-frontend/src/assets/chat-thum-card.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/chat-thum-card.svg
rename to himarket-web/himarket-frontend/src/assets/chat-thum-card.svg
diff --git a/portal-web/api-portal-frontend/src/assets/chat-thum.svg b/himarket-web/himarket-frontend/src/assets/chat-thum.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/chat-thum.svg
rename to himarket-web/himarket-frontend/src/assets/chat-thum.svg
diff --git a/portal-web/api-portal-frontend/src/assets/chatgpt.svg b/himarket-web/himarket-frontend/src/assets/chatgpt.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/chatgpt.svg
rename to himarket-web/himarket-frontend/src/assets/chatgpt.svg
diff --git a/portal-web/api-portal-frontend/src/assets/deepseek.svg b/himarket-web/himarket-frontend/src/assets/deepseek.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/deepseek.svg
rename to himarket-web/himarket-frontend/src/assets/deepseek.svg
diff --git a/portal-web/api-portal-frontend/src/assets/empty.svg b/himarket-web/himarket-frontend/src/assets/empty.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/empty.svg
rename to himarket-web/himarket-frontend/src/assets/empty.svg
diff --git a/portal-web/api-portal-frontend/src/assets/github.png b/himarket-web/himarket-frontend/src/assets/github.png
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/github.png
rename to himarket-web/himarket-frontend/src/assets/github.png
diff --git a/portal-web/api-portal-frontend/src/assets/google.png b/himarket-web/himarket-frontend/src/assets/google.png
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/google.png
rename to himarket-web/himarket-frontend/src/assets/google.png
diff --git a/portal-web/api-portal-frontend/src/assets/home-model-card-bg.svg b/himarket-web/himarket-frontend/src/assets/home-model-card-bg.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/home-model-card-bg.svg
rename to himarket-web/himarket-frontend/src/assets/home-model-card-bg.svg
diff --git a/portal-web/api-portal-frontend/src/assets/more.svg b/himarket-web/himarket-frontend/src/assets/more.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/more.svg
rename to himarket-web/himarket-frontend/src/assets/more.svg
diff --git a/portal-web/api-portal-frontend/src/assets/person1.svg b/himarket-web/himarket-frontend/src/assets/person1.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/person1.svg
rename to himarket-web/himarket-frontend/src/assets/person1.svg
diff --git a/portal-web/api-portal-frontend/src/assets/person2.svg b/himarket-web/himarket-frontend/src/assets/person2.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/person2.svg
rename to himarket-web/himarket-frontend/src/assets/person2.svg
diff --git a/portal-web/api-portal-frontend/src/assets/person3.svg b/himarket-web/himarket-frontend/src/assets/person3.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/person3.svg
rename to himarket-web/himarket-frontend/src/assets/person3.svg
diff --git a/portal-web/api-portal-frontend/src/assets/person4.svg b/himarket-web/himarket-frontend/src/assets/person4.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/person4.svg
rename to himarket-web/himarket-frontend/src/assets/person4.svg
diff --git a/portal-web/api-portal-frontend/src/assets/qwen.svg b/himarket-web/himarket-frontend/src/assets/qwen.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/qwen.svg
rename to himarket-web/himarket-frontend/src/assets/qwen.svg
diff --git a/portal-web/api-portal-frontend/src/assets/react.svg b/himarket-web/himarket-frontend/src/assets/react.svg
similarity index 100%
rename from portal-web/api-portal-frontend/src/assets/react.svg
rename to himarket-web/himarket-frontend/src/assets/react.svg
diff --git a/portal-web/api-portal-frontend/src/components/Header.tsx b/himarket-web/himarket-frontend/src/components/Header.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/Header.tsx
rename to himarket-web/himarket-frontend/src/components/Header.tsx
diff --git a/portal-web/api-portal-frontend/src/components/Layout.tsx b/himarket-web/himarket-frontend/src/components/Layout.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/Layout.tsx
rename to himarket-web/himarket-frontend/src/components/Layout.tsx
diff --git a/portal-web/api-portal-frontend/src/components/MarkdownRender.tsx b/himarket-web/himarket-frontend/src/components/MarkdownRender.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/MarkdownRender.tsx
rename to himarket-web/himarket-frontend/src/components/MarkdownRender.tsx
diff --git a/portal-web/api-portal-frontend/src/components/Navigation.tsx b/himarket-web/himarket-frontend/src/components/Navigation.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/Navigation.tsx
rename to himarket-web/himarket-frontend/src/components/Navigation.tsx
diff --git a/portal-web/api-portal-frontend/src/components/ProductHeader.tsx b/himarket-web/himarket-frontend/src/components/ProductHeader.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/ProductHeader.tsx
rename to himarket-web/himarket-frontend/src/components/ProductHeader.tsx
diff --git a/portal-web/api-portal-frontend/src/components/SwaggerUIWrapper.css b/himarket-web/himarket-frontend/src/components/SwaggerUIWrapper.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/SwaggerUIWrapper.css
rename to himarket-web/himarket-frontend/src/components/SwaggerUIWrapper.css
diff --git a/portal-web/api-portal-frontend/src/components/SwaggerUIWrapper.tsx b/himarket-web/himarket-frontend/src/components/SwaggerUIWrapper.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/SwaggerUIWrapper.tsx
rename to himarket-web/himarket-frontend/src/components/SwaggerUIWrapper.tsx
diff --git a/portal-web/api-portal-frontend/src/components/TextType.tsx b/himarket-web/himarket-frontend/src/components/TextType.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/TextType.tsx
rename to himarket-web/himarket-frontend/src/components/TextType.tsx
diff --git a/portal-web/api-portal-frontend/src/components/UserInfo.css b/himarket-web/himarket-frontend/src/components/UserInfo.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/UserInfo.css
rename to himarket-web/himarket-frontend/src/components/UserInfo.css
diff --git a/portal-web/api-portal-frontend/src/components/UserInfo.tsx b/himarket-web/himarket-frontend/src/components/UserInfo.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/UserInfo.tsx
rename to himarket-web/himarket-frontend/src/components/UserInfo.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/APICard.tsx b/himarket-web/himarket-frontend/src/components/card/APICard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/APICard.tsx
rename to himarket-web/himarket-frontend/src/components/card/APICard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/AgentCard.tsx b/himarket-web/himarket-frontend/src/components/card/AgentCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/AgentCard.tsx
rename to himarket-web/himarket-frontend/src/components/card/AgentCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/ChatCard.tsx b/himarket-web/himarket-frontend/src/components/card/ChatCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/ChatCard.tsx
rename to himarket-web/himarket-frontend/src/components/card/ChatCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/CommonCard.tsx b/himarket-web/himarket-frontend/src/components/card/CommonCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/CommonCard.tsx
rename to himarket-web/himarket-frontend/src/components/card/CommonCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/HomeMcpCard.tsx b/himarket-web/himarket-frontend/src/components/card/HomeMcpCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/HomeMcpCard.tsx
rename to himarket-web/himarket-frontend/src/components/card/HomeMcpCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/ModelCard.tsx b/himarket-web/himarket-frontend/src/components/card/ModelCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/ModelCard.tsx
rename to himarket-web/himarket-frontend/src/components/card/ModelCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/card/circle.tsx b/himarket-web/himarket-frontend/src/components/card/circle.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/card/circle.tsx
rename to himarket-web/himarket-frontend/src/components/card/circle.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/Area.tsx b/himarket-web/himarket-frontend/src/components/chat/Area.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/Area.tsx
rename to himarket-web/himarket-frontend/src/components/chat/Area.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/InputBox.tsx b/himarket-web/himarket-frontend/src/components/chat/InputBox.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/InputBox.tsx
rename to himarket-web/himarket-frontend/src/components/chat/InputBox.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/McpCard.tsx b/himarket-web/himarket-frontend/src/components/chat/McpCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/McpCard.tsx
rename to himarket-web/himarket-frontend/src/components/chat/McpCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/McpModal.tsx b/himarket-web/himarket-frontend/src/components/chat/McpModal.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/McpModal.tsx
rename to himarket-web/himarket-frontend/src/components/chat/McpModal.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/McpToolCallPanel.tsx b/himarket-web/himarket-frontend/src/components/chat/McpToolCallPanel.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/McpToolCallPanel.tsx
rename to himarket-web/himarket-frontend/src/components/chat/McpToolCallPanel.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/Messages.tsx b/himarket-web/himarket-frontend/src/components/chat/Messages.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/Messages.tsx
rename to himarket-web/himarket-frontend/src/components/chat/Messages.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/ModelSelector.tsx b/himarket-web/himarket-frontend/src/components/chat/ModelSelector.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/ModelSelector.tsx
rename to himarket-web/himarket-frontend/src/components/chat/ModelSelector.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/MultiModelSelector.tsx b/himarket-web/himarket-frontend/src/components/chat/MultiModelSelector.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/MultiModelSelector.tsx
rename to himarket-web/himarket-frontend/src/components/chat/MultiModelSelector.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/Sidebar.css b/himarket-web/himarket-frontend/src/components/chat/Sidebar.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/Sidebar.css
rename to himarket-web/himarket-frontend/src/components/chat/Sidebar.css
diff --git a/portal-web/api-portal-frontend/src/components/chat/Sidebar.tsx b/himarket-web/himarket-frontend/src/components/chat/Sidebar.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/Sidebar.tsx
rename to himarket-web/himarket-frontend/src/components/chat/Sidebar.tsx
diff --git a/portal-web/api-portal-frontend/src/components/chat/SuggestedQuestions.tsx b/himarket-web/himarket-frontend/src/components/chat/SuggestedQuestions.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/chat/SuggestedQuestions.tsx
rename to himarket-web/himarket-frontend/src/components/chat/SuggestedQuestions.tsx
diff --git a/portal-web/api-portal-frontend/src/components/common/AdvancedSearch.tsx b/himarket-web/himarket-frontend/src/components/common/AdvancedSearch.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/common/AdvancedSearch.tsx
rename to himarket-web/himarket-frontend/src/components/common/AdvancedSearch.tsx
diff --git a/portal-web/api-portal-frontend/src/components/common/index.ts b/himarket-web/himarket-frontend/src/components/common/index.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/common/index.ts
rename to himarket-web/himarket-frontend/src/components/common/index.ts
diff --git a/portal-web/api-portal-frontend/src/components/consumer/AuthConfig.tsx b/himarket-web/himarket-frontend/src/components/consumer/AuthConfig.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/consumer/AuthConfig.tsx
rename to himarket-web/himarket-frontend/src/components/consumer/AuthConfig.tsx
diff --git a/portal-web/api-portal-frontend/src/components/consumer/ConsumerBasicInfo.tsx b/himarket-web/himarket-frontend/src/components/consumer/ConsumerBasicInfo.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/consumer/ConsumerBasicInfo.tsx
rename to himarket-web/himarket-frontend/src/components/consumer/ConsumerBasicInfo.tsx
diff --git a/portal-web/api-portal-frontend/src/components/consumer/CredentialManager.tsx b/himarket-web/himarket-frontend/src/components/consumer/CredentialManager.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/consumer/CredentialManager.tsx
rename to himarket-web/himarket-frontend/src/components/consumer/CredentialManager.tsx
diff --git a/portal-web/api-portal-frontend/src/components/consumer/SubscriptionManager.tsx b/himarket-web/himarket-frontend/src/components/consumer/SubscriptionManager.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/consumer/SubscriptionManager.tsx
rename to himarket-web/himarket-frontend/src/components/consumer/SubscriptionManager.tsx
diff --git a/portal-web/api-portal-frontend/src/components/consumer/index.ts b/himarket-web/himarket-frontend/src/components/consumer/index.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/consumer/index.ts
rename to himarket-web/himarket-frontend/src/components/consumer/index.ts
diff --git a/portal-web/api-portal-frontend/src/components/icon/ProductIconRenderer.tsx b/himarket-web/himarket-frontend/src/components/icon/ProductIconRenderer.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/icon/ProductIconRenderer.tsx
rename to himarket-web/himarket-frontend/src/components/icon/ProductIconRenderer.tsx
diff --git a/portal-web/api-portal-frontend/src/components/icon/index.tsx b/himarket-web/himarket-frontend/src/components/icon/index.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/icon/index.tsx
rename to himarket-web/himarket-frontend/src/components/icon/index.tsx
diff --git a/portal-web/api-portal-frontend/src/components/scroll-to-top/index.tsx b/himarket-web/himarket-frontend/src/components/scroll-to-top/index.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/scroll-to-top/index.tsx
rename to himarket-web/himarket-frontend/src/components/scroll-to-top/index.tsx
diff --git a/portal-web/api-portal-frontend/src/components/send-button/index.tsx b/himarket-web/himarket-frontend/src/components/send-button/index.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/send-button/index.tsx
rename to himarket-web/himarket-frontend/src/components/send-button/index.tsx
diff --git a/portal-web/api-portal-frontend/src/components/square/CategoryMenu.tsx b/himarket-web/himarket-frontend/src/components/square/CategoryMenu.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/square/CategoryMenu.tsx
rename to himarket-web/himarket-frontend/src/components/square/CategoryMenu.tsx
diff --git a/portal-web/api-portal-frontend/src/components/square/ModelCard.tsx b/himarket-web/himarket-frontend/src/components/square/ModelCard.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/square/ModelCard.tsx
rename to himarket-web/himarket-frontend/src/components/square/ModelCard.tsx
diff --git a/portal-web/api-portal-frontend/src/components/switch-button.tsx/index.tsx b/himarket-web/himarket-frontend/src/components/switch-button.tsx/index.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/components/switch-button.tsx/index.tsx
rename to himarket-web/himarket-frontend/src/components/switch-button.tsx/index.tsx
diff --git a/portal-web/api-portal-frontend/src/hooks/useCategories.ts b/himarket-web/himarket-frontend/src/hooks/useCategories.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/hooks/useCategories.ts
rename to himarket-web/himarket-frontend/src/hooks/useCategories.ts
diff --git a/portal-web/api-portal-frontend/src/hooks/useProducts.ts b/himarket-web/himarket-frontend/src/hooks/useProducts.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/hooks/useProducts.ts
rename to himarket-web/himarket-frontend/src/hooks/useProducts.ts
diff --git a/portal-web/api-portal-frontend/src/index.css b/himarket-web/himarket-frontend/src/index.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/index.css
rename to himarket-web/himarket-frontend/src/index.css
diff --git a/portal-web/api-portal-frontend/src/lib/api.ts b/himarket-web/himarket-frontend/src/lib/api.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/api.ts
rename to himarket-web/himarket-frontend/src/lib/api.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/category.ts b/himarket-web/himarket-frontend/src/lib/apis/category.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/category.ts
rename to himarket-web/himarket-frontend/src/lib/apis/category.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/chat.ts b/himarket-web/himarket-frontend/src/lib/apis/chat.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/chat.ts
rename to himarket-web/himarket-frontend/src/lib/apis/chat.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/consumer.ts b/himarket-web/himarket-frontend/src/lib/apis/consumer.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/consumer.ts
rename to himarket-web/himarket-frontend/src/lib/apis/consumer.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/developer.ts b/himarket-web/himarket-frontend/src/lib/apis/developer.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/developer.ts
rename to himarket-web/himarket-frontend/src/lib/apis/developer.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/index.ts b/himarket-web/himarket-frontend/src/lib/apis/index.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/index.ts
rename to himarket-web/himarket-frontend/src/lib/apis/index.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/product.ts b/himarket-web/himarket-frontend/src/lib/apis/product.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/product.ts
rename to himarket-web/himarket-frontend/src/lib/apis/product.ts
diff --git a/portal-web/api-portal-frontend/src/lib/apis/typing.ts b/himarket-web/himarket-frontend/src/lib/apis/typing.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/apis/typing.ts
rename to himarket-web/himarket-frontend/src/lib/apis/typing.ts
diff --git a/portal-web/api-portal-frontend/src/lib/iconUtils.tsx b/himarket-web/himarket-frontend/src/lib/iconUtils.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/iconUtils.tsx
rename to himarket-web/himarket-frontend/src/lib/iconUtils.tsx
diff --git a/portal-web/api-portal-frontend/src/lib/request.ts b/himarket-web/himarket-frontend/src/lib/request.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/request.ts
rename to himarket-web/himarket-frontend/src/lib/request.ts
diff --git a/portal-web/api-portal-frontend/src/lib/sse.ts b/himarket-web/himarket-frontend/src/lib/sse.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/sse.ts
rename to himarket-web/himarket-frontend/src/lib/sse.ts
diff --git a/portal-web/api-portal-frontend/src/lib/statusUtils.ts b/himarket-web/himarket-frontend/src/lib/statusUtils.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/statusUtils.ts
rename to himarket-web/himarket-frontend/src/lib/statusUtils.ts
diff --git a/portal-web/api-portal-frontend/src/lib/styles.ts b/himarket-web/himarket-frontend/src/lib/styles.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/styles.ts
rename to himarket-web/himarket-frontend/src/lib/styles.ts
diff --git a/portal-web/api-portal-frontend/src/lib/utils.ts b/himarket-web/himarket-frontend/src/lib/utils.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/utils.ts
rename to himarket-web/himarket-frontend/src/lib/utils.ts
diff --git a/portal-web/api-portal-frontend/src/lib/uuid.ts b/himarket-web/himarket-frontend/src/lib/uuid.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/lib/uuid.ts
rename to himarket-web/himarket-frontend/src/lib/uuid.ts
diff --git a/portal-web/api-portal-frontend/src/main.tsx b/himarket-web/himarket-frontend/src/main.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/main.tsx
rename to himarket-web/himarket-frontend/src/main.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Agent.tsx b/himarket-web/himarket-frontend/src/pages/Agent.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Agent.tsx
rename to himarket-web/himarket-frontend/src/pages/Agent.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/AgentDetail.tsx b/himarket-web/himarket-frontend/src/pages/AgentDetail.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/AgentDetail.tsx
rename to himarket-web/himarket-frontend/src/pages/AgentDetail.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/ApiDetail.tsx b/himarket-web/himarket-frontend/src/pages/ApiDetail.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/ApiDetail.tsx
rename to himarket-web/himarket-frontend/src/pages/ApiDetail.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Apis.tsx b/himarket-web/himarket-frontend/src/pages/Apis.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Apis.tsx
rename to himarket-web/himarket-frontend/src/pages/Apis.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Callback.tsx b/himarket-web/himarket-frontend/src/pages/Callback.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Callback.tsx
rename to himarket-web/himarket-frontend/src/pages/Callback.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Chat.tsx b/himarket-web/himarket-frontend/src/pages/Chat.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Chat.tsx
rename to himarket-web/himarket-frontend/src/pages/Chat.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/ConsumerDetail.tsx b/himarket-web/himarket-frontend/src/pages/ConsumerDetail.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/ConsumerDetail.tsx
rename to himarket-web/himarket-frontend/src/pages/ConsumerDetail.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Consumers.tsx b/himarket-web/himarket-frontend/src/pages/Consumers.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Consumers.tsx
rename to himarket-web/himarket-frontend/src/pages/Consumers.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/GettingStarted.tsx b/himarket-web/himarket-frontend/src/pages/GettingStarted.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/GettingStarted.tsx
rename to himarket-web/himarket-frontend/src/pages/GettingStarted.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Home.tsx b/himarket-web/himarket-frontend/src/pages/Home.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Home.tsx
rename to himarket-web/himarket-frontend/src/pages/Home.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Login.tsx b/himarket-web/himarket-frontend/src/pages/Login.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Login.tsx
rename to himarket-web/himarket-frontend/src/pages/Login.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Mcp.tsx b/himarket-web/himarket-frontend/src/pages/Mcp.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Mcp.tsx
rename to himarket-web/himarket-frontend/src/pages/Mcp.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/McpDetail.tsx b/himarket-web/himarket-frontend/src/pages/McpDetail.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/McpDetail.tsx
rename to himarket-web/himarket-frontend/src/pages/McpDetail.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Model.tsx b/himarket-web/himarket-frontend/src/pages/Model.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Model.tsx
rename to himarket-web/himarket-frontend/src/pages/Model.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/ModelDetail.tsx b/himarket-web/himarket-frontend/src/pages/ModelDetail.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/ModelDetail.tsx
rename to himarket-web/himarket-frontend/src/pages/ModelDetail.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/OidcCallback.tsx b/himarket-web/himarket-frontend/src/pages/OidcCallback.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/OidcCallback.tsx
rename to himarket-web/himarket-frontend/src/pages/OidcCallback.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Profile.tsx b/himarket-web/himarket-frontend/src/pages/Profile.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Profile.tsx
rename to himarket-web/himarket-frontend/src/pages/Profile.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Register.tsx b/himarket-web/himarket-frontend/src/pages/Register.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Register.tsx
rename to himarket-web/himarket-frontend/src/pages/Register.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Square.tsx b/himarket-web/himarket-frontend/src/pages/Square.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Square.tsx
rename to himarket-web/himarket-frontend/src/pages/Square.tsx
diff --git a/portal-web/api-portal-frontend/src/pages/Test.css b/himarket-web/himarket-frontend/src/pages/Test.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/pages/Test.css
rename to himarket-web/himarket-frontend/src/pages/Test.css
diff --git a/portal-web/api-portal-frontend/src/router.tsx b/himarket-web/himarket-frontend/src/router.tsx
similarity index 100%
rename from portal-web/api-portal-frontend/src/router.tsx
rename to himarket-web/himarket-frontend/src/router.tsx
diff --git a/portal-web/api-portal-frontend/src/styles/table.css b/himarket-web/himarket-frontend/src/styles/table.css
similarity index 100%
rename from portal-web/api-portal-frontend/src/styles/table.css
rename to himarket-web/himarket-frontend/src/styles/table.css
diff --git a/portal-web/api-portal-frontend/src/types/consumer.ts b/himarket-web/himarket-frontend/src/types/consumer.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/types/consumer.ts
rename to himarket-web/himarket-frontend/src/types/consumer.ts
diff --git a/portal-web/api-portal-frontend/src/types/index.ts b/himarket-web/himarket-frontend/src/types/index.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/types/index.ts
rename to himarket-web/himarket-frontend/src/types/index.ts
diff --git a/portal-web/api-portal-frontend/src/vite-env.d.ts b/himarket-web/himarket-frontend/src/vite-env.d.ts
similarity index 100%
rename from portal-web/api-portal-frontend/src/vite-env.d.ts
rename to himarket-web/himarket-frontend/src/vite-env.d.ts
diff --git a/portal-web/api-portal-frontend/tailwind.config.js b/himarket-web/himarket-frontend/tailwind.config.js
similarity index 100%
rename from portal-web/api-portal-frontend/tailwind.config.js
rename to himarket-web/himarket-frontend/tailwind.config.js
diff --git a/portal-web/api-portal-frontend/tsconfig.app.json b/himarket-web/himarket-frontend/tsconfig.app.json
similarity index 100%
rename from portal-web/api-portal-frontend/tsconfig.app.json
rename to himarket-web/himarket-frontend/tsconfig.app.json
diff --git a/portal-web/api-portal-frontend/tsconfig.json b/himarket-web/himarket-frontend/tsconfig.json
similarity index 100%
rename from portal-web/api-portal-frontend/tsconfig.json
rename to himarket-web/himarket-frontend/tsconfig.json
diff --git a/portal-web/api-portal-frontend/tsconfig.node.json b/himarket-web/himarket-frontend/tsconfig.node.json
similarity index 100%
rename from portal-web/api-portal-frontend/tsconfig.node.json
rename to himarket-web/himarket-frontend/tsconfig.node.json
diff --git a/portal-web/api-portal-frontend/vite.config.ts b/himarket-web/himarket-frontend/vite.config.ts
similarity index 100%
rename from portal-web/api-portal-frontend/vite.config.ts
rename to himarket-web/himarket-frontend/vite.config.ts
diff --git a/pom.xml b/pom.xml
index 8192f78f2..dcce39347 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,9 +39,9 @@
- portal-dal
- portal-server
- portal-bootstrap
+ himarket-dal
+ himarket-server
+ himarket-bootstrap
@@ -61,6 +61,8 @@
10.15.0
1.1.0-M4
0.0.2
+ 3.1.0
+ 1.1.0-M4
${java.version}
${java.version}
@@ -145,7 +147,7 @@
com.alibaba.nacos
nacos-maintainer-client
- 3.1.0
+ ${nacos.client.version}
@@ -170,7 +172,7 @@
org.springframework.ai
spring-ai-bom
- 1.1.0-M4
+ ${spring.ai.version}
pom
import
@@ -203,7 +205,45 @@
true
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ 3.3.1
+
+
+ com.puppycrawl.tools
+ checkstyle
+ 10.12.5
+
+
+
+ checkstyle.xml
+ true
+ warning
+ false
+ false
+
+
+
+ checkstyle-validation
+ validate
+
+ check
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+
+
\ No newline at end of file
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/mcp/McpServerConfig.java b/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/mcp/McpServerConfig.java
deleted file mode 100644
index 414241d89..000000000
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/chat/mcp/McpServerConfig.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.alibaba.apiopenplatform.support.chat.mcp;
-
-import lombok.Data;
-
-import java.util.Map;
-
-/**
- * @author shihan
- * @version : McpServerConfig, v0.1 2025年11月26日 11:41 shihan Exp $
- */
-@Data
-public class McpServerConfig {
-
- private Map mcpServers;
-
- @Data
- public static class McpServer {
- private String type;
- private String url;
- }
-}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContent.java b/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContent.java
deleted file mode 100644
index 64c42297e..000000000
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatContent.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.alibaba.apiopenplatform.dto.params.chat;
-
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author zh
- * @description Save current chunk and append to answer content
- */
-@Getter
-@Setter
-public class ChatContent {
-
- private StringBuilder answerContent = new StringBuilder();
-
- private StringBuilder unexpectedContent = new StringBuilder();
-
- private Long startTime;
-
- private Long firstByteTimeout;
-
- private ChatUsage usage;
-
- public boolean success() {
- return unexpectedContent.isEmpty();
- }
-
- public void start() {
- startTime = System.currentTimeMillis();
- }
-
- public void recordFirstByteTimeout() {
- if (firstByteTimeout == null && startTime != null) {
- firstByteTimeout = System.currentTimeMillis() - startTime;
- }
- }
-
- public void stop() {
- if (usage != null) {
- usage.setElapsedTime(System.currentTimeMillis() - startTime);
- if (firstByteTimeout != null) {
- usage.setFirstByteTimeout(firstByteTimeout);
- }
- }
- }
-}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatRequestBody.java b/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatRequestBody.java
deleted file mode 100644
index 35fd84e83..000000000
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/ChatRequestBody.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.alibaba.apiopenplatform.dto.params.chat;
-
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.mcp.McpServerConfig;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.Builder;
-import lombok.Data;
-import org.springframework.ai.openai.api.OpenAiApi;
-
-import java.util.List;
-
-/**
- * @author zh
- */
-@Data
-@Builder
-public class ChatRequestBody {
-
- private String model;
-
- private Boolean stream;
-
- @JsonProperty("max_tokens")
- private Integer maxTokens;
-
- @JsonProperty("top_p")
- private Double topP;
-
- private Double temperature;
-
- @JsonProperty("web_search_options")
- private OpenAiApi.ChatCompletionRequest.WebSearchOptions webSearchOptions;
-
- private String userQuestion;
-
- private List messages;
-
- private List mcpServerConfigs;
-}
\ No newline at end of file
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/InvokeModelParam.java b/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/InvokeModelParam.java
deleted file mode 100644
index e1f7e9a0c..000000000
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/InvokeModelParam.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.alibaba.apiopenplatform.dto.params.chat;
-
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.mcp.McpServerConfig;
-import lombok.Builder;
-import lombok.Data;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author zh
- */
-@Data
-@Builder
-public class InvokeModelParam {
-
- private String chatId;
-
- private ProductResult product;
-
- private Map requestHeaders;
-
- private Map queryParams;
-
- private String userQuestion;
-
- private List chatMessages;
-
- private Boolean stream;
-
- private Boolean enableWebSearch;
-
- private List gatewayIps;
-
- private List mcpServerConfigs;
-
- private CredentialContext credentialContext;
-}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/UpdateChatSessionParam.java b/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/UpdateChatSessionParam.java
deleted file mode 100644
index 2c7ba929a..000000000
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/dto/params/chat/UpdateChatSessionParam.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.alibaba.apiopenplatform.dto.params.chat;
-
-import com.alibaba.apiopenplatform.dto.converter.InputConverter;
-import com.alibaba.apiopenplatform.entity.ChatSession;
-import lombok.Data;
-
-/**
- * @author zh
- */
-@Data
-public class UpdateChatSessionParam implements InputConverter {
-
- private String name;
-}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AbstractLlmService.java b/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AbstractLlmService.java
deleted file mode 100644
index da5f9992b..000000000
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/AbstractLlmService.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package com.alibaba.apiopenplatform.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.BooleanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.apiopenplatform.core.exception.ErrorCode;
-import com.alibaba.apiopenplatform.dto.params.chat.ChatRequestBody;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.HttpRouteResult;
-import com.alibaba.apiopenplatform.dto.result.model.ModelConfigResult;
-import com.alibaba.apiopenplatform.dto.result.product.ProductResult;
-import com.alibaba.apiopenplatform.service.LlmService;
-import com.alibaba.apiopenplatform.dto.params.chat.InvokeModelParam;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmChatRequest;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmInvokeResult;
-import com.alibaba.apiopenplatform.support.product.ModelFeature;
-import com.alibaba.apiopenplatform.support.product.ProductFeature;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.ai.openai.api.OpenAiApi;
-import org.springframework.web.util.UriComponentsBuilder;
-import reactor.core.publisher.Flux;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Consumer;
-
-@Slf4j
-@RequiredArgsConstructor
-public abstract class AbstractLlmService implements LlmService {
-
- // 一次chat中模型调用的最大次数
- protected static final int MAX_MODEL_REQUEST_PER_CHAT = 20;
-
- @Override
- public Flux invokeLLM(InvokeModelParam param, HttpServletResponse response, Consumer resultHandler) {
- // ResultHandler is mainly used to record answer and usage
- try {
- LlmChatRequest request = composeRequest(param);
-
- return call(request, response, resultHandler);
- } catch (Exception e) {
- log.error("Failed to invoke LLM, chatId={}", param.getChatId(), e);
- response.setStatus(ErrorCode.INTERNAL_ERROR.getStatus().value());
- return Flux.just(ChatAnswerMessage.ofError(ErrorCode.INTERNAL_ERROR.getMessage(e.getMessage()), "Failed to invoke LLM"));
- }
- }
-
- protected abstract Flux call(LlmChatRequest request, HttpServletResponse response, Consumer resultHandler);
-
- private LlmChatRequest composeRequest(InvokeModelParam param) {
- // Not be null
- ProductResult product = param.getProduct();
- ModelConfigResult modelConfig = product.getModelConfig();
- // 1. Get request URL (with query params)
- URL url = getUrl(modelConfig, param.getQueryParams());
-
- // 2. Build headers
- Map headers = param.getRequestHeaders() == null ? new HashMap<>() : param.getRequestHeaders();
-
- // 3. Build request body
- ModelFeature modelFeature = getOrDefaultModelFeature(product);
- ChatRequestBody chatRequest = ChatRequestBody.builder()
- .model(modelFeature.getModel())
- .userQuestion(param.getUserQuestion())
- .messages(param.getChatMessages())
- // TODO: 这个参数应该用不到了
- .stream(modelFeature.getStreaming())
- .maxTokens(modelFeature.getMaxTokens())
- .temperature(modelFeature.getTemperature())
- .mcpServerConfigs(param.getMcpServerConfigs())
- .build();
-
- if (BooleanUtil.isTrue(modelFeature.getWebSearch()) && BooleanUtil.isTrue(param.getEnableWebSearch())) {
- chatRequest.setWebSearchOptions(new OpenAiApi.ChatCompletionRequest.WebSearchOptions(
- OpenAiApi.ChatCompletionRequest.WebSearchOptions.SearchContextSize.MEDIUM, null));
- }
-
- return LlmChatRequest.builder()
- .chatId(param.getChatId())
- .url(url)
- .headers(headers)
- .chatRequest(chatRequest)
- .gatewayIps(param.getGatewayIps())
- .credentialContext(param.getCredentialContext())
- .build();
- }
-
- private ModelFeature getOrDefaultModelFeature(ProductResult product) {
- ModelFeature modelFeature = Optional.ofNullable(product)
- .map(ProductResult::getFeature)
- .map(ProductFeature::getModelFeature)
- .orElseGet(() -> ModelFeature.builder().build());
-
- // Get model feature from product or return default values if any field is null/blank
- // Default values: model="qwen-max", maxTokens=5000, temperature=0.9, streaming=true, webSearch=false
- return ModelFeature.builder()
- .model(StrUtil.blankToDefault(modelFeature.getModel(), "qwen-max"))
- .maxTokens(ObjectUtil.defaultIfNull(modelFeature.getMaxTokens(), 5000))
- .temperature(ObjectUtil.defaultIfNull(modelFeature.getTemperature(), 0.9))
- .streaming(ObjectUtil.defaultIfNull(modelFeature.getStreaming(), true))
- .webSearch(ObjectUtil.defaultIfNull(modelFeature.getWebSearch(), false))
- .build();
- }
-
-
- private URL getUrl(ModelConfigResult modelConfig, Map queryParams) {
- ModelConfigResult.ModelAPIConfig modelAPIConfig = modelConfig.getModelAPIConfig();
- if (modelAPIConfig == null) {
- return null;
- }
-
- List routes = modelAPIConfig.getRoutes();
- if (CollUtil.isEmpty(routes)) {
- return null;
- }
-
- // Find route ending with /chat/completions
- for (HttpRouteResult route : routes) {
- String pathValue = Optional.ofNullable(route.getMatch())
- .map(HttpRouteResult.RouteMatchResult::getPath)
- .map(HttpRouteResult.RouteMatchPath::getValue)
- .orElse("");
-
- if (!pathValue.endsWith("/chat/completions")) {
- continue;
- }
-
- // Find first external domain
- Optional externalDomain = route.getDomains().stream()
- // TODO 调试场景专用,防止域名被ICP拦截,可恶啊
-// .filter(domain -> StrUtil.endWith(domain.getDomain(), ".alicloudapi.com"))
- .filter(domain -> !StrUtil.equalsIgnoreCase(domain.getNetworkType(), "intranet"))
- .findFirst();
-
- if (externalDomain.isPresent()) {
- DomainResult domain = externalDomain.get();
- String protocol = StrUtil.isNotBlank(domain.getProtocol()) ?
- domain.getProtocol().toLowerCase() : "http";
-
- try {
- // Build URL with query params
- UriComponentsBuilder builder = UriComponentsBuilder.newInstance()
- .scheme(protocol)
- .host(domain.getDomain())
- .path(pathValue);
-
- if (CollUtil.isNotEmpty(queryParams)) {
- queryParams.forEach(builder::queryParam);
- }
-
- return new URL(builder.build().toUriString());
- } catch (MalformedURLException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- // No suitable route found
- return null;
- }
-}
\ No newline at end of file
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OpenAILlmService.java b/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OpenAILlmService.java
deleted file mode 100644
index 30d5a402d..000000000
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/impl/OpenAILlmService.java
+++ /dev/null
@@ -1,467 +0,0 @@
-package com.alibaba.apiopenplatform.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.core.exception.ChatError;
-import com.alibaba.apiopenplatform.core.security.ContextHolder;
-import com.alibaba.apiopenplatform.dto.params.chat.ChatContext;
-import com.alibaba.apiopenplatform.dto.params.chat.ChatRequestBody;
-import com.alibaba.apiopenplatform.dto.params.chat.McpToolMeta;
-import com.alibaba.apiopenplatform.dto.params.chat.ToolContext;
-import com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmChatRequest;
-import com.alibaba.apiopenplatform.dto.result.chat.LlmInvokeResult;
-import com.alibaba.apiopenplatform.dto.result.consumer.CredentialContext;
-import com.alibaba.apiopenplatform.service.ConsumerService;
-import com.alibaba.apiopenplatform.support.chat.ChatMessage;
-import com.alibaba.apiopenplatform.support.chat.ChatUsage;
-import com.alibaba.apiopenplatform.support.chat.mcp.McpServerConfig;
-import com.alibaba.apiopenplatform.support.enums.AIProtocol;
-import com.alibaba.apiopenplatform.support.enums.ChatRole;
-import io.modelcontextprotocol.spec.McpSchema;
-import jakarta.annotation.Resource;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.ai.chat.client.ChatClient;
-import org.springframework.ai.chat.messages.*;
-import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
-import org.springframework.ai.chat.metadata.EmptyUsage;
-import org.springframework.ai.chat.metadata.Usage;
-import org.springframework.ai.chat.model.ChatResponse;
-import org.springframework.ai.chat.model.Generation;
-import org.springframework.ai.chat.prompt.ChatOptions;
-import org.springframework.ai.chat.prompt.Prompt;
-import org.springframework.ai.mcp.SyncMcpToolCallback;
-import org.springframework.ai.model.tool.ToolCallingManager;
-import org.springframework.ai.model.tool.ToolExecutionResult;
-import org.springframework.ai.openai.OpenAiChatModel;
-import org.springframework.ai.openai.OpenAiChatOptions;
-import org.springframework.ai.openai.api.OpenAiApi;
-import org.springframework.ai.tool.ToolCallback;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpHeaders;
-import org.springframework.stereotype.Service;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.reactive.function.client.WebClient;
-import org.springframework.web.reactive.function.client.WebClientResponseException;
-import reactor.core.publisher.Flux;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.function.Consumer;
-
-import static com.alibaba.apiopenplatform.dto.result.chat.ChatAnswerMessage.MessageType.*;
-
-@Service
-@Slf4j
-public class OpenAILlmService extends AbstractLlmService {
-
- @Value("${spring.ai.openai.api-key}")
- private String defaultApiKey;
-
- @Resource
- private ToolCallingManager toolCallingManager;
- @Resource
- private McpClientFactory mcpClientFactory;
-
- @Resource
- private ConsumerService consumerService;
-
- @Resource
- private ContextHolder contextHolder;
-
-
-
- private final WebClient.Builder webClientBuilder = WebClient.builder()
- .codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(16 * 1024 * 1024));
-
-
- private List convertMessages(ChatRequestBody chatRequestBody) {
- List messages = chatRequestBody.getMessages();
- List contextMessages = new ArrayList<>();
- messages.forEach(chatMessage -> {
- String role = chatMessage.getRole();
- ChatRole chatRole = ChatRole.of(role);
- switch (chatRole) {
- case USER:
- contextMessages.add(new UserMessage(chatMessage.getContent().toString()));
- break;
- case SYSTEM:
- contextMessages.add(new SystemMessage(chatMessage.getContent().toString()));
- break;
- case ASSISTANT:
- contextMessages.add(new AssistantMessage(chatMessage.getContent().toString()));
- break;
- default:
- break;
- }
- });
- return contextMessages;
- }
-
-
- private void cleanContext(ChatContext chatContext) {
- chatContext.getMcpClientHolders().forEach(h -> {
- try {
- h.close();
- } catch (Exception e) {
- log.error("close mcp client error", e);
- }
- });
- }
-
- private ChatClient newChatClient(LlmChatRequest request) {
- MultiValueMap headers = new HttpHeaders();
- Optional.ofNullable(request.getHeaders()).ifPresent(headerMap -> {
- headerMap.forEach(headers::add);
- });
- URL url = request.getUrl();
- String baseUrl = String.format("%s://%s", url.getProtocol(), url.getHost());
- if (url.getPort() > 0) {
- baseUrl += ":" + url.getPort();
- }
- OpenAiApi openAiApi = OpenAiApi.builder()
- .baseUrl(baseUrl)
- .completionsPath(url.getPath())
- .headers(headers)
- .apiKey(request.getCredentialContext() != null ? request.getCredentialContext().getApiKey() : defaultApiKey)
- .webClientBuilder(webClientBuilder)
- .build();
-
- OpenAiChatModel chatModel = OpenAiChatModel.builder()
- .openAiApi(openAiApi)
- .toolCallingManager(toolCallingManager)
- .defaultOptions(OpenAiChatOptions.builder()
- .streamUsage(true)
- .build())
- .build();
-
- return ChatClient.builder(chatModel).build();
- }
-
-
- private ChatContext initChatContext(LlmChatRequest request) {
- ChatRequestBody chatRequestBody = request.getChatRequest();
- List mcpServerConfigs = chatRequestBody.getMcpServerConfigs();
- Map toolsMap = new HashMap<>();
- List mcpClientHolders = new ArrayList<>();
- if (CollUtil.isNotEmpty(mcpServerConfigs)) {
- mcpServerConfigs.forEach(mcpServerConfig -> {
- mcpServerConfig.getMcpServers().forEach((serverName, config) -> {
- // Get authentication info (use applicationContext to get bean to avoid circular dependency)
- CredentialContext credentialContext = consumerService.getDefaultCredential(contextHolder.getUser());
-
- McpClientHolder mcpClientHolder = mcpClientFactory.initClient(config.getType(), config.getUrl(), credentialContext.getHeaders(), credentialContext.getQueryParams());
- if (mcpClientHolder == null) {
- return;
- }
- mcpClientHolders.add(mcpClientHolder);
- List tools = mcpClientHolder.listTools();
- Optional.ofNullable(tools).orElse(Collections.emptyList()).forEach(tool -> {
- McpToolMeta mcpToolMeta = new McpToolMeta();
- mcpToolMeta.setToolName(tool.name());
- mcpToolMeta.setToolNameCn(tool.title());
- mcpToolMeta.setMcpName(serverName);
- mcpToolMeta.setMcpNameCn(serverName);
- toolsMap.put(mcpToolMeta, new SyncMcpToolCallback(mcpClientHolder.getMcpSyncClient(), tool));
- });
- });
- });
- }
- OpenAiChatOptions.Builder chatOptionsBuilder = OpenAiChatOptions.builder()
- .temperature(chatRequestBody.getTemperature())
- .maxTokens(chatRequestBody.getMaxTokens())
- .topP(chatRequestBody.getTopP())
- .model(chatRequestBody.getModel())
- .webSearchOptions(chatRequestBody.getWebSearchOptions())
- .internalToolExecutionEnabled(false);
- ToolContext toolContext = ToolContext.of(toolsMap);
-
- if (CollectionUtils.isNotEmpty(toolContext.getToolCallbacks())) {
- chatOptionsBuilder.toolCallbacks(toolContext.getToolCallbacks());
- }
- ChatOptions chatOptions = chatOptionsBuilder.build();
- return ChatContext.builder()
- .chatId(request.getChatId())
- .chatOptions(chatOptions)
- .toolContext(toolContext)
- .mcpClientHolders(mcpClientHolders)
- .build();
- }
-
- @Override
- protected Flux call(LlmChatRequest request, HttpServletResponse response, Consumer resultHandler) {
- log.debug("request: {}", JSONUtil.toJsonStr(request));
- request.tryResolveDns();
-
- ChatRequestBody chatRequestBody = request.getChatRequest();
- List messages = convertMessages(chatRequestBody);
- AtomicInteger modelRequestCount = new AtomicInteger(1);
-
- ChatClient chatClient = newChatClient(request);
-
- ChatContext chatContext = initChatContext(request);
- chatContext.setChatClient(chatClient);
-
- chatContext.start();
-
- ChatClient.ChatClientRequestSpec clientRequestSpec = chatClient.prompt(new Prompt(messages, chatContext.getChatOptions()))
- .options(chatContext.getChatOptions());
- Flux fluxResponse = clientRequestSpec.stream()
- .chatResponse()
- .flatMap(chatResponse -> {
- if (chatResponse.getResult() == null) {
- return Flux.empty();
- }
-
- if (chatResponse.hasToolCalls()) {
- // 处理工具调用的情况
- return handleToolCallsInStream(chatContext, chatResponse, messages, modelRequestCount, resultHandler);
- } else {
- // 没有工具调用,直接返回响应
- return handleAnswerInStream(chatResponse, messages, chatContext);
- }
- })
- .startWith(newChatAnswerMessage(null, chatRequestBody.getUserQuestion(), USER, chatContext))
- .doOnNext(chatAnswerMessage -> {
- chatContext.recordFirstByteTimeout();
- log.debug("chatId={} chatAnswerMessage: {}", request.getChatId(), JSONUtil.toJsonStr(chatAnswerMessage));
- })
- .doOnComplete(() -> {
- resultHandler.accept(LlmInvokeResult.of(chatContext));
- });
- return applyErrorHandling(fluxResponse, chatContext, resultHandler)
- .doFinally(s -> {
- cleanContext(chatContext);
- chatContext.stop();
- });
- }
-
- private Flux handleToolCallsInStream(ChatContext chatContext, ChatResponse chatResponse, List messages,
- AtomicInteger modelRequestCount, Consumer resultHandler) {
- Usage usage = chatResponse.getMetadata().getUsage();
- return Flux.fromIterable(chatResponse.getResults())
- .flatMap(generation -> {
- AssistantMessage assistantMessage = generation.getOutput();
- messages.add(assistantMessage);
- if (assistantMessage.hasToolCalls()) {
- List toolCalls = assistantMessage.getToolCalls();
- Flux calls = buildToolCallMessages(toolCalls, usage, chatContext);
-
- // 工具调用
- Flux responses = executeToolCalls(usage, messages, chatContext, chatResponse);
- // 限制模型调用次数,防止无限循环
- if (modelRequestCount.incrementAndGet() > MAX_MODEL_REQUEST_PER_CHAT) {
- return Flux.concat(
- calls,
- responses,
- // 强制返回一个STOP
- Flux.just(newChatAnswerMessage(usage, null, STOP, chatContext))
- );
- }
-
- // 下一轮对话
- Flux nextAnswers = initiateNextCall(messages, chatContext, modelRequestCount, resultHandler);
- return Flux.concat(
- calls,
- responses,
- applyErrorHandling(nextAnswers, chatContext, resultHandler)
- );
- } else {
- log.warn("chatResponse.hasToolCalls == true, but also exists AssistantMessage that has no toolCalls");
- return Flux.just(buildChatAnswerMessageVO(usage, generation, chatContext));
- }
- });
- }
-
- private Flux initiateNextCall(List messages, ChatContext chatContext, AtomicInteger modelRequestCount, Consumer resultHandler) {
- ChatOptions chatOptions = chatContext.getChatOptions();
- return Flux.defer(() -> chatContext.getChatClient().prompt(new Prompt(messages, chatOptions))
- .options(chatOptions)
- .toolCallbacks(chatContext.getToolContext().getToolCallbacks())
- .stream()
- .chatResponse()
- .flatMap(nextChatResponse -> {
- if (nextChatResponse.getResult() == null) {
- log.warn("chatResponse.generation is null, which is unexpected");
- return Flux.empty();
- }
- if (nextChatResponse.hasToolCalls()) {
- return handleToolCallsInStream(chatContext, nextChatResponse, messages, modelRequestCount, resultHandler);
- }
- return handleAnswerInStream(nextChatResponse, messages, chatContext);
- })
- );
- }
-
- private Flux applyErrorHandling(Flux flux, ChatContext chatContext,
- Consumer resultHandler) {
- String chatId = chatContext.getChatId();
-
- return flux
- .doOnCancel(() -> {
- log.warn("Chat [{}] was canceled", chatId);
- resultHandler.accept(LlmInvokeResult.of(chatContext));
- })
- .doOnError(e -> {
- log.error("Chat [{}] encountered error: {}", chatId, e.getMessage(), e);
- // Append error message to answer
- chatContext.appendAnswer(e.getMessage());
- chatContext.setSuccess(false);
- resultHandler.accept(LlmInvokeResult.of(chatContext));
- })
- .onErrorResume(error -> {
- ChatError chatError = ChatError.from(error);
- log.error("Chat [{}] failed with {}: {}", chatId, chatError, error.getMessage(), error);
-
- return Flux.just(
- ChatAnswerMessage.builder()
- .chatId(chatId)
- .error(chatError.name())
- .message(error.getMessage())
- .msgType(ERROR)
- .build(),
- newChatAnswerMessage(null, null, STOP, chatContext)
- );
- });
- }
-
- private Flux buildToolCallMessages(List toolCalls, Usage usage, ChatContext chatContext) {
- List callMessages = toolCalls.stream().map(toolCall -> {
- ChatAnswerMessage.ToolCall tc = this.constructToolCall(toolCall, chatContext.getToolContext());
- return newChatAnswerMessage(usage, tc, TOOL_CALL, chatContext);
- }).toList();
- return Flux.fromIterable(callMessages);
- }
-
- private Flux executeToolCalls(Usage usage, List messages, ChatContext chatContext, ChatResponse chatResponse) {
- return Flux.defer(() -> {
- // 工具调用
- ToolExecutionResult toolExecutionResult = null;
- long startTime = System.currentTimeMillis();
- AtomicLong costMillis = new AtomicLong(0);
- try {
- toolExecutionResult = toolCallingManager.executeToolCalls(new Prompt(messages, chatContext.getChatOptions()), chatResponse);
- } catch (Throwable t) {
- log.error("toolCallingManager.executeToolCalls has error", t);
- return Flux.error(t);
- } finally {
- costMillis.set(System.currentTimeMillis() - startTime);
- log.info("toolCallingManager.executeToolCalls cost: {}ms", costMillis.get());
- }
- List conversationHistory = toolExecutionResult.conversationHistory();
- Message lastMessage = conversationHistory.get(conversationHistory.size() - 1);
-
- // 工具调用结果需要加到上下文中
- messages.add(lastMessage);
- List toolResponseMessages = new ArrayList<>();
- if (lastMessage instanceof ToolResponseMessage toolResponseMessage) {
- List toolResponses = toolResponseMessage.getResponses();
- toolResponses.forEach(toolResponse -> {
- ChatAnswerMessage.ToolResponse tr = this.constructToolResponse(toolResponse, chatContext.getToolContext(), costMillis.get());
- toolResponseMessages.add(newChatAnswerMessage(usage, tr, TOOL_RESPONSE, chatContext));
- });
- }
- return Flux.fromIterable(toolResponseMessages);
- });
- }
-
- protected ChatAnswerMessage.ToolResponse constructToolResponse(ToolResponseMessage.ToolResponse toolResponse, ToolContext toolContext, long costMillis) {
- ChatAnswerMessage.ToolResponse tr = new ChatAnswerMessage.ToolResponse();
- tr.setId(toolResponse.id());
- tr.setName(toolResponse.name());
- tr.setResponseData(toolResponse.responseData());
- tr.setOutput(toolResponse.responseData());
- tr.setCostMillis(costMillis);
- String innerToolName = toolResponse.name();
- Optional.ofNullable(toolContext.getToolMeta(innerToolName))
- .ifPresent(tr::setToolMeta);
- return tr;
- }
-
- private ChatAnswerMessage newErrorMessage(String chatId, String error, String message) {
- return ChatAnswerMessage.builder()
- .chatId(chatId)
- .error(error)
- .message(message)
- .msgType(ERROR)
- .build();
- }
-
- protected ChatAnswerMessage newChatAnswerMessage(Usage usage, Object content, ChatAnswerMessage.MessageType messageType, ChatContext chatContext) {
- // Append to answer content and reset current content
- if (messageType == ANSWER && content instanceof String strContent) {
- chatContext.getAnswerContent().append(strContent);
- }
-
- ChatUsage chatUsage = (usage != null && !(usage instanceof EmptyUsage)) ?
- ChatUsage.builder()
- .firstByteTimeout(chatContext.getFirstByteTimeout())
- .promptTokens(usage.getPromptTokens())
- .completionTokens(usage.getCompletionTokens())
- .totalTokens(usage.getTotalTokens())
- .build()
- : null;
-
- if (messageType == STOP) {
- chatContext.setChatUsage(chatUsage);
- chatContext.stop();
- }
-
- return ChatAnswerMessage.builder()
- .chatId(chatContext.getChatId())
- .content(content)
- .chatUsage(chatUsage)
- .msgType(messageType)
- .build();
- }
-
- private ChatAnswerMessage.ToolCall constructToolCall(AssistantMessage.ToolCall toolCall, ToolContext toolContext) {
- ChatAnswerMessage.ToolCall toolCallVO = new ChatAnswerMessage.ToolCall();
- toolCallVO.setId(toolCall.id());
- toolCallVO.setName(toolCall.name());
- toolCallVO.setType(toolCall.type());
- toolCallVO.setArguments(toolCall.arguments());
- toolCallVO.setInput(toolCall.arguments());
-
- String innerToolName = toolCall.name();
- Optional.ofNullable(toolContext.getToolDefinition(innerToolName))
- .ifPresent(toolDefinition -> {
- toolCallVO.setInputSchema(toolDefinition.inputSchema());
- });
- Optional.ofNullable(toolContext.getToolMeta(innerToolName))
- .ifPresent(toolCallVO::setToolMeta);
- return toolCallVO;
- }
-
- protected ChatAnswerMessage buildChatAnswerMessageVO(Usage usage, Generation generation, ChatContext chatContent) {
- AssistantMessage message = generation.getOutput();
- ChatGenerationMetadata metadata = generation.getMetadata();
- boolean isStop = StringUtils.equalsIgnoreCase("STOP", metadata.getFinishReason());
- ChatAnswerMessage.MessageType messageType = isStop ? STOP : ANSWER;
- return newChatAnswerMessage(usage, message.getText(), messageType, chatContent);
- }
-
- private Flux handleAnswerInStream(ChatResponse chatResponse, List messages, ChatContext chatContext) {
- Usage usage = chatResponse.getMetadata().getUsage();
- return Flux.fromIterable(chatResponse.getResults()).map(generation -> {
- AssistantMessage assistantMessage = generation.getOutput();
- messages.add(assistantMessage);
- ChatGenerationMetadata metadata = generation.getMetadata();
- boolean isStop = StringUtils.equalsIgnoreCase("STOP", metadata.getFinishReason());
- ChatAnswerMessage.MessageType messageType = isStop ? STOP : ANSWER;
- return newChatAnswerMessage(usage, assistantMessage.getText(), messageType, chatContext);
- });
- }
-
- @Override
- public AIProtocol getProtocol() {
- return AIProtocol.OPENAI;
- }
-}
From 190a3af05278b3eff13a10274b0599613fa83b86 Mon Sep 17 00:00:00 2001
From: zhaoh
Date: Wed, 10 Dec 2025 11:07:14 +0800
Subject: [PATCH 02/13] feat: support Higress gateway IP for Model and MCP
Change-Id: I189047b9adf7e5870413654d49706a914af1ec1b
---
.../support/gateway/HigressConfig.java | 35 +++++-
.../service/gateway/HigressOperator.java | 109 +++++++++++-------
2 files changed, 101 insertions(+), 43 deletions(-)
rename {portal-dal/src/main/java/com/alibaba/apiopenplatform => himarket-dal/src/main/java/com/alibaba/himarket}/support/gateway/HigressConfig.java (50%)
rename {portal-server/src/main/java/com/alibaba/apiopenplatform => himarket-server/src/main/java/com/alibaba/himarket}/service/gateway/HigressOperator.java (84%)
diff --git a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/HigressConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java
similarity index 50%
rename from portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/HigressConfig.java
rename to himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java
index 5b4dbb5c0..6a5322dc7 100644
--- a/portal-dal/src/main/java/com/alibaba/apiopenplatform/support/gateway/HigressConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java
@@ -17,9 +17,11 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.support.gateway;
+package com.alibaba.himarket.support.gateway;
-import com.alibaba.apiopenplatform.support.common.Encrypted;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.URLUtil;
+import com.alibaba.himarket.support.common.Encrypted;
import lombok.Data;
@Data
@@ -32,7 +34,34 @@ public class HigressConfig {
@Encrypted
private String password;
+ /**
+ * Higress gateway address
+ */
+ private String gatewayAddress;
+
public String buildUniqueKey() {
- return String.format("%s:%s:%s", address, username, password);
+ return StrUtil.join(":", address, username, password, gatewayAddress);
+ }
+
+ public boolean validate() {
+ if (StrUtil.isBlank(address) || StrUtil.isBlank(username) || StrUtil.isBlank(password)) {
+ return false;
+ }
+
+ try {
+ // Normalize address and gatewayAddress
+ if (!URLUtil.url(address).getProtocol().contains("http")) {
+ address = "http://" + address;
+ }
+
+ if (StrUtil.isNotBlank(gatewayAddress) &&
+ !URLUtil.url(gatewayAddress).getProtocol().contains("http")) {
+ gatewayAddress = "http://" + gatewayAddress;
+ }
+ } catch (Exception e) {
+ return false;
+ }
+
+ return true;
}
}
diff --git a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/HigressOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java
similarity index 84%
rename from portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/HigressOperator.java
rename to himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java
index f093bcb69..21cc8f940 100644
--- a/portal-server/src/main/java/com/alibaba/apiopenplatform/service/gateway/HigressOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java
@@ -17,35 +17,36 @@
* under the License.
*/
-package com.alibaba.apiopenplatform.service.gateway;
+package com.alibaba.himarket.service.gateway;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.URLUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.apiopenplatform.dto.result.agent.AgentAPIResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.APIResult;
-import com.alibaba.apiopenplatform.dto.result.common.PageResult;
-import com.alibaba.apiopenplatform.dto.result.gateway.GatewayResult;
-import com.alibaba.apiopenplatform.dto.result.common.DomainResult;
-import com.alibaba.apiopenplatform.dto.result.httpapi.HttpRouteResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.HigressMCPServerResult;
-import com.alibaba.apiopenplatform.dto.result.mcp.MCPConfigResult;
-import com.alibaba.apiopenplatform.dto.result.model.GatewayModelAPIResult;
-import com.alibaba.apiopenplatform.dto.result.model.HigressModelResult;
-import com.alibaba.apiopenplatform.dto.result.model.ModelConfigResult;
-import com.alibaba.apiopenplatform.entity.Gateway;
-import com.alibaba.apiopenplatform.entity.Consumer;
-import com.alibaba.apiopenplatform.entity.ConsumerCredential;
-import com.alibaba.apiopenplatform.service.gateway.client.HigressClient;
-import com.alibaba.apiopenplatform.support.consumer.ApiKeyConfig;
-import com.alibaba.apiopenplatform.support.consumer.ConsumerAuthConfig;
-import com.alibaba.apiopenplatform.support.consumer.HigressAuthConfig;
-import com.alibaba.apiopenplatform.support.enums.GatewayType;
-import com.alibaba.apiopenplatform.support.gateway.GatewayConfig;
-import com.alibaba.apiopenplatform.support.gateway.HigressConfig;
-import com.alibaba.apiopenplatform.support.product.HigressRefConfig;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.dto.result.httpapi.HttpRouteResult;
+import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
+import com.alibaba.himarket.dto.result.mcp.HigressMCPServerResult;
+import com.alibaba.himarket.dto.result.mcp.MCPConfigResult;
+import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
+import com.alibaba.himarket.dto.result.model.HigressModelResult;
+import com.alibaba.himarket.dto.result.model.ModelConfigResult;
+import com.alibaba.himarket.entity.Gateway;
+import com.alibaba.himarket.entity.Consumer;
+import com.alibaba.himarket.entity.ConsumerCredential;
+import com.alibaba.himarket.service.gateway.client.HigressClient;
+import com.alibaba.himarket.support.consumer.ApiKeyConfig;
+import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
+import com.alibaba.himarket.support.consumer.HigressAuthConfig;
+import com.alibaba.himarket.support.enums.GatewayType;
+import com.alibaba.himarket.support.gateway.GatewayConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
+import com.alibaba.himarket.support.product.HigressRefConfig;
import com.alibaba.higress.sdk.model.route.KeyedRoutePredicate;
import com.alibaba.higress.sdk.model.route.RoutePredicate;
@@ -165,9 +166,11 @@ public String fetchMcpConfig(Gateway gateway, Object conf) {
c.setPath(path);
List domains = higressMCPConfig.getDomains();
if (CollUtil.isEmpty(domains)) {
+ List gatewayIps = fetchGatewayIps(gateway);
+ String domain = CollUtil.isEmpty(gatewayIps) ? "" : gatewayIps.get(0);
c.setDomains(Collections.singletonList(
DomainResult.builder()
- .domain("")
+ .domain(domain)
.protocol("http")
.build()
));
@@ -221,20 +224,30 @@ public String fetchModelConfig(Gateway gateway, Object conf) {
HigressRefConfig higressRefConfig = (HigressRefConfig) conf;
HigressAIRoute aiRoute = fetchAIRoute(gateway, higressRefConfig.getModelRouteName());
- // Domains
- List domains = Optional.ofNullable(aiRoute.getDomains())
- .map(domainList -> domainList.stream()
- .map(domain -> DomainResult.builder()
- .domain(domain)
- .protocol(Optional.ofNullable(fetchDomain(gateway, domain))
- .map(HigressDomainConfig::getEnableHttps)
- .map(String::toLowerCase)
- .filter("off"::equals)
- .map(s -> "http")
- .orElse("https"))
- .build())
- .toList())
- .orElse(Collections.emptyList());
+ List domains;
+ if (CollUtil.isEmpty(aiRoute.getDomains())) {
+ // Use gateway IP as domain
+ List gatewayIps = fetchGatewayIps(gateway);
+ String domain = CollUtil.isEmpty(gatewayIps) ? "" : gatewayIps.get(0);
+ domains = Collections.singletonList(
+ DomainResult.builder()
+ .domain(domain)
+ .protocol("http")
+ .build()
+ );
+ } else {
+ domains = aiRoute.getDomains().stream()
+ .map(domain -> DomainResult.builder()
+ .domain(domain)
+ .protocol(Optional.ofNullable(fetchDomain(gateway, domain))
+ .map(HigressDomainConfig::getEnableHttps)
+ .map(String::toLowerCase)
+ .filter("off"::equals)
+ .map(s -> "http")
+ .orElse("https"))
+ .build())
+ .toList();
+ }
// AI route
List routeResults = Collections.singletonList(new HttpRouteResult().convertFrom(aiRoute, domains));
@@ -425,9 +438,25 @@ public String getDashboard(Gateway gateway, String type) {
@Override
public List fetchGatewayIps(Gateway gateway) {
- return Collections.emptyList();
+ String gatewayIp = Optional.ofNullable(gateway.getHigressConfig())
+ .map(HigressConfig::getGatewayAddress)
+ .filter(StrUtil::isNotBlank)
+ .map(address -> {
+ try {
+ return URLUtil.url(address).getHost();
+ } catch (Exception e) {
+ log.warn("Invalid gateway address: {}", address, e);
+ return address;
+ }
+ })
+ .orElse(null);
+
+ return StrUtil.isNotBlank(gatewayIp)
+ ? Collections.singletonList(gatewayIp)
+ : CollUtil.empty(List.class);
}
+
@Data
@Builder
public static class HigressConsumerConfig {
From 834cbfde27c6bf13b4f42d9ad7a3d32327728240 Mon Sep 17 00:00:00 2001
From: zhaoh
Date: Wed, 10 Dec 2025 11:07:33 +0800
Subject: [PATCH 03/13] fix: resolve issue where Model cannot use MCP in
Higress
Change-Id: I818a548d4239b13ad7cd57d1e100398b100c1757
---
.../service/impl/AbstractLlmService.java | 669 ++++++++++++++++++
.../service/impl/OpenAILlmService.java | 140 ++++
2 files changed, 809 insertions(+)
create mode 100644 himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java
create mode 100644 himarket-server/src/main/java/com/alibaba/himarket/service/impl/OpenAILlmService.java
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java
new file mode 100644
index 000000000..7a9aa700a
--- /dev/null
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java
@@ -0,0 +1,669 @@
+package com.alibaba.himarket.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.BooleanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.himarket.core.exception.ChatError;
+import com.alibaba.himarket.core.exception.ErrorCode;
+import com.alibaba.himarket.dto.params.chat.ChatContext;
+import com.alibaba.himarket.dto.params.chat.McpToolMeta;
+import com.alibaba.himarket.dto.params.chat.ToolContext;
+import com.alibaba.himarket.dto.result.chat.ChatAnswerMessage;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.model.ModelConfigResult;
+import com.alibaba.himarket.dto.result.product.ProductResult;
+import com.alibaba.himarket.service.LlmService;
+import com.alibaba.himarket.dto.params.chat.InvokeModelParam;
+import com.alibaba.himarket.dto.result.chat.LlmChatRequest;
+import com.alibaba.himarket.dto.result.chat.LlmInvokeResult;
+import com.alibaba.himarket.support.chat.ChatMessage;
+import com.alibaba.himarket.support.chat.ChatUsage;
+import com.alibaba.himarket.support.enums.ChatRole;
+import com.alibaba.himarket.support.product.ModelFeature;
+import com.alibaba.himarket.support.product.ProductFeature;
+import com.google.common.base.Stopwatch;
+import io.modelcontextprotocol.spec.McpSchema;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.ai.chat.client.ChatClient;
+import org.springframework.ai.chat.messages.*;
+import org.springframework.ai.chat.metadata.EmptyUsage;
+import org.springframework.ai.chat.metadata.Usage;
+import org.springframework.ai.chat.model.ChatResponse;
+import org.springframework.ai.chat.model.Generation;
+import org.springframework.ai.chat.prompt.ChatOptions;
+import org.springframework.ai.chat.prompt.Prompt;
+import org.springframework.ai.mcp.SyncMcpToolCallback;
+import org.springframework.ai.model.tool.ToolCallingManager;
+import org.springframework.ai.model.tool.ToolExecutionResult;
+import org.springframework.ai.openai.OpenAiChatOptions;
+import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.WebSearchOptions;
+import org.springframework.ai.tool.ToolCallback;
+import org.springframework.ai.tool.definition.ToolDefinition;
+import reactor.core.publisher.Flux;
+
+import java.net.URL;
+import java.util.*;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
+
+import static com.alibaba.himarket.dto.result.chat.ChatAnswerMessage.MessageType.*;
+import static com.alibaba.himarket.dto.result.chat.ChatAnswerMessage.MessageType;
+
+@Slf4j
+@RequiredArgsConstructor
+public abstract class AbstractLlmService implements LlmService {
+
+ protected final ToolCallingManager toolCallingManager;
+
+ protected final McpClientFactory mcpClientFactory;
+
+ /**
+ * Maximum number of tool-calling rounds allowed in a single chat conversation
+ */
+ private static final int MAX_ROUNDS_PER_CHAT = 10;
+
+ /**
+ * Invoke LLM with the given parameters and stream the response.
+ *
+ * @param param
+ * @param response
+ * @param resultHandler
+ * @return
+ */
+ @Override
+ public Flux invokeLLM(InvokeModelParam param, HttpServletResponse response, Consumer resultHandler) {
+ // ResultHandler is mainly used to record answer and usage
+ try {
+ LlmChatRequest request = composeRequest(param);
+
+ return call(request, resultHandler);
+ } catch (Exception e) {
+ log.error("Failed to invoke LLM, chatId: {}", param.getChatId(), e);
+ response.setStatus(ErrorCode.INTERNAL_ERROR.getStatus().value());
+ return Flux.just(ChatAnswerMessage.ofError(ErrorCode.INTERNAL_ERROR.getMessage(e.getMessage()), "Failed to invoke LLM"));
+ }
+ }
+
+ /**
+ * Execute the chat request and handle the streaming response.
+ *
+ * @param request
+ * @param resultHandler
+ * @return
+ */
+ private Flux call(LlmChatRequest request, Consumer resultHandler) {
+ request.tryResolveDns();
+
+ ChatContext chatContext = initChatContext(request);
+ chatContext.start();
+
+ log.info("zhaoh-test-request: {}", JSONUtil.toJsonStr(request));
+ Flux resp = chatContext.getChatClient()
+ .prompt(new Prompt(chatContext.getMessages(), chatContext.getChatOptions()))
+ .options(chatContext.getChatOptions())
+ .stream()
+ .chatResponse()
+ .flatMap(chatResponse -> {
+ if (chatResponse.getResult() == null) {
+ log.warn("LLM returned null result, chatId: {}, request: {}",
+ chatContext.getChatId(),
+ JSONUtil.toJsonStr(request));
+
+// return Flux.just(
+// newErrorMessage(chatContext.getChatId(), ChatError.LLM_ERROR.name(), ChatError.LLM_ERROR.getDescription()),
+// newChatAnswerMessage(null, null, STOP, chatContext)
+// );
+ return Flux.empty();
+ }
+
+ if (chatResponse.hasToolCalls()) {
+ /* Process LLM response that contains tool/function calls:
+ * - Execute the requested tools
+ * - Stream the results back to LLM
+ * - Handle multiple tool calls in sequence
+ */
+ return streamToolCalls(chatContext, chatResponse, resultHandler);
+ } else {
+ /* Process direct text response from LLM:
+ * - No tool execution needed
+ * - Stream the plain text response
+ */
+ return streamAnswer(chatResponse, chatContext);
+ }
+ })
+ .startWith(newChatAnswerMessage(null, request.getUserQuestion(), USER, chatContext))
+ .doOnNext(chatAnswerMessage -> chatContext.recordFirstByteTimeout())
+ // Execute result handler after complete
+ .doOnComplete(() -> resultHandler.accept(LlmInvokeResult.of(chatContext)));
+
+ return applyErrorHandling(resp, chatContext, resultHandler)
+ .doFinally(s -> {
+ chatContext.stop();
+ chatContext.close();
+ });
+ }
+
+ /**
+ * Initialize chat context with MCP tools and chat client.
+ *
+ * @param request
+ * @return
+ */
+ private ChatContext initChatContext(LlmChatRequest request) {
+ Map toolsMap = new HashMap<>();
+ List mcpClientWrappers = new ArrayList<>();
+
+ // Build MCP client and tool configs
+ ChatClient chatClient = newChatClient(request);
+
+ Optional.ofNullable(request.getMcpConfigs())
+ .stream()
+ .flatMap(Collection::stream)
+ .forEach(mcpConfig -> {
+ McpClientWrapper holder = mcpClientFactory.newClient(mcpConfig, request.getCredentialContext());
+ if (holder != null) {
+ mcpClientWrappers.add(holder);
+
+ List tools = holder.listTools();
+ if (tools != null) {
+ tools.forEach(tool -> {
+ // Tools meta
+ McpToolMeta toolMeta = McpToolMeta.builder()
+ .mcpName(mcpConfig.getMcpServerName())
+ .mcpNameCn(mcpConfig.getMcpServerName())
+ .toolName(tool.name())
+ .toolNameCn(tool.title())
+ .build();
+ toolsMap.put(toolMeta,
+ new SyncMcpToolCallback(holder.getMcpSyncClient(), tool));
+ });
+ }
+ }
+ });
+
+ ToolContext toolContext = ToolContext.of(toolsMap);
+
+ // ChatOptions for tool calling
+ ChatOptions chatOptions = Optional.of(request.getModelFeature())
+ .map(feature -> OpenAiChatOptions.builder()
+ .temperature(feature.getTemperature())
+ .maxTokens(feature.getMaxTokens())
+ .model(feature.getModel())
+ .internalToolExecutionEnabled(false)
+ .webSearchOptions(request.getWebSearchOptions())
+ .toolCallbacks(Optional.ofNullable(toolContext.getToolCallbacks())
+ .filter(CollUtil::isNotEmpty)
+ .orElseGet(ArrayList::new))
+ .build())
+ .get();
+
+ List messages = transformMessages(request.getChatMessages());
+
+ return ChatContext.builder()
+ .chatId(request.getChatId())
+ .messages(messages)
+ .chatClient(chatClient)
+ .chatOptions(chatOptions)
+ .toolContext(toolContext)
+ .mcpClientWrappers(mcpClientWrappers)
+ .build();
+ }
+
+ /**
+ * Compose LLM chat request from invoke parameters.
+ *
+ * @param param
+ * @return
+ */
+ private LlmChatRequest composeRequest(InvokeModelParam param) {
+ // Not be null
+ ProductResult product = param.getProduct();
+ ModelConfigResult modelConfig = product.getModelConfig();
+ // Get request URL (with query params)
+ CredentialContext credentialContext = param.getCredentialContext();
+ URL url = getUrl(modelConfig, credentialContext.copyQueryParams(), param.getGatewayIps());
+
+ // Model feature
+ ModelFeature modelFeature = getOrDefaultModelFeature(product);
+
+ // Web search config
+ WebSearchOptions webSearchOptions = (BooleanUtil.isTrue(modelFeature.getWebSearch()) && BooleanUtil.isTrue(param.getEnableWebSearch())) ?
+ new WebSearchOptions(WebSearchOptions.SearchContextSize.MEDIUM, null) : null;
+
+ return LlmChatRequest.builder()
+ .chatId(param.getChatId())
+ .userQuestion(param.getUserQuestion())
+ .url(url)
+ .chatMessages(param.getChatMessages())
+ .headers(credentialContext.copyHeaders())
+ .gatewayIps(param.getGatewayIps())
+ .credentialContext(param.getCredentialContext())
+ .mcpConfigs(param.getMcpConfigs())
+ .modelFeature(modelFeature)
+ .webSearchOptions(webSearchOptions)
+ .build();
+ }
+
+ /**
+ * Get model feature from product or return default values.
+ *
+ * @param product
+ * @return
+ */
+ private ModelFeature getOrDefaultModelFeature(ProductResult product) {
+ ModelFeature modelFeature = Optional.ofNullable(product)
+ .map(ProductResult::getFeature)
+ .map(ProductFeature::getModelFeature)
+ .orElseGet(() -> ModelFeature.builder().build());
+
+ // Get model feature from product or return default values if any field is null/blank
+ // Default values: model="qwen-max", maxTokens=5000, temperature=0.9, streaming=true, webSearch=false
+ return ModelFeature.builder()
+ .model(StrUtil.blankToDefault(modelFeature.getModel(), "qwen-max"))
+ .maxTokens(ObjectUtil.defaultIfNull(modelFeature.getMaxTokens(), 5000))
+ .temperature(ObjectUtil.defaultIfNull(modelFeature.getTemperature(), 0.9))
+ .streaming(ObjectUtil.defaultIfNull(modelFeature.getStreaming(), true))
+ .webSearch(ObjectUtil.defaultIfNull(modelFeature.getWebSearch(), false))
+ .build();
+ }
+
+ /**
+ * Process and stream tool calls from LLM response.
+ *
+ * @param chatContext
+ * @param chatResponse
+ * @param resultHandler
+ * @return
+ */
+ private Flux streamToolCalls(ChatContext chatContext, ChatResponse chatResponse,
+ Consumer resultHandler) {
+ Usage usage = chatResponse.getMetadata().getUsage();
+
+ return Flux.fromIterable(chatResponse.getResults())
+ .flatMap(generation -> {
+ AssistantMessage assistantMessage = generation.getOutput();
+
+ if (!assistantMessage.hasToolCalls()) {
+ chatContext.getMessages().add(assistantMessage);
+ log.warn("Unexpected: chatResponse.hasToolCalls is true but AssistantMessage has no toolCalls");
+ return Flux.just(newChatAnswerMessage(
+ usage,
+ assistantMessage.getText(),
+ StrUtil.equalsIgnoreCase("STOP", generation.getMetadata().getFinishReason()) ? STOP : ANSWER,
+ chatContext
+ ));
+ }
+
+ /*
+ * Handle streaming tool calls fragmentation issue with Higress models:
+ *
+ * Problem: Higress models may split a single tool call into fragments during streaming:
+ * Fragment 1: ToolCall(id="123", args="{\"lat\":")
+ * Fragment 2: ToolCall(id="123", args=" 39.9}")
+ *
+ * Solution: Group by id, merge fragments, reconstruct complete tool calls while preserving single ones
+ */
+ List toolCalls = assistantMessage.getToolCalls();
+ Map> tooCallGroups = toolCalls.stream()
+ .collect(Collectors.groupingBy(AssistantMessage.ToolCall::id));
+
+ List mergedToolCalls = new ArrayList<>();
+ boolean hasFragment = false;
+
+ for (var entry : tooCallGroups.entrySet()) {
+ List group = entry.getValue();
+
+ if (group.size() == 1) {
+ mergedToolCalls.add(group.get(0));
+ continue;
+ }
+
+ // Merge fragmented tool calls
+ hasFragment = true;
+ AssistantMessage.ToolCall firstCall = group.get(0);
+ String accumulatedArgs = group.stream()
+ .map(AssistantMessage.ToolCall::arguments)
+ .collect(Collectors.joining(""));
+
+ mergedToolCalls.add(new AssistantMessage.ToolCall(
+ firstCall.id(),
+ firstCall.type(),
+ firstCall.name(),
+ accumulatedArgs
+ ));
+ log.info("Merged {} fragments for tool: {}", group.size(), firstCall.name());
+ }
+
+ ChatResponse responseToExecute;
+ AssistantMessage messageToAdd;
+
+ if (hasFragment) {
+ // Reconstructed message
+ AssistantMessage mergedMessage = AssistantMessage.builder()
+ .content(assistantMessage.getText())
+ .media(assistantMessage.getMedia())
+ .properties(assistantMessage.getMetadata())
+ .toolCalls(mergedToolCalls)
+ .build();
+
+ responseToExecute = new ChatResponse(
+ List.of(new Generation(mergedMessage, generation.getMetadata())),
+ chatResponse.getMetadata()
+ );
+ messageToAdd = mergedMessage;
+ } else {
+ // Use original response
+ responseToExecute = chatResponse;
+ messageToAdd = assistantMessage;
+ }
+
+ chatContext.getMessages().add(messageToAdd);
+
+ Flux toolProcess = Flux.concat(
+ buildToolCallMessages(mergedToolCalls, usage, chatContext),
+ executeToolCalls(usage, chatContext, responseToExecute)
+ );
+
+ // Check if exceeded max request count
+ if (chatContext.nextRound() > MAX_ROUNDS_PER_CHAT) {
+ return Flux.concat(
+ toolProcess,
+ Flux.just(newChatAnswerMessage(usage, null, STOP, chatContext))
+ );
+ }
+
+ // Continue with next call
+ return Flux.concat(
+ toolProcess,
+ applyErrorHandling(
+ continueNextCall(chatContext, resultHandler),
+ chatContext,
+ resultHandler
+ )
+ );
+ });
+ }
+
+ /**
+ * Stream direct text answer from LLM response.
+ *
+ * @param chatResponse
+ * @param chatContext
+ * @return
+ */
+ private Flux streamAnswer(ChatResponse chatResponse, ChatContext chatContext) {
+ Usage usage = chatResponse.getMetadata().getUsage();
+ return Flux.fromIterable(chatResponse.getResults())
+ .map(generation -> {
+ AssistantMessage assistantMessage = generation.getOutput();
+ chatContext.getMessages().add(assistantMessage);
+
+ return newChatAnswerMessage(
+ usage,
+ assistantMessage.getText(),
+ StrUtil.equalsIgnoreCase("STOP", generation.getMetadata().getFinishReason())
+ ? STOP : ANSWER,
+ chatContext
+ );
+ });
+ }
+
+ /**
+ * Continue with the next LLM call after tool execution.
+ *
+ * @param chatContext
+ * @param resultHandler
+ * @return
+ */
+ private Flux continueNextCall(ChatContext chatContext, Consumer resultHandler) {
+
+ ChatOptions chatOptions = chatContext.getChatOptions();
+ return Flux.defer(() -> chatContext.getChatClient()
+ .prompt(new Prompt(chatContext.getMessages(), chatOptions))
+ .options(chatOptions)
+ .toolCallbacks(chatContext.getToolContext().getToolCallbacks())
+ .stream()
+ .chatResponse()
+ .flatMap(nextChatResponse -> {
+ if (nextChatResponse.getResult() == null) {
+ log.warn("Unexpected: chatResponse.generation is null");
+ return Flux.empty();
+ }
+
+ // If the message has tool calls
+ return nextChatResponse.hasToolCalls()
+ ? streamToolCalls(chatContext, nextChatResponse, resultHandler)
+ : streamAnswer(nextChatResponse, chatContext);
+ }));
+ }
+
+ /**
+ * Apply error handling and logging to the chat response stream.
+ *
+ * @param flux
+ * @param chatContext
+ * @param resultHandler
+ * @return
+ */
+ private Flux applyErrorHandling(Flux flux, ChatContext chatContext,
+ Consumer resultHandler) {
+ String chatId = chatContext.getChatId();
+
+ return flux
+ .doOnCancel(() -> {
+ log.warn("Chat was canceled, chatId: {}", chatId);
+ resultHandler.accept(LlmInvokeResult.of(chatContext));
+ })
+ .doOnError(e -> {
+ log.error("Chat encountered error, chatId: {}", chatId, e);
+ // Append error message to answer
+ chatContext.appendAnswer(e.getMessage());
+ chatContext.setSuccess(false);
+ resultHandler.accept(LlmInvokeResult.of(chatContext));
+ })
+ .onErrorResume(error -> {
+ ChatError chatError = ChatError.from(error);
+ log.error("Chat execution failed, chatId: {}, error type: {}", chatId, chatError, error);
+
+ return Flux.just(
+ newErrorMessage(chatId, chatError.name(), error.getMessage()),
+ newChatAnswerMessage(null, null, STOP, chatContext)
+ );
+ });
+ }
+
+ /**
+ * Build tool call messages from assistant's tool call requests.
+ *
+ * @param toolCalls
+ * @param usage
+ * @param chatContext
+ * @return
+ */
+ private Flux buildToolCallMessages(List toolCalls, Usage usage,
+ ChatContext chatContext) {
+ return Flux.fromIterable(toolCalls)
+ .map(toolCall -> {
+ String toolName = toolCall.name();
+ ToolContext toolContext = chatContext.getToolContext();
+
+ ChatAnswerMessage.ToolCall tc = ChatAnswerMessage.ToolCall.builder()
+ .id(toolCall.id())
+ .name(toolName)
+ .type(toolCall.type())
+ // Tool arguments
+ .arguments(toolCall.arguments())
+ .input(toolCall.arguments())
+ // Tool schema
+ .inputSchema(Optional.ofNullable(toolContext.getToolDefinition(toolName))
+ .map(ToolDefinition::inputSchema)
+ .orElse(null))
+ .toolMeta(toolContext.getToolMeta(toolName))
+ .build();
+
+ return newChatAnswerMessage(usage, tc, TOOL_CALL, chatContext);
+ });
+ }
+
+ /**
+ * Execute tool calls and return the results as messages.
+ *
+ * @param usage
+ * @param chatContext
+ * @param chatResponse
+ * @return
+ */
+ private Flux executeToolCalls(Usage usage, ChatContext chatContext, ChatResponse chatResponse) {
+ return Flux.defer(() -> {
+ Stopwatch stopwatch = Stopwatch.createUnstarted();
+ stopwatch.start();
+
+ try {
+ // Execute tool calls
+ ToolExecutionResult result = toolCallingManager.executeToolCalls(
+ new Prompt(chatContext.getMessages(), chatContext.getChatOptions()),
+ chatResponse
+ );
+
+ // Append tool calls to messages
+ Message lastMessage = result.conversationHistory()
+ .get(result.conversationHistory().size() - 1);
+ chatContext.getMessages().add(lastMessage);
+
+ // Build tool call messages
+ if (lastMessage instanceof ToolResponseMessage toolResponseMessage) {
+ long costMillis = stopwatch.elapsed().getSeconds();
+ log.info("Tool execution completed in {} ms", costMillis);
+
+ return Flux.fromIterable(toolResponseMessage.getResponses())
+ .map(response -> newChatAnswerMessage(
+ usage,
+ ChatAnswerMessage.ToolResponse.builder()
+ .id(response.id())
+ .name(response.name())
+ .responseData(response.responseData())
+ .output(response.responseData())
+ .costMillis(costMillis)
+ .toolMeta(chatContext.getToolContext().getToolMeta(response.name()))
+ .build(),
+ TOOL_RESPONSE,
+ chatContext
+ ));
+ }
+
+ return Flux.empty();
+ } catch (Throwable t) {
+ log.error("Tool execution failed after {} ms", stopwatch.elapsed().toMillis(), t);
+ return Flux.error(t);
+ } finally {
+ stopwatch.stop();
+ }
+ });
+ }
+
+ /**
+ * Create a new chat answer message with usage information.
+ *
+ * @param usage
+ * @param content
+ * @param messageType
+ * @param chatContext
+ * @return
+ */
+ private ChatAnswerMessage newChatAnswerMessage(Usage usage, Object content, MessageType messageType, ChatContext chatContext) {
+ // Append to answer content
+ if (messageType == ANSWER && content instanceof String strContent) {
+ chatContext.appendAnswer(strContent);
+ }
+
+ ChatUsage chatUsage = (usage != null && !(usage instanceof EmptyUsage)) ?
+ ChatUsage.builder()
+ .firstByteTimeout(chatContext.getFirstByteTimeout())
+ .promptTokens(usage.getPromptTokens())
+ .completionTokens(usage.getCompletionTokens())
+ .totalTokens(usage.getTotalTokens())
+ .build()
+ : null;
+
+ if (messageType == STOP) {
+ chatContext.setChatUsage(chatUsage);
+ chatContext.stop();
+ }
+
+ return ChatAnswerMessage.builder()
+ .chatId(chatContext.getChatId())
+ .content(content)
+ .chatUsage(chatUsage)
+ .msgType(messageType)
+ .build();
+ }
+
+ /**
+ * Create a new error message.
+ *
+ * @param chatId
+ * @param error
+ * @param message
+ * @return
+ */
+ private ChatAnswerMessage newErrorMessage(String chatId, String error, String message) {
+ return ChatAnswerMessage.builder()
+ .chatId(chatId)
+ .error(error)
+ .message(message)
+ .msgType(ERROR)
+ .build();
+ }
+
+ /**
+ * Transform OpenAI-compatible ChatMessage objects to SDK-compatible Message objects.
+ *
+ * @param messages
+ * @return
+ */
+ private List transformMessages(List messages) {
+ List contextMessages = new ArrayList<>();
+ messages.forEach(chatMessage -> {
+ String role = chatMessage.getRole();
+ ChatRole chatRole = ChatRole.of(role);
+ switch (chatRole) {
+ case USER:
+ contextMessages.add(new UserMessage(chatMessage.getContent().toString()));
+ break;
+ case SYSTEM:
+ contextMessages.add(new SystemMessage(chatMessage.getContent().toString()));
+ break;
+ case ASSISTANT:
+ contextMessages.add(new AssistantMessage(chatMessage.getContent().toString()));
+ break;
+ default:
+ break;
+ }
+ });
+ return contextMessages;
+ }
+
+ /**
+ * Constructs a URL based on the model configuration and query parameters.
+ *
+ * @param modelConfig
+ * @param queryParams
+ * @param gatewayIps
+ * @return
+ */
+ protected abstract URL getUrl(ModelConfigResult modelConfig, Map queryParams, List gatewayIps);
+
+ /**
+ * Builds a ChatClient instance according to the specified protocol (e.g., OpenAI, etc.)
+ * based on the given LlmChatRequest.
+ *
+ * @param request
+ * @return
+ */
+ protected abstract ChatClient newChatClient(LlmChatRequest request);
+}
\ No newline at end of file
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OpenAILlmService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OpenAILlmService.java
new file mode 100644
index 000000000..fd963b3a8
--- /dev/null
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/OpenAILlmService.java
@@ -0,0 +1,140 @@
+package com.alibaba.himarket.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.himarket.dto.result.chat.LlmChatRequest;
+import com.alibaba.himarket.dto.result.common.DomainResult;
+import com.alibaba.himarket.dto.result.consumer.CredentialContext;
+import com.alibaba.himarket.dto.result.httpapi.HttpRouteResult;
+import com.alibaba.himarket.dto.result.model.ModelConfigResult;
+import com.alibaba.himarket.support.enums.AIProtocol;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.ai.chat.client.ChatClient;
+import org.springframework.ai.model.tool.ToolCallingManager;
+import org.springframework.ai.openai.OpenAiChatModel;
+import org.springframework.ai.openai.OpenAiChatOptions;
+import org.springframework.ai.openai.api.OpenAiApi;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.reactive.function.client.WebClient;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.*;
+
+@Service
+@Slf4j
+public class OpenAILlmService extends AbstractLlmService {
+
+ public OpenAILlmService(ToolCallingManager toolCallingManager,
+ McpClientFactory mcpClientFactory) {
+ super(toolCallingManager, mcpClientFactory);
+ }
+
+ @Override
+ public ChatClient newChatClient(LlmChatRequest request) {
+ MultiValueMap headers = new HttpHeaders();
+ Optional.ofNullable(request.getHeaders())
+ .ifPresent(headerMap -> headerMap.forEach(headers::add));
+
+ // Build base URL
+ URL url = request.getUrl();
+ String baseUrl = url.getProtocol() +
+ "://" +
+ url.getHost() +
+ (url.getPort() > 0 ? ":" + url.getPort() : "");
+
+ WebClient.Builder webClientBuilder = WebClient.builder()
+ .codecs(configurer -> configurer
+ .defaultCodecs()
+ .maxInMemorySize(16 * 1024 * 1024));
+
+ // Configure OpenAI API client
+ OpenAiApi openAiApi = OpenAiApi.builder()
+ .baseUrl(baseUrl)
+ .completionsPath(url.getPath())
+ .headers(headers)
+ .apiKey(Optional.ofNullable(request.getCredentialContext())
+ .map(CredentialContext::getApiKey)
+ .orElse(""))
+ .webClientBuilder(webClientBuilder)
+ .build();
+
+ OpenAiChatModel chatModel = OpenAiChatModel.builder()
+ .openAiApi(openAiApi)
+ .toolCallingManager(toolCallingManager)
+ .defaultOptions(OpenAiChatOptions.builder()
+ .streamUsage(true)
+ .build())
+ .build();
+
+ return ChatClient.builder(chatModel).build();
+ }
+
+ @Override
+ public URL getUrl(ModelConfigResult modelConfig, Map queryParams, List gatewayIps) {
+ ModelConfigResult.ModelAPIConfig modelAPIConfig = modelConfig.getModelAPIConfig();
+ if (modelAPIConfig == null || CollUtil.isEmpty(modelAPIConfig.getRoutes())) {
+ log.error("Invalid model config - modelAPIConfig is null or routes is empty");
+ return null;
+ }
+
+ // Find preferred route
+ HttpRouteResult route = modelAPIConfig.getRoutes().stream()
+ .filter(r -> Optional.ofNullable(r.getMatch())
+ .map(HttpRouteResult.RouteMatchResult::getPath)
+ .map(HttpRouteResult.RouteMatchPath::getValue)
+ // Find path that ends with /chat/completions
+ .filter(path -> path.endsWith("/chat/completions"))
+ .isPresent())
+ .findFirst()
+ .orElseGet(() -> modelAPIConfig.getRoutes().get(0));
+
+ String path = Optional.ofNullable(route.getMatch())
+ .map(HttpRouteResult.RouteMatchResult::getPath)
+ .map(HttpRouteResult.RouteMatchPath::getValue)
+ .orElse("");
+
+ try {
+ UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
+
+ // Find domain or use gateway IP
+ DomainResult domain = route.getDomains().stream()
+ .filter(d -> !StrUtil.equalsIgnoreCase(d.getNetworkType(), "intranet"))
+ .findFirst()
+ .orElseGet(() -> CollUtil.isNotEmpty(route.getDomains()) ?
+ route.getDomains().get(0) : null);
+
+ if (domain != null) {
+ String protocol = StrUtil.isNotBlank(domain.getProtocol()) ?
+ domain.getProtocol().toLowerCase() : "http";
+ builder.scheme(protocol)
+ .host(domain.getDomain());
+ } else if (CollUtil.isNotEmpty(gatewayIps)) {
+ builder.scheme("http")
+ .host(gatewayIps.get(RandomUtil.randomInt(gatewayIps.size())));
+ } else {
+ log.error("Failed to build URL - no valid domain found and no gateway IPs available");
+ return null;
+ }
+
+ // Add path and query params
+ builder.path(path);
+ Optional.ofNullable(queryParams)
+ .ifPresent(params -> params.forEach(builder::queryParam));
+
+ return new URL(builder.build().toUriString());
+ } catch (MalformedURLException e) {
+ log.error("Failed to build URL due to malformed URL", e);
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public AIProtocol getProtocol() {
+ return AIProtocol.OPENAI;
+ }
+}
From 570869e9e9dc3adbef11a72c30e02ac281d0cb5e Mon Sep 17 00:00:00 2001
From: zhaoh
Date: Wed, 10 Dec 2025 11:08:54 +0800
Subject: [PATCH 04/13] docs: add user guide and update README with PR
guidelines
Change-Id: I4c648e944313a85e4da1c10fdc8d477288a10e4c
---
.github/PR_GUIDE.md | 494 +++++++++++++++++
.github/PR_GUIDE_zh.md | 496 ++++++++++++++++++
.github/PULL_REQUEST_TEMPLATE.md | 51 ++
.github/workflows/pr-check.yml | 198 +++++++
README.md | 299 ++++++-----
README_zh.md | 218 ++++++++
USER_GUIDE.md | 434 +++++++++++++++
USER_GUIDE_zh.md | 387 ++++++++++++++
.../service/impl/AbstractLlmService.java | 1 -
9 files changed, 2426 insertions(+), 152 deletions(-)
create mode 100644 .github/PR_GUIDE.md
create mode 100644 .github/PR_GUIDE_zh.md
create mode 100644 .github/PULL_REQUEST_TEMPLATE.md
create mode 100644 .github/workflows/pr-check.yml
create mode 100644 README_zh.md
create mode 100644 USER_GUIDE.md
create mode 100644 USER_GUIDE_zh.md
diff --git a/.github/PR_GUIDE.md b/.github/PR_GUIDE.md
new file mode 100644
index 000000000..d1bfa4e37
--- /dev/null
+++ b/.github/PR_GUIDE.md
@@ -0,0 +1,494 @@
+# Pull Request Guidelines
+
+This document describes the PR submission guidelines for the Himarket project.
+
+## 🎯 PR Title Format
+
+### Required Format
+
+```
+type: brief description
+```
+
+or with scope:
+
+```
+type(scope): brief description
+```
+
+### Allowed Types
+
+| Type | Description | Example |
+|------|-------------|---------|
+| `feat` | New feature | `feat: add user authentication` |
+| `fix` | Bug fix | `fix: resolve memory leak` |
+| `docs` | Documentation | `docs: update API documentation` |
+| `style` | Code formatting | `style: format with prettier` |
+| `refactor` | Code refactoring | `refactor: simplify service logic` |
+| `perf` | Performance | `perf: optimize queries` |
+| `test` | Testing | `test: add unit tests` |
+| `build` | Build system | `build: update dependencies` |
+| `ci` | CI/CD | `ci: add workflow` |
+| `chore` | Other changes | `chore: update gitignore` |
+| `revert` | Revert commit | `revert: revert commit abc123` |
+
+### Title Rules
+
+1. ✅ Must include type prefix
+2. ✅ Colon and space after type: `feat: ` not `feat:`
+3. ✅ Description must start with lowercase letter
+4. ✅ Keep it brief and clear (recommended < 50 characters)
+
+### ✅ Correct Examples
+
+```
+✅ feat: add product feature configuration
+✅ fix: resolve pagination issue in product list
+✅ docs: update deployment guide
+✅ feat(product): add feature configuration support
+✅ refactor(api): simplify product service
+✅ perf: optimize database query performance
+```
+
+### ❌ Wrong Examples
+
+```
+❌ Add product feature (missing type)
+❌ feat: Add Feature (uppercase first letter)
+❌ featadd feature (missing colon and space)
+❌ feature: add feature (invalid type, should be "feat")
+❌ feat:add feature (missing space after colon)
+```
+
+---
+
+## 📝 PR Content Format
+
+### Required Sections
+
+#### 1. Description (Required)
+
+Must include a `## Description` section with at least 10 characters of meaningful content.
+
+**Format:**
+```markdown
+## Description
+
+[Your changes - minimum 10 characters]
+```
+
+**You can use:**
+- Bullet points (recommended)
+- Paragraphs
+- Mixed format
+
+**Examples:**
+
+**Style 1: Bullet Points (Recommended)**
+```markdown
+## Description
+
+- Add feature field to product DTO
+- Create ModelFeatureForm component
+- Update product service logic
+- Add database migration script
+```
+
+**Style 2: Paragraphs**
+```markdown
+## Description
+
+This PR adds product feature configuration functionality for MODEL_API
+products. Users can now configure model parameters directly from the
+admin panel.
+```
+
+**Style 3: Detailed**
+```markdown
+## Description
+
+### Changes
+- Refactored ClientFactory class
+- Added ErrorHandler utility
+- Updated configuration loading
+
+### Benefits
+- Improved code readability
+- Better error messages
+- 20% faster initialization
+```
+
+#### 2. Related Issues (Optional but Recommended)
+
+Link related issues to help track what's being fixed.
+
+**Format:**
+```markdown
+## Related Issues
+
+Fix #123
+Close #456
+```
+
+**Supported Keywords:**
+- `Fix #123` / `Fixes #123` / `Fixed #123`
+- `Close #123` / `Closes #123` / `Closed #123`
+- `Resolve #123` / `Resolves #123` / `Resolved #123`
+
+When the PR is merged, linked issues will be automatically closed.
+
+#### 3. Checklist (Required: Code Formatting)
+
+The checklist helps ensure code quality and completeness.
+
+**Format:**
+```markdown
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [ ] Tests added/updated (if applicable)
+- [ ] Documentation updated (if applicable)
+- [ ] No breaking changes (or migration guide provided)
+```
+
+**Required Item:**
+- ✅ **Code has been formatted with `mvn spotless:apply`** - This item MUST be checked
+
+**Optional Items:**
+- Code is self-reviewed
+- Tests added/updated (if applicable)
+- Documentation updated (if applicable)
+- No breaking changes (or migration guide provided)
+
+**Important:** Before submitting your PR, you must:
+1. Run `mvn spotless:apply` in your project root
+2. Check the "Code has been formatted" box in the Checklist
+3. Commit any formatting changes
+
+---
+
+## 🔍 Automated Checks
+
+Every PR will automatically trigger two checks:
+
+### 1. PR Title Check
+
+**Validates:**
+- ✅ Type prefix is present and valid
+- ✅ Format includes colon and space
+- ✅ Description starts with lowercase letter
+
+**Result:**
+- ✅ Pass: Title format is correct
+- ❌ Fail: Title format error (with detailed explanation)
+
+### 2. PR Content Check
+
+**Validates:**
+- ✅ `## Description` section exists
+- ✅ Description content is at least 10 characters
+- ✅ `## Checklist` section exists
+- ✅ "Code has been formatted with `mvn spotless:apply`" is checked
+
+**Optional Checks (warnings only):**
+- 💡 Suggests linking issues if not present
+- 💡 Suggests adding more details if description is very short (< 50 chars)
+
+**Result:**
+- ✅ Pass: All required sections present and code formatting confirmed
+- ❌ Fail: Missing description, too short, or code formatting not confirmed
+- 💡 Suggestion: Recommendations for improvement
+
+---
+
+## 📚 Complete Examples
+
+### Example 1: Feature PR ✅
+
+**Title:**
+```
+feat: add product feature configuration
+```
+
+**Content:**
+```markdown
+## Description
+
+- Add feature field to product DTO and database schema
+- Create ModelFeatureForm component for configuration UI
+- Update product service to persist feature configurations
+- Add database migration script for the new column
+
+## Related Issues
+
+Fix #123
+Close #456
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [x] Tests added/updated (if applicable)
+- [x] Documentation updated (if applicable)
+```
+
+**Check Result:**
+```
+✅ pr-title-check: Passed
+✅ pr-content-check: Passed
+```
+
+---
+
+### Example 2: Bug Fix PR ✅
+
+**Title:**
+```
+fix: resolve pagination issue in product list
+```
+
+**Content:**
+```markdown
+## Description
+
+Fixed SQL injection vulnerability in product list pagination by
+replacing string concatenation with parameterized queries.
+
+Testing: Verified with 10,000+ records.
+
+## Related Issues
+
+Fix #789
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [x] Tests added/updated (if applicable)
+```
+
+**Check Result:**
+```
+✅ pr-title-check: Passed
+✅ pr-content-check: Passed
+```
+
+---
+
+### Example 3: Simple Refactoring ✅
+
+**Title:**
+```
+refactor: simplify client initialization
+```
+
+**Content:**
+```markdown
+## Description
+
+- Extract initialization logic to separate method
+- Remove duplicate code
+- Add inline documentation
+
+## Related Issues
+
+None
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+```
+
+**Check Result:**
+```
+✅ pr-title-check: Passed
+✅ pr-content-check: Passed
+💡 Suggestion: Consider linking related issues
+```
+
+---
+
+## ❌ Common Mistakes
+
+### Mistake 1: Wrong Title Format
+
+**Wrong:**
+```
+Add new feature
+```
+
+**Correct:**
+```
+feat: add new feature
+```
+
+**Error Message:**
+```
+❌ PR title format is incorrect!
+Missing type prefix. Expected format: type: description
+```
+
+---
+
+### Mistake 2: Uppercase Description
+
+**Wrong:**
+```
+feat: Add New Feature
+```
+
+**Correct:**
+```
+feat: add new feature
+```
+
+**Error Message:**
+```
+❌ PR title format is incorrect!
+Subject must start with lowercase letter
+```
+
+---
+
+### Mistake 3: Missing Description Section
+
+**Wrong:**
+```markdown
+This PR adds new feature.
+
+## Related Issues
+Fix #123
+```
+
+**Correct:**
+```markdown
+## Description
+
+This PR adds new feature.
+
+## Related Issues
+Fix #123
+```
+
+**Error Message:**
+```
+❌ Missing description or too short (at least 10 characters required)
+```
+
+---
+
+### Mistake 4: Description Too Short
+
+**Wrong:**
+```markdown
+## Description
+
+Fix bug
+```
+(Only 7 characters)
+
+**Correct:**
+```markdown
+## Description
+
+Fix pagination bug in product list
+```
+
+**Error Message:**
+```
+❌ Missing description or too short (at least 10 characters required)
+```
+
+---
+
+### Mistake 5: Code Formatting Not Confirmed
+
+**Wrong:**
+```markdown
+## Description
+
+Add new feature
+
+## Checklist
+
+- [ ] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+```
+
+**Correct:**
+```markdown
+## Description
+
+Add new feature
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+```
+
+**Error Message:**
+```
+❌ Please confirm code has been formatted with `mvn spotless:apply`
+```
+
+**Note:** You must:
+1. Run `mvn spotless:apply` in your terminal
+2. Commit any formatting changes
+3. Check the box in the Checklist
+
+---
+
+## ❓ FAQ
+
+### Q: Do I need to fill in all sections?
+
+**A:** Only the `## Description` section is required. `## Related Issues` is optional but recommended.
+
+---
+
+### Q: Can I use Chinese in the description?
+
+**A:** Yes, but we recommend using English for better collaboration. The title must follow the English format.
+
+---
+
+### Q: What if my PR doesn't fix any issue?
+
+**A:** That's fine! You can write "None" in the Related Issues section or leave it empty. It won't cause the check to fail.
+
+---
+
+### Q: Can I write the description in paragraph format?
+
+**A:** Absolutely! Any format is fine as long as it's clear and at least 10 characters. Bullet points are just recommended for readability.
+
+---
+
+### Q: What happens if the check fails?
+
+**A:**
+1. You'll see a ❌ mark on your PR
+2. The bot will comment with specific errors
+3. Edit your PR title or description to fix the issues
+4. The check will automatically re-run
+
+---
+
+### Q: Can I bypass the check?
+
+**A:** No, but project maintainers can override if there's a valid reason. Generally, following the guidelines is quick and easy.
+
+---
+
+### Q: Why must the title start with lowercase?
+
+**A:** This is a widely adopted convention (Conventional Commits). It keeps commit history clean and consistent.
+
+---
+
+### Q: What if I make multiple unrelated changes?
+
+**A:** Consider splitting into separate PRs. If they must be together, describe all changes clearly in the Description section.
\ No newline at end of file
diff --git a/.github/PR_GUIDE_zh.md b/.github/PR_GUIDE_zh.md
new file mode 100644
index 000000000..edb209b74
--- /dev/null
+++ b/.github/PR_GUIDE_zh.md
@@ -0,0 +1,496 @@
+# Pull Request 提交指南
+
+本文档说明 Himarket 项目的 PR 提交规范。
+
+## 🎯 PR 标题格式
+
+### 必需格式
+
+```
+type: 简短描述
+```
+
+或带范围:
+
+```
+type(scope): 简短描述
+```
+
+### 允许的 Type
+
+| Type | 说明 | 示例 |
+|------|------|------|
+| `feat` | 新功能 | `feat: add user authentication` |
+| `fix` | Bug 修复 | `fix: resolve memory leak` |
+| `docs` | 文档更新 | `docs: update API documentation` |
+| `style` | 代码格式 | `style: format with prettier` |
+| `refactor` | 重构 | `refactor: simplify service logic` |
+| `perf` | 性能优化 | `perf: optimize queries` |
+| `test` | 测试 | `test: add unit tests` |
+| `build` | 构建系统 | `build: update dependencies` |
+| `ci` | CI/CD | `ci: add workflow` |
+| `chore` | 其他变更 | `chore: update gitignore` |
+| `revert` | 回滚 | `revert: revert commit abc123` |
+
+### 标题规则
+
+1. ✅ 必须包含 type 前缀
+2. ✅ type 后需要冒号和空格:`feat: ` 而不是 `feat:`
+3. ✅ 描述必须以小写字母开头
+4. ✅ 保持简短清晰(建议 < 50 字符)
+
+### ✅ 正确示例
+
+```
+✅ feat: add product feature configuration
+✅ fix: resolve pagination issue in product list
+✅ docs: update deployment guide
+✅ feat(product): add feature configuration support
+✅ refactor(api): simplify product service
+✅ perf: optimize database query performance
+```
+
+### ❌ 错误示例
+
+```
+❌ Add product feature (缺少 type)
+❌ feat: Add Feature (首字母大写)
+❌ featadd feature (缺少冒号和空格)
+❌ feature: add feature (type 错误,应该是 feat)
+❌ feat:add feature (冒号后缺少空格)
+```
+
+---
+
+## 📝 PR 内容格式
+
+### 必填部分
+
+#### 1. Description(必填)
+
+必须包含 `## Description` 部分,且内容至少 10 个字符。
+
+**格式:**
+```markdown
+## Description
+
+[你的变更内容 - 至少 10 个字符]
+```
+
+**可以使用:**
+- 列表形式(推荐)
+- 段落形式
+- 混合形式
+
+**示例:**
+
+**样式 1:列表形式(推荐)**
+```markdown
+## Description
+
+- 在产品 DTO 中添加 feature 字段
+- 创建 ModelFeatureForm 组件
+- 更新产品服务逻辑
+- 添加数据库迁移脚本
+```
+
+**样式 2:段落形式**
+```markdown
+## Description
+
+此 PR 为 MODEL_API 产品添加了特性配置功能。用户现在可以直接
+从管理后台配置模型参数。
+```
+
+**样式 3:详细说明**
+```markdown
+## Description
+
+### 主要变更
+- 重构了 ClientFactory 类
+- 添加了 ErrorHandler 工具类
+- 更新了配置加载逻辑
+
+### 改进效果
+- 提高代码可读性
+- 更好的错误提示
+- 初始化速度提升 20%
+```
+
+#### 2. Related Issues(可选但推荐)
+
+关联相关 Issue,帮助追踪解决了哪些问题。
+
+**格式:**
+```markdown
+## Related Issues
+
+Fix #123
+Close #456
+```
+
+**支持的关键词:**
+- `Fix #123` / `Fixes #123` / `Fixed #123`
+- `Close #123` / `Closes #123` / `Closed #123`
+- `Resolve #123` / `Resolves #123` / `Resolved #123`
+
+当 PR 合并后,关联的 Issue 会自动关闭。
+
+#### 3. Checklist(必填:代码格式化)
+
+检查清单帮助确保代码质量和完整性。
+
+**格式:**
+```markdown
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [ ] Tests added/updated (if applicable)
+- [ ] Documentation updated (if applicable)
+- [ ] No breaking changes (or migration guide provided)
+```
+
+**必填项:**
+- ✅ **Code has been formatted with `mvn spotless:apply`** - 此项必须勾选
+
+**可选项:**
+- Code is self-reviewed(代码已自我审查)
+- Tests added/updated (if applicable)(已添加/更新测试,如适用)
+- Documentation updated (if applicable)(已更新文档,如适用)
+- No breaking changes (or migration guide provided)(无破坏性变更,或已提供迁移指南)
+
+**重要提示:** 提交 PR 前,你必须:
+1. 在项目根目录运行 `mvn spotless:apply`
+2. 勾选 Checklist 中的"代码已格式化"选项
+3. 提交任何格式化产生的变更
+
+---
+
+## 🔍 自动检查
+
+每个 PR 会自动触发两项检查:
+
+### 1. PR 标题检查
+
+**验证内容:**
+- ✅ type 前缀存在且有效
+- ✅ 格式包含冒号和空格
+- ✅ 描述以小写字母开头
+
+**检查结果:**
+- ✅ 通过:标题格式正确
+- ❌ 失败:标题格式错误(附带详细说明)
+
+### 2. PR 内容检查
+
+**验证内容:**
+- ✅ 存在 `## Description` 部分
+- ✅ 描述内容至少 10 个字符
+- ✅ 存在 `## Checklist` 部分
+- ✅ "Code has been formatted with `mvn spotless:apply`" 已勾选
+
+**可选检查(仅建议):**
+- 💡 如果没有关联 Issue,会建议添加
+- 💡 如果描述很短(< 50 字符),会建议补充
+
+**检查结果:**
+- ✅ 通过:所有必填项完整且代码格式化已确认
+- ❌ 失败:缺少描述、内容太短或未确认代码格式化
+- 💡 建议:改进建议
+
+---
+
+## 📚 完整示例
+
+### 示例 1:新功能 PR ✅
+
+**标题:**
+```
+feat: add product feature configuration
+```
+
+**内容:**
+```markdown
+## Description
+
+- 在产品 DTO 和数据库架构中添加 feature 字段
+- 创建 ModelFeatureForm 组件提供配置界面
+- 更新产品服务以持久化特性配置
+- 添加新列的数据库迁移脚本
+
+## Related Issues
+
+Fix #123
+Close #456
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [x] Tests added/updated (if applicable)
+- [x] Documentation updated (if applicable)
+```
+
+**检查结果:**
+```
+✅ pr-title-check: 通过
+✅ pr-content-check: 通过
+```
+
+---
+
+### 示例 2:Bug 修复 PR ✅
+
+**标题:**
+```
+fix: resolve pagination issue in product list
+```
+
+**内容:**
+```markdown
+## Description
+
+修复了产品列表分页中的 SQL 注入漏洞,将字符串拼接改为
+参数化查询。
+
+测试:已用 10,000+ 条记录验证。
+
+## Related Issues
+
+Fix #789
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+- [x] Tests added/updated (if applicable)
+```
+
+**检查结果:**
+```
+✅ pr-title-check: 通过
+✅ pr-content-check: 通过
+```
+
+---
+
+### 示例 3:简单重构 ✅
+
+**标题:**
+```
+refactor: simplify client initialization
+```
+
+**内容:**
+```markdown
+## Description
+
+- 将初始化逻辑提取到独立方法
+- 移除重复代码
+- 添加行内文档
+
+## Related Issues
+
+None
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+```
+
+**检查结果:**
+```
+✅ pr-title-check: 通过
+✅ pr-content-check: 通过
+💡 建议:考虑关联相关 Issue
+```
+
+---
+
+## ❌ 常见错误
+
+### 错误 1:标题格式错误
+
+**错误写法:**
+```
+Add new feature
+```
+
+**正确写法:**
+```
+feat: add new feature
+```
+
+**错误提示:**
+```
+❌ PR 标题格式不正确!
+缺少 type 前缀。期望格式:type: description
+```
+
+---
+
+### 错误 2:描述首字母大写
+
+**错误写法:**
+```
+feat: Add New Feature
+```
+
+**正确写法:**
+```
+feat: add new feature
+```
+
+**错误提示:**
+```
+❌ PR 标题格式不正确!
+描述必须以小写字母开头
+```
+
+---
+
+### 错误 3:缺少 Description 部分
+
+**错误写法:**
+```markdown
+此 PR 添加了新功能。
+
+## Related Issues
+Fix #123
+```
+
+**正确写法:**
+```markdown
+## Description
+
+此 PR 添加了新功能。
+
+## Related Issues
+Fix #123
+```
+
+**错误提示:**
+```
+❌ 缺少变更说明或内容过于简短(至少需要 10 个字符)
+```
+
+---
+
+### 错误 4:描述内容太短
+
+**错误写法:**
+```markdown
+## Description
+
+Fix bug
+```
+(只有 7 个字符)
+
+**正确写法:**
+```markdown
+## Description
+
+Fix pagination bug in product list
+```
+
+**错误提示:**
+```
+❌ 缺少变更说明或内容过于简短(至少需要 10 个字符)
+```
+
+---
+
+### 错误 5:未确认代码格式化
+
+**错误写法:**
+```markdown
+## Description
+
+添加新功能
+
+## Checklist
+
+- [ ] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+```
+
+**正确写法:**
+```markdown
+## Description
+
+添加新功能
+
+## Checklist
+
+- [x] Code has been formatted with `mvn spotless:apply`
+- [x] Code is self-reviewed
+```
+
+**错误提示:**
+```
+❌ Please confirm code has been formatted with `mvn spotless:apply`
+```
+
+**注意:** 你必须:
+1. 在终端运行 `mvn spotless:apply`
+2. 提交任何格式化产生的变更
+3. 勾选 Checklist 中的选项
+
+---
+
+## ❓ 常见问题
+
+### Q: 是否需要填写所有部分?
+
+**A:** 只有 `## Description` 是必填的。`## Related Issues` 是可选的但建议填写。
+
+---
+
+### Q: 描述可以用中文吗?
+
+**A:** 可以,但我们建议使用英文以便更好的协作。标题必须遵循英文格式。
+
+---
+
+### Q: 如果我的 PR 没有关联任何 Issue 怎么办?
+
+**A:** 没关系!你可以在 Related Issues 部分写 "None" 或留空,不会导致检查失败。
+
+---
+
+### Q: 描述可以用段落形式吗?
+
+**A:** 当然可以!任何格式都可以,只要清晰且至少 10 个字符。列表只是推荐格式。
+
+---
+
+### Q: 如果检查失败会怎样?
+
+**A:**
+1. 你会在 PR 上看到 ❌ 标记
+2. 机器人会评论具体的错误信息
+3. 编辑 PR 标题或描述来修复问题
+4. 检查会自动重新运行
+
+---
+
+### Q: 可以跳过检查吗?
+
+**A:** 不可以,但如果有正当理由,项目维护者可以覆盖检查。通常遵循指南很快很简单。
+
+---
+
+### Q: 为什么标题必须以小写开头?
+
+**A:** 这是广泛采用的约定(Conventional Commits)。它能保持提交历史的整洁和一致性。
+
+---
+
+### Q: 如果我做了多个不相关的变更怎么办?
+
+**A:** 建议拆分成多个 PR。如果必须放在一起,请在 Description 中清楚地描述所有变更。
+
+---
+
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..fe39e24db
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,51 @@
+
+
+## Description
+
+
+
+
+
+
+
+## Related Issues
+
+
+
+
+
+
+## Checklist
+
+
+
+
+- [ ] Code has been formatted with `mvn spotless:apply`
+- [ ] Code is self-reviewed
+- [ ] Tests added/updated (if applicable)
+- [ ] Documentation updated (if applicable)
+- [ ] No breaking changes (or migration guide provided)
+
+
diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml
new file mode 100644
index 000000000..d122bba83
--- /dev/null
+++ b/.github/workflows/pr-check.yml
@@ -0,0 +1,198 @@
+name: PR Check
+
+on:
+ pull_request:
+ types: [opened, edited, synchronize, reopened]
+
+jobs:
+ pr-title-check:
+ name: PR Title Check
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check PR Title
+ uses: amannn/action-semantic-pull-request@v5
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ # Allowed types
+ types: |
+ feat
+ fix
+ docs
+ style
+ refactor
+ perf
+ test
+ build
+ ci
+ chore
+ revert
+ # Scope is optional
+ requireScope: false
+ # Subject must start with lowercase letter
+ subjectPattern: ^(?![A-Z]).+$
+ subjectPatternError: |
+ PR title format is incorrect!
+
+ ❌ Wrong examples:
+ - feat: Add new feature (first letter should be lowercase)
+ - add new feature (missing type prefix)
+ - featadd new feature (missing colon and space)
+
+ ✅ Correct format:
+ type: brief description
+ or
+ type(scope): brief description
+
+ Allowed types:
+ - feat: new feature
+ - fix: bug fix
+ - docs: documentation update
+ - style: code formatting
+ - refactor: code refactoring
+ - perf: performance improvement
+ - test: testing
+ - build: build system
+ - ci: CI/CD
+ - chore: other changes
+ - revert: revert previous commit
+
+ Examples:
+ ✅ feat: add product feature configuration
+ ✅ fix: fix product list pagination
+ ✅ feat(product): add feature configuration
+ ✅ docs: update README deployment guide
+
+ pr-content-check:
+ name: PR Content Check
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Check PR Description
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const pr = context.payload.pull_request;
+ const body = pr.body || '';
+
+ console.log('PR Body:', body);
+
+ // Required checks
+ const checks = {
+ hasDescription: {
+ test: () => {
+ const descSection = body.match(/##\s*Description\s*([\s\S]*?)(?=##|$)/i);
+ if (!descSection) return false;
+ const content = descSection[1].replace(//g, '').trim();
+ return content.length > 10;
+ },
+ message: '❌ Missing description or too short (at least 10 characters required)'
+ },
+ hasCodeFormatted: {
+ test: () => {
+ const checklistSection = body.match(/##\s*Checklist\s*([\s\S]*?)(?=##|$)/i);
+ if (!checklistSection) return false;
+ // Check if "Code has been formatted" is checked
+ return /- \[x\].*mvn spotless:apply/i.test(checklistSection[1]);
+ },
+ message: '❌ Please confirm code has been formatted with `mvn spotless:apply`'
+ }
+ };
+
+ // Execute checks
+ const errors = [];
+ const warnings = [];
+
+ for (const [key, check] of Object.entries(checks)) {
+ if (!check.test()) {
+ errors.push(check.message);
+ }
+ }
+
+ // Optional checks (warnings only)
+ const hasIssueLink = /(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)\s+#\d+/i.test(body);
+ if (!hasIssueLink) {
+ warnings.push('⚠️ Consider linking related issues (e.g., `Fix #123` or `Close #456`)');
+ }
+
+ if (body.length < 50) {
+ warnings.push('⚠️ PR description is short. Consider adding more details.');
+ }
+
+ // Generate report
+ let comment = '## PR Content Check Report\n\n';
+
+ if (errors.length === 0) {
+ comment += '### ✅ All required checks passed\n\n';
+ } else {
+ comment += '### ❌ Required items need to be completed\n\n';
+ errors.forEach(error => {
+ comment += `${error}\n`;
+ });
+ comment += '\n';
+ }
+
+ if (warnings.length > 0) {
+ comment += '### 💡 Suggestions\n\n';
+ warnings.forEach(warning => {
+ comment += `${warning}\n`;
+ });
+ comment += '\n';
+ }
+
+ comment += '---\n\n';
+ comment += '**PR Content Requirements:**\n\n';
+ comment += '**Required:**\n';
+ comment += '- **Description**: Clear explanation of changes (minimum 10 characters)\n';
+ comment += '- **Code Formatting**: Check the box in Checklist (Note: Code format is automatically verified by CI)\n\n';
+ comment += '**Optional but recommended:**\n';
+ comment += '- **Related Issues**: Link issues using `Fix #123`, `Close #456`, or `Resolve #789`\n';
+ comment += '- **Other Checklist Items**: Self-review, tests, documentation, etc.\n\n';
+ comment += 'Example format:\n';
+ comment += '```markdown\n';
+ comment += '## Description\n\n';
+ comment += '- Refactor client initialization method\n';
+ comment += '- Optimize parameter handling\n\n';
+ comment += '## Related Issues\n\n';
+ comment += 'Fix #123\n\n';
+ comment += '## Checklist\n\n';
+ comment += '- [x] Code has been formatted with `mvn spotless:apply`\n';
+ comment += '- [x] Code is self-reviewed\n';
+ comment += '```\n';
+
+ // Find and delete previous check comments
+ const { data: comments } = await github.rest.issues.listComments({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: pr.number,
+ });
+
+ const botComment = comments.find(comment =>
+ comment.user.type === 'Bot' &&
+ comment.body.includes('PR Content Check Report')
+ );
+
+ if (botComment) {
+ await github.rest.issues.deleteComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ comment_id: botComment.id,
+ });
+ }
+
+ // Post new comment
+ await github.rest.issues.createComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: pr.number,
+ body: comment
+ });
+
+ // Fail if there are errors
+ if (errors.length > 0) {
+ core.setFailed(`PR content check failed: ${errors.length} required item(s) incomplete`);
+ }
+
+
diff --git a/README.md b/README.md
index 389990e07..d1d80df5b 100644
--- a/README.md
+++ b/README.md
@@ -1,218 +1,215 @@
-
-
-
- Himarket AI 开放平台
-
-[](https://deepwiki.com/higress-group/himarket)
+
+
-## Himarket 是什么?
+
Himarket AI Open Platform
-Himarket 是一个开箱即用的 AI 开放平台解决方案,可以用于构建企业级的 AI 能力市场与开发者生态中心。
+
+ English | 简体中文
+
-它由三大核心组件构成,完美匹配企业内不同角色的需求:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-1. AI 开放平台管理后台 (for 管理员/运营):在这里将底层的模型服务、MCP Server、Agent 等多样化的 AI 能力,以 API 的形式轻松打包成标准化的“AI 产品”,并配上完善的文档、示例,最终一键发布到门户。
-2. AI 开放平台门户 (for 开发者/企业内部用户):门户是面向内外开发者的“店面”。开发者可以在此完成开发者注册、创建消费者、获取凭证、浏览和订阅 AI 产品、在线测试,并清晰地监控自己的调用状态和成本。
-3. AI 网关:作为 Higress 社区的子项目,Higress AI 网关承载所有 AI 调用的认证、安全、流控、协议转换以及可观测性等能力。
+## 💡 What is Himarket?
-## 快速入门
-### 准备工作
+Himarket is an enterprise-grade AI open platform built on Higress AI Gateway, helping enterprises build private AI capability marketplace to uniformly manage and distribute AI resources such as LLM, MCP Server, and Agent. The platform encapsulates distributed AI capabilities into standardized API products, supports multi-version management and gray-scale release, provides self-service developer portal, and features comprehensive enterprise-level operation capabilities including security control, observability analysis, metering and billing, making AI resource sharing and reuse efficient and convenient.
-1. **安装 Git**
- https://git-scm.com/downloads
-2. **安装 JDK 17**
-3. **安装 Node.js(建议 v20 及以上)**
- https://nodejs.org/
-4. **安装 Maven**
- https://maven.apache.org/download.cgi
-5. **准备数据库**
- 后端服务依赖外部数据库。你需要本地启动数据库(如 MySQL 8.0),并根据 portal-bootstrap 中的 application.yaml 文件配置数据库连接参数。
+
+
+
+
Capabilities
+
-### 克隆项目代码
+## 🏗️ System Architecture
-```bash
-git clone https://github.com/higress-group/himarket.git
-cd himarket
-```
+
+
+
+
System Architecture
+
-### 启动后端 portal-bootstrap
+Himarket system architecture consists of three layers:
-后端服务依赖外部数据库。请参考 `portal-bootstrap/src/main/resources/application.yaml` 配置数据库相关参数。也可以在启动时通过命令行参数覆盖这些配置。
+1. **Infrastructure**: Composed of AI Gateway, API Gateway, Higress and Nacos. Himarket abstracts and encapsulates underlying AI resources based on these components to form standard API products for external use.
+2. **AI Open Platform Admin**: Management platform for administrators to create and customize portals, manage AI resources such as MCP Server, Model, and Agent, including setting authentication policies and subscription approval workflows. The admin portal also provides observability dashboard to help administrators monitor AI resource usage and operational status in real-time.
+3. **AI Open Platform Portal**: Developer-facing portal site, also known as AI Marketplace or AI Hub, providing one-stop self-service where developers can complete identity registration, credential application, product browsing and subscription, online debugging, and more.
-#### 启动方式
+
+
+
+
+
+ Admin Dashboard
+
+
+
+
+ Developer Portal
+
+
+
-先打包:
+## 🚀 Quick Start
-```bash
-mvn clean package
-```
+
+Option 1: Local Setup
+
+
-再启动:
+**Requirements:** JDK 17, Node.js 18+, Maven 3.6+, MySQL 8.0+
+**Start Backend:**
```bash
-java -Ddb.host=xxxx.mysql.rds.aliyuncs.com \
- -Ddb.port=3306 \
- -Ddb.name=xxx \
- -Ddb.username=xxx \
- -Ddb.password=xxx \
- -jar portal-bootstrap/target/portal-bootstrap-1.0-SNAPSHOT.jar
+# Build project
+mvn clean package -DskipTests
+
+# Start backend service
+java --add-opens java.base/java.util=ALL-UNNAMED \
+ --add-opens java.base/java.lang=ALL-UNNAMED \
+ --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
+ -Ddb.host=${DB_HOST} \
+ -Ddb.port=${DB_PORT} \
+ -Ddb.name=${DB_NAME} \
+ -Ddb.username=${DB_USERNAME} \
+ -Ddb.password=${DB_PASSWORD} \
+ -jar himarket-bootstrap/target/himarket-bootstrap-1.0-SNAPSHOT.jar
+
+# Backend API: http://localhost:8080
```
-### 启动前端项目
-
-#### 1. portal-web/api-portal-admin
-
+**Start Frontend:**
```bash
-cd portal-web/api-portal-admin
+# Start admin portal
+cd himarket-web/himarket-admin
npm install
npm run dev
-```
+# Admin portal: http://localhost:5174
-本地访问地址参考控制台输出,一般为 http://localhost:5174
-
-#### 2. portal-web/api-portal-frontend
-
-```bash
-cd portal-web/api-portal-frontend
+# Start developer portal
+cd himarket-web/himarket-frontend
npm install
npm run dev
+# Developer portal: http://localhost:5173
```
-本地访问地址同上,一般为 http://${portal_frontend_domain}:5173
-
-在本地开发过程中,portal_frontend_domain 需要配置域名解析(本地修改 /etc/hosts 文件),在 Himarket 的设计中,门户域名是解析到对应门户 ID 的依据。
-
-### Himarket 后台管理
-
-#### 注册管理员
-
-访问 `http://localhost:5174`,首次访问注册一个管理员账号。
-
-
-
-#### 导入 Higress 实例
-
-选择【实例管理】-【网关实例】-【导入网关实例】-【Higress 网关】,导入 Higress 网关实例,以 http://demo.higress.io 为例进行导入,用户名和密码均是 admin。
-
-
-
-#### 创建 Portal 门户
+
-选择【Portal】-【创建 Portal】,创建一个名为 himarket-demo 的门户。
+
+Option 2: Docker Compose
-
+
-点击门户卡片,进入门户配置,其他配置保留默认选项即可,在 【Setting】-【域名管理】-【绑定域名】中,绑定一个 localhost 域名,用于开发自测。其他菜单在快速入门中可以先不用关注,这里简单介绍下他们的功能:
+Use the `deploy.sh` script to deploy Himarket, Higress, and Nacos with data initialization.
-- Published API Products。管理门户中发布的 API Product。
-- Developers。管理门户的 Developer,以及 Developer 关联的 Consumer。
-- Settings。
- - 配置门户的基本信息。
- - 控制门户中 Developer 的注册审批是否自动通过、API Product 订阅是否自动通过。
- - 门户支持的三方登录。支持标准的 OIDC 配置,如 Aliyun、Google、Github 等。
-
-#### 创建 API Product
-
-选择【API Products】-【创建 API Product】,创建一个 demo-api 的 API Product。
-
-
-
-API Product 的初始状态为“待配置”,需要进行 Link API、发布到门户等操作。
-
-#### 关联 API
-
-
-
-关联一个网关的 MCP 服务,数据源来自于 Higress MCP 服务管理。API Config 也会自动同步 Higress 中的配置。
-
-#### Usage Guide
-
-
-
-可以在使用指南中编辑自定义的文档信息。
-
-#### 发布到门户
-
-在 API Product 准备就绪后,可以选择发布到指定的门户。
-
-
-
-至此,一个 Higress 的 MCP Server 成功发布到了门户。
-
-### Himarket 门户
-
-Himarket 门户是多租户设计,通过域名来识别不同的门户实例。
+```bash
+# Clone repository
+git clone https://github.com/higress-group/himarket.git
+cd himarket/deploy/docker
-门户会有一个默认分配的域名,但域名解析需要用户自己完成,例如自动分配了 portal-68ac4564bdb292ee9261ff4a.api.portal.local 域名,需要将其解析到 api-portal-frontend 对应的 IP 上。
+# Deploy full stack and initialize
+./deploy.sh install
-由于刚刚已经额外配置了 localhost 域名给测试门户,所以也可以直接通过 localhost:5173 访问前台。
+# Or deploy Himarket only (without Nacos/Higress)
+./deploy.sh himarket-only
-#### 注册 Developer 开发者
+# Uninstall all services
+./deploy.sh uninstall
-
+# Service URLs
+# Admin portal: http://localhost:5174
+# Developer portal: http://localhost:5173
+# Backend API: http://localhost:8080
+```
-由于门户之前在设置中未打开自动审批,注册账号后需要等待管理员后台审批开发者通过,审批通过后,方可使用注册的账号在前台登录。
+> 📝 For detailed Docker deployment instructions, please refer to [Docker Deployment Guide](./deploy/docker/Docker部署脚本说明.md)
-
+
-访问 MCP 门户可以看到刚刚发布的 MCP Server
+
+Option 3: Helm Chart
-
+
-
+Use the `deploy.sh` script to deploy Himarket to Kubernetes cluster.
-#### 创建 Consumer 消费者
+```bash
+# Clone repository
+git clone https://github.com/higress-group/himarket.git
+cd himarket/deploy/helm
-在 AI 开放平台的设计中,消费者 Developer 代表一般的用户身份,而用户需要持有对应的凭证才可以申请订阅 API Product,而凭证这一概念,在 AI 开放平台中称之为 Consumer 消费者,Developer 与 Consumer 是一对多的关联。
+# Deploy full stack and initialize
+./deploy.sh install
-
+# Or deploy Himarket only (without Nacos/Higress)
+./deploy.sh himarket-only
-创建消费者之后,即可申请 API Product 的订阅
+# Uninstall
+./deploy.sh uninstall
+```
-
+> 📝 For detailed Helm deployment instructions, please refer to [Helm Deployment Guide](./deploy/helm/Helm部署脚本说明.md)
-门户的默认配置中,订阅的审批是默认关闭的,即开发者申请后会自动审批通过。
+
-#### 发起调用
+
+Option 4: Cloud Deployment (Alibaba Cloud)
-携带消费者的凭证,配置门户中 MCP Server 的连接地址,即可发起对 MCP Server 的调用。
+
-### 阿里云开箱即用
-阿里云计算巢支持了该项目开箱即用版本,可以使用下面链接一键部署社区版:
+Alibaba Cloud ComputeNest supports out-of-the-box deployment of the community edition with one click:
[](https://computenest.console.aliyun.com/service/instance/create/cn-hangzhou?type=user&ServiceId=service-b96fefcb748f47b7b958)
-## 社区
+
-### 交流群
+## 📖 Documentation
-
+For detailed usage instructions, please refer to:
-### 技术分享
+📘 [User Guide](./USER_GUIDE.md)
-微信公众号:
+## 🌐 Community
-
+### Join Us
-### 关联仓库
+
+
+
+
+
+ DingTalk Group
+
+
+
+
+ WeChat Official Account
+
+
+
-- Higress:https://github.com/alibaba/higress
-- Higress 控制台:https://github.com/higress-group/higress-console
+## 🏆 Contributors
-### 贡献者
+Thanks to all the developers who have contributed to Himarket!
-### Star History
-
-[](https://star-history.com/#higress-group/himarket&Date)
+## 📈 Star History
-
-
- ↑ 返回顶部 ↑
-
-
+[](https://star-history.com/#higress-group/himarket&Date)
diff --git a/README_zh.md b/README_zh.md
new file mode 100644
index 000000000..69546d917
--- /dev/null
+++ b/README_zh.md
@@ -0,0 +1,218 @@
+
+
+
+
+## 💡 Himarket 是什么?
+
+Himarket 是基于 Higress AI 网关构建的企业级 AI 开放平台,帮助企业构建私有 AI 能力市场,统一管理和分发 LLM、MCP Server、Agent 等 AI 资源。平台将分散的 AI 能力封装为标准化的 API 产品,支持多版本管理和灰度发布,提供自助式开发者门户,并具备安全管控、观测分析、计量计费等完整的企业级运营能力,让 AI 资源的共享和复用变得高效便捷。
+
+
+
+
+
核心能力
+
+
+## 🏗️ 系统架构
+
+
+
+
+
系统架构
+
+
+Himarket 系统架构分为三层:
+
+1. **基础设施**:由 AI 网关、API 网关、Higress 和 Nacos 组成。Himarket 基于这些组件对底层 AI 资源进行抽象封装,形成可对外开放的标准 API 产品。
+2. **AI 开放平台后台**:面向管理员的管理平台,管理员可以创建和定制门户,管理 MCP Server、Model、Agent 等 AI 资源,例如设置鉴权策略、订阅审批流程等。后台还提供可观测大盘,帮助管理员实时了解 AI 资源的使用和运行状态。
+3. **AI 开放平台前台**:面向外部开发者的门户站点,也称为 AI 市场或 AI 中台,提供一站式自助服务,开发者可以完成身份注册、凭证申请、浏览订阅产品、在线调试等操作。
+
+
+
+
+
+
+ 管理后台
+
+
+
+
+ 开发者门户
+
+
+
+
+## 🚀 快速开始
+
+
+方式一:本地搭建
+
+
+
+**环境依赖:** JDK 17、Node.js 18+、Maven 3.6+、MySQL 8.0+
+
+**启动后端:**
+```bash
+# 构建项目
+mvn clean package -DskipTests
+
+# 启动后端服务
+java --add-opens java.base/java.util=ALL-UNNAMED \
+ --add-opens java.base/java.lang=ALL-UNNAMED \
+ --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
+ -Ddb.host=${DB_HOST} \
+ -Ddb.port=${DB_PORT} \
+ -Ddb.name=${DB_NAME} \
+ -Ddb.username=${DB_USERNAME} \
+ -Ddb.password=${DB_PASSWORD} \
+ -jar himarket-bootstrap/target/himarket-bootstrap-1.0-SNAPSHOT.jar
+
+# 后端 API 地址:http://localhost:8080
+```
+
+**启动前端:**
+```bash
+# 启动管理后台
+cd himarket-web/himarket-admin
+npm install
+npm run dev
+# 管理后台地址:http://localhost:5174
+
+# 启动开发者门户
+cd himarket-web/himarket-frontend
+npm install
+npm run dev
+# 开发者门户地址:http://localhost:5173
+```
+
+
+
+
+方式二:Docker Compose
+
+
+
+使用 `deploy.sh` 脚本完成 Himarket、Higress、Nacos 全栈部署和数据初始化。
+
+```bash
+# 克隆项目
+git clone https://github.com/higress-group/himarket.git
+cd himarket/deploy/docker
+
+# 部署全栈服务并初始化
+./deploy.sh install
+
+# 或仅部署 Himarket 服务(不含 Nacos/Higress)
+./deploy.sh himarket-only
+
+# 卸载所有服务
+./deploy.sh uninstall
+
+# 服务地址
+# 管理后台地址:http://localhost:5174
+# 开发者门户地址:http://localhost:5173
+# 后端 API 地址:http://localhost:8080
+```
+
+> 📝 详细的 Docker 部署说明请参考 [Docker 部署文档](./deploy/docker/Docker部署脚本说明.md)
+
+
+
+
+
+方式三:Helm Chart
+
+
+
+使用 `deploy.sh` 脚本将 Himarket 部署到 Kubernetes 集群。
+
+```bash
+# 克隆项目
+git clone https://github.com/higress-group/himarket.git
+cd himarket/deploy/helm
+
+# 部署全栈服务并初始化
+./deploy.sh install
+
+# 或仅部署 Himarket 服务(不含 Nacos/Higress)
+./deploy.sh himarket-only
+
+# 卸载
+./deploy.sh uninstall
+```
+
+> 📝 详细的 Helm 部署说明请参考 [Helm 部署文档](./deploy/helm/Helm部署脚本说明.md)
+
+
+
+
+方式四:云平台部署(阿里云)
+
+
+
+阿里云计算巢支持该项目的开箱即用版本,可一键部署社区版:
+
+[](https://computenest.console.aliyun.com/service/instance/create/cn-hangzhou?type=user&ServiceId=service-b96fefcb748f47b7b958)
+
+
+
+## 📖 文档
+
+详细的使用说明请参考:
+
+📘 [用户指南](./USER_GUIDE_zh.md)
+
+## 🌐 社区
+
+### 加入我们
+
+
+
+
+
+
+ 钉钉交流群
+
+
+
+
+ 微信公众号
+
+
+
+
+## 🏆 贡献者
+
+感谢所有为 Himarket 做出贡献的开发者!
+
+
+
+
+
+## 📈 Star History
+
+[](https://star-history.com/#higress-group/himarket&Date)
+
+
diff --git a/USER_GUIDE.md b/USER_GUIDE.md
new file mode 100644
index 000000000..7b2dc14c8
--- /dev/null
+++ b/USER_GUIDE.md
@@ -0,0 +1,434 @@
+# Himarket User Guide
+
+This guide is designed for administrators and developers of the Himarket AI Open Platform, providing detailed operational instructions and best practices.
+
+If you are an **Administrator**, this guide will walk you through the complete process from importing gateway instances, creating portals, to publishing API products. If you are a **Developer**, this guide will help you understand how to register an account, subscribe to API products, obtain credentials, and make actual API calls.
+
+Through this guide, you can quickly master the core features of Himarket and achieve efficient management and convenient usage of AI capabilities.
+
+## Table of Contents
+
+- [Himarket Admin Console](#himarket-admin-console)
+ - [Register Administrator](#register-administrator)
+ - [Import Higress Instance](#import-higress-instance)
+ - [Create Portal](#create-portal)
+ - [Create API Product](#create-api-product)
+ - [Link API](#link-api)
+ - [Write Usage Guide](#write-usage-guide)
+ - [Publish to Portal](#publish-to-portal)
+- [Himarket Developer Portal](#himarket-developer-portal)
+ - [Access Portal](#access-portal)
+ - [Register as Developer](#register-as-developer)
+ - [Browse and Subscribe API Products](#browse-and-subscribe-api-products)
+ - [Create Consumer](#create-consumer)
+ - [AI Playground](#ai-playground)
+
+---
+
+## Himarket Admin Console
+
+The Himarket Admin Console is designed for administrators and operators to manage AI resources, create portals, and publish API products.
+
+### Register Administrator
+
+When accessing the Himarket Admin Console for the first time, you need to register an administrator account.
+
+**Steps:**
+
+1. Access the admin console: `http://localhost:5174` (local development environment example)
+2. Click the "Register" button
+3. Fill in administrator information:
+ - Username
+ - Password
+4. Click "Initialize" to complete account creation
+5. Login with the registered account
+
+
+
+---
+
+### Import Higress Instance
+
+Before creating API Products, you need to import a Higress gateway instance as the underlying gateway for AI resources.
+
+**Steps:**
+
+1. Login to the admin console
+2. Navigate to 【Instance Management】→【Gateway Instance】
+3. Click the 【Import Gateway Instance】button
+4. Select 【Higress Gateway】
+5. Fill in Higress instance information:
+ - Console Address: Higress console address (e.g., `http://demo.higress.io`)
+ - Username: Higress console username (e.g., `admin`)
+ - Password: Higress console password (e.g., `admin`)
+ - Gateway Address: Higress gateway service address (e.g., `http://gateway.higress.io`). MCP Server and Model use domain names by default; if not configured, the Gateway address is used
+6. Click 【Import】
+
+
+
+**Notes:**
+- Supports importing multiple Higress instances
+- After import, view and manage instances in the instance list
+
+
+
+---
+
+### Create Portal
+
+A Portal is a site for external developers. Administrators can create multiple portals, each with independent configurations and API products.
+
+**Steps:**
+
+1. Navigate to the 【Portal】menu
+2. Click the 【Create Portal】button
+3. Fill in basic portal information:
+ - Portal Name: e.g., `himarket-demo`
+ - Portal Description: Brief description of the portal's purpose
+4. Click 【Confirm】
+
+
+
+**Portal Configuration:**
+
+After creating a portal, click on the portal card to enter the detailed configuration page, which includes the following features:
+
+#### 1. Overview
+
+- Portal basic information: name, description, login method, approval policy, etc.
+- Statistics:
+ - Number of published API products
+ - Number of registered developers
+
+#### 2. Products (Product Management)
+
+Manage API products in the current portal:
+- View published products
+- Check product details
+- Unpublish or update products
+
+#### 3. Developers (Developer Management)
+
+Manage developers registered in this portal:
+- View developer list
+- Approve developer registration requests
+- Manage developers' associated Consumers
+- View developer subscription status
+
+#### 4. Security (Security Settings)
+
+User Login Configuration:
+- Username/Password Login: Traditional username/password method (enabled by default)
+- OIDC Login: Supports third-party identity authentication (such as enterprise SSO)
+
+Approval Process Configuration:
+- Developer Registration Approval: Choose whether to automatically approve developer registration requests
+ - Auto-approve: Developer registration takes effect immediately
+ - Manual approval: Requires administrator approval in the backend
+- API Product Subscription Approval: Choose whether to automatically approve subscription requests
+ - Auto-approve: Subscription takes effect immediately after developer applies
+ - Manual approval: Requires administrator approval before API Product can be called
+
+#### 5. Domain (Domain Management)
+
+Configure access domains for the portal:
+
+**Default Domain:**
+- System automatically assigns a unique default domain for each portal
+- Format: `portal-{id}.api.portal.local`
+- Example: `portal-68ac4564bdb292ee9261ff4a.api.portal.local`
+
+**Custom Domain:**
+- Supports binding one or more custom domains
+- Example: Production environment binds `api.company.com`, local development binds `localhost`
+
+**Notes:**
+- Domains need to be configured with DNS resolution or hosts file, pointing to the himarket-frontend service
+- Portals use a multi-tenant design, identifying different portal instances through domains
+- For local development, it's recommended to bind the `localhost` domain for easy testing
+- For production environments, it's recommended to configure real domains and DNS resolution
+
+---
+
+### Create API Product
+
+API Product is the core concept of Himarket. It encapsulates underlying AI capabilities (such as MCP Server, Model, Agent) into standardized API products.
+
+**Steps:**
+
+1. Navigate to the 【API Products】menu
+2. Click the 【Create API Product】button
+3. Fill in product information:
+ - Product Name: e.g., `demo-api`
+ - Product Type: Select product type (MCP Server, Model API, Agent API, etc.)
+ - Product Description: Brief description of product features and use cases
+ - Product Category: Select product category, categories can be used for classification and filtering, supports custom categories
+ - Product Icon: Select product icon, can use URL link or upload local file
+4. **Special Note**: Model API type products can configure model parameters such as Model name, Max Tokens, Temperature, whether to support web search, etc. Model parameters are used when debugging models in the Himarket frontend. Missing parameters may cause model invocation failures
+5. Click 【Confirm】
+
+
+
+6. After successful creation, enter the product details page
+
+
+
+**Product Status:**
+
+Newly created API Products have an initial status of **"Pending Configuration"**. The following operations need to be completed before publishing:
+
+1. **Link API**: Associate the product with actual API resources
+2. **Configure Usage Guide**: Write product documentation
+3. **Publish to Portal**: Publish the product to a specified portal for developer subscription
+
+---
+
+### Link API
+
+After creating an API Product, you need to link it with actual API resources to establish the mapping between the product and underlying services.
+
+**Steps:**
+
+1. Enter the API Product details page
+2. Click the 【Link API】tab
+3. Select API resource type:
+ - MCP Server: MCP service from Higress or AI Gateway (Enterprise Higress)
+ - Model API: Model service from Higress or AI Gateway
+ - Agent API: Agent application from AI Gateway
+4. Select the API resource to link from the list. Taking Model API as an example, link the AI route on Higress
+5. Click 【Link】
+
+
+
+6. After successful linking, the API Product status changes to **"Pending Publish"**. At this point, the API Product can be published to the Portal. The Link API tab will display API configuration information
+
+
+
+---
+
+### Write Usage Guide
+
+Write detailed usage guides for API Products to help developers quickly understand and use the APIs.
+
+**Steps:**
+
+1. Enter the API Product details page
+2. Click the 【Usage Guide】tab
+3. Use the Markdown editor to write documentation:
+ - API Product Introduction: Product features and use cases
+ - Authentication Method: How to obtain and use credentials
+ - Request Examples: Provide complete request example code
+ - Response Examples: Show API return data format
+ - Error Code Description: List common error codes and handling methods
+ - Best Practices: Usage recommendations and precautions
+4. Supports real-time preview to ensure correct formatting
+5. Click 【Save】
+
+
+
+---
+
+### Publish to Portal
+
+When the API Product configuration is complete, it can be published to a specified portal for developer use.
+
+**Steps:**
+
+1. Enter the API Product details page
+2. Confirm the product status is **"Pending Publish"** (API linking completed)
+3. Click the 【Publish to Portal】button
+4. Select target portal:
+ - Select one or more portals from the portal list
+ - Can publish to multiple portals simultaneously
+5. Click 【Publish】
+
+
+
+**After Publishing:**
+- Product will be displayed in the portal immediately
+- Developers can browse product details and usage guides
+- Developers can apply for product subscription
+- Administrators can view subscription and call statistics in the backend
+
+
+
+At this point, the complete process from creating to publishing an API Product is finished!
+
+---
+
+## Himarket Developer Portal
+
+The Developer Portal is a self-service platform for external developers, where they can register, browse API products, apply for subscriptions, and make API calls.
+
+### Access Portal
+
+Himarket portals use a **multi-tenant design**, identifying different portal instances through domains.
+
+**Access Methods:**
+
+1. **Using Default Domain**:
+ - Each portal is automatically assigned a default domain
+ - Example: `portal-68ac4564bdb292ee9261ff4a.api.portal.local`
+ - Requires DNS resolution or hosts file configuration, pointing the domain to the himarket-frontend service
+
+2. **Using Custom Domain**:
+ - Custom domains bound by administrators in the backend
+ - Example: `localhost` bound for local development
+ - Access: `http://localhost:5173`
+
+3. **Using himarket-frontend Service IP**:
+ - Accessing via himarket-frontend service IP will reach the "default portal", which is the first portal created
+ - Local development environment can access `http://127.0.0.1:5173`
+
+---
+
+### Register as Developer
+
+Developers need to register an account in the portal before they can browse and subscribe to API products.
+
+**Registration Steps:**
+
+1. Access the portal homepage
+2. Click the 【Register】button
+3. Fill in developer information:
+ - Username: Unique developer identifier
+ - Password: Set login password
+4. Click 【Register】to submit the application
+
+
+
+**Registration Approval:**
+
+The status after registration depends on the portal configuration:
+
+- Auto-approval mode: Registration takes effect immediately, can login directly
+- Manual approval mode: Registration requires administrator approval
+ - Cannot login to the portal before approval
+ - Administrator approves in the backend 【Developers】menu
+
+
+
+After approval, you can login to the portal
+
+
+
+**Notes:**
+- Developer accounts are independent for each portal
+- Different portals require separate registration
+
+---
+
+### Browse and Subscribe API Products
+
+After registering and logging in, developers can browse API products in the portal and apply for subscriptions.
+
+**Browse API Products:**
+
+1. Login to the developer portal
+2. Navigate to 【Models】, 【MCP】, 【Agents】, and other product pages
+3. Browse product list:
+ - View product name, description, and version
+ - Filter and search for products of interest
+4. Click on a product card to view details:
+ - Product feature introduction
+ - API Product usage guide
+ - Call example code (if available)
+ - Pricing information (if available)
+
+
+
+---
+
+### Create Consumer
+
+In Himarket's design:
+- Developer: Represents user identity, used for login and management
+- Consumer: Represents calling credentials, used for API Product authentication
+
+A Developer can create multiple Consumers for different application scenarios (such as development environment, test environment, production environment). Each Developer is automatically assigned a primary consumer upon registration and supports creating new Consumers.
+
+**Creation Steps:**
+
+1. Login to the developer portal
+2. Click on the avatar in the upper right corner to enter 【Consumer Management】
+
+
+
+3. Click the 【Create Consumer】button
+4. Fill in consumer information:
+ - Consumer Name: Used to identify this consumer (e.g., `my-app-prod`)
+ - Description: Brief description of purpose (e.g., production environment application)
+5. Click 【Submit】
+
+
+
+**After Successful Creation:**
+- The system will generate a set of credentials (such as API Key, Secret)
+- Can manage and delete created consumers in the list
+
+
+
+**Apply for Product Subscription:**
+
+After creating a consumer, you can use the consumer to subscribe to API products:
+
+1. Select the API product to subscribe to
+2. Click the 【Subscribe】button on the product details page
+3. Select the Consumer to use
+4. Click 【Confirm Subscription】
+
+
+
+**Subscription Approval:**
+
+- Auto-approval: Takes effect immediately after submission, can directly call API Product
+- Manual approval: Needs to wait for administrator approval
+
+**Notes:**
+- Subscription status can be viewed in the Consumer details 【Subscription List】
+- Can only use the Consumer's credentials to call the corresponding API Product after successful subscription
+- Can cancel subscription at any time
+
+---
+
+### AI Playground
+
+Himarket provides an AI Playground for quickly experiencing AI resources, such as chatting with models and combining models with MCP Servers.
+
+**Call Models and MCP:**
+
+1. Login to the developer portal
+2. Enter the 【Playground】page
+
+
+
+3. Select the model product to test, you can chat with the model and optionally combine it with MCP Server during the conversation
+4. **Note**:
+ - Models and MCP Servers need to be subscribed to for normal access. The Himarket AI Playground uses the Developer's primary consumer by default, which needs to subscribe to the corresponding API Products
+ - Developers can configure the primary consumer in the 【Consumer Management】page
+5. Operation example:
+ - Select model and MCP Server
+
+
+
+ - Specify and subscribe to MCP Server. Quick subscribe uses the primary consumer to execute subscription operations
+
+
+
+ - Chat with the model
+
+
+
+---
+
+## Congratulations!
+
+You have successfully completed the Himarket platform setup! Now you can:
+
+- Manage AI resources efficiently through the Admin Console
+- Publish standardized API products to developer portals
+- Enable developers to self-service browse, subscribe, and call AI capabilities
+- Experience the powerful features of Model + MCP in the AI Playground
+
+Thank you for choosing Himarket! We're excited to see what you build with it. 🌟
+
diff --git a/USER_GUIDE_zh.md b/USER_GUIDE_zh.md
new file mode 100644
index 000000000..a06ff851e
--- /dev/null
+++ b/USER_GUIDE_zh.md
@@ -0,0 +1,387 @@
+# Himarket 用户使用指南
+
+本文档面向 Himarket AI 开放平台的管理员和开发者,提供详细的操作指南和最佳实践。
+
+如果你是**管理员**,本文将指导你完成从导入网关实例、创建门户、发布 API 产品的全流程;如果你是**开发者**,本文将帮助你了解如何注册账号、订阅 API 产品、获取调用凭证并发起实际调用。
+
+通过本指南,你可以快速掌握 Himarket 的核心功能,实现 AI 能力的高效管理和便捷使用。
+
+## 目录
+
+- [Himarket 管理后台](#himarket-管理后台)
+ - [注册管理员](#注册管理员)
+ - [导入 Higress 实例](#导入-higress-实例)
+ - [创建 Portal](#创建-portal)
+ - [创建 API Product](#创建-api-product)
+ - [关联 API](#关联-api)
+ - [编写使用指南](#编写使用指南)
+ - [发布到门户](#发布到门户)
+- [Himarket 开发者门户](#himarket-开发者门户)
+ - [访问门户](#访问门户)
+ - [注册 Developer 开发者](#注册-developer-开发者)
+ - [浏览和订阅 API Product](#浏览和订阅-api-product)
+ - [创建 Consumer 消费者](#创建-consumer-消费者)
+ - [AI 体验中心](#ai-体验中心)
+
+---
+
+## Himarket 管理后台
+
+Himarket 管理后台面向管理员和运营人员,用于管理 AI 资源、创建门户、发布 API 产品等。
+
+### 注册管理员
+
+首次访问 Himarket 管理后台时,需要注册一个管理员账号。
+
+**操作步骤:**
+
+1. 访问管理后台地址:`http://localhost:5174`(以本地开发环境为例)
+2. 点击"注册"按钮
+3. 填写管理员信息:
+ - 用户名
+ - 密码
+4. 点击"初始化"完成账号创建
+5. 使用注册的账号登录管理后台
+
+
+
+---
+
+### 导入 Higress 实例
+
+在开始创建 API Product 之前,需要先导入 Higress 网关实例,作为 AI 资源的底层网关。
+
+**操作步骤:**
+
+1. 登录管理后台
+2. 进入【实例管理】→【网关实例】
+3. 点击【导入网关实例】按钮
+4. 选择【Higress 网关】
+5. 填写 Higress 实例信息:
+ - Console地址:Higress 控制台地址(例如:`http://demo.higress.io`)
+ - 用户名:Higress 控制台用户名(例如:`admin`)
+ - 密码:Higress 控制台密码(例如:`admin`)
+ - Gateway地址:Higress 网关服务地址(例如:`http://gateway.higress.io`),MCP Server 和 Model 默认使用域名进行访问,若未配置域名,则使用 Gateway 地址访问
+6. 点击【导入】
+
+
+**说明:**
+- 支持导入多个 Higress 实例
+- 导入后可在实例列表中查看和管理
+
+
+
+---
+
+### 创建 Portal
+
+Portal 是面向外部开发者的站点,管理员可以创建多个门户,每个门户有独立的配置和 API 产品。
+
+**操作步骤:**
+
+1. 进入【Portal】菜单
+2. 点击【创建 Portal】按钮
+3. 填写门户基本信息:
+ - 门户名称:例如 `himarket-demo`
+ - 门户描述:简要描述门户用途
+4. 点击【确定】
+
+
+**门户配置说明:**
+
+创建门户后,点击门户卡片进入详细配置页面,主要包含以下功能:
+#### 1. Overview(概览)
+- 门户基础信息:名称、描述、登录方式、审批策略等
+- 统计数据:
+ - 已发布的 API 产品数量
+ - 注册的开发者数量
+#### 2. Products(已发布的 API 产品)
+- 管理当前门户中已发布的 API 产品
+- 查看产品详情
+- 下架或更新已发布的产品
+
+#### 3. Developers(开发者管理)
+- 查看和管理在该门户注册的开发者
+- 审批开发者注册申请
+- 管理开发者关联的 Consumer(消费者)
+- 查看开发者的订阅情况
+
+#### 4. Security(安全设置)
+
+用户登录配置:
+- 账号密码登录:传统的用户名密码方式(默认启用)
+- OIDC 登录:支持第三方身份认证(如企业 SSO)
+
+审批流程配置:
+- 开发者注册审批:选择是否自动通过开发者注册申请
+ - 自动通过:开发者注册后立即生效
+ - 手动审批:需要管理员在后台审批后才能使用
+- API Product 订阅审批:选择是否自动通过订阅申请
+ - 自动通过:开发者申请订阅后立即生效
+ - 手动审批:需要管理员审批后才能调用 API Product
+
+#### 5. Domain(域名管理)
+- 系统会为每个门户自动分配一个默认域名
+- 可以额外绑定自定义域名(例如本地开发时绑定 `localhost`)
+
+**注意事项:**
+- 域名需要自行配置 DNS 解析或 hosts 文件,指向 himarket-frontend 服务
+- 门户采用多租户设计,通过域名识别不同的门户实例
+- 本地开发时建议绑定 `localhost` 域名便于测试
+- 生产环境建议配置真实的域名和 DNS 解析
+
+---
+
+### 创建 API Product
+
+API Product 是 Himarket 的核心概念,它将底层的 AI 能力(如 MCP Server、Model、Agent)封装为标准化的 API 产品。
+
+**操作步骤:**
+
+1. 进入【API Products】菜单
+2. 点击【创建 API Product】按钮
+3. 填写产品信息:
+ - 产品名称:例如 `demo-api`
+ - 产品类型:选择产品类型(MCP Server、Model API、Agent API 等)
+ - 产品描述:简要描述产品功能和用途
+ - 产品类别:选择产品类别,类别可用于分类和筛选,支持自定义类别
+ - 产品图标:选择产品图标,可使用 URL 链接或上传本地文件
+4. 特别说明:Model API 类型的产品可以配置模型参数,如模型名称 Model、Max Tokens、Temperature、是否支持联网搜索等,模型参数用于在 Himarket 前台调试模型时使用,如果缺失,可能导致模型调用失败
+5. 点击【确定】
+
+
+6. 创建成功后,进入产品详情页
+
+
+**产品状态说明:**
+
+新创建的 API Product 初始状态为 **"待配置"**,需要完成以下操作才能发布:
+
+1. **关联 API**:将产品与实际的 API 资源关联
+2. **配置使用指南**:编写产品的使用文档
+3. **发布到门户**:将产品发布到指定的门户供开发者订阅
+
+---
+
+### 关联 API
+
+创建 API Product 后,需要将其与实际的 API 资源关联,建立产品与底层服务的映射关系。
+
+**操作步骤:**
+
+1. 进入 API Product 详情页
+2. 点击【Link API】标签页
+3. 选择 API 资源类型:
+ - MCP Server:来自 Higress 或 AI 网关(企业版 Higress)的 MCP 服务
+ - Model API:来自 Higress 或 AI 网关的模型服务
+ - Agent API:来自 AI 网关的 Agent 应用
+4. 从列表中选择要关联的 API 资源,以 Model API 为例,关联 Higress 上的 AI 路由
+5. 点击【关联】
+
+6. 关联成功后,API Product 状态变为 **"待发布"**,此时 API Product 可以发布到 Portal 上,Link API 标签页下会显示 API 配置信息
+
+
+---
+
+### 编写使用指南
+
+为 API Product 编写详细的使用指南,帮助开发者快速理解和使用 API。
+
+**操作步骤:**
+
+1. 进入 API Product 详情页
+2. 点击【Usage Guide】标签页
+3. 使用 Markdown 编辑器编写使用文档:
+ - API Product 简介:API 产品的功能和使用场景
+ - 认证方式:如何获取和使用凭证
+ - 请求示例:提供完整的请求示例代码
+ - 响应示例:展示 API 返回的数据格式
+ - 错误码说明:列出常见错误码和处理方法
+ - 最佳实践:使用建议和注意事项
+4. 支持实时预览,确保格式正确
+5. 点击【保存】
+
+---
+
+### 发布到门户
+
+当 API Product 配置完成后,即可发布到指定的门户供开发者使用。
+
+**操作步骤:**
+
+1. 进入 API Product 详情页
+2. 确认产品状态为 **"待发布"**(已完成关联 API)
+3. 点击【发布到门户】按钮
+4. 选择目标门户:
+ - 从门户列表中选择一个或多个门户
+ - 可以同时发布到多个门户
+5. 点击【发布】
+
+
+**发布后:**
+- 产品会立即在门户中展示
+- 开发者可以浏览产品详情和使用指南
+- 开发者可以申请订阅该产品
+- 管理员可以在后台查看订阅和调用情况
+
+至此,一个完整的 API Product 从创建到发布的流程已完成!
+
+---
+
+## Himarket 开发者门户
+
+开发者门户是面向外部开发者的自助服务平台,开发者可以在此注册、浏览 API 产品、申请订阅和发起调用。
+
+### 访问门户
+
+Himarket 门户采用**多租户设计**,通过域名来识别不同的门户实例。
+
+**访问方式:**
+
+1. **使用默认域名**:
+ - 每个门户会自动分配一个默认域名
+ - 例如:`portal-68ac4564bdb292ee9261ff4a.api.portal.local`
+ - 需要配置 DNS 解析或 hosts 文件,将域名指向 himarket-frontend 服务
+
+2. **使用自定义域名**:
+ - 管理员在后台绑定的自定义域名
+ - 例如本地开发时绑定的 `localhost`
+ - 访问:`http://localhost:5173`
+
+3. **使用 himarket-frontend 服务的 IP**:
+ - 使用 himarket-frontend 服务的 IP 后会访问到"默认门户",默认门户是创建的第一个门户
+ - 本地开发环境可访问 `http://127.0.0.1:5173`
+
+---
+
+### 注册 Developer 开发者
+
+开发者需要先在门户注册账号,才能浏览和订阅 API 产品。
+
+**注册步骤:**
+
+1. 访问门户首页
+2. 点击【注册】按钮
+3. 填写开发者信息:
+ - 用户名:唯一的开发者标识
+ - 密码:设置登录密码
+4. 点击【注册】提交申请
+
+
+**注册审批:**
+
+注册后的状态取决于门户的配置:
+
+- 自动审批模式:注册后立即生效,可以直接登录
+- 手动审批模式:注册后需要等待管理员审批
+ - 审批前无法登录门户
+ - 管理员在后台【Developers】菜单中审批
+
+审批通过后,即可登录门户
+
+
+**注意事项:**
+- 每个门户的开发者账号是独立的
+- 不同门户需要分别注册
+
+---
+
+### 浏览和订阅 API Product
+
+注册并登录后,开发者可以浏览门户中的 API 产品并申请订阅。
+
+**浏览 API 产品:**
+
+1. 登录开发者门户
+2. 进入【模型】、【MCP】、【智能体】等产品页面
+3. 浏览产品列表:
+ - 查看产品名称、描述和版本
+ - 筛选和搜索感兴趣的产品
+4. 点击产品卡片查看详情:
+ - 产品功能介绍
+ - API Product 使用指南
+ - 调用示例代码(如有)
+ - 定价信息(如有)
+
+---
+
+### 创建 Consumer 消费者
+
+在 Himarket 的设计中:
+- Developer(开发者):代表用户身份,用于登录和管理
+- Consumer(消费者):代表调用凭证,用于 API Product 认证
+
+一个 Developer 可以创建多个 Consumer,用于不同的应用场景(如开发环境、测试环境、生产环境)。每个 Developer 注册后会自动分配一个 Consumer,支持创建新的 Consumer。
+
+**创建步骤:**
+
+1. 登录开发者门户
+2. 点击右上角的头像,进入【消费者管理】界面
+
+3. 点击【新增消费者】按钮
+4. 填写消费者信息:
+ - 消费者名称:用于标识该消费者(例如:`my-app-prod`)
+ - 描述:简要说明用途(例如:生产环境应用)
+5. 点击【提交】
+
+
+**创建成功后:**
+- 系统会生成一组凭证(如 API Key、Secret)
+- 可以在列表中管理和删除已创建的消费者
+
+
+**申请产品订阅:**
+
+创建消费者后,可使用消费者订阅 API 产品:
+
+1. 选择要订阅的 API 产品
+2. 在产品详情页点击【订阅】按钮
+3. 选择要使用的 Consumer
+4. 点击【确定订阅】
+
+
+**订阅审批:**
+
+- 自动审批:提交后立即生效,可以直接调用 API Product
+- 手动审批:需要等待管理员审批通过
+
+**说明:**
+- 订阅状态可在 Consumer 详情的【订阅列表】中查看
+- 订阅成功后才能使用该 Consumer 的凭证调用对应的 API Product
+- 可以随时取消订阅
+
+---
+
+### AI 体验中心
+
+Himarket 提供了 AI 体验中心,用于快速体验 AI 资源,例如与模型对话,结合模型调用 MCP Server 等。
+**调用模型与 MCP:**
+
+1. 登录开发者门户
+2. 进入【体验中心】页面
+ 
+3. 选择需要测试的模型产品,可与该模型进行对话,对话过程中可选择结合 MCP Server
+4. 注意:
+ - 模型与 MCP Server 需要订阅后才能正常访问,Himarket 体验中心默认使用 Developer 的默认 Consumer,需要使用默认 Consumer 订阅对应的 API Product
+ - Developer 可在【消费者管理】页面自行配置默认 Consumer
+5. 操作示例:
+ - 选择模型与 MCP Server
+
+ - 指定并订阅 MCP Server,快速订阅会使用默认 Consumer 执行订阅操作
+
+ - 与模型对话
+
+
+
+---
+
+## 恭喜!
+
+您已成功完成 Himarket 平台的全流程体验!现在您可以:
+
+- 通过管理后台高效管理 AI 资源
+- 将标准化的 API 产品发布到开发者门户
+- 让开发者自助式浏览、订阅和调用 AI 能力
+- 在 AI 体验中心体验 Model + MCP 的强大功能
+
+感谢您选择 Himarket!期待看到您用它构建出精彩的应用。
\ No newline at end of file
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java
index 7a9aa700a..49e8453ed 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/AbstractLlmService.java
@@ -102,7 +102,6 @@ private Flux call(LlmChatRequest request, Consumer resp = chatContext.getChatClient()
.prompt(new Prompt(chatContext.getMessages(), chatContext.getChatOptions()))
.options(chatContext.getChatOptions())
From 9e6c5be492077daa7524d755747dde3dfe0b595f Mon Sep 17 00:00:00 2001
From: zhaoh
Date: Wed, 10 Dec 2025 20:53:44 +0800
Subject: [PATCH 05/13] fix: developer consumer config and docs update
- Auto-configure Primary Consumer for external developers
- Fix Higress MCP Path
- Remove emoji from documentation files
Change-Id: I02c85054cba5c9459c523d8d964f148d99395d7f
---
.cursor/rules/project-architecture.mdc | 118 ------------------
README.md | 30 +++--
README_zh.md | 31 +++--
USER_GUIDE.md | 2 +-
.../controller/DeveloperController.java | 11 +-
.../himarket/service/ConsumerService.java | 30 ++---
.../himarket/service/DeveloperService.java | 37 +++---
.../service/gateway/HigressOperator.java | 6 +-
.../service/impl/ConsumerServiceImpl.java | 92 +++++---------
.../service/impl/DeveloperServiceImpl.java | 63 ++--------
10 files changed, 118 insertions(+), 302 deletions(-)
delete mode 100644 .cursor/rules/project-architecture.mdc
diff --git a/.cursor/rules/project-architecture.mdc b/.cursor/rules/project-architecture.mdc
deleted file mode 100644
index ace7f8f7b..000000000
--- a/.cursor/rules/project-architecture.mdc
+++ /dev/null
@@ -1,118 +0,0 @@
----
-description: 这是第一版开放平台设计方案
-globs:
-alwaysApply: false
----
-开放平台的意义
-开放平台能够将企业的核心能力以 API 产品的形式标准化输出,降低与合作伙伴对接门槛,它支持从 REST、HTTP、WebSocket 到 LLM、MCP、Agent 等多样化的 API 能力共享,企业可以将这些能力封装为标准的 API 产品发布至 API 门户,通过网关实现统一的流量管理和安全管控,构建专属的 API 与 AI 能力市场,让合作伙伴和开发者能够便捷、安全地获取和复用这些能力,促进业务创新。
-开放平台的关键意义:
-1. 统一入口,为开发者提供集中的 API 访问点;
-2. 简化 API 发现和使用流程;
-3. 提高 API 复用率,降低重复开发成本;
-4. 推动外部合作和创新。
-AI 时代开放平台新的价值:
-企业可以基于开放平台构建自己的 LLM、MCP 门户等,例如构建像 OpenRouter 这样的模型聚合平台,或者像 Higress MCP Marketplace 这样的 MCP 市场。
-开放平台架构
-image.png
-核心概念
-1. API 产品:多个具有业务关联的 API 的打包集合,它定义了一组可以被开发者订阅和使用的 API 服务;
-2. API 门户:面向开发者的统一入口,由 API Provider 构建,提供 API 产品展示、文档浏览、APP 注册、API 产品订阅等功能;
-3. 开发者:API 产品的使用者,通过门户完成注册、创建 APP、订阅 API 产品等操作;
-4. APP:开发者创建的应用,拥有独立的凭证,用于调用 API 产品。
-API 产品
-API 管理
-API 产品支持多种类型 API 的接入,包括 REST、HTTP、WebSocket、MCP、LLM、Agent API 等。管理员可以对 API 进行分组管理,并进行统一的配置维护。
-文档管理
-API 产品支持配置 OpenAPI Spec 接口文档,同时支持 Markdown 格式的使用说明文档,管理员可以通过在线编辑工具维护和更新文档内容。
-版本管理
-可选,支持 API 产品的版本控制,包括版本发布、切换和废弃管理。
-Policy 管理
-管理员可以为 API 产品配置统一的鉴权、流量、安全防护等策略,这些策略将作用于产品下的所有 API。
-门户后台
-API 产品管理
-门户管理员可将 API 产品发布至门户,发布时可指定 API 产品的类别和访问权限:
-1. Public:所有开发者可见、可订阅;
-2. Private:具有权限的开发者可见、可订阅。
-开发者管理
-1. 开发者注册
-门户管理员可以配置开发者注册和登录门户的方式,包括:
-● 内置(默认):用户使用账号密码注册、登录;
-● OIDC:通过 OIDC 协议对接第三方身份认证服务或企业内部的认证鉴权系统,例如使用 IDaas 用户账号登录。
-2. 开发者审批、撤销
-开发者的注册请求可配置为手动或自动审批流程,审批通过后的开发者账号才能够正常使用,管理员也可主动撤销某一个开发者账号。
-RBAC 管理
-API 产品支持灵活的访问权限控制,管理员可为开发者配置 API 产品的权限范围,如 Viewer(可浏览)、Consumer(可订阅)。
-APP 管理
-开发者登录门户后可申请 APP,并使用 APP 订阅 API 产品,APP 的申请和 API 产品的订阅请求均可配置为后台手动审批或自动审批。管理员可主动撤销某一个 APP 或 API 订阅。
-门户定制
-管理员可对门户进行个性化配置,包括门户地址(提供默认地址)、布局样式、Logo 设置、主题定制、内容管理等。
-可观测
-管理员可查看发布至当前门户的 API 产品的整体流量、成功率、延迟等指标信息(要求网关的可观测能力能够聚合一组 API 的观测指标)。
-门户前台
-API 产品展示
-门户提供分类展示和搜索功能,开发者可以浏览所有可见的 API 产品。每个产品展示基本信息、功能介绍、使用指南等内容。
-开发者中心
-集成开发者所需的核心功能:
-1. 账号与应用管理:个人信息维护、APP 创建及配置;
-2. 订阅管理:查看已订阅 API 产品及授权状态;
-3. 开发工具:在线调试工具、多语言 SDK、示例代码等。
-可观测
-门户前台能够展示开发者的 API 调用信息,包括整体流量、成功率、延迟等(要求网关可观测能力能够聚合一组 APP 的观测指标)。
-开发者
-开发者遵循规范的接入流程:
-1. 完成账号注册并等待审核;
-2. 创建 APP 并获取访问凭证;
-3. 浏览和订阅所需的 API 产品;
-4. 下载 SDK,正式调用服务。
-APP
-APP 管理一组身份凭证,与消费者鉴权中的 Consumer 相近。开发者需要通过 APP 订阅 API 产品,订阅成功后该 APP 将获得 API 产品的授权。开发者可使用 APP 凭证调用 API,凭证信息支持按需更新。
-业务流程
-开发者门户的整体业务流程如下:
-
-门户配置流程
-1. 管理员创建门户,设置门户的基础信息,包括外观、域名、注册和审批策略;
-2. 管理员创建 API 产品,配置产品内的 API 服务、接口文档和鉴权策略;
-3. 管理员将 API 产品发布到门户,设置产品的分类和访问权限;
-4. 管理员可查看 API 产品的订阅状态和可观测数据。
-开发者注册流程
-1. 开发者访问门户并选择合适的方式(账号密码/OIDC)进行注册;
-2. 管理员对注册申请进行审核,设置开发者权限;
-3. 开发者登录门户,浏览可见的 API 产品,查看接口文档。
-应用创建和授权流程
-1. 开发者申请 APP;
-2. 管理员审核 APP 申请,通过后系统生成 APP 凭证。
-3. 开发者选择 API 产品并提交订阅申请;
-4. 管理员审核订阅申请并授予调用权限。
-开发调试和运行流程
-1. 开发者使用 APP 凭证,通过在线调试工具验证接口功能;
-2. 开发者下载 SDK,集成 API 能力到自己的业务系统;
-3. 开发者可通过门户监控 APP 的调用数据。
-开放平台规划
-发展路线
-总体路线:开源探索、能力完善、商业化转化、持续演进。
-优先通过开源方式构建一个功能完整的开放平台,快速验证市场需求,为后续商业化产品的推出打基础。
-
-构建开源开放平台的优势:
-1. 构建速度更快,试错成本更低;
-2. 用户通常对开放平台有更多的定制化的能力,开源方案可提供拓展性;
-3. 开源门户支持对接商业化网关的 API,管理员可使用阿里云账号登录门户后台,管理、开放云上 API;
-4. 不影响 APIG 现有的 API 管理模型,不增加产品的运维负担;
-5. 开放平台作为一个完全独立的模块,利于商业化产品复用。
-产品演进目标
-期望:根据开源版本的实践经验以及用户的需求、反馈,提炼出适用于商业化产品的开放平台的解决方案。
-开放平台未来演进为:
-1. 商业版上提供一个简单、易用、轻量级的门户,可理解为一个 Common Case,定制能力有限,但基本功能齐全,提供 SLA 保障。
-2. 开源版涵盖商业版的所有能力,支持管理云上 API,支持一些定制化的能力,如自定义审批流等,支持用户 DIY,不承诺 SLA。
-近期探索方向
-现阶段一个探索的方向:
-1. 寻找具有完整开放平台能力的开源产品;
-2. 基于开源开放平台对接 APIG,进行 POC;
-3. 复用开源门户的能力(直接复用或重写),构建 APIG 开源开放平台。
-问题思考
-合并 APP 和 Consumer
-APP 与 Consumer 的结构相同,拥有一组身份凭证,用于调用 API,二者看似仅仅是名称上有区别,但 APP 通常被认定为门户内管理的资源,其归属于某一个开发者,当门户被删除后,所有开发者在门户上申请的 APP 都将会一起被删除。
-现有的开放平台(例如 KONG、APIGEE 等)均由门户、API 产品、开发者、APP 四个新的实体组成。其中,门户、API 产品、开发者都可以在用户环境中管理,但 APP 需要获取 API 的授权,APP 凭证必须在网关上存储,这样才能让数据面感知到。
-解决方案:合并 Consumer 和 APP,API 产品的鉴权方式 Consumer 保持同步。
-
-
-
diff --git a/README.md b/README.md
index d1d80df5b..feb5cf9e3 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,17 @@
-## 💡 What is Himarket?
+## Table of Contents
+
+- [What is Himarket?](#what-is-himarket)
+- [System Architecture](#system-architecture)
+- [Quick Start](#quick-start)
+- [Documentation](#documentation)
+- [Community](#community)
+- [Contributors](#contributors)
+- [Star History](#star-history)
+
+## What is Himarket?
Himarket is an enterprise-grade AI open platform built on Higress AI Gateway, helping enterprises build private AI capability marketplace to uniformly manage and distribute AI resources such as LLM, MCP Server, and Agent. The platform encapsulates distributed AI capabilities into standardized API products, supports multi-version management and gray-scale release, provides self-service developer portal, and features comprehensive enterprise-level operation capabilities including security control, observability analysis, metering and billing, making AI resource sharing and reuse efficient and convenient.
@@ -35,7 +45,7 @@ Himarket is an enterprise-grade AI open platform built on Higress AI Gateway, he
Capabilities
-## 🏗️ System Architecture
+## System Architecture
@@ -64,7 +74,7 @@ Himarket system architecture consists of three layers:
-## 🚀 Quick Start
+## Quick Start
Option 1: Local Setup
@@ -136,7 +146,7 @@ cd himarket/deploy/docker
# Backend API: http://localhost:8080
```
-> 📝 For detailed Docker deployment instructions, please refer to [Docker Deployment Guide](./deploy/docker/Docker部署脚本说明.md)
+> For detailed Docker deployment instructions, please refer to [Docker Deployment Guide](./deploy/docker/Docker部署脚本说明.md)
@@ -162,7 +172,7 @@ cd himarket/deploy/helm
./deploy.sh uninstall
```
-> 📝 For detailed Helm deployment instructions, please refer to [Helm Deployment Guide](./deploy/helm/Helm部署脚本说明.md)
+> For detailed Helm deployment instructions, please refer to [Helm Deployment Guide](./deploy/helm/Helm部署脚本说明.md)
@@ -177,13 +187,13 @@ Alibaba Cloud ComputeNest supports out-of-the-box deployment of the community ed
-## 📖 Documentation
+## Documentation
For detailed usage instructions, please refer to:
-📘 [User Guide](./USER_GUIDE.md)
+[User Guide](./USER_GUIDE.md)
-## 🌐 Community
+## Community
### Join Us
@@ -202,7 +212,7 @@ For detailed usage instructions, please refer to:
-## 🏆 Contributors
+## Contributors
Thanks to all the developers who have contributed to Himarket!
@@ -210,6 +220,6 @@ Thanks to all the developers who have contributed to Himarket!
-## 📈 Star History
+## Star History
[](https://star-history.com/#higress-group/himarket&Date)
diff --git a/README_zh.md b/README_zh.md
index 69546d917..402c1bfc7 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -25,7 +25,17 @@
-## 💡 Himarket 是什么?
+## 目录
+
+- [Himarket 是什么?](#himarket-是什么)
+- [系统架构](#系统架构)
+- [快速开始](#快速开始)
+- [文档](#文档)
+- [社区](#社区)
+- [贡献者](#贡献者)
+- [Star History](#star-history)
+
+## Himarket 是什么?
Himarket 是基于 Higress AI 网关构建的企业级 AI 开放平台,帮助企业构建私有 AI 能力市场,统一管理和分发 LLM、MCP Server、Agent 等 AI 资源。平台将分散的 AI 能力封装为标准化的 API 产品,支持多版本管理和灰度发布,提供自助式开发者门户,并具备安全管控、观测分析、计量计费等完整的企业级运营能力,让 AI 资源的共享和复用变得高效便捷。
@@ -35,7 +45,7 @@ Himarket 是基于 Higress AI 网关构建的企业级 AI 开放平台,帮助
核心能力
-## 🏗️ 系统架构
+## 系统架构
@@ -64,7 +74,7 @@ Himarket 系统架构分为三层:
-## 🚀 快速开始
+## 快速开始
方式一:本地搭建
@@ -136,12 +146,11 @@ cd himarket/deploy/docker
# 后端 API 地址:http://localhost:8080
```
-> 📝 详细的 Docker 部署说明请参考 [Docker 部署文档](./deploy/docker/Docker部署脚本说明.md)
+> 详细的 Docker 部署说明请参考 [Docker 部署文档](./deploy/docker/Docker部署脚本说明.md)
-
方式三:Helm Chart
@@ -163,7 +172,7 @@ cd himarket/deploy/helm
./deploy.sh uninstall
```
-> 📝 详细的 Helm 部署说明请参考 [Helm 部署文档](./deploy/helm/Helm部署脚本说明.md)
+> 详细的 Helm 部署说明请参考 [Helm 部署文档](./deploy/helm/Helm部署脚本说明.md)
@@ -178,13 +187,13 @@ cd himarket/deploy/helm
-## 📖 文档
+## 文档
详细的使用说明请参考:
-📘 [用户指南](./USER_GUIDE_zh.md)
+[用户指南](./USER_GUIDE_zh.md)
-## 🌐 社区
+## 社区
### 加入我们
@@ -203,7 +212,7 @@ cd himarket/deploy/helm
-## 🏆 贡献者
+## 贡献者
感谢所有为 Himarket 做出贡献的开发者!
@@ -211,7 +220,7 @@ cd himarket/deploy/helm
-## 📈 Star History
+## Star History
[](https://star-history.com/#higress-group/himarket&Date)
diff --git a/USER_GUIDE.md b/USER_GUIDE.md
index 7b2dc14c8..e206b8d7d 100644
--- a/USER_GUIDE.md
+++ b/USER_GUIDE.md
@@ -430,5 +430,5 @@ You have successfully completed the Himarket platform setup! Now you can:
- Enable developers to self-service browse, subscribe, and call AI capabilities
- Experience the powerful features of Model + MCP in the AI Playground
-Thank you for choosing Himarket! We're excited to see what you build with it. 🌟
+Thank you for choosing Himarket! We're excited to see what you build with it.
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
index 7df8b5246..f315cd705 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
@@ -88,9 +88,8 @@ public String changePassword(@RequestBody ResetPasswordParam param) {
@Operation(summary = "开发者更新个人信息", description = "开发者功能:更新当前登录开发者的个人信息")
@PutMapping("/profile")
@DeveloperAuth
- public String updateProfile(@Valid @RequestBody UpdateDeveloperParam param) {
+ public void updateProfile(@Valid @RequestBody UpdateDeveloperParam param) {
developerService.updateProfile(param);
- return "更新个人信息成功";
}
@Operation(summary = "设置开发者状态", description = "管理员审核开发者账号,status为APPROVED/PENDING")
@@ -101,14 +100,6 @@ public void setDeveloperStatus(@PathVariable("developerId") String developerId,
developerService.setDeveloperStatus(developerId, param.getStatus());
}
-// @Operation(summary = "解绑第三方登录", description = "解绑当前登录用户的指定第三方账号")
-// @DeleteMapping("/{developerId}/identity")
-// @DeveloperAuth
-// public void unbindExternalIdentity(@PathVariable("developerId") String developerId,
-// @RequestBody UnbindExternalIdentityParam param) {
-// developerService.unbindExternalIdentity(developerId, param.getProviderName(), param.getProviderSubject());
-// }
-
@Operation(summary = "删除Developer账号")
@DeleteMapping("/{developerId}")
@AdminAuth
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java
index 6836a03e0..81fbb0fcf 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/ConsumerService.java
@@ -51,7 +51,7 @@ public interface ConsumerService {
void createConsumerInner(CreateConsumerParam param, String developerId);
/**
- * 获取Consumer列表
+ * List consumers
*
* @param param
* @param pageable
@@ -60,7 +60,7 @@ public interface ConsumerService {
PageResult
listConsumers(QueryConsumerParam param, Pageable pageable);
/**
- * 查询Consumer
+ * Get a consumer
*
* @param consumerId
* @return
@@ -68,14 +68,14 @@ public interface ConsumerService {
ConsumerResult getConsumer(String consumerId);
/**
- * 删除Consumer
+ * Delete a consumer
*
* @param consumerId
*/
void deleteConsumer(String consumerId);
/**
- * 创建Consumer凭证
+ * Add a credential to a consumer
*
* @param consumerId
* @param param
@@ -83,7 +83,7 @@ public interface ConsumerService {
void createCredential(String consumerId, CreateCredentialParam param);
/**
- * 获取Consumer凭证
+ * Get a consumer's credential
*
* @param consumerId
* @return
@@ -91,7 +91,7 @@ public interface ConsumerService {
ConsumerCredentialResult getCredential(String consumerId);
/**
- * 更新Consumer凭证
+ * Update a consumer's credential
*
* @param consumerId
* @param param
@@ -99,14 +99,14 @@ public interface ConsumerService {
void updateCredential(String consumerId, UpdateCredentialParam param);
/**
- * 删除Consumer凭证
+ * Delete a consumer's credential
*
* @param consumerId Consumer ID
*/
void deleteCredential(String consumerId);
/**
- * 订阅API产品
+ * Subscribe a product by a consumer
*
* @param consumerId
* @param param
@@ -115,7 +115,7 @@ public interface ConsumerService {
SubscriptionResult subscribeProduct(String consumerId, CreateSubscriptionParam param);
/**
- * 取消订阅
+ * Unsubscribe a product
*
* @param consumerId
* @param productId
@@ -123,7 +123,7 @@ public interface ConsumerService {
void unsubscribeProduct(String consumerId, String productId);
/**
- * 获取Consumer的订阅列表
+ * List subscriptions of a consumer
*
* @param consumerId
* @param param
@@ -133,15 +133,7 @@ public interface ConsumerService {
PageResult listSubscriptions(String consumerId, QuerySubscriptionParam param, Pageable pageable);
/**
- * 取消订阅API产品
- *
- * @param consumerId
- * @param productId
- */
- void deleteSubscription(String consumerId, String productId);
-
- /**
- * 审批订阅API产品
+ * Approve a subscription
*
* @param consumerId
* @param productId
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java b/himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java
index c0fcc9c1e..9e13e6106 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/DeveloperService.java
@@ -35,7 +35,7 @@
public interface DeveloperService {
/**
- * 开发者注册
+ * Register a new developer
*
* @param param
* @return
@@ -43,7 +43,7 @@ public interface DeveloperService {
AuthResult registerDeveloper(CreateDeveloperParam param);
/**
- * 创建开发者
+ * Create a new developer
*
* @param param
* @return
@@ -51,7 +51,7 @@ public interface DeveloperService {
DeveloperResult createDeveloper(CreateDeveloperParam param);
/**
- * 开发者登录
+ * Login by username and password
*
* @param username
* @param password
@@ -60,14 +60,14 @@ public interface DeveloperService {
AuthResult login(String username, String password);
/**
- * 校验Developer
+ * If the developer exists
*
* @param developerId
*/
void existsDeveloper(String developerId);
/**
- * 获取外部开发者详情
+ * Get external developer info
*
* @param provider
* @param subject
@@ -76,7 +76,7 @@ public interface DeveloperService {
DeveloperResult getExternalDeveloper(String provider, String subject);
/**
- * 外部账号创建开发者
+ * Create a new developer by external identity
*
* @param param
* @return
@@ -84,14 +84,14 @@ public interface DeveloperService {
DeveloperResult createExternalDeveloper(CreateExternalDeveloperParam param);
/**
- * 删除开发者账号(删除账号及所有外部身份)
+ * Delete a developer
*
* @param developerId
*/
void deleteDeveloper(String developerId);
/**
- * 查询开发者详情
+ * Get a developer
*
* @param developerId
* @return
@@ -99,7 +99,7 @@ public interface DeveloperService {
DeveloperResult getDeveloper(String developerId);
/**
- * 查询门户下的开发者列表
+ * List developers in a portal
*
* @param param
* @param pageable
@@ -108,7 +108,7 @@ public interface DeveloperService {
PageResult listDevelopers(QueryDeveloperParam param, Pageable pageable);
/**
- * 设置开发者状态
+ * Set a developer status
*
* @param developerId
* @param status
@@ -117,7 +117,7 @@ public interface DeveloperService {
void setDeveloperStatus(String developerId, DeveloperStatus status);
/**
- * 开发者修改密码
+ * Reset password of a developer
*
* @param developerId
* @param oldPassword
@@ -127,31 +127,30 @@ public interface DeveloperService {
boolean resetPassword(String developerId, String oldPassword, String newPassword);
/**
- * 开发者更新个人信息
+ * Update user info of a developer
*
* @param param
- * @return
*/
- boolean updateProfile(UpdateDeveloperParam param);
+ void updateProfile(UpdateDeveloperParam param);
/**
- * 清理门户资源
+ * Clean developer resources when portal is deleted
*
* @param event
*/
void handlePortalDeletion(PortalDeletingEvent event);
/**
- * 开发者登出
+ * Logout
*
- * @param request HTTP请求
+ * @param request
*/
void logout(HttpServletRequest request);
/**
- * 获取当前登录开发者信息
+ * Get current developer info
*
- * @return 开发者信息
+ * @return
*/
DeveloperResult getCurrentDeveloperInfo();
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java
index 21cc8f940..3088af00d 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/gateway/HigressOperator.java
@@ -161,9 +161,11 @@ public String fetchMcpConfig(Gateway gateway, Object conf) {
boolean isDirect = "direct_route".equalsIgnoreCase(higressMCPConfig.getType());
DirectRouteConfig directRouteConfig = higressMCPConfig.getDirectRouteConfig();
String transportType = isDirect ? directRouteConfig.getTransportType() : null;
- String path = isDirect ? directRouteConfig.getPath() : "/mcp-servers/" + higressMCPConfig.getName();
+// String path = isDirect ? directRouteConfig.getPath() : "/mcp-servers/" + higressMCPConfig.getName();
+
+ // Standardized path format for Higress MCP servers: /mcp-servers/{name}
+ c.setPath("/mcp-servers/" + higressMCPConfig.getName());
- c.setPath(path);
List domains = higressMCPConfig.getDomains();
if (CollUtil.isEmpty(domains)) {
List gatewayIps = fetchGatewayIps(gateway);
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java
index c97eb78d1..abe119501 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/ConsumerServiceImpl.java
@@ -148,11 +148,11 @@ public ConsumerResult getConsumer(String consumerId) {
public void deleteConsumer(String consumerId) {
Consumer consumer = contextHolder.isDeveloper() ? findDevConsumer(consumerId) : findConsumer(consumerId);
- // 1. 先解除所有产品的授权
+ // 1. Remove subscriptions
List subscriptions = subscriptionRepository.findAllByConsumerId(consumerId);
for (ProductSubscription subscription : subscriptions) {
try {
- // 如果订阅有授权配置,需要先解除授权
+ // If there is an authorization configuration, we need to cancel the authorization
if (subscription.getConsumerAuthConfig() != null) {
ProductRefResult productRef = productService.getProductRef(subscription.getProductId());
if (productRef != null) {
@@ -173,13 +173,13 @@ public void deleteConsumer(String consumerId) {
}
}
- // 2. 删除订阅记录
+ // 2. Delete subscriptions
subscriptionRepository.deleteAllByConsumerId(consumerId);
- // 3. 删除凭证
+ // 3. Delete credential
credentialRepository.deleteAllByConsumerId(consumerId);
- // 4. 删除网关上的Consumer
+ // 4. Delete gateway consumer
List consumerRefs = consumerRefRepository.findAllByConsumerId(consumerId);
for (ConsumerRef consumerRef : consumerRefs) {
try {
@@ -189,20 +189,20 @@ public void deleteConsumer(String consumerId) {
}
}
- // 5. 删除ConsumerRef记录
+ // 5. Delete consumer reference
consumerRefRepository.deleteAll(consumerRefs);
- // 6. 最后删除Consumer本身
+ // 6. Delete consumer
consumerRepository.delete(consumer);
}
@Override
public void createCredential(String consumerId, CreateCredentialParam param) {
existsConsumer(consumerId);
- // Consumer仅一份Credential
+ // Consumer only has one credential
credentialRepository.findByConsumerId(consumerId)
.ifPresent(c -> {
- throw new BusinessException(ErrorCode.CONFLICT, StrUtil.format("{}:{}已存在凭证", Resources.CONSUMER, consumerId));
+ throw new BusinessException(ErrorCode.CONFLICT, StrUtil.format("Credential of consumer `{}` already exists", consumerId));
});
ConsumerCredential credential = param.convertTo();
credential.setConsumerId(consumerId);
@@ -245,7 +245,7 @@ public void updateCredential(String consumerId, UpdateCredentialParam param) {
try {
gatewayService.updateConsumer(consumerRef.getGwConsumerId(), credential, consumerRef.getGatewayConfig());
} catch (Exception e) {
- log.error("update gatewayConsumer error, gwConsumerId: {}", consumerRef.getGwConsumerId(), e);
+ log.error("Update gatewayConsumer error, gwConsumerId: {}", consumerRef.getGwConsumerId(), e);
}
}
@@ -263,20 +263,19 @@ public SubscriptionResult subscribeProduct(String consumerId, CreateSubscription
Consumer consumer = contextHolder.isDeveloper() ?
findDevConsumer(consumerId) : findConsumer(consumerId);
- // 勿重复订阅
if (subscriptionRepository.findByConsumerIdAndProductId(consumerId, param.getProductId()).isPresent()) {
- throw new BusinessException(ErrorCode.INVALID_REQUEST, "重复订阅");
+ throw new BusinessException(ErrorCode.INVALID_REQUEST, "Duplicate subscription");
}
ProductResult product = productService.getProduct(param.getProductId());
ProductRefResult productRef = productService.getProductRef(param.getProductId());
if (productRef == null) {
- throw new BusinessException(ErrorCode.INTERNAL_ERROR, "API产品未关联API");
+ throw new BusinessException(ErrorCode.INTERNAL_ERROR, "API product is not associated with any API");
}
- // 非网关型不支持订阅
+ // Only gateway source type is supported
if (productRef.getSourceType() != SourceType.GATEWAY) {
- throw new BusinessException(ErrorCode.INVALID_REQUEST, "API产品不支持订阅");
+ throw new BusinessException(ErrorCode.INVALID_REQUEST, "API product does not support subscription");
}
ConsumerCredential credential = credentialRepository.findByConsumerId(consumerId)
@@ -285,30 +284,21 @@ public SubscriptionResult subscribeProduct(String consumerId, CreateSubscription
ProductSubscription subscription = param.convertTo();
subscription.setConsumerId(consumerId);
- // 检查产品级别的自动审批设置
- boolean autoApprove = false;
-
- // 优先检查产品级别的autoApprove配置
+ boolean autoApprove;
if (product.getAutoApprove() != null) {
- // 如果产品配置了autoApprove,直接使用产品级别的配置
autoApprove = product.getAutoApprove();
- log.info("使用产品级别自动审批配置: productId={}, autoApprove={}", param.getProductId(), autoApprove);
} else {
- // 如果产品未配置autoApprove,则使用平台级别的配置
PortalResult portal = portalService.getPortal(consumer.getPortalId());
- log.info("portal: {}", JSONUtil.toJsonStr(portal));
autoApprove = portal.getPortalSettingConfig() != null
&& BooleanUtil.isTrue(portal.getPortalSettingConfig().getAutoApproveSubscriptions());
- log.info("使用平台级别自动审批配置: portalId={}, autoApprove={}", consumer.getPortalId(), autoApprove);
}
+ // If autoApprove is true, immediately authorize and set status to APPROVED
if (autoApprove) {
- // 如果autoApprove为true,立即授权并设置为APPROVED状态
ConsumerAuthConfig consumerAuthConfig = authorizeConsumer(consumer, credential, productRef);
subscription.setConsumerAuthConfig(consumerAuthConfig);
subscription.setStatus(SubscriptionStatus.APPROVED);
} else {
- // 如果autoApprove为false,暂时不授权,设置为PENDING状态
subscription.setStatus(SubscriptionStatus.PENDING);
}
@@ -368,14 +358,6 @@ public PageResult listSubscriptions(String consumerId, Query
});
}
- @Override
- public void deleteSubscription(String consumerId, String productId) {
- existsConsumer(consumerId);
-
- subscriptionRepository.findByConsumerIdAndProductId(consumerId, productId)
- .ifPresent(subscriptionRepository::delete);
- }
-
@Override
public SubscriptionResult approveSubscription(String consumerId, String productId) {
existsConsumer(consumerId);
@@ -383,27 +365,25 @@ public SubscriptionResult approveSubscription(String consumerId, String productI
ProductSubscription subscription = subscriptionRepository.findByConsumerIdAndProductId(consumerId, productId)
.orElseThrow(() -> new BusinessException(ErrorCode.NOT_FOUND, Resources.SUBSCRIPTION, StrUtil.format("{}:{}", productId, consumerId)));
- // 检查订阅状态,只有PENDING状态的订阅才能被审批
if (subscription.getStatus() != SubscriptionStatus.PENDING) {
- throw new BusinessException(ErrorCode.INVALID_REQUEST, "订阅已审批");
+ throw new BusinessException(ErrorCode.INVALID_REQUEST, "Subscription already approved");
}
- // 获取消费者和凭证信息
+ // Get consumer and credential information
Consumer consumer = contextHolder.isDeveloper() ?
findDevConsumer(consumerId) : findConsumer(consumerId);
ConsumerCredential credential = credentialRepository.findByConsumerId(consumerId)
.orElseThrow(() -> new BusinessException(ErrorCode.NOT_FOUND, Resources.CONSUMER_CREDENTIAL, consumerId));
- // 获取产品引用信息
+ // Obtain product reference
ProductRefResult productRef = productService.getProductRef(productId);
if (productRef == null) {
- throw new BusinessException(ErrorCode.INTERNAL_ERROR, "API产品未关联API");
+ throw new BusinessException(ErrorCode.INTERNAL_ERROR, "API product is not associated with any API");
}
- // 执行授权操作
+ // Authorize consumer in the gateway
ConsumerAuthConfig consumerAuthConfig = authorizeConsumer(consumer, credential, productRef);
- // 更新订阅状态和授权配置
subscription.setConsumerAuthConfig(consumerAuthConfig);
subscription.setStatus(SubscriptionStatus.APPROVED);
subscriptionRepository.saveAndFlush(subscription);
@@ -467,7 +447,6 @@ private Specification buildCredentialSpec(String consumerId
predicates.add(cb.equal(root.get("status"), param.getStatus()));
}
if (StrUtil.isNotBlank(param.getProductName())) {
- // 使用子查询
Subquery productSubquery = query.subquery(String.class);
Root productRoot = productSubquery.from(Product.class);
@@ -483,11 +462,6 @@ private Specification buildCredentialSpec(String consumerId
};
}
- /**
- * 补充Credentials
- *
- * @param credential
- */
private void complementCredentials(ConsumerCredential credential) {
if (credential == null) {
return;
@@ -523,23 +497,21 @@ private void complementCredentials(ConsumerCredential credential) {
private ConsumerAuthConfig authorizeConsumer(Consumer consumer, ConsumerCredential credential, ProductRefResult productRef) {
GatewayConfig gatewayConfig = gatewayService.getGatewayConfig(productRef.getGatewayId());
- // 检查是否在网关上有对应的Consumer
+ // Check if consumer exists in gateway
ConsumerRef existingConsumerRef = matchConsumerRef(consumer.getConsumerId(), gatewayConfig);
String gwConsumerId;
if (existingConsumerRef != null) {
- // 如果存在ConsumerRef记录,需要检查实际网关中是否还存在该消费者
gwConsumerId = existingConsumerRef.getGwConsumerId();
- // 检查实际网关中是否还存在该消费者
if (!isConsumerExistsInGateway(gwConsumerId, gatewayConfig)) {
- log.warn("网关中的消费者已被删除,需要重新创建: gwConsumerId={}, gatewayType={}",
+ log.warn("Consumer in gateway was deleted, need to recreate consumer: gwConsumerId: {}, gatewayType: {}",
gwConsumerId, gatewayConfig.getGatewayType());
- // 删除过期的ConsumerRef记录
+ // Delete expired ConsumerRef record
consumerRefRepository.delete(existingConsumerRef);
- // 重新创建消费者
+ // Recreate consumer
gwConsumerId = gatewayService.createConsumer(consumer, credential, gatewayConfig);
consumerRefRepository.save(ConsumerRef.builder()
.consumerId(consumer.getConsumerId())
@@ -549,7 +521,7 @@ private ConsumerAuthConfig authorizeConsumer(Consumer consumer, ConsumerCredenti
.build());
}
} else {
- // 如果不存在ConsumerRef记录,直接创建新的消费者
+ // If no ConsumerRef record exists, create new consumer directly
gwConsumerId = gatewayService.createConsumer(consumer, credential, gatewayConfig);
consumerRefRepository.save(ConsumerRef.builder()
.consumerId(consumer.getConsumerId())
@@ -559,20 +531,17 @@ private ConsumerAuthConfig authorizeConsumer(Consumer consumer, ConsumerCredenti
.build());
}
- // 授权
+ // Authorize consumer
return gatewayService.authorizeConsumer(productRef.getGatewayId(), gwConsumerId, productRef);
}
- /**
- * 检查消费者是否在实际网关中存在
- */
+
private boolean isConsumerExistsInGateway(String gwConsumerId, GatewayConfig gatewayConfig) {
try {
return gatewayService.isConsumerExists(gwConsumerId, gatewayConfig);
} catch (Exception e) {
- log.warn("检查网关消费者存在性失败: gwConsumerId={}, gatewayType={}",
+ log.warn("Failed to check consumer existence in gateway, gwConsumerId: {}, gatewayType: {}",
gwConsumerId, gatewayConfig.getGatewayType(), e);
- // 如果检查失败,默认认为存在,避免无谓的重新创建
return true;
}
}
@@ -619,7 +588,7 @@ private ConsumerRef matchConsumerRef(String consumerId, GatewayConfig gatewayCon
}
for (ConsumerRef ref : consumeRefs) {
- // 网关配置相同
+ // Check if the gateway config matches
if (StrUtil.equals(JSONUtil.toJsonStr(ref.getGatewayConfig()), JSONUtil.toJsonStr(gatewayConfig))) {
return ref;
}
@@ -630,7 +599,6 @@ private ConsumerRef matchConsumerRef(String consumerId, GatewayConfig gatewayCon
@Override
public CredentialContext getDefaultCredential(String developerId) {
try {
- // 复用 getPrimaryConsumer 逻辑(会自动初始化 primary)
ConsumerResult consumer = getPrimaryConsumer();
return credentialRepository
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java
index 2120241a9..74c8f6e1f 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/service/impl/DeveloperServiceImpl.java
@@ -87,7 +87,7 @@ public AuthResult registerDeveloper(CreateDeveloperParam param) {
// Allocate default consumer
createDefaultConsumer(developer.getDeveloperId());
- // 检查是否自动审批
+ // Check if auto approve
String portalId = contextHolder.getPortal();
Portal portal = findPortal(portalId);
boolean autoApprove = portal.getPortalSettingConfig() != null
@@ -104,7 +104,7 @@ public AuthResult registerDeveloper(CreateDeveloperParam param) {
public DeveloperResult createDeveloper(CreateDeveloperParam param) {
String portalId = contextHolder.getPortal();
developerRepository.findByPortalIdAndUsername(portalId, param.getUsername()).ifPresent(developer -> {
- throw new BusinessException(ErrorCode.CONFLICT, StrUtil.format("{}:{}已存在", Resources.DEVELOPER, param.getUsername()));
+ throw new BusinessException(ErrorCode.CONFLICT, StrUtil.format("Developer with name `{}` already exists", developer.getUsername()));
});
Developer developer = param.convertTo();
@@ -129,11 +129,11 @@ public AuthResult login(String username, String password) {
.orElseThrow(() -> new BusinessException(ErrorCode.NOT_FOUND, Resources.DEVELOPER, username));
if (!DeveloperStatus.APPROVED.equals(developer.getStatus())) {
- throw new BusinessException(ErrorCode.INVALID_REQUEST, "账号审批中");
+ throw new BusinessException(ErrorCode.INVALID_REQUEST, "Your account is pending approval");
}
if (!PasswordHasher.verify(password, developer.getPasswordHash())) {
- throw new BusinessException(ErrorCode.UNAUTHORIZED, "用户名或密码错误");
+ throw new BusinessException(ErrorCode.UNAUTHORIZED, "The username or password you entered is incorrect");
}
String token = generateToken(developer.getDeveloperId());
@@ -156,7 +156,7 @@ public DeveloperResult createExternalDeveloper(CreateExternalDeveloperParam para
.portalId(contextHolder.getPortal())
.username(buildExternalName(param.getProvider(), param.getDisplayName()))
.email(param.getEmail())
- // 默认APPROVED
+ // Default APPROVED
.status(DeveloperStatus.APPROVED)
.build();
@@ -170,6 +170,8 @@ public DeveloperResult createExternalDeveloper(CreateExternalDeveloperParam para
developerRepository.save(developer);
externalRepository.save(externalIdentity);
+ createDefaultConsumer(developer.getDeveloperId());
+
return new DeveloperResult().convertFrom(developer);
}
@@ -214,12 +216,11 @@ public void setDeveloperStatus(String developerId, DeveloperStatus status) {
}
@Override
- @Transactional
public boolean resetPassword(String developerId, String oldPassword, String newPassword) {
Developer developer = findDeveloper(developerId);
if (!PasswordHasher.verify(oldPassword, developer.getPasswordHash())) {
- throw new BusinessException(ErrorCode.UNAUTHORIZED, "用户名或密码错误");
+ throw new BusinessException(ErrorCode.UNAUTHORIZED, "The username or password you entered is incorrect");
}
developer.setPasswordHash(PasswordHasher.hash(newPassword));
@@ -228,19 +229,18 @@ public boolean resetPassword(String developerId, String oldPassword, String newP
}
@Override
- public boolean updateProfile(UpdateDeveloperParam param) {
+ public void updateProfile(UpdateDeveloperParam param) {
Developer developer = findDeveloper(contextHolder.getUser());
String username = param.getUsername();
if (username != null && !username.equals(developer.getUsername())) {
if (developerRepository.findByPortalIdAndUsername(developer.getPortalId(), username).isPresent()) {
- throw new BusinessException(ErrorCode.CONFLICT, StrUtil.format("{}:{}已存在", Resources.DEVELOPER, username));
+ throw new BusinessException(ErrorCode.CONFLICT, StrUtil.format("Developer with name `{}` already exists", username));
}
}
param.update(developer);
developerRepository.save(developer);
- return true;
}
@EventListener
@@ -255,42 +255,6 @@ private String generateToken(String developerId) {
return TokenUtil.generateDeveloperToken(developerId);
}
- private Developer createExternalDeveloper(String providerName, String providerSubject, String email, String displayName, String rawInfoJson) {
- String portalId = contextHolder.getPortal();
- String username = generateUniqueUsername(portalId, displayName, providerName, providerSubject);
-
- Developer developer = Developer.builder()
- .developerId(generateDeveloperId())
- .portalId(portalId)
- .username(username)
- .email(email)
- .status(DeveloperStatus.APPROVED)
- .authType(DeveloperAuthType.OIDC)
- .build();
- developer = developerRepository.save(developer);
-
- DeveloperExternalIdentity ext = DeveloperExternalIdentity.builder()
- .provider(providerName)
- .subject(providerSubject)
- .displayName(displayName)
- .rawInfoJson(rawInfoJson)
- .developer(developer)
- .build();
- externalRepository.save(ext);
- return developer;
- }
-
- private String generateUniqueUsername(String portalId, String displayName, String providerName, String providerSubject) {
- String username = displayName != null ? displayName : providerName + "_" + providerSubject;
- String originalUsername = username;
- int suffix = 1;
- while (developerRepository.findByPortalIdAndUsername(portalId, username).isPresent()) {
- username = originalUsername + "_" + suffix;
- suffix++;
- }
- return username;
- }
-
private String generateDeveloperId() {
return IdGenerator.genDeveloperId();
}
@@ -326,8 +290,7 @@ private Specification buildSpecification(QueryDeveloperParam param) {
@Override
public void logout(HttpServletRequest request) {
- // 使用TokenUtil处理登出逻辑
- com.alibaba.himarket.core.utils.TokenUtil.revokeToken(request);
+ TokenUtil.revokeToken(request);
}
@Override
@@ -346,8 +309,8 @@ public boolean changeCurrentDeveloperPassword(String oldPassword, String newPass
private void createDefaultConsumer(String developerId) {
consumerService.createConsumerInner(
CreateConsumerParam.builder()
- .name("default-consumer")
- .description("Developer's default consumer")
+ .name("primary-consumer")
+ .description("Developer's primary consumer")
.build(),
developerId
);
From 061ad1ef892b24e722348948c8be3305b9e5fa99 Mon Sep 17 00:00:00 2001
From: zhaoh
Date: Wed, 10 Dec 2025 22:24:14 +0800
Subject: [PATCH 06/13] style: format code with spotless
Change-Id: I91e7a57d42ae0e3455dee0ce690e3300d22d6a51
---
.github/PR_GUIDE.md | 12 +-
.github/PR_GUIDE_zh.md | 12 +-
.github/workflows/code-check.yml | 43 -
CONTRIBUTING.md | 22 +-
CONTRIBUTING_zh.md | 22 +-
checkstyle.xml | 56 --
.../alibaba/himarket/config/AsyncConfig.java | 5 +-
.../alibaba/himarket/config/FilterConfig.java | 3 +-
.../alibaba/himarket/config/FlywayConfig.java | 22 +-
.../himarket/config/RestTemplateConfig.java | 6 +-
.../himarket/config/SecurityConfig.java | 95 +-
.../himarket/config/SwaggerConfig.java | 5 +-
.../alibaba/himarket/config/WebMvcConfig.java | 16 +-
.../filter/PortalResolvingFilter.java | 24 +-
.../converter/APIGConfigConverter.java | 1 -
.../converter/APIGRefConfigConverter.java | 1 -
.../AdpAIGatewayConfigConverter.java | 2 -
.../converter/ApiKeyConfigConverter.java | 1 -
.../ApsaraGatewayConfigConverter.java | 1 -
.../converter/ChatUsageConverter.java | 3 +-
.../ConsumerAuthConfigConverter.java | 1 -
.../converter/GatewayConfigConverter.java | 1 -
.../converter/HigressConfigConverter.java | 1 -
.../converter/HigressRefConfigConverter.java | 1 -
.../converter/HmacConfigConverter.java | 1 -
.../himarket/converter/IconConverter.java | 2 -
.../himarket/converter/JsonConverter.java | 57 +-
.../converter/JwtConfigConverter.java | 1 -
.../converter/NacosRefConfigConverter.java | 3 +-
.../PortalSettingConfigConverter.java | 1 -
.../converter/PortalUiConfigConverter.java | 3 +-
.../converter/ProductFeatureConverter.java | 1 -
.../himarket/entity/Administrator.java | 23 +-
.../alibaba/himarket/entity/BaseEntity.java | 9 +-
.../com/alibaba/himarket/entity/Chat.java | 67 +-
.../himarket/entity/ChatAttachment.java | 43 +-
.../alibaba/himarket/entity/ChatSession.java | 43 +-
.../com/alibaba/himarket/entity/Consumer.java | 21 +-
.../himarket/entity/ConsumerCredential.java | 10 +-
.../alibaba/himarket/entity/ConsumerRef.java | 3 +-
.../alibaba/himarket/entity/Developer.java | 24 +-
.../entity/DeveloperExternalIdentity.java | 19 +-
.../com/alibaba/himarket/entity/Gateway.java | 14 +-
.../himarket/entity/NacosInstance.java | 13 +-
.../com/alibaba/himarket/entity/Portal.java | 21 +-
.../alibaba/himarket/entity/PortalDomain.java | 15 +-
.../com/alibaba/himarket/entity/Product.java | 16 +-
.../himarket/entity/ProductCategory.java | 12 +-
.../entity/ProductCategoryRelation.java | 12 +-
.../himarket/entity/ProductPublication.java | 3 +-
.../alibaba/himarket/entity/ProductRef.java | 3 +-
.../himarket/entity/ProductSubscription.java | 12 +-
.../repository/AdministratorRepository.java | 10 +-
.../himarket/repository/BaseRepository.java | 6 +-
.../repository/ChatAttachmentRepository.java | 5 +-
.../himarket/repository/ChatRepository.java | 25 +-
.../repository/ChatSessionRepository.java | 29 +-
.../ConsumerCredentialRepository.java | 1 -
.../repository/ConsumerRefRepository.java | 20 +-
.../repository/ConsumerRepository.java | 7 +-
.../DeveloperExternalIdentityRepository.java | 10 +-
.../repository/DeveloperRepository.java | 7 +-
.../repository/GatewayRepository.java | 3 +-
.../repository/NacosInstanceRepository.java | 5 +-
.../repository/PortalDomainRepository.java | 1 -
.../himarket/repository/PortalRepository.java | 3 +-
.../ProductCategoryRelationRepository.java | 11 +-
.../repository/ProductCategoryRepository.java | 5 +-
.../ProductPublicationRepository.java | 3 +-
.../repository/ProductRefRepository.java | 10 +-
.../repository/ProductRepository.java | 12 +-
.../repository/SubscriptionRepository.java | 3 +-
.../himarket/support/chat/ChatUsage.java | 4 +-
.../support/chat/mcp/MCPTransportConfig.java | 1 -
.../support/chat/search/SearchContext.java | 27 +-
.../support/chat/search/SearchInput.java | 11 +-
.../support/chat/search/SearchOutput.java | 7 +-
.../himarket/support/common/Encrypted.java | 3 +-
.../support/consumer/APIGAuthConfig.java | 4 +-
.../support/consumer/AdpAIAuthConfig.java | 18 +-
.../support/consumer/ApiKeyConfig.java | 13 +-
.../support/consumer/ConsumerAuthConfig.java | 12 +-
.../support/consumer/HigressAuthConfig.java | 1 -
.../himarket/support/consumer/HmacConfig.java | 3 +-
.../himarket/support/consumer/JwtConfig.java | 4 +-
.../himarket/support/enums/AIProtocol.java | 3 -
.../himarket/support/enums/APIGAPIType.java | 5 +-
.../support/enums/APIGResourceType.java | 2 -
.../support/enums/AttachmentDataType.java | 2 -
.../support/enums/ChatAttachmentType.java | 3 -
.../himarket/support/enums/ChatRole.java | 2 -
.../support/enums/ChatSessionStatus.java | 2 -
.../himarket/support/enums/ChatStatus.java | 2 -
.../support/enums/ConsumerAuthType.java | 2 -
.../support/enums/ConsumerStatus.java | 13 +-
.../himarket/support/enums/ContentType.java | 2 -
.../support/enums/CredentialMode.java | 2 -
.../support/enums/DeveloperAuthType.java | 3 -
.../support/enums/DeveloperStatus.java | 9 +-
.../himarket/support/enums/DomainType.java | 2 -
.../himarket/support/enums/GatewayType.java | 21 +-
.../himarket/support/enums/GrantType.java | 11 +-
.../support/enums/HigressAPIType.java | 2 -
.../himarket/support/enums/IconType.java | 3 -
.../himarket/support/enums/JwtAlgorithm.java | 3 -
.../support/enums/MCPTransportMode.java | 1 -
.../himarket/support/enums/ProductStatus.java | 13 +-
.../himarket/support/enums/ProductType.java | 2 -
.../himarket/support/enums/ProtocolType.java | 2 -
.../support/enums/PublicKeyFormat.java | 2 -
.../support/enums/SearchEngineType.java | 29 +-
.../himarket/support/enums/SlsAuthType.java | 8 +-
.../himarket/support/enums/SourceType.java | 15 +-
.../support/enums/SubscriptionStatus.java | 11 +-
.../himarket/support/enums/TalkType.java | 2 -
.../himarket/support/enums/UserType.java | 9 +-
.../himarket/support/gateway/APIGConfig.java | 10 +-
.../support/gateway/AdpAIGatewayConfig.java | 26 +-
.../support/gateway/ApsaraGatewayConfig.java | 11 +-
.../support/gateway/GatewayConfig.java | 6 +-
.../support/gateway/HigressConfig.java | 11 +-
.../support/portal/AuthCodeConfig.java | 34 +-
.../support/portal/IdentityMapping.java | 20 +-
.../support/portal/JwtBearerConfig.java | 8 +-
.../himarket/support/portal/OAuth2Config.java | 26 +-
.../himarket/support/portal/OidcConfig.java | 28 +-
.../support/portal/PortalSettingConfig.java | 31 +-
.../support/portal/PublicKeyConfig.java | 17 +-
.../support/portal/SearchEngineConfig.java | 36 +-
.../support/product/APIGRefConfig.java | 15 +-
.../support/product/HigressRefConfig.java | 6 +-
.../himarket/support/product/Icon.java | 1 -
.../support/product/ModelFeature.java | 21 +-
.../support/product/NacosRefConfig.java | 19 +-
.../support/product/ProductFeature.java | 1 -
.../alibaba/himarket/config/SlsConfig.java | 49 +-
.../controller/AdministratorController.java | 13 +-
.../himarket/controller/ChatController.java | 11 +-
.../controller/ConsumerController.java | 39 +-
.../controller/DeveloperController.java | 19 +-
.../controller/GatewayController.java | 64 +-
.../himarket/controller/NacosController.java | 57 +-
.../himarket/controller/OAuth2Controller.java | 6 +-
.../himarket/controller/OidcController.java | 27 +-
.../himarket/controller/PortalController.java | 14 +-
.../controller/ProductCategoryController.java | 27 +-
.../controller/ProductController.java | 35 +-
.../controller/SearchEngineController.java | 33 +-
.../controller/SessionController.java | 22 +-
.../himarket/controller/SlsController.java | 112 +--
.../himarket/core/advice/ExceptionAdvice.java | 59 +-
.../himarket/core/advice/ResponseAdvice.java | 43 +-
.../himarket/core/annotation/AdminAuth.java | 6 +-
.../core/annotation/AdminOrDeveloperAuth.java | 6 +-
.../core/annotation/DeveloperAuth.java | 6 +-
.../core/constant/CommonConstants.java | 1 -
.../himarket/core/constant/IdpConstants.java | 57 +-
.../himarket/core/constant/JwtConstants.java | 78 +-
.../himarket/core/constant/Resources.java | 2 -
.../core/exception/BusinessException.java | 3 +-
.../himarket/core/exception/ChatError.java | 7 +-
.../himarket/core/exception/ErrorCode.java | 31 +-
.../himarket/core/response/Response.java | 13 +-
.../himarket/core/security/ContextHolder.java | 10 +-
.../DeveloperAuthenticationProvider.java | 11 +-
.../security/JwtAuthenticationFilter.java | 68 +-
.../himarket/core/utils/CacheUtil.java | 1 -
.../himarket/core/utils/IdGenerator.java | 18 +-
.../himarket/core/utils/PasswordHasher.java | 2 +-
.../himarket/core/utils/TokenUtil.java | 35 +-
.../dto/converter/InputConverter.java | 5 +-
.../dto/converter/NacosAgentConverter.java | 35 +-
.../NacosToGatewayToolsConverter.java | 86 +-
.../dto/converter/OutputConverter.java | 1 -
.../dto/converter/SlsResponseConverter.java | 81 +-
.../dto/params/admin/AdminCreateParam.java | 9 +-
.../dto/params/admin/AdminLoginParam.java | 9 +-
.../dto/params/admin/ResetPasswordParam.java | 7 +-
.../category/CreateProductCategoryParam.java | 5 +-
.../category/UpdateProductCategoryParam.java | 3 +-
.../himarket/dto/params/chat/ChatContext.java | 43 +-
.../dto/params/chat/CreateChatParam.java | 47 +-
.../params/chat/CreateChatSessionParam.java | 15 +-
.../dto/params/chat/InvokeModelParam.java | 35 +-
.../himarket/dto/params/chat/McpToolMeta.java | 19 +-
.../himarket/dto/params/chat/ToolContext.java | 24 +-
.../params/consumer/CreateConsumerParam.java | 5 +-
.../consumer/CreateCredentialParam.java | 3 +-
.../consumer/CreateSubscriptionParam.java | 5 +-
.../consumer/QuerySubscriptionParam.java | 2 +-
.../developer/CreateDeveloperParam.java | 7 +-
.../CreateExternalDeveloperParam.java | 1 -
.../params/developer/DeveloperLoginParam.java | 4 +-
.../UnbindExternalIdentityParam.java | 7 +-
.../developer/UpdateDeveloperParam.java | 15 +-
.../developer/UpdateDeveloperStatusParam.java | 2 +-
.../params/gateway/ImportGatewayParam.java | 20 +-
.../dto/params/gateway/QueryAPIGParam.java | 3 +-
.../gateway/QueryAdpAIGatewayParam.java | 14 +-
.../gateway/QueryApsaraGatewayParam.java | 7 +-
.../dto/params/gateway/QueryGatewayParam.java | 1 -
.../params/gateway/UpdateGatewayParam.java | 8 +-
.../dto/params/nacos/CreateNacosParam.java | 13 +-
.../nacos/QueryNacosNamespaceParam.java | 11 +-
.../dto/params/nacos/QueryNacosParam.java | 20 +-
.../dto/params/nacos/UpdateNacosParam.java | 10 +-
.../dto/params/portal/BindDomainParam.java | 3 +-
.../dto/params/portal/CreatePortalParam.java | 3 +-
.../dto/params/portal/UpdatePortalParam.java | 3 +-
.../params/product/CreateProductParam.java | 10 +-
.../params/product/CreateProductRefParam.java | 6 +-
.../params/product/PublishProductParam.java | 3 +-
.../dto/params/product/QueryProductParam.java | 9 +-
.../QueryProductSubscriptionParam.java | 1 -
.../params/product/UnPublishProductParam.java | 3 +-
.../params/product/UpdateProductParam.java | 10 +-
.../params/sls/GenericSlsQueryRequest.java | 71 +-
.../params/sls/GenericSlsQueryResponse.java | 44 +-
.../dto/params/sls/ScenarioQueryResponse.java | 11 +-
.../params/sls/SlsCheckLogstoreRequest.java | 21 +-
.../params/sls/SlsCheckProjectRequest.java | 17 +-
.../dto/params/sls/SlsCommonQueryRequest.java | 38 +-
.../params/sls/TimeSeriesChartResponse.java | 57 +-
.../dto/result/ProductCategoryResult.java | 8 +-
.../dto/result/admin/AdminResult.java | 5 +-
.../dto/result/agent/AgentConfigResult.java | 47 +-
.../dto/result/agent/NacosAgentResult.java | 24 +-
.../dto/result/chat/ChatAnswerMessage.java | 46 +-
.../himarket/dto/result/chat/ChatResult.java | 4 +-
.../dto/result/chat/ChatSessionResult.java | 3 +-
.../result/chat/ConversationResult_V1.java | 5 +-
.../dto/result/chat/LlmChatRequest.java | 51 +-
.../dto/result/chat/LlmInvokeResult.java | 8 +-
.../result/chat/OpenAIChatStreamResponse.java | 88 +-
.../chat/ProductConversationResult.java | 8 +-
.../dto/result/common/AuthResult.java | 7 +-
.../dto/result/common/DomainResult.java | 5 +-
.../dto/result/common/PageResult.java | 17 +-
.../consumer/ConsumerCredentialResult.java | 3 +-
.../dto/result/consumer/ConsumerResult.java | 3 +-
.../result/consumer/CredentialContext.java | 12 +-
.../dto/result/developer/DeveloperResult.java | 3 +-
.../gateway/AdpGatewayInstanceResult.java | 7 +-
.../dto/result/gateway/GatewayResult.java | 12 +-
.../result/higress/HigressRouteResult.java | 37 +-
.../dto/result/httpapi/APIConfigResult.java | 11 +-
.../dto/result/httpapi/BackendResult.java | 16 +-
.../dto/result/httpapi/HttpRouteResult.java | 203 +++--
.../himarket/dto/result/idp/IdpResult.java | 9 +-
.../himarket/dto/result/idp/IdpState.java | 17 +-
.../dto/result/idp/IdpTokenResult.java | 25 +-
.../dto/result/mcp/APIGMCPServerResult.java | 3 +-
.../dto/result/mcp/AdpMCPServerResult.java | 54 +-
.../result/mcp/AdpMcpServerListResult.java | 11 +-
.../result/mcp/GatewayMCPServerResult.java | 11 +-
.../result/mcp/HigressMCPServerResult.java | 5 +-
.../dto/result/mcp/MCPConfigResult.java | 48 +-
.../dto/result/mcp/MCPServerResult.java | 12 +-
.../dto/result/mcp/McpToolListResult.java | 3 +-
.../dto/result/mcp/NacosMCPServerResult.java | 5 +-
.../result/model/GatewayModelAPIResult.java | 10 +-
.../dto/result/model/ModelConfigResult.java | 5 +-
.../dto/result/nacos/MseNacosResult.java | 4 +-
.../result/nacos/NacosNamespaceResult.java | 7 +-
.../dto/result/nacos/NacosResult.java | 7 +-
.../dto/result/portal/PortalResult.java | 11 +-
.../product/ProductPublicationResult.java | 6 +-
.../dto/result/product/ProductRefResult.java | 2 +-
.../dto/result/product/ProductResult.java | 5 +-
.../result/product/SubscriptionResult.java | 8 +-
.../search/AvailableSearchEngineResult.java | 17 +-
.../service/AdministratorService.java | 8 +-
.../service/ChatAttachmentService.java | 3 +-
.../alibaba/himarket/service/ChatService.java | 2 +-
.../himarket/service/ChatSessionService.java | 15 +-
.../himarket/service/ConsumerService.java | 21 +-
.../himarket/service/DeveloperService.java | 7 +-
.../himarket/service/GatewayService.java | 16 +-
.../alibaba/himarket/service/IdpService.java | 2 -
.../alibaba/himarket/service/LlmService.java | 10 +-
.../himarket/service/NacosService.java | 38 +-
.../himarket/service/OAuth2Service.java | 2 -
.../alibaba/himarket/service/OidcService.java | 6 +-
.../himarket/service/PortalService.java | 12 +-
.../service/ProductCategoryService.java | 12 +-
.../himarket/service/ProductService.java | 8 +-
.../service/SearchRewriteService.java | 5 +-
.../himarket/service/SlsLogService.java | 11 +-
.../service/TalkSearchAbilityService.java | 12 +-
.../himarket/service/TalkSearchService.java | 3 +-
.../service/gateway/AIGWOperator.java | 539 +++++++-----
.../service/gateway/APIGOperator.java | 615 +++++++------
.../service/gateway/AdpAIGatewayOperator.java | 487 +++++++----
.../gateway/ApsaraGatewayOperator.java | 462 +++++-----
.../service/gateway/GatewayOperator.java | 82 +-
.../service/gateway/HigressOperator.java | 390 +++++----
.../service/gateway/client/APIGClient.java | 20 +-
.../gateway/client/AdpAIGatewayClient.java | 58 +-
.../gateway/client/ApsaraGatewayClient.java | 30 +-
.../client/ApsaraStackGatewayClient.java | 123 ++-
.../service/gateway/client/GatewayClient.java | 4 +-
.../service/gateway/client/HigressClient.java | 138 +--
.../gateway/client/PopGatewayClient.java | 24 +-
.../gateway/factory/HTTPClientFactory.java | 5 +-
.../gateway/factory/SlsClientFactory.java | 32 +-
.../gateway/factory/SlsPresetSqlRegistry.java | 547 ++++++++----
.../service/impl/AbstractLlmService.java | 825 ++++++++++--------
.../impl/AdministratorServiceImpl.java | 40 +-
.../impl/ChatAttachmentServiceImpl.java | 1 -
.../service/impl/ChatServiceImpl.java | 194 ++--
.../service/impl/ChatSessionServiceImpl.java | 343 ++++----
.../service/impl/ConsumerServiceImpl.java | 452 ++++++----
.../service/impl/DeveloperServiceImpl.java | 151 ++--
.../service/impl/GatewayServiceImpl.java | 126 ++-
.../himarket/service/impl/IdpServiceImpl.java | 169 ++--
.../service/impl/McpClientFactory.java | 128 +--
.../service/impl/McpClientWrapper.java | 5 +-
.../service/impl/NacosServiceImpl.java | 336 ++++---
.../service/impl/OAuth2ServiceImpl.java | 102 ++-
.../service/impl/OidcServiceImpl.java | 183 ++--
.../service/impl/OpenAILlmService.java | 127 +--
.../service/impl/PortalServiceImpl.java | 196 +++--
.../impl/ProductCategoryServiceImpl.java | 182 ++--
.../service/impl/ProductServiceImpl.java | 430 +++++----
.../impl/SearchRewirteServiceImpl.java | 188 ++--
.../service/impl/SlsLogServiceImpl.java | 463 +++++-----
.../TalkSearchAbilityServiceGoogleImpl.java | 270 +++---
.../service/impl/TalkSearchFactory.java | 18 +-
.../service/impl/TalkSearchServiceImpl.java | 128 +--
pom.xml | 38 +-
330 files changed, 6826 insertions(+), 6420 deletions(-)
delete mode 100644 checkstyle.xml
diff --git a/.github/PR_GUIDE.md b/.github/PR_GUIDE.md
index d1bfa4e37..23db21609 100644
--- a/.github/PR_GUIDE.md
+++ b/.github/PR_GUIDE.md
@@ -2,7 +2,7 @@
This document describes the PR submission guidelines for the Himarket project.
-## 🎯 PR Title Format
+## PR Title Format
### Required Format
@@ -62,7 +62,7 @@ type(scope): brief description
---
-## 📝 PR Content Format
+## PR Content Format
### Required Sections
@@ -168,7 +168,7 @@ The checklist helps ensure code quality and completeness.
---
-## 🔍 Automated Checks
+## Automated Checks
Every PR will automatically trigger two checks:
@@ -202,7 +202,7 @@ Every PR will automatically trigger two checks:
---
-## 📚 Complete Examples
+## Complete Examples
### Example 1: Feature PR ✅
@@ -310,7 +310,7 @@ None
---
-## ❌ Common Mistakes
+## Common Mistakes
### Mistake 1: Wrong Title Format
@@ -441,7 +441,7 @@ Add new feature
---
-## ❓ FAQ
+## FAQ
### Q: Do I need to fill in all sections?
diff --git a/.github/PR_GUIDE_zh.md b/.github/PR_GUIDE_zh.md
index edb209b74..592df5478 100644
--- a/.github/PR_GUIDE_zh.md
+++ b/.github/PR_GUIDE_zh.md
@@ -2,7 +2,7 @@
本文档说明 Himarket 项目的 PR 提交规范。
-## 🎯 PR 标题格式
+## PR 标题格式
### 必需格式
@@ -62,7 +62,7 @@ type(scope): 简短描述
---
-## 📝 PR 内容格式
+## PR 内容格式
### 必填部分
@@ -167,7 +167,7 @@ Close #456
---
-## 🔍 自动检查
+## 自动检查
每个 PR 会自动触发两项检查:
@@ -201,7 +201,7 @@ Close #456
---
-## 📚 完整示例
+## 完整示例
### 示例 1:新功能 PR ✅
@@ -309,7 +309,7 @@ None
---
-## ❌ 常见错误
+## 常见错误
### 错误 1:标题格式错误
@@ -440,7 +440,7 @@ Fix pagination bug in product list
---
-## ❓ 常见问题
+## 常见问题
### Q: 是否需要填写所有部分?
diff --git a/.github/workflows/code-check.yml b/.github/workflows/code-check.yml
index 1069ecdcb..c9396729a 100644
--- a/.github/workflows/code-check.yml
+++ b/.github/workflows/code-check.yml
@@ -51,49 +51,6 @@ jobs:
'The check will automatically re-run after you push.'
});
- checkstyle-check:
- name: Checkstyle Check
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3
-
- - name: Set up JDK 17
- uses: actions/setup-java@v3
- with:
- java-version: '17'
- distribution: 'temurin'
- cache: maven
-
- - name: Run Checkstyle
- run: mvn checkstyle:check
- continue-on-error: true
-
- - name: Comment on PR with Checkstyle warnings
- if: failure() && github.event_name == 'pull_request'
- uses: actions/github-script@v7
- with:
- script: |
- github.rest.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: context.issue.number,
- body: '## ⚠️ Checkstyle Warnings\n\n' +
- 'Your code has some style issues that should be addressed.\n\n' +
- '**These are warnings and won\'t block your PR**, but please consider fixing them:\n\n' +
- '- Check variable and method naming conventions\n' +
- '- Review code complexity and method length\n' +
- '- Ensure proper Javadoc documentation\n' +
- '- Avoid empty catch blocks and magic numbers\n\n' +
- '**To check locally:**\n' +
- '```bash\n' +
- 'mvn checkstyle:check\n' +
- '```\n\n' +
- '**View detailed report:**\n' +
- 'Check the CI logs above for specific violations.\n\n' +
- '*Note: This check follows [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)*'
- });
-
# unit-tests:
# name: Unit Tests
# runs-on: ubuntu-latest
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 383c8f3b3..db22c4aed 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,10 +1,10 @@
# Contributing to Himarket
-Thank you for your interest in contributing to Himarket! 🎉
+Thank you for your interest in contributing to Himarket!
We welcome contributions of all kinds: bug fixes, new features, documentation improvements, and more.
-## 🚀 Getting Started
+## Getting Started
### Fork and Clone the Repository
@@ -26,7 +26,7 @@ git remote add upstream https://github.com/higress-group/himarket.git
---
-## 🔄 Development Workflow
+## Development Workflow
### 1. Sync and Create a Branch
@@ -106,7 +106,7 @@ git push origin feat/your-feature-name
---
-## 📝 Pull Request Guidelines
+## Pull Request Guidelines
### PR Title
@@ -173,11 +173,8 @@ Every PR will automatically trigger the following checks:
1. **PR Check** - Validates your PR title and description format (Required ✅)
2. **Code Format Check** - Runs `mvn spotless:check` to verify code formatting (Required ✅)
-3. **Checkstyle Check** - Checks code style and best practices (Warning ⚠️)
-**Required checks** must pass before your PR can be merged. **Warning checks** won't block your PR but provide suggestions for improvement.
-
-If a check fails, the bot will comment with instructions on how to fix it.
+**All checks must pass** before your PR can be merged. If a check fails, the bot will comment with instructions on how to fix it.
**For more detailed PR guidelines, please see:**
- [PR_GUIDE.md](.github/PR_GUIDE.md) - English version
@@ -185,7 +182,7 @@ If a check fails, the bot will comment with instructions on how to fix it.
---
-## 💻 Coding Standards
+## Coding Standards
### Java Code
@@ -194,17 +191,12 @@ If a check fails, the bot will comment with instructions on how to fix it.
- This ensures consistent code style across the project
- **CI will fail** if code is not formatted
-**Code Style (Recommended):**
-- We use Checkstyle to check for best practices and style issues
-- Run `mvn checkstyle:check` locally to see suggestions
-- **CI will warn** but not block if there are violations
-
**Best Practices:**
-- Maximum 120 characters per line
- Use clear, descriptive names for variables, methods, and classes
- Add Javadoc comments for public APIs
- Avoid magic numbers and empty catch blocks
- Keep methods focused and reasonably sized
+- Remove unused imports
### TypeScript/React Code
diff --git a/CONTRIBUTING_zh.md b/CONTRIBUTING_zh.md
index d38352666..6a3740afb 100644
--- a/CONTRIBUTING_zh.md
+++ b/CONTRIBUTING_zh.md
@@ -1,10 +1,10 @@
# Himarket 贡献指南
-感谢你对 Himarket 项目的关注!🎉
+感谢你对 Himarket 项目的关注!
我们欢迎各种形式的贡献:Bug 修复、新功能、文档改进等等。
-## 🚀 快速开始
+## 快速开始
### Fork 并 Clone 仓库
@@ -26,7 +26,7 @@ git remote add upstream https://github.com/higress-group/himarket.git
---
-## 🔄 开发流程
+## 开发流程
### 1. 同步并创建分支
@@ -106,7 +106,7 @@ git push origin feat/your-feature-name
---
-## 📝 Pull Request 规范
+## Pull Request 规范
### PR 标题
@@ -173,11 +173,8 @@ Close #456
1. **PR Check** - 验证 PR 标题和描述格式(必需 ✅)
2. **Code Format Check** - 运行 `mvn spotless:check` 验证代码格式(必需 ✅)
-3. **Checkstyle Check** - 检查代码风格和最佳实践(警告 ⚠️)
-**必需检查**必须通过才能合并 PR。**警告检查**不会阻止 PR 合并,但会提供改进建议。
-
-如果检查失败,机器人会评论并说明如何修复。
+**所有检查必须通过**才能合并 PR。如果检查失败,机器人会评论并说明如何修复。
**更详细的 PR 指南,请参考:**
- [PR_GUIDE.md](.github/PR_GUIDE.md) - English version
@@ -185,7 +182,7 @@ Close #456
---
-## 💻 代码规范
+## 代码规范
### Java 代码
@@ -194,17 +191,12 @@ Close #456
- 确保项目代码风格一致
- **CI 检查不通过**则无法合并
-**代码风格(建议):**
-- 我们使用 Checkstyle 检查最佳实践和风格问题
-- 本地运行 `mvn checkstyle:check` 查看建议
-- **CI 会警告**但不会阻止合并
-
**最佳实践:**
-- 每行最多 120 个字符
- 为变量、方法和类使用清晰、描述性的名称
- 为公共 API 添加 Javadoc 注释
- 避免魔法数字和空 catch 块
- 保持方法专注且长度合理
+- 移除未使用的 import
### TypeScript/React 代码
diff --git a/checkstyle.xml b/checkstyle.xml
deleted file mode 100644
index 97a7a9b78..000000000
--- a/checkstyle.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java
index b26bf7fe4..714646594 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/AsyncConfig.java
@@ -19,14 +19,13 @@
package com.alibaba.himarket.config;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ThreadPoolExecutor;
-
@Configuration
@EnableAsync
public class AsyncConfig {
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java
index 2cd99faba..8877a5c37 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FilterConfig.java
@@ -38,7 +38,8 @@ public class FilterConfig {
@Bean
public FilterRegistrationBean portalResolvingFilter() {
- FilterRegistrationBean registrationBean = new FilterRegistrationBean<>();
+ FilterRegistrationBean registrationBean =
+ new FilterRegistrationBean<>();
PortalResolvingFilter filter = new PortalResolvingFilter(portalService, contextHolder);
registrationBean.setFilter(filter);
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java
index 6105031ee..430c330ee 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/FlywayConfig.java
@@ -1,5 +1,6 @@
package com.alibaba.himarket.config;
+import javax.sql.DataSource;
import lombok.extern.slf4j.Slf4j;
import org.flywaydb.core.Flyway;
import org.flywaydb.core.api.FlywayException;
@@ -8,8 +9,6 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
-import javax.sql.DataSource;
-
/**
* Auto-repair checksum errors. Set app.flyway.auto-repair=false to disable.
*
@@ -25,15 +24,16 @@ public class FlywayConfig {
@Bean
@Primary
public Flyway flyway(DataSource dataSource) {
- Flyway flyway = Flyway.configure()
- .dataSource(dataSource)
- .locations("classpath:db/migration")
- .baselineOnMigrate(true)
- .validateOnMigrate(true)
- .outOfOrder(false)
- .baselineVersion("1")
- .baselineDescription("Initial baseline")
- .load();
+ Flyway flyway =
+ Flyway.configure()
+ .dataSource(dataSource)
+ .locations("classpath:db/migration")
+ .baselineOnMigrate(true)
+ .validateOnMigrate(true)
+ .outOfOrder(false)
+ .baselineVersion("1")
+ .baselineDescription("Initial baseline")
+ .load();
log.info("Executing flyway migrate...");
try {
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java
index 23316a6c6..0019309d2 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/RestTemplateConfig.java
@@ -19,7 +19,7 @@
package com.alibaba.himarket.config;
-import lombok.RequiredArgsConstructor;
+import java.util.concurrent.TimeUnit;
import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
import org.springframework.context.annotation.Bean;
@@ -27,8 +27,6 @@
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
-import java.util.concurrent.TimeUnit;
-
@Configuration
public class RestTemplateConfig {
@@ -47,4 +45,4 @@ public OkHttpClient okHttpClient() {
.connectionPool(new ConnectionPool(10, 5, TimeUnit.MINUTES))
.build();
}
-}
\ No newline at end of file
+}
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java
index b03670d39..b4eb37ed7 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java
@@ -19,11 +19,15 @@
package com.alibaba.himarket.config;
+import com.alibaba.himarket.core.security.DeveloperAuthenticationProvider;
import com.alibaba.himarket.core.security.JwtAuthenticationFilter;
+import jakarta.servlet.DispatcherType;
+import java.util.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
@@ -32,20 +36,11 @@
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-import java.util.*;
-
-import com.alibaba.himarket.core.security.DeveloperAuthenticationProvider;
-import jakarta.servlet.DispatcherType;
-import org.springframework.http.HttpMethod;
-
-/**
- * Spring Security安全配置,集成JWT认证与接口权限控制,支持管理员和开发者多用户体系
- */
+/** Spring Security安全配置,集成JWT认证与接口权限控制,支持管理员和开发者多用户体系 */
@Configuration
@RequiredArgsConstructor
@Slf4j
@@ -56,59 +51,63 @@ public class SecurityConfig {
// Auth相关
private static final String[] AUTH_WHITELIST = {
- "/admins/init",
- "/admins/need-init",
- "/admins/login",
- "/developers",
- "/developers/login",
- "/developers/authorize",
- "/developers/callback",
- "/developers/providers",
- "/developers/oidc/authorize",
- "/developers/oidc/callback",
- "/developers/oidc/providers",
- "/developers/oauth2/token"
+ "/admins/init",
+ "/admins/need-init",
+ "/admins/login",
+ "/developers",
+ "/developers/login",
+ "/developers/authorize",
+ "/developers/callback",
+ "/developers/providers",
+ "/developers/oidc/authorize",
+ "/developers/oidc/callback",
+ "/developers/oidc/providers",
+ "/developers/oauth2/token"
};
// Swagger API文档相关
private static final String[] SWAGGER_WHITELIST = {
- "/portal/swagger-ui.html",
- "/portal/swagger-ui/**",
- "/portal/v3/api-docs/**"
+ "/portal/swagger-ui.html", "/portal/swagger-ui/**", "/portal/v3/api-docs/**"
};
// 系统路径白名单
- private static final String[] SYSTEM_WHITELIST = {
- "/favicon.ico",
- "/error"
- };
+ private static final String[] SYSTEM_WHITELIST = {"/favicon.ico", "/error"};
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
- http
- .cors(Customizer.withDefaults())
+ http.cors(Customizer.withDefaults())
.csrf(csrf -> csrf.disable())
- .sessionManagement(session -> session
- .sessionCreationPolicy(SessionCreationPolicy.STATELESS))
- .authorizeHttpRequests(auth -> auth
- // 异步分发不进行权限检查(解决SSE等流式响应完成后的AccessDenied问题)
- .dispatcherTypeMatchers(DispatcherType.ASYNC).permitAll()
- // OPTIONS请求放行
- .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
- // 认证相关接口放行
- .requestMatchers(AUTH_WHITELIST).permitAll()
- // Swagger相关接口放行
- .requestMatchers(SWAGGER_WHITELIST).permitAll()
- // 系统路径放行
- .requestMatchers(SYSTEM_WHITELIST).permitAll()
- .anyRequest().authenticated())
- .addFilterBefore(new JwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
+ .sessionManagement(
+ session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+ .authorizeHttpRequests(
+ auth ->
+ auth
+ // 异步分发不进行权限检查(解决SSE等流式响应完成后的AccessDenied问题)
+ .dispatcherTypeMatchers(DispatcherType.ASYNC)
+ .permitAll()
+ // OPTIONS请求放行
+ .requestMatchers(HttpMethod.OPTIONS, "/**")
+ .permitAll()
+ // 认证相关接口放行
+ .requestMatchers(AUTH_WHITELIST)
+ .permitAll()
+ // Swagger相关接口放行
+ .requestMatchers(SWAGGER_WHITELIST)
+ .permitAll()
+ // 系统路径放行
+ .requestMatchers(SYSTEM_WHITELIST)
+ .permitAll()
+ .anyRequest()
+ .authenticated())
+ .addFilterBefore(
+ new JwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
.authenticationProvider(developerAuthenticationProvider);
return http.build();
}
@Bean
- public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
+ public AuthenticationManager authenticationManager(
+ AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
@@ -125,4 +124,4 @@ public CorsConfigurationSource corsConfigurationSource() {
source.registerCorsConfiguration("/**", corsConfig);
return source;
}
-}
\ No newline at end of file
+}
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java
index fb88b88e2..b07e3a7e1 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SwaggerConfig.java
@@ -29,9 +29,6 @@ public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
- .info(new Info()
- .title("开放平台 API")
- .version("1.0.0")
- .description("API 文档描述"));
+ .info(new Info().title("开放平台 API").version("1.0.0").description("API 文档描述"));
}
}
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java
index de76d1862..614b01cba 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/config/WebMvcConfig.java
@@ -19,6 +19,7 @@
package com.alibaba.himarket.config;
+import java.util.List;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
@@ -31,27 +32,28 @@
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import java.util.List;
-
@Configuration
public class WebMvcConfig {
@Bean
public PageableHandlerMethodArgumentResolver pageableResolver() {
- PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
+ PageableHandlerMethodArgumentResolver resolver =
+ new PageableHandlerMethodArgumentResolver();
// 默认分页和排序
- resolver.setFallbackPageable(PageRequest.of(0, 100,
- Sort.by(Sort.Direction.DESC, "createAt")));
+ resolver.setFallbackPageable(
+ PageRequest.of(0, 100, Sort.by(Sort.Direction.DESC, "createAt")));
// 页码从1开始
resolver.setOneIndexedParameters(true);
return resolver;
}
@Bean
- public WebMvcConfigurer webMvcConfigurer(@Qualifier("taskExecutor") AsyncTaskExecutor taskExecutor) {
+ public WebMvcConfigurer webMvcConfigurer(
+ @Qualifier("taskExecutor") AsyncTaskExecutor taskExecutor) {
return new WebMvcConfigurer() {
@Override
- public void addArgumentResolvers(@NotNull List resolvers) {
+ public void addArgumentResolvers(
+ @NotNull List resolvers) {
resolvers.add(pageableResolver());
}
diff --git a/himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java b/himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java
index 41695b6a1..591ccfa74 100644
--- a/himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java
+++ b/himarket-bootstrap/src/main/java/com/alibaba/himarket/filter/PortalResolvingFilter.java
@@ -22,17 +22,16 @@
import cn.hutool.core.util.StrUtil;
import com.alibaba.himarket.core.security.ContextHolder;
import com.alibaba.himarket.service.PortalService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
-import org.springframework.web.filter.OncePerRequestFilter;
-
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URI;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.web.filter.OncePerRequestFilter;
@Slf4j
@RequiredArgsConstructor
@@ -43,7 +42,10 @@ public class PortalResolvingFilter extends OncePerRequestFilter {
private final ContextHolder contextHolder;
@Override
- protected void doFilterInternal(HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull FilterChain chain)
+ protected void doFilterInternal(
+ HttpServletRequest request,
+ @NotNull HttpServletResponse response,
+ @NotNull FilterChain chain)
throws ServletException, IOException {
try {
String origin = request.getHeader("Origin");
@@ -61,8 +63,14 @@ protected void doFilterInternal(HttpServletRequest request, @NotNull HttpServlet
}
}
- log.debug("域名解析调试 - Origin: {}, Host: {}, X-Forwarded-Host: {}, ServerName: {}, X-Real-IP: {}, X-Forwarded-For: {}",
- origin, host, xForwardedHost, request.getServerName(), xRealIp, xForwardedFor);
+ log.debug(
+ "域名解析调试 - Origin: {}, Host: {}, X-Forwarded-Host: {}, ServerName: {}, X-Real-IP: {}, X-Forwarded-For: {}",
+ origin,
+ host,
+ xForwardedHost,
+ request.getServerName(),
+ xRealIp,
+ xForwardedFor);
if (domain == null) {
// 优先使用Host头,如果没有则使用ServerName
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java
index e76ab18a6..c10deb3b2 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.gateway.APIGConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java
index 6f96aa895..d1cd4616a 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/APIGRefConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.product.APIGRefConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java
index f9f053f9c..c1cc2af92 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/AdpAIGatewayConfigConverter.java
@@ -17,11 +17,9 @@
* under the License.
*/
-
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java
index 2fd5f19ee..cb3f33b53 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApiKeyConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.consumer.ApiKeyConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java
index 80f9c3078..e76904bb6 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ApsaraGatewayConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java
index b7861d581..c02bfb305 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ChatUsageConverter.java
@@ -1,14 +1,13 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.chat.ChatUsage;
-
import jakarta.persistence.Converter;
/**
* @author zh
*/
@Converter(autoApply = true)
-public class ChatUsageConverter extends JsonConverter{
+public class ChatUsageConverter extends JsonConverter {
protected ChatUsageConverter() {
super(ChatUsage.class);
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java
index 089faa990..a3c97c6c9 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ConsumerAuthConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java
index e316e57e5..cfe874841 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/GatewayConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.gateway.GatewayConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java
index 3b2330cc5..798dff499 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.gateway.HigressConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java
index 0bf635cc5..6e7e87689 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HigressRefConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.product.HigressRefConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java
index 7058a98cb..0fa2f2333 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/HmacConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.consumer.HmacConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java
index 0344e8de8..bbbd46207 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/IconConverter.java
@@ -1,7 +1,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.product.Icon;
-
import jakarta.persistence.Converter;
/**
@@ -14,4 +13,3 @@ protected IconConverter() {
super(Icon.class);
}
}
-
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java
index 5aeba7bb5..049a5228c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JsonConverter.java
@@ -25,12 +25,11 @@
import cn.hutool.json.JSONUtil;
import com.alibaba.himarket.support.common.Encrypted;
import com.alibaba.himarket.support.common.Encryptor;
-import lombok.extern.slf4j.Slf4j;
-
import jakarta.persistence.AttributeConverter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
+import lombok.extern.slf4j.Slf4j;
@Slf4j
public abstract class JsonConverter implements AttributeConverter {
@@ -71,10 +70,11 @@ public T convertToEntityAttribute(String dbData) {
@SuppressWarnings("unchecked")
private T cloneAndEncrypt(T original) {
// Clone避免JPA更新数据
-// T cloned = JSONUtil.toBean(JSONUtil.toJsonStr(original), type);
- T cloned = original instanceof List ?
- (T) new ArrayList<>((List>) original) :
- JSONUtil.toBean(JSONUtil.toJsonStr(original), type);
+ // T cloned = JSONUtil.toBean(JSONUtil.toJsonStr(original), type);
+ T cloned =
+ original instanceof List
+ ? (T) new ArrayList<>((List>) original)
+ : JSONUtil.toBean(JSONUtil.toJsonStr(original), type);
handleEncryption(cloned, true);
return cloned;
}
@@ -88,26 +88,29 @@ private void handleEncryption(Object obj, boolean isEncrypt) {
return;
}
- BeanUtil.descForEach(obj.getClass(), pd -> {
- Field field = pd.getField();
- if (field == null) {
- return;
- }
-
- Object value = ReflectUtil.getFieldValue(obj, field);
- if (value == null) {
- return;
- }
-
- // 处理需要加密/解密的字段
- if (field.isAnnotationPresent(Encrypted.class) && value instanceof String) {
- String result = isEncrypt ?
- Encryptor.encrypt((String) value) :
- Encryptor.decrypt((String) value);
- ReflectUtil.setFieldValue(obj, field, result);
- } else if (!ClassUtil.isSimpleValueType(value.getClass())) {
- handleEncryption(value, isEncrypt);
- }
- });
+ BeanUtil.descForEach(
+ obj.getClass(),
+ pd -> {
+ Field field = pd.getField();
+ if (field == null) {
+ return;
+ }
+
+ Object value = ReflectUtil.getFieldValue(obj, field);
+ if (value == null) {
+ return;
+ }
+
+ // 处理需要加密/解密的字段
+ if (field.isAnnotationPresent(Encrypted.class) && value instanceof String) {
+ String result =
+ isEncrypt
+ ? Encryptor.encrypt((String) value)
+ : Encryptor.decrypt((String) value);
+ ReflectUtil.setFieldValue(obj, field, result);
+ } else if (!ClassUtil.isSimpleValueType(value.getClass())) {
+ handleEncryption(value, isEncrypt);
+ }
+ });
}
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java
index adf0f5ef2..061ce4d51 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/JwtConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.consumer.JwtConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java
index ed15388d2..90845a9ff 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/NacosRefConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.product.NacosRefConfig;
-
import jakarta.persistence.Converter;
@Converter
@@ -29,4 +28,4 @@ public class NacosRefConfigConverter extends JsonConverter {
public NacosRefConfigConverter() {
super(NacosRefConfig.class);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java
index 5de3b28ac..26d9a67ee 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalSettingConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.portal.PortalSettingConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java
index 07094b8f2..2bd7da359 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/PortalUiConfigConverter.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.converter;
import com.alibaba.himarket.support.portal.PortalUiConfig;
-
import jakarta.persistence.Converter;
@Converter(autoApply = true)
@@ -29,4 +28,4 @@ public class PortalUiConfigConverter extends JsonConverter {
public PortalUiConfigConverter() {
super(PortalUiConfig.class);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java
index e9382b2d6..6199c6be4 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/converter/ProductFeatureConverter.java
@@ -29,4 +29,3 @@ protected ProductFeatureConverter() {
super(ProductFeature.class);
}
}
-
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java
index f7b6f6325..ef75b058b 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Administrator.java
@@ -20,22 +20,26 @@
package com.alibaba.himarket.entity;
import jakarta.persistence.*;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;
-
+import lombok.Data;
+import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
-@Table(name = "administrator", uniqueConstraints = {
- @UniqueConstraint(columnNames = {"adminId"}, name = "uk_admin_id"),
- @UniqueConstraint(columnNames = {"username"}, name = "uk_username")
-})
+@Table(
+ name = "administrator",
+ uniqueConstraints = {
+ @UniqueConstraint(
+ columnNames = {"adminId"},
+ name = "uk_admin_id"),
+ @UniqueConstraint(
+ columnNames = {"username"},
+ name = "uk_username")
+ })
public class Administrator extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -49,5 +53,4 @@ public class Administrator extends BaseEntity {
@Column(nullable = false, length = 255)
private String passwordHash;
-
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java
index b96f26b10..208cdc222 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/BaseEntity.java
@@ -19,15 +19,14 @@
package com.alibaba.himarket.entity;
+import jakarta.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
-import jakarta.persistence.*;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@Data
@@ -40,4 +39,4 @@ public class BaseEntity implements Serializable {
@LastModifiedDate
@Column(name = "updated_at", columnDefinition = "datetime(3)")
private LocalDateTime updatedAt;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java
index adfb8f642..2f154d7ac 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Chat.java
@@ -5,16 +5,19 @@
import com.alibaba.himarket.support.chat.ChatUsage;
import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
import com.alibaba.himarket.support.enums.ChatStatus;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
import jakarta.persistence.*;
import java.util.List;
+import lombok.Data;
+import lombok.experimental.Accessors;
@Entity
-@Table(name = "chat", uniqueConstraints = {
- @UniqueConstraint(columnNames = {"chat_id"}, name = "uk_chat_id")
-})
+@Table(
+ name = "chat",
+ uniqueConstraints = {
+ @UniqueConstraint(
+ columnNames = {"chat_id"},
+ name = "uk_chat_id")
+ })
@Data
@Accessors(chain = true)
public class Chat extends BaseEntity {
@@ -23,83 +26,57 @@ public class Chat extends BaseEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- /**
- * Chat ID
- */
+ /** Chat ID */
@Column(name = "chat_id", nullable = false, unique = true, length = 64)
private String chatId;
- /**
- * Session ID
- */
+ /** Session ID */
@Column(name = "session_id", nullable = false, length = 64)
private String sessionId;
- /**
- * User ID
- */
+ /** User ID */
@Column(name = "user_id", nullable = false, length = 64)
private String userId;
- /**
- * Conversation ID (Chat group ID)
- */
+ /** Conversation ID (Chat group ID) */
@Column(name = "conversation_id", nullable = false, length = 64)
private String conversationId;
- /**
- * Chat status: INIT/PROCESSING/SUCCESS/FAILED
- */
+ /** Chat status: INIT/PROCESSING/SUCCESS/FAILED */
@Column(name = "status", length = 32)
@Enumerated(EnumType.STRING)
private ChatStatus status = ChatStatus.INIT;
- /**
- * Product ID
- */
+ /** Product ID */
@Column(name = "product_id", length = 64)
private String productId;
- /**
- * Question ID
- */
+ /** Question ID */
@Column(name = "question_id", length = 64)
private String questionId;
- /**
- * Question
- */
+ /** Question */
@Column(name = "question", columnDefinition = "text")
private String question;
- /**
- * Multi-modal content
- */
+ /** Multi-modal content */
@Column(name = "attachments", columnDefinition = "json")
@Convert(converter = ListJsonConverter.class)
private List attachments;
- /**
- * Answer ID
- */
+ /** Answer ID */
@Column(name = "answer_id", length = 64)
private String answerId;
- /**
- * Answer from product
- */
+ /** Answer from product */
@Column(name = "answer", columnDefinition = "longtext")
private String answer;
- /**
- * The index of the question submitted
- */
+ /** The index of the question submitted */
@Column(name = "sequence", columnDefinition = "int DEFAULT 0")
private Integer sequence;
- /**
- * Usage
- */
+ /** Usage */
@Column(name = "chat_usage", columnDefinition = "json")
@Convert(converter = ChatUsageConverter.class)
private ChatUsage chatUsage;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java
index 5e8bee618..92e863f48 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatAttachment.java
@@ -1,16 +1,19 @@
package com.alibaba.himarket.entity;
import com.alibaba.himarket.support.enums.ChatAttachmentType;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.annotations.ColumnDefault;
-import jakarta.persistence.*;
-
@Entity
-@Table(name = "chat_attachment", uniqueConstraints = {
- @UniqueConstraint(columnNames = {"attachment_id"}, name = "uk_attachment_id")
-})
+@Table(
+ name = "chat_attachment",
+ uniqueConstraints = {
+ @UniqueConstraint(
+ columnNames = {"attachment_id"},
+ name = "uk_attachment_id")
+ })
@Data
@Accessors(chain = true)
public class ChatAttachment {
@@ -19,47 +22,33 @@ public class ChatAttachment {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- /**
- * Attachment ID
- */
+ /** Attachment ID */
@Column(name = "attachment_id", nullable = false, unique = true, length = 64)
private String attachmentId;
- /**
- * User ID
- */
+ /** User ID */
@Column(name = "user_id", nullable = false, length = 64)
private String userId;
- /**
- * Attachment name
- */
+ /** Attachment name */
@Column(name = "name", length = 255)
private String name;
- /**
- * Attachment type, IMAGE/VIDEO/DOCUMENT
- */
+ /** Attachment type, IMAGE/VIDEO/DOCUMENT */
@Column(name = "type", nullable = false, length = 32)
@Enumerated(EnumType.STRING)
private ChatAttachmentType type;
- /**
- * MIME type
- */
+ /** MIME type */
@Column(name = "mime_type", length = 64)
private String mimeType;
- /**
- * Size
- */
+ /** Size */
@Column(name = "size", columnDefinition = "bigint")
@ColumnDefault("0")
private Long size;
- /**
- * Raw data
- */
+ /** Raw data */
@Column(name = "data", columnDefinition = "mediumblob")
private byte[] data;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java
index fc526c454..42d6bc3bc 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ChatSession.java
@@ -1,16 +1,19 @@
package com.alibaba.himarket.entity;
import com.alibaba.himarket.converter.ListJsonConverter;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
import jakarta.persistence.*;
import java.util.List;
+import lombok.Data;
+import lombok.experimental.Accessors;
@Entity
-@Table(name = "chat_session", uniqueConstraints = {
- @UniqueConstraint(columnNames = {"session_id"}, name = "uk_session_id")
-})
+@Table(
+ name = "chat_session",
+ uniqueConstraints = {
+ @UniqueConstraint(
+ columnNames = {"session_id"},
+ name = "uk_session_id")
+ })
@Data
@Accessors(chain = true)
public class ChatSession extends BaseEntity {
@@ -19,35 +22,27 @@ public class ChatSession extends BaseEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
- /**
- * Session ID
- */
+ /** Session ID */
@Column(name = "session_id", nullable = false, unique = true, length = 64)
private String sessionId;
- /**
- * User ID
- */
+ /** User ID */
@Column(name = "user_id", nullable = false, length = 64)
private String userId;
- /**
- * Session name
- */
+ /** Session name */
@Column(name = "name", length = 255)
private String name;
- /**
- * Product IDs, support multiple products
- */
+ /** Product IDs, support multiple products */
@Column(name = "products", length = 255)
@Convert(converter = ListJsonConverter.class)
private List products;
-// /**
-// * Session status
-// */
-// @Column(name = "status", length = 32)
-// @Enumerated(EnumType.STRING)
-// private ChatSessionStatus status = ChatSessionStatus.READY;
+ // /**
+ // * Session status
+ // */
+ // @Column(name = "status", length = 32)
+ // @Enumerated(EnumType.STRING)
+ // private ChatSessionStatus status = ChatSessionStatus.READY;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java
index 6d086396f..e22fa88c0 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Consumer.java
@@ -19,17 +19,20 @@
package com.alibaba.himarket.entity;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@Entity
-@Table(name = "consumer",
+@Table(
+ name = "consumer",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"consumer_id"}, name = "uk_consumer_id"),
- @UniqueConstraint(columnNames = {"name", "portal_id", "developer_id"},
- name = "uk_name_portal_developer")
+ @UniqueConstraint(
+ columnNames = {"consumer_id"},
+ name = "uk_consumer_id"),
+ @UniqueConstraint(
+ columnNames = {"name", "portal_id", "developer_id"},
+ name = "uk_name_portal_developer")
})
@Data
@EqualsAndHashCode(callSuper = true)
@@ -48,9 +51,9 @@ public class Consumer extends BaseEntity {
@Column(name = "description", length = 256)
private String description;
-// @Enumerated(EnumType.STRING)
-// @Column(name = "status", length = 32, nullable = false)
-// private ConsumerStatus status;
+ // @Enumerated(EnumType.STRING)
+ // @Column(name = "status", length = 32, nullable = false)
+ // private ConsumerStatus status;
@Column(name = "portal_id", length = 64, nullable = false)
private String portalId;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java
index 50a4209c3..7590eda95 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerCredential.java
@@ -25,14 +25,16 @@
import com.alibaba.himarket.support.consumer.ApiKeyConfig;
import com.alibaba.himarket.support.consumer.HmacConfig;
import com.alibaba.himarket.support.consumer.JwtConfig;
-import lombok.Data;
-
import jakarta.persistence.*;
+import lombok.Data;
@Entity
-@Table(name = "consumer_credential",
+@Table(
+ name = "consumer_credential",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"consumer_id"}, name = "uk_consumer_id")
+ @UniqueConstraint(
+ columnNames = {"consumer_id"},
+ name = "uk_consumer_id")
})
@Data
public class ConsumerCredential extends BaseEntity {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java
index 3f7a7dcef..a23ce4988 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ConsumerRef.java
@@ -22,9 +22,8 @@
import com.alibaba.himarket.converter.GatewayConfigConverter;
import com.alibaba.himarket.support.enums.GatewayType;
import com.alibaba.himarket.support.gateway.GatewayConfig;
-import lombok.*;
-
import jakarta.persistence.*;
+import lombok.*;
@Entity
@Table(name = "consumer_ref")
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java
index d9f801e97..da5ed57f1 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Developer.java
@@ -19,24 +19,29 @@
package com.alibaba.himarket.entity;
-import jakarta.persistence.*;
-
import com.alibaba.himarket.support.enums.DeveloperAuthType;
import com.alibaba.himarket.support.enums.DeveloperStatus;
-import lombok.Data;
-import lombok.NoArgsConstructor;
+import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
-@Table(name = "developer", uniqueConstraints = {
- @UniqueConstraint(columnNames = {"developerId"}, name = "uk_developer_id"),
- @UniqueConstraint(columnNames = {"portalId", "username"}, name = "uk_portal_username")
-})
+@Table(
+ name = "developer",
+ uniqueConstraints = {
+ @UniqueConstraint(
+ columnNames = {"developerId"},
+ name = "uk_developer_id"),
+ @UniqueConstraint(
+ columnNames = {"portalId", "username"},
+ name = "uk_portal_username")
+ })
public class Developer extends BaseEntity {
@Id
@@ -68,5 +73,4 @@ public class Developer extends BaseEntity {
@Column(length = 16)
@Enumerated(EnumType.STRING)
private DeveloperAuthType authType;
-
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java
index a391a3b9b..5581a78b8 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/DeveloperExternalIdentity.java
@@ -19,22 +19,25 @@
package com.alibaba.himarket.entity;
-import jakarta.persistence.*;
-
import com.alibaba.himarket.support.enums.DeveloperAuthType;
-import lombok.Data;
-import lombok.NoArgsConstructor;
+import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
-@Table(name = "developer_external_identity", uniqueConstraints = {
- @UniqueConstraint(columnNames = {"provider", "subject"}, name = "unique_provider_subject")
-})
+@Table(
+ name = "developer_external_identity",
+ uniqueConstraints = {
+ @UniqueConstraint(
+ columnNames = {"provider", "subject"},
+ name = "unique_provider_subject")
+ })
public class DeveloperExternalIdentity extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -59,4 +62,4 @@ public class DeveloperExternalIdentity extends BaseEntity {
@Column(columnDefinition = "json")
private String rawInfoJson;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java
index 2b4576994..c1dbe36c4 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Gateway.java
@@ -21,23 +21,25 @@
import com.alibaba.himarket.converter.APIGConfigConverter;
import com.alibaba.himarket.converter.AdpAIGatewayConfigConverter;
-import com.alibaba.himarket.converter.HigressConfigConverter;
import com.alibaba.himarket.converter.ApsaraGatewayConfigConverter;
+import com.alibaba.himarket.converter.HigressConfigConverter;
import com.alibaba.himarket.support.enums.GatewayType;
import com.alibaba.himarket.support.gateway.APIGConfig;
import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
-import com.alibaba.himarket.support.gateway.HigressConfig;
import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
+import com.alibaba.himarket.support.gateway.HigressConfig;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "gateway",
+@Table(
+ name = "gateway",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"gateway_id"}, name = "uk_gateway_id"),
+ @UniqueConstraint(
+ columnNames = {"gateway_id"},
+ name = "uk_gateway_id"),
})
@Data
public class Gateway extends BaseEntity {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java
index ea3035c83..182c75496 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/NacosInstance.java
@@ -19,16 +19,18 @@
package com.alibaba.himarket.entity;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "nacos_instance",
+@Table(
+ name = "nacos_instance",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"nacos_id"}, name = "uk_nacos_id"),
+ @UniqueConstraint(
+ columnNames = {"nacos_id"},
+ name = "uk_nacos_id"),
})
@Data
public class NacosInstance extends BaseEntity {
@@ -49,7 +51,6 @@ public class NacosInstance extends BaseEntity {
@Column(name = "server_url", length = 256, nullable = false)
private String serverUrl;
-
@Column(name = "username", length = 64)
private String username;
@@ -64,4 +65,4 @@ public class NacosInstance extends BaseEntity {
@Column(name = "description", length = 512)
private String description;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java
index 93117f0e7..c43b8409e 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Portal.java
@@ -23,19 +23,23 @@
import com.alibaba.himarket.converter.PortalUiConfigConverter;
import com.alibaba.himarket.support.portal.PortalSettingConfig;
import com.alibaba.himarket.support.portal.PortalUiConfig;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.List;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "portal",
+@Table(
+ name = "portal",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"portal_id"}, name = "uk_portal_id"),
- @UniqueConstraint(columnNames = {"name", "admin_id"}, name = "uk_name_admin_id")
+ @UniqueConstraint(
+ columnNames = {"portal_id"},
+ name = "uk_portal_id"),
+ @UniqueConstraint(
+ columnNames = {"name", "admin_id"},
+ name = "uk_name_admin_id")
})
@Data
public class Portal extends BaseEntity {
@@ -63,6 +67,5 @@ public class Portal extends BaseEntity {
@Convert(converter = PortalUiConfigConverter.class)
private PortalUiConfig portalUiConfig;
- @Transient
- private List portalDomains = new ArrayList<>();
-}
\ No newline at end of file
+ @Transient private List portalDomains = new ArrayList<>();
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java
index cbfd55d02..cd23a6ec5 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/PortalDomain.java
@@ -21,17 +21,18 @@
import com.alibaba.himarket.support.enums.DomainType;
import com.alibaba.himarket.support.enums.ProtocolType;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@Entity
-@Table(name = "portal_domain",
+@Table(
+ name = "portal_domain",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"domain"}, name = "uk_domain")
- }
-)
+ @UniqueConstraint(
+ columnNames = {"domain"},
+ name = "uk_domain")
+ })
@Data
@EqualsAndHashCode(callSuper = true)
public class PortalDomain extends BaseEntity {
@@ -52,4 +53,4 @@ public class PortalDomain extends BaseEntity {
@Column(name = "protocol", length = 32, nullable = false)
@Enumerated(EnumType.STRING)
private ProtocolType protocol = ProtocolType.HTTP;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java
index 251455b50..bb629e183 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/Product.java
@@ -25,17 +25,21 @@
import com.alibaba.himarket.support.enums.ProductType;
import com.alibaba.himarket.support.product.Icon;
import com.alibaba.himarket.support.product.ProductFeature;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "product",
+@Table(
+ name = "product",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"product_id"}, name = "uk_product_id"),
- @UniqueConstraint(columnNames = {"name"}, name = "uk_name")
+ @UniqueConstraint(
+ columnNames = {"product_id"},
+ name = "uk_product_id"),
+ @UniqueConstraint(
+ columnNames = {"name"},
+ name = "uk_name")
})
@Data
public class Product extends BaseEntity {
@@ -79,4 +83,4 @@ public class Product extends BaseEntity {
@Column(name = "feature", columnDefinition = "json")
@Convert(converter = ProductFeatureConverter.class)
private ProductFeature feature;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java
index 7b681d0c6..d22a1933c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategory.java
@@ -19,18 +19,20 @@
package com.alibaba.himarket.entity;
-import jakarta.persistence.*;
-
import com.alibaba.himarket.converter.IconConverter;
import com.alibaba.himarket.support.product.Icon;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "product_category",
+@Table(
+ name = "product_category",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"category_id"}, name = "uk_category_id")
+ @UniqueConstraint(
+ columnNames = {"category_id"},
+ name = "uk_category_id")
})
@Data
public class ProductCategory extends BaseEntity {
@@ -53,4 +55,4 @@ public class ProductCategory extends BaseEntity {
@Column(name = "icon", columnDefinition = "json")
@Convert(converter = IconConverter.class)
private Icon icon;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java
index f3f52461f..e8d714687 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductCategoryRelation.java
@@ -19,16 +19,18 @@
package com.alibaba.himarket.entity;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "product_category_relation",
+@Table(
+ name = "product_category_relation",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"product_id", "category_id"}, name = "uk_product_category")
+ @UniqueConstraint(
+ columnNames = {"product_id", "category_id"},
+ name = "uk_product_category")
})
@Data
public class ProductCategoryRelation extends BaseEntity {
@@ -41,4 +43,4 @@ public class ProductCategoryRelation extends BaseEntity {
@Column(name = "category_id", length = 64, nullable = false)
private String categoryId;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java
index 44fdbc842..3a7d37ace 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductPublication.java
@@ -19,11 +19,10 @@
package com.alibaba.himarket.entity;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "publication")
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java
index 37d365af2..6d2da8b71 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductRef.java
@@ -26,11 +26,10 @@
import com.alibaba.himarket.support.product.APIGRefConfig;
import com.alibaba.himarket.support.product.HigressRefConfig;
import com.alibaba.himarket.support.product.NacosRefConfig;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "product_ref")
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java
index 1605d6e77..e56c12e07 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/entity/ProductSubscription.java
@@ -22,15 +22,17 @@
import com.alibaba.himarket.converter.ConsumerAuthConfigConverter;
import com.alibaba.himarket.support.consumer.ConsumerAuthConfig;
import com.alibaba.himarket.support.enums.SubscriptionStatus;
+import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.*;
-
@Entity
-@Table(name = "product_subscription",
+@Table(
+ name = "product_subscription",
uniqueConstraints = {
- @UniqueConstraint(columnNames = {"product_id", "consumer_id"}, name = "uk_product_consumer")
+ @UniqueConstraint(
+ columnNames = {"product_id", "consumer_id"},
+ name = "uk_product_consumer")
})
@Data
@EqualsAndHashCode(callSuper = true)
@@ -59,4 +61,4 @@ public class ProductSubscription extends BaseEntity {
@Column(name = "consumer_auth_config", columnDefinition = "json")
@Convert(converter = ConsumerAuthConfigConverter.class)
private ConsumerAuthConfig consumerAuthConfig;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java
index a2b083404..15a03c785 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/AdministratorRepository.java
@@ -20,14 +20,12 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.Administrator;
-import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
+import org.springframework.data.jpa.repository.JpaRepository;
-/**
- * 管理员数据访问接口,提供管理员相关的数据库操作
- *
- */
+/** 管理员数据访问接口,提供管理员相关的数据库操作 */
public interface AdministratorRepository extends JpaRepository {
Optional findByAdminId(String adminId);
+
Optional findByUsername(String username);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java
index 985582089..5b54f1024 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/BaseRepository.java
@@ -19,15 +19,14 @@
package com.alibaba.himarket.repository;
+import java.util.Collection;
+import java.util.List;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.lang.NonNull;
-import java.util.Collection;
-import java.util.List;
-
/**
* 基础数据访问接口,提供通用的数据库操作方法
*
@@ -46,4 +45,3 @@ public interface BaseRepository extends JpaRepository, JpaSpecificat
*/
List findAllByIdIn(@NonNull Collection ids, @NonNull Sort sort);
}
-
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java
index de3ac7701..f9dbddd60 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatAttachmentRepository.java
@@ -1,10 +1,9 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ChatAttachment;
-import org.springframework.stereotype.Repository;
-
import java.util.List;
import java.util.Optional;
+import org.springframework.stereotype.Repository;
/**
* @author zh
@@ -15,4 +14,4 @@ public interface ChatAttachmentRepository extends BaseRepository findByAttachmentId(String attachmentId);
List findByAttachmentIdIn(List attachmentIds);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java
index b62f5741a..7825c9870 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatRepository.java
@@ -2,14 +2,13 @@
import com.alibaba.himarket.entity.Chat;
import com.alibaba.himarket.support.enums.ChatStatus;
+import java.util.List;
+import java.util.Optional;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
-import java.util.List;
-import java.util.Optional;
-
@Repository
public interface ChatRepository extends BaseRepository {
@@ -48,14 +47,18 @@ public interface ChatRepository extends BaseRepository {
* @param questionId
* @return
*/
- @Query("SELECT COALESCE(MAX(c.sequence), 0) " +
- "FROM Chat c " +
- "WHERE c.sessionId = :sessionId " +
- "AND c.conversationId = :conversationId " +
- "AND c.questionId = :questionId " +
- "AND c.productId = :productId")
- Integer findCurrentSequence(@Param("sessionId") String sessionId, @Param("conversationId") String conversationId,
- @Param("questionId") String questionId, @Param("productId") String productId);
+ @Query(
+ "SELECT COALESCE(MAX(c.sequence), 0) "
+ + "FROM Chat c "
+ + "WHERE c.sessionId = :sessionId "
+ + "AND c.conversationId = :conversationId "
+ + "AND c.questionId = :questionId "
+ + "AND c.productId = :productId")
+ Integer findCurrentSequence(
+ @Param("sessionId") String sessionId,
+ @Param("conversationId") String conversationId,
+ @Param("questionId") String questionId,
+ @Param("productId") String productId);
/**
* Delete all chats for given sessionId
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java
index fe7549887..7dcfa4a43 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ChatSessionRepository.java
@@ -1,44 +1,31 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ChatSession;
+import java.util.List;
+import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Repository;
-import java.util.List;
-import java.util.Optional;
-
@Repository
public interface ChatSessionRepository extends BaseRepository {
- /**
- * Find a session by session ID
- */
+ /** Find a session by session ID */
Optional findBySessionId(String sessionId);
- /**
- * Find sessions by user ID
- */
+ /** Find sessions by user ID */
Page findByUserId(String userId, Pageable pageable);
- /**
- * Calculate the number of sessions for a user
- */
+ /** Calculate the number of sessions for a user */
int countByUserId(String userId);
- /**
- * Find a session by session ID and user ID
- */
+ /** Find a session by session ID and user ID */
Optional findBySessionIdAndUserId(String sessionId, String userId);
- /**
- * Find all sessions for a user
- */
+ /** Find all sessions for a user */
List findAllByUserId(String userId);
- /**
- * Find the first session for a user
- */
+ /** Find the first session for a user */
Optional findFirstByUserId(String userId, Sort sort);
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java
index 872147e10..5cb8c68e4 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerCredentialRepository.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ConsumerCredential;
-
import java.util.Optional;
public interface ConsumerCredentialRepository extends BaseRepository {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java
index 2c59bd980..d3c04b0d9 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRefRepository.java
@@ -22,27 +22,29 @@
import com.alibaba.himarket.entity.ConsumerRef;
import com.alibaba.himarket.support.enums.GatewayType;
import com.alibaba.himarket.support.gateway.GatewayConfig;
+import java.util.List;
+import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
-import java.util.List;
-import java.util.Optional;
-
@Repository
-public interface ConsumerRefRepository extends JpaRepository, JpaSpecificationExecutor {
+public interface ConsumerRefRepository
+ extends JpaRepository, JpaSpecificationExecutor {
List findAllByConsumerId(String consumerId);
- @Query("SELECT c FROM ConsumerRef c WHERE c.consumerId = :consumerId AND c.gatewayType = :gatewayType AND c.gatewayConfig = :gatewayConfig")
+ @Query(
+ "SELECT c FROM ConsumerRef c WHERE c.consumerId = :consumerId AND c.gatewayType = :gatewayType AND c.gatewayConfig = :gatewayConfig")
@Deprecated
- Optional findConsumerRef(@Param("consumerId") String consumerId,
- @Param("gatewayType") GatewayType gatewayType,
- @Param("gatewayConfig") GatewayConfig gatewayConfig);
+ Optional findConsumerRef(
+ @Param("consumerId") String consumerId,
+ @Param("gatewayType") GatewayType gatewayType,
+ @Param("gatewayConfig") GatewayConfig gatewayConfig);
Optional findByGwConsumerId(String gwConsumerId);
List findAllByConsumerIdAndGatewayType(String consumerId, GatewayType gatewayType);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java
index 7e2180c18..099a6e376 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ConsumerRepository.java
@@ -20,6 +20,9 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.Consumer;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
@@ -27,10 +30,6 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-
public interface ConsumerRepository extends BaseRepository {
Optional findByConsumerId(String consumerId);
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java
index 3b56aaef0..97c54058e 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperExternalIdentityRepository.java
@@ -20,17 +20,19 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.DeveloperExternalIdentity;
-import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
+import org.springframework.data.jpa.repository.JpaRepository;
-public interface DeveloperExternalIdentityRepository extends JpaRepository {
+public interface DeveloperExternalIdentityRepository
+ extends JpaRepository {
List findByDeveloper_DeveloperId(String developerId);
Optional findByProviderAndSubject(String provider, String subject);
- void deleteByProviderAndSubjectAndDeveloper_DeveloperId(String provider, String subject, String developerId);
+ void deleteByProviderAndSubjectAndDeveloper_DeveloperId(
+ String provider, String subject, String developerId);
void deleteByDeveloper_DeveloperId(String developerId);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java
index 7587e0e1e..443c87ec8 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/DeveloperRepository.java
@@ -20,12 +20,11 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.Developer;
+import java.util.List;
+import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import java.util.Optional;
-import java.util.List;
-
public interface DeveloperRepository extends BaseRepository {
Optional findByDeveloperId(String developerId);
@@ -41,4 +40,4 @@ public interface DeveloperRepository extends BaseRepository {
Optional findByDeveloperIdAndPortalId(String developerId, String portalId);
Page findByPortalId(String portalId, Pageable pageable);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java
index a2c3bba9a..d2dcb4f48 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/GatewayRepository.java
@@ -20,11 +20,10 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.Gateway;
+import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import java.util.Optional;
-
public interface GatewayRepository extends BaseRepository {
Optional findByGatewayId(String gatewayId);
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java
index 93234d0f1..c1a62d57d 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/NacosInstanceRepository.java
@@ -20,9 +20,8 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.NacosInstance;
-import org.springframework.stereotype.Repository;
-
import java.util.Optional;
+import org.springframework.stereotype.Repository;
@Repository
public interface NacosInstanceRepository extends BaseRepository {
@@ -30,4 +29,4 @@ public interface NacosInstanceRepository extends BaseRepository findByNacosId(String nacosId);
Optional findByNacosName(String nacosName);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java
index 90d9d5de5..9478301f1 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalDomainRepository.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.PortalDomain;
-
import java.util.List;
import java.util.Optional;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java
index ed8a1a274..4e1f08dcb 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/PortalRepository.java
@@ -20,11 +20,10 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.Portal;
+import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import java.util.Optional;
-
public interface PortalRepository extends BaseRepository {
Optional findFirstByOrderByIdAsc();
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java
index 2c6e1b0ad..f99ee4d5c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRelationRepository.java
@@ -20,13 +20,13 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ProductCategoryRelation;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.transaction.annotation.Transactional;
-
import java.util.Collection;
import java.util.List;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.transaction.annotation.Transactional;
-public interface ProductCategoryRelationRepository extends BaseRepository {
+public interface ProductCategoryRelationRepository
+ extends BaseRepository {
List findByProductId(String productId);
@@ -43,5 +43,4 @@ public interface ProductCategoryRelationRepository extends BaseRepository productIds, String categoryId);
List findByCategoryIdIn(Collection categoryId);
-
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java
index addf45e11..0fa37d4a9 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductCategoryRepository.java
@@ -20,10 +20,9 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ProductCategory;
-import org.springframework.stereotype.Repository;
-
import java.util.List;
import java.util.Optional;
+import org.springframework.stereotype.Repository;
@Repository
public interface ProductCategoryRepository extends BaseRepository {
@@ -33,4 +32,4 @@ public interface ProductCategoryRepository extends BaseRepository findByName(String name);
List findByCategoryIdIn(List categoryIds);
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java
index ab49c5d53..c054acdfe 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductPublicationRepository.java
@@ -20,11 +20,10 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ProductPublication;
+import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import java.util.Optional;
-
public interface ProductPublicationRepository extends BaseRepository {
Page findByPortalId(String portalId, Pageable pageable);
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java
index 7311c2234..f3740af54 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRefRepository.java
@@ -20,17 +20,15 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ProductRef;
+import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
-import java.util.Optional;
-
-/**
- * API Reference Repository
- */
+/** API Reference Repository */
@Repository
-public interface ProductRefRepository extends JpaRepository, JpaSpecificationExecutor {
+public interface ProductRefRepository
+ extends JpaRepository, JpaSpecificationExecutor {
Optional findByProductId(String productId);
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java
index 37dc91c45..ed0c326df 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/ProductRepository.java
@@ -19,15 +19,13 @@
package com.alibaba.himarket.repository;
-import org.springframework.stereotype.Repository;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-
+import com.alibaba.himarket.entity.Product;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
-
-import com.alibaba.himarket.entity.Product;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Repository;
@Repository
public interface ProductRepository extends BaseRepository {
@@ -43,6 +41,4 @@ public interface ProductRepository extends BaseRepository {
List findByProductIdIn(Collection productIds);
Page findByAdminId(String adminId, Pageable pageable);
-
-
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java b/himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java
index 7f0bb52b1..3bffd6de8 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/repository/SubscriptionRepository.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.repository;
import com.alibaba.himarket.entity.ProductSubscription;
-
import java.util.List;
import java.util.Optional;
@@ -37,4 +36,4 @@ public interface SubscriptionRepository extends BaseRepository time;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java
index ac1f233e7..d15ca731c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/chat/search/SearchOutput.java
@@ -19,18 +19,17 @@
package com.alibaba.himarket.support.chat.search;
+import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
-import java.util.List;
-
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SearchOutput {
-
+
private List searchContexts;
-
+
private List citations;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java
index 856ef705e..c30185793 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/common/Encrypted.java
@@ -26,5 +26,4 @@
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
-public @interface Encrypted {
-}
+public @interface Encrypted {}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java
index b83471d45..a50e51d82 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/APIGAuthConfig.java
@@ -17,14 +17,12 @@
* under the License.
*/
-
package com.alibaba.himarket.support.consumer;
+import java.util.List;
import lombok.Builder;
import lombok.Data;
-import java.util.List;
-
/**
* @author zh
*/
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java
index 1e1017ac0..9e900e717 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/AdpAIAuthConfig.java
@@ -22,25 +22,17 @@
import lombok.Builder;
import lombok.Data;
-/**
- * ADP AI网关授权配置
- */
+/** ADP AI网关授权配置 */
@Data
@Builder
public class AdpAIAuthConfig {
- /**
- * MCP Server名称
- */
+ /** MCP Server名称 */
private String mcpServerName;
- /**
- * 消费者ID
- */
+ /** 消费者ID */
private String consumerId;
- /**
- * 网关实例ID
- */
+ /** 网关实例ID */
private String gwInstanceId;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java
index ff1107989..ac246785b 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ApiKeyConfig.java
@@ -20,23 +20,18 @@
package com.alibaba.himarket.support.consumer;
import com.alibaba.himarket.support.enums.CredentialMode;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
public class ApiKeyConfig {
private List credentials;
- /**
- * apikey的位置
- */
+ /** apikey的位置 */
private String source = "Default";
- /**
- * apikey参数名称
- */
+ /** apikey参数名称 */
private String key = "Authorization";
@Data
@@ -46,4 +41,4 @@ public static class ApiKeyCredential {
private CredentialMode mode = CredentialMode.SYSTEM;
}
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java
index 463edcb83..8df6b9572 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/ConsumerAuthConfig.java
@@ -26,18 +26,12 @@
@Builder
public class ConsumerAuthConfig {
- /**
- * for APIG
- */
+ /** for APIG */
private APIGAuthConfig apigAuthConfig;
- /**
- * for Higress
- */
+ /** for Higress */
private HigressAuthConfig higressAuthConfig;
- /**
- * for ADP AI Gateway
- */
+ /** for ADP AI Gateway */
private AdpAIAuthConfig adpAIAuthConfig;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java
index 4b53b55c5..e84f9dbf2 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HigressAuthConfig.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.support.consumer;
import lombok.Builder;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java
index 34e2d0fd4..06e6198ad 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/HmacConfig.java
@@ -20,9 +20,8 @@
package com.alibaba.himarket.support.consumer;
import com.alibaba.himarket.support.enums.CredentialMode;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
public class HmacConfig {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java
index 619c0821e..b6cc26892 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/consumer/JwtConfig.java
@@ -22,6 +22,4 @@
import lombok.Data;
@Data
-public class JwtConfig {
-
-}
\ No newline at end of file
+public class JwtConfig {}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java
index c64eeb301..22afffe24 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AIProtocol.java
@@ -4,11 +4,8 @@
* @author zh
*/
public enum AIProtocol {
-
OPENAI,
ANTHROPIC,
-
;
-
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java
index 983089ee2..83abd6c40 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGAPIType.java
@@ -25,7 +25,6 @@
@Getter
@RequiredArgsConstructor
public enum APIGAPIType {
-
REST("Rest"),
HTTP("Http"),
@@ -34,9 +33,7 @@ public enum APIGAPIType {
AGENT("Agent"),
- MODEL("LLM")
-
- ;
+ MODEL("LLM");
private final String type;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java
index 938bc49be..84e7bdef4 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/APIGResourceType.java
@@ -7,7 +7,6 @@
*/
@Getter
public enum APIGResourceType {
-
RestApiOperation("RestApiOperation"),
MCP("MCP"),
@@ -15,7 +14,6 @@ public enum APIGResourceType {
Agent("Agent"),
LLM("LLM"),
-
;
APIGResourceType(String type) {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java
index ff3167d90..9fa1400ed 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/AttachmentDataType.java
@@ -4,10 +4,8 @@
* @author zh
*/
public enum AttachmentDataType {
-
BLOB,
URL,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java
index 185d81ea6..fd063bc3e 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatAttachmentType.java
@@ -4,7 +4,6 @@
* @author zh
*/
public enum ChatAttachmentType {
-
IMAGE,
VIDEO,
@@ -12,7 +11,5 @@ public enum ChatAttachmentType {
AUDIO,
TEXT,
-
;
-
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java
index 3ec6d7c42..29cc9a43d 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatRole.java
@@ -7,13 +7,11 @@
*/
@Getter
public enum ChatRole {
-
USER("user"),
ASSISTANT("assistant"),
SYSTEM("system"),
-
;
private final String role;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java
index 9014512ef..885b64731 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatSessionStatus.java
@@ -7,12 +7,10 @@
*/
@Getter
public enum ChatSessionStatus {
-
READY,
PROCESSING,
CLOSED,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java
index 4dcd5a51a..b061977e4 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ChatStatus.java
@@ -4,7 +4,6 @@
* @author zh
*/
public enum ChatStatus {
-
INIT,
PROCESSING,
@@ -12,6 +11,5 @@ public enum ChatStatus {
SUCCESS,
FAILED,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java
index 020588bc1..fa051f28c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerAuthType.java
@@ -20,12 +20,10 @@
package com.alibaba.himarket.support.enums;
public enum ConsumerAuthType {
-
KEY_AUTH,
HMAC,
JWT,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java
index 4ff584dd5..3105616c4 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ConsumerStatus.java
@@ -21,20 +21,13 @@
public enum ConsumerStatus {
- /**
- * 待审核
- */
+ /** 待审核 */
PENDING,
- /**
- * 已审核
- */
+ /** 已审核 */
APPROVED,
- /**
- * 不可用,对应的网关资源已删除
- */
+ /** 不可用,对应的网关资源已删除 */
DISABLED,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java
index ec009737e..d6f89fdb9 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ContentType.java
@@ -7,7 +7,6 @@
*/
@Getter
public enum ContentType {
-
TEXT("text"),
IMAGE_URL("image_url"),
@@ -15,7 +14,6 @@ public enum ContentType {
AUDIO_URL("audio_url"),
VIDEO_URL("video_url"),
-
;
private final String type;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java
index 3a5456617..ebecef359 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/CredentialMode.java
@@ -20,10 +20,8 @@
package com.alibaba.himarket.support.enums;
public enum CredentialMode {
-
SYSTEM,
CUSTOM,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java
index 7e1b6b399..5cc6abbbb 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperAuthType.java
@@ -17,14 +17,12 @@
* under the License.
*/
-
package com.alibaba.himarket.support.enums;
/**
* @author zh
*/
public enum DeveloperAuthType {
-
@Deprecated
LOCAL,
@@ -36,7 +34,6 @@ public enum DeveloperAuthType {
OIDC,
OAUTH2,
-
;
public boolean isBuiltIn() {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java
index 4588751d1..171bacfbd 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DeveloperStatus.java
@@ -21,15 +21,10 @@
public enum DeveloperStatus {
- /**
- * 已激活
- */
+ /** 已激活 */
APPROVED,
- /**
- * 待审核
- */
+ /** 待审核 */
PENDING,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java
index 6b02db23b..7a9c32dd6 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/DomainType.java
@@ -20,10 +20,8 @@
package com.alibaba.himarket.support.enums;
public enum DomainType {
-
DEFAULT,
CUSTOM,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java
index f98ece9bf..4c5f38a4b 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GatewayType.java
@@ -26,31 +26,20 @@
@Getter
public enum GatewayType {
- /**
- * 云原生API网关
- */
+ /** 云原生API网关 */
APIG_API("API"),
- /**
- * AI网关
- */
+ /** AI网关 */
APIG_AI("AI"),
- /**
- * ADP AI网关
- */
+ /** ADP AI网关 */
ADP_AI_GATEWAY("ADP_AI_GATEWAY"),
- /**
- * Apsara AI 网关
- */
+ /** Apsara AI 网关 */
APSARA_GATEWAY("APSARA_GATEWAY"),
- /**
- * Higress
- */
+ /** Higress */
HIGRESS("Higress"),
-
;
private final String type;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java
index 05ab703f9..da29886fb 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/GrantType.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.support.enums;
import lombok.Getter;
@@ -28,17 +27,11 @@
@Getter
public enum GrantType {
- /**
- * 授权码模式
- */
+ /** 授权码模式 */
AUTHORIZATION_CODE("authorization_code"),
-
- /**
- * JWT断言,OAuth2.0标准拓展
- */
+ /** JWT断言,OAuth2.0标准拓展 */
JWT_BEARER("urn:ietf:params:oauth:grant-type:jwt-bearer"),
-
;
private final String type;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java
index e25d14342..c34a66c15 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/HigressAPIType.java
@@ -25,11 +25,9 @@
@RequiredArgsConstructor
@Getter
public enum HigressAPIType {
-
ROUTE("Route"),
MCP("MCP"),
-
;
private final String type;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java
index e3f17166a..f1d091829 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/IconType.java
@@ -17,17 +17,14 @@
* under the License.
*/
-
package com.alibaba.himarket.support.enums;
/**
* @author zh
*/
public enum IconType {
-
URL,
BASE64,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java
index a38e9d09f..e4dc0eb50 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/JwtAlgorithm.java
@@ -17,14 +17,12 @@
* under the License.
*/
-
package com.alibaba.himarket.support.enums;
/**
* @author zh
*/
public enum JwtAlgorithm {
-
RS256,
RS384,
@@ -36,6 +34,5 @@ public enum JwtAlgorithm {
ES384,
ES512,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java
index f9fa3c28b..fab9b0ba5 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/MCPTransportMode.java
@@ -7,7 +7,6 @@
*/
@Getter
public enum MCPTransportMode {
-
STDIO("stdio"),
SSE("sse"),
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java
index eff55817a..06d0635f1 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductStatus.java
@@ -21,20 +21,13 @@
public enum ProductStatus {
- /**
- * 未配置API和MCP Server
- */
+ /** 未配置API和MCP Server */
PENDING,
- /**
- * 已配置API或MCP Server
- */
+ /** 已配置API或MCP Server */
READY,
- /**
- * 已发布
- */
+ /** 已发布 */
PUBLISHED,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java
index 78bd8edc0..e939eac21 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProductType.java
@@ -20,7 +20,6 @@
package com.alibaba.himarket.support.enums;
public enum ProductType {
-
REST_API,
HTTP_API,
@@ -30,6 +29,5 @@ public enum ProductType {
AGENT_API,
MODEL_API,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java
index 947cfeb64..57b29092c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/ProtocolType.java
@@ -20,10 +20,8 @@
package com.alibaba.himarket.support.enums;
public enum ProtocolType {
-
HTTP,
HTTPS,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java
index 36dcdd900..30740c072 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/PublicKeyFormat.java
@@ -17,13 +17,11 @@
* under the License.
*/
-
package com.alibaba.himarket.support.enums;
public enum PublicKeyFormat {
PEM,
JWK,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java
index 78a86ea37..c5393dfad 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SearchEngineType.java
@@ -19,25 +19,18 @@
package com.alibaba.himarket.support.enums;
-import lombok.Getter;
-
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
+import lombok.Getter;
-/**
- * 搜索引擎类型枚举
- * 当前仅支持 GOOGLE,未来可扩展 BING、知识库搜索等
- */
+/** 搜索引擎类型枚举 当前仅支持 GOOGLE,未来可扩展 BING、知识库搜索等 */
@Getter
public enum SearchEngineType {
-
- /**
- * Google搜索(通过SerpAPI)
- * 当前唯一支持的搜索引擎
- */
+
+ /** Google搜索(通过SerpAPI) 当前唯一支持的搜索引擎 */
GOOGLE("Google", "Google搜索引擎", true);
-
+
// 未来可扩展的类型(示例,暂不启用)
// BING("Bing", "Bing搜索引擎", false),
// KNOWLEDGE_BASE("KnowledgeBase", "知识库搜索", false);
@@ -51,19 +44,15 @@ public enum SearchEngineType {
this.description = description;
this.supported = supported;
}
-
- /**
- * 获取所有当前支持的搜索引擎类型
- */
+
+ /** 获取所有当前支持的搜索引擎类型 */
public static Set getSupportedTypes() {
return Arrays.stream(values())
.filter(type -> type.isSupported())
.collect(Collectors.toSet());
}
-
- /**
- * 检查指定类型是否支持
- */
+
+ /** 检查指定类型是否支持 */
public static boolean isSupported(SearchEngineType type) {
return type != null && type.isSupported();
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java
index 7dd84ed63..b345d99cf 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SlsAuthType.java
@@ -4,14 +4,10 @@
@Getter
public enum SlsAuthType {
- /**
- * 使用STS临时凭证
- */
+ /** 使用STS临时凭证 */
STS("sts", "STS authentication"),
- /**
- * 使用AK/SK
- */
+ /** 使用AK/SK */
AK_SK("ak_sk", "AK/SK authentication");
private final String code;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java
index 556fd3f34..68c1b0267 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SourceType.java
@@ -19,20 +19,13 @@
package com.alibaba.himarket.support.enums;
-/**
- * 数据来源类型枚举
- *
- */
+/** 数据来源类型枚举 */
public enum SourceType {
- /**
- * 来自Gateway (Higress, APIG等)
- */
+ /** 来自Gateway (Higress, APIG等) */
GATEWAY,
- /**
- * 来自Nacos注册中心
- */
+ /** 来自Nacos注册中心 */
NACOS;
public boolean isGateway() {
@@ -42,4 +35,4 @@ public boolean isGateway() {
public boolean isNacos() {
return this == NACOS;
}
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java
index d103cda93..28c7d2d7b 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/SubscriptionStatus.java
@@ -20,15 +20,10 @@
package com.alibaba.himarket.support.enums;
public enum SubscriptionStatus {
- /**
- * Pending approval
- */
+ /** Pending approval */
PENDING,
- /**
- * Approved and active
- */
+ /** Approved and active */
APPROVED,
-
;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java
index d2a090655..ea60ebdee 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/TalkType.java
@@ -4,9 +4,7 @@
* @author zh
*/
public enum TalkType {
-
MODEL,
AGENT,
-
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java
index 205dba9d4..ebbb193a9 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/enums/UserType.java
@@ -20,15 +20,10 @@
package com.alibaba.himarket.support.enums;
public enum UserType {
- /**
- * 管理员用户
- */
+ /** 管理员用户 */
ADMIN,
- /**
- * 开发者用户
- */
+ /** 开发者用户 */
DEVELOPER,
-
;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java
index 556935731..4d002aea2 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/APIGConfig.java
@@ -26,11 +26,9 @@
@Data
public class APIGConfig {
- @Encrypted
- private String accessKey;
+ @Encrypted private String accessKey;
- @Encrypted
- private String secretKey;
+ @Encrypted private String secretKey;
private String region;
@@ -39,6 +37,8 @@ public String buildUniqueKey() {
}
public boolean validate() {
- return StrUtil.isNotBlank(accessKey) && StrUtil.isNotBlank(secretKey) && StrUtil.isNotBlank(region);
+ return StrUtil.isNotBlank(accessKey)
+ && StrUtil.isNotBlank(secretKey)
+ && StrUtil.isNotBlank(region);
}
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java
index 9696210d0..82b198ede 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/AdpAIGatewayConfig.java
@@ -17,39 +17,27 @@
* under the License.
*/
-
package com.alibaba.himarket.support.gateway;
import cn.hutool.core.util.StrUtil;
import lombok.Data;
-/**
- * ADP网关配置
- * 继承自APIGConfig,支持ADP网关特有的配置
- */
+/** ADP网关配置 继承自APIGConfig,支持ADP网关特有的配置 */
@Data
public class AdpAIGatewayConfig {
- /**
- * ADP网关的baseUrl,如果为空则使用默认的region构建
- */
+ /** ADP网关的baseUrl,如果为空则使用默认的region构建 */
private String baseUrl;
- /**
- * ADP网关的端口
- */
+ /** ADP网关的端口 */
private Integer port;
- /**
- * ADP网关的认证种子
- */
+ /** ADP网关的认证种子 */
private String authSeed;
-
- /**
- * ADP网关的认证头列表
- */
+
+ /** ADP网关的认证头列表 */
private java.util.List authHeaders;
-
+
@Data
public static class AuthHeader {
private String key;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java
index 707db5248..ef32f286c 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/ApsaraGatewayConfig.java
@@ -30,20 +30,20 @@ public class ApsaraGatewayConfig {
private String accessKeyId;
- @Encrypted
- private String accessKeySecret;
+ @Encrypted private String accessKeySecret;
/** 可选:STS 临时凭证 */
- @Encrypted
- private String securityToken;
+ @Encrypted private String securityToken;
/** POP 路由相关 */
private String domain;
+
private String product;
private String version;
/** 业务头 */
private String xAcsOrganizationId;
+
private String xAcsCallerSdkSource;
private String xAcsResourceGroupId;
private String xAcsCallerType;
@@ -51,7 +51,8 @@ public class ApsaraGatewayConfig {
public String buildUniqueKey() {
// 包含所有影响身份识别和路由的字段,确保配置唯一性准确
- return String.format("%s:%s:%s:%s:%s:%s:%s:%s:%s:%s:%s:%s",
+ return String.format(
+ "%s:%s:%s:%s:%s:%s:%s:%s:%s:%s:%s:%s",
accessKeyId,
accessKeySecret,
regionId,
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java
index c46b1c6ee..601455345 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/GatewayConfig.java
@@ -37,9 +37,7 @@ public class GatewayConfig {
private ApsaraGatewayConfig apsaraGatewayConfig;
private HigressConfig higressConfig;
-
- /**
- * 网关实体引用,用于获取gatewayId等信息
- */
+
+ /** 网关实体引用,用于获取gatewayId等信息 */
private Gateway gateway;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java
index 6a5322dc7..0845deded 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/gateway/HigressConfig.java
@@ -31,12 +31,9 @@ public class HigressConfig {
private String username;
- @Encrypted
- private String password;
+ @Encrypted private String password;
- /**
- * Higress gateway address
- */
+ /** Higress gateway address */
private String gatewayAddress;
public String buildUniqueKey() {
@@ -54,8 +51,8 @@ public boolean validate() {
address = "http://" + address;
}
- if (StrUtil.isNotBlank(gatewayAddress) &&
- !URLUtil.url(gatewayAddress).getProtocol().contains("http")) {
+ if (StrUtil.isNotBlank(gatewayAddress)
+ && !URLUtil.url(gatewayAddress).getProtocol().contains("http")) {
gatewayAddress = "http://" + gatewayAddress;
}
} catch (Exception e) {
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java
index 6c9523963..49380e653 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/AuthCodeConfig.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.support.portal;
import lombok.Data;
@@ -28,44 +27,29 @@
@Data
public class AuthCodeConfig {
- /**
- * 凭证
- */
+ /** 凭证 */
private String clientId;
+
private String clientSecret;
- /**
- * 访问范围
- */
+ /** 访问范围 */
private String scopes;
- /**
- * Issuer
- */
+ /** Issuer */
private String issuer;
- /**
- * 授权端点
- */
+ /** 授权端点 */
private String authorizationEndpoint;
- /**
- * 令牌端点
- */
+ /** 令牌端点 */
private String tokenEndpoint;
- /**
- * 用户信息端点
- */
+ /** 用户信息端点 */
private String userInfoEndpoint;
- /**
- * JWK Set URI
- */
+ /** JWK Set URI */
private String jwkSetUri;
- /**
- * 重定向URI
- */
+ /** 重定向URI */
private String redirectUri;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java
index 7164f4088..cf88c271a 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/IdentityMapping.java
@@ -17,12 +17,10 @@
* under the License.
*/
-
package com.alibaba.himarket.support.portal;
-import lombok.Data;
-
import java.util.Map;
+import lombok.Data;
/**
* @author zh
@@ -30,23 +28,15 @@
@Data
public class IdentityMapping {
- /**
- * 映射DeveloperId
- */
+ /** 映射DeveloperId */
private String userIdField;
- /**
- * 映射Developer Name
- */
+ /** 映射Developer Name */
private String userNameField;
- /**
- * 映射Developer Email
- */
+ /** 映射Developer Email */
private String emailField;
- /**
- * 自定义字段映射(预留扩展)
- */
+ /** 自定义字段映射(预留扩展) */
private Map customFields;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java
index d8c5d3c9a..61437cdfe 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/JwtBearerConfig.java
@@ -17,12 +17,10 @@
* under the License.
*/
-
package com.alibaba.himarket.support.portal;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
/**
* @author zh
@@ -30,8 +28,6 @@
@Data
public class JwtBearerConfig {
- /**
- * JWT公钥
- */
+ /** JWT公钥 */
private List publicKeys;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java
index 924539e8b..f03d2778d 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OAuth2Config.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.support.portal;
import com.alibaba.himarket.support.enums.GrantType;
@@ -29,34 +28,21 @@
@Data
public class OAuth2Config {
- /**
- * 提供商
- */
+ /** 提供商 */
private String provider;
- /**
- * 名称
- */
+ /** 名称 */
private String name;
- /**
- * 是否启用
- */
+ /** 是否启用 */
private boolean enabled = true;
- /**
- * 授权模式
- */
+ /** 授权模式 */
private GrantType grantType;
- /**
- * JWT断言配置
- */
+ /** JWT断言配置 */
private JwtBearerConfig jwtBearerConfig;
- /**
- * 身份映射
- */
+ /** 身份映射 */
private IdentityMapping identityMapping = new IdentityMapping();
-
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java
index 059047019..f12b6027d 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/OidcConfig.java
@@ -24,38 +24,24 @@
@Data
public class OidcConfig {
- /**
- * 提供商
- */
+ /** 提供商 */
private String provider;
- /**
- * 对外的名称
- */
+ /** 对外的名称 */
private String name;
- /**
- * 登录按钮logo
- */
+ /** 登录按钮logo */
private String logoUrl;
- /**
- * 是否启用
- */
+ /** 是否启用 */
private boolean enabled = true;
- /**
- * 授权类型,默认授权码
- */
+ /** 授权类型,默认授权码 */
private GrantType grantType = GrantType.AUTHORIZATION_CODE;
- /**
- * 授权码模式配置
- */
+ /** 授权码模式配置 */
private AuthCodeConfig authCodeConfig;
- /**
- * 身份映射
- */
+ /** 身份映射 */
private IdentityMapping identityMapping = new IdentityMapping();
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java
index 835a21e61..82ecd80b7 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PortalSettingConfig.java
@@ -19,42 +19,27 @@
package com.alibaba.himarket.support.portal;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
public class PortalSettingConfig {
- /**
- * 内置的账号密码认证,默认开启
- */
+ /** 内置的账号密码认证,默认开启 */
private Boolean builtinAuthEnabled = true;
- /**
- * OIDC配置
- */
+ /** OIDC配置 */
private List oidcConfigs;
- /**
- * 开启自动审批开发者注册
- */
+ /** 开启自动审批开发者注册 */
private Boolean autoApproveDevelopers = false;
- /**
- * 开启自动审批订阅申请
- */
+ /** 开启自动审批订阅申请 */
private Boolean autoApproveSubscriptions = true;
- /**
- * OAuth2配置
- */
+ /** OAuth2配置 */
private List oauth2Configs;
-
- /**
- * 搜索引擎配置(新增)
- * 每个 Portal 只能配置一个搜索引擎
- * null 表示未配置
- */
+
+ /** 搜索引擎配置(新增) 每个 Portal 只能配置一个搜索引擎 null 表示未配置 */
private SearchEngineConfig searchEngineConfig;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java
index 5fad5dd70..3f6d353cb 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/PublicKeyConfig.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.support.portal;
import com.alibaba.himarket.support.enums.PublicKeyFormat;
@@ -29,23 +28,15 @@
@Data
public class PublicKeyConfig {
- /**
- * 公钥ID
- */
+ /** 公钥ID */
private String kid;
- /**
- * 公钥格式:PEM或JWK
- */
+ /** 公钥格式:PEM或JWK */
private PublicKeyFormat format;
- /**
- * 签名算法:RS256,ES256,PS256等
- */
+ /** 签名算法:RS256,ES256,PS256等 */
private String algorithm;
- /**
- * 公钥内容,PEM或JWK JSON字符串
- */
+ /** 公钥内容,PEM或JWK JSON字符串 */
private String value;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java
index f4a9bee4c..fe0b0a7e7 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/portal/SearchEngineConfig.java
@@ -21,47 +21,29 @@
import com.alibaba.himarket.support.common.Encrypted;
import com.alibaba.himarket.support.enums.SearchEngineType;
-import lombok.Data;
-
import java.util.HashMap;
import java.util.Map;
+import lombok.Data;
/**
- * 搜索引擎配置(POJO)
- * 完全参考 OidcConfig 的设计模式
- * 作为 Portal 配置的一部分,存储在 portal_setting_config JSON 字段中
- * 一个 Portal 只能配置一个搜索引擎
+ * 搜索引擎配置(POJO) 完全参考 OidcConfig 的设计模式 作为 Portal 配置的一部分,存储在 portal_setting_config JSON 字段中 一个 Portal
+ * 只能配置一个搜索引擎
*/
@Data
public class SearchEngineConfig {
- /**
- * 搜索引擎类型
- * 当前仅支持 GOOGLE
- */
+ /** 搜索引擎类型 当前仅支持 GOOGLE */
private SearchEngineType engineType;
- /**
- * 搜索引擎名称(展示用)
- */
+ /** 搜索引擎名称(展示用) */
private String engineName;
- /**
- * API Key
- * 标记 @Encrypted 注解后,系统会自动加密/解密
- */
- @Encrypted
- private String apiKey;
+ /** API Key 标记 @Encrypted 注解后,系统会自动加密/解密 */
+ @Encrypted private String apiKey;
- /**
- * 是否启用,默认启用
- */
+ /** 是否启用,默认启用 */
private boolean enabled = true;
- /**
- * 额外配置
- * 使用 Map 灵活存储扩展配置
- * 例如:{"timeout": 30, "domain": "google.com"}
- */
+ /** 额外配置 使用 Map 灵活存储扩展配置 例如:{"timeout": 30, "domain": "google.com"} */
private Map extraConfig = new HashMap<>();
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java
index d0aa0573b..24b7d4046 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/APIGRefConfig.java
@@ -28,22 +28,19 @@ public class APIGRefConfig {
private String apiName;
- /**
- * MCP Identify Info
- */
+ /** MCP Identify Info */
private String mcpServerId;
+
private String mcpRouteId;
private String mcpServerName;
- /**
- * Agent Identify Info
- */
+ /** Agent Identify Info */
private String agentApiId;
+
private String agentApiName;
- /**
- * Model Identify Info
- */
+ /** Model Identify Info */
private String modelApiId;
+
private String modelApiName;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java
index 189007bc0..075709d18 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/HigressRefConfig.java
@@ -28,8 +28,6 @@ public class HigressRefConfig {
private String mcpServerName;
- /**
- * Model Identify Info
- */
- private String modelRouteName;
+ /** Model Identify Info */
+ private String modelRouteName;
}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java
index ac0b52ccd..8fd32df61 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/Icon.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.support.product;
import com.alibaba.himarket.support.enums.IconType;
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java
index 0d71c4521..c06027a94 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ModelFeature.java
@@ -25,29 +25,18 @@
@Data
@Builder
public class ModelFeature {
- /**
- * Model name, e.g. "qwen-max", "gpt-4"
- */
+ /** Model name, e.g. "qwen-max", "gpt-4" */
private String model;
- /**
- * Max tokens for response
- */
+ /** Max tokens for response */
private Integer maxTokens;
- /**
- * Temperature for sampling (0.0 - 2.0)
- */
+ /** Temperature for sampling (0.0 - 2.0) */
private Double temperature;
- /**
- * Enable streaming response
- */
+ /** Enable streaming response */
private Boolean streaming;
- /**
- * Enable web search
- */
+ /** Enable web search */
private Boolean webSearch;
}
-
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java
index cb88493ce..6cca10838 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/NacosRefConfig.java
@@ -21,25 +21,16 @@
import lombok.Data;
-/**
- * Nacos 引用配置
- * 支持 MCP Server 和 Agent API 两种类型
- */
+/** Nacos 引用配置 支持 MCP Server 和 Agent API 两种类型 */
@Data
public class NacosRefConfig {
- /**
- * MCP Server 名称(用于 MCP Server 类型)
- */
+ /** MCP Server 名称(用于 MCP Server 类型) */
private String mcpServerName;
- /**
- * Agent 名称(用于 Agent API 类型)
- */
+ /** Agent 名称(用于 Agent API 类型) */
private String agentName;
- /**
- * 命名空间 ID(MCP Server 和 Agent API 共用)
- */
+ /** 命名空间 ID(MCP Server 和 Agent API 共用) */
private String namespaceId;
-}
\ No newline at end of file
+}
diff --git a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java
index 50bc42cbd..65f48899a 100644
--- a/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java
+++ b/himarket-dal/src/main/java/com/alibaba/himarket/support/product/ProductFeature.java
@@ -26,4 +26,3 @@ public class ProductFeature {
private ModelFeature modelFeature;
}
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java b/himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java
index 8e01ba15a..9baf37cf8 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/config/SlsConfig.java
@@ -1,78 +1,53 @@
package com.alibaba.himarket.config;
import com.alibaba.himarket.support.enums.SlsAuthType;
-
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
-/**
- * SLS日志服务配置
- *
- */
+/** SLS日志服务配置 */
@Data
@Configuration
@ConfigurationProperties(prefix = "sls")
public class SlsConfig {
- /**
- * 认证方式:STS 或 AK_SK
- */
+ /** 认证方式:STS 或 AK_SK */
private SlsAuthType authType = SlsAuthType.AK_SK;
- /**
- * SLS服务端点
- * 例如: cn-hangzhou.log.aliyuncs.com
- */
+ /** SLS服务端点 例如: cn-hangzhou.log.aliyuncs.com */
private String endpoint;
/**
* 检查SLS配置是否有效
+ *
* @return true表示配置有效,false表示配置无效
*/
public boolean isConfigured() {
return endpoint != null && !endpoint.trim().isEmpty();
}
- /**
- * 访问密钥ID(仅当authType=AK_SK时使用)
- */
+ /** 访问密钥ID(仅当authType=AK_SK时使用) */
private String accessKeyId;
- /**
- * 访问密钥(仅当authType=AK_SK时使用)
- */
+ /** 访问密钥(仅当authType=AK_SK时使用) */
private String accessKeySecret;
- /**
- * 默认Project名称(可选)
- */
+ /** 默认Project名称(可选) */
private String defaultProject;
- /**
- * 默认Logstore名称(可选)
- */
+ /** 默认Logstore名称(可选) */
private String defaultLogstore;
- /**
- * AliyunLogConfig CR配置
- */
+ /** AliyunLogConfig CR配置 */
private AliyunLogConfigProperties aliyunLogConfig = new AliyunLogConfigProperties();
- /**
- * AliyunLogConfig CR配置属性
- */
+ /** AliyunLogConfig CR配置属性 */
@Data
public static class AliyunLogConfigProperties {
- /**
- * CR所在的namespace
- */
+ /** CR所在的namespace */
private String namespace = "apigateway-system";
- /**
- * CR的名称
- */
+ /** CR的名称 */
private String crName = "apigateway-access-log";
}
-
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java
index 368d3c842..3cb61a891 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/AdministratorController.java
@@ -27,17 +27,14 @@
import com.alibaba.himarket.dto.result.admin.AdminResult;
import com.alibaba.himarket.dto.result.common.AuthResult;
import com.alibaba.himarket.service.AdministratorService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-
-import jakarta.servlet.http.HttpServletRequest;
-
@Tag(name = "管理员管理", description = "管理员初始化、登录、修改密码等相关接口")
@RestController
@RequestMapping("/admins")
@@ -85,4 +82,4 @@ public void resetPassword(@RequestBody ResetPasswordParam param) {
public AdminResult getAdministrator() {
return administratorService.getAdministrator();
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java
index eb62de501..313dd6133 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ChatController.java
@@ -1,17 +1,16 @@
package com.alibaba.himarket.controller;
import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
+import com.alibaba.himarket.dto.params.chat.CreateChatParam;
import com.alibaba.himarket.dto.result.chat.ChatAnswerMessage;
import com.alibaba.himarket.service.ChatService;
-import com.alibaba.himarket.dto.params.chat.CreateChatParam;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.Valid;
import reactor.core.publisher.Flux;
@RestController
@@ -25,8 +24,8 @@ public class ChatController {
private final ChatService chatService;
@PostMapping(produces = MediaType.TEXT_EVENT_STREAM_VALUE)
- public Flux chat(@Valid @RequestBody CreateChatParam param,
- HttpServletResponse response) {
+ public Flux chat(
+ @Valid @RequestBody CreateChatParam param, HttpServletResponse response) {
return chatService.chat(param, response);
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java
index 0f77c6cf4..1b1fcfd3c 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ConsumerController.java
@@ -20,28 +20,27 @@
package com.alibaba.himarket.controller;
import com.alibaba.himarket.core.annotation.AdminAuth;
-import com.alibaba.himarket.core.annotation.DeveloperAuth;
import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.himarket.dto.params.consumer.CreateCredentialParam;
-import com.alibaba.himarket.dto.params.consumer.QueryConsumerParam;
+import com.alibaba.himarket.core.annotation.DeveloperAuth;
import com.alibaba.himarket.dto.params.consumer.CreateConsumerParam;
-import com.alibaba.himarket.dto.params.consumer.UpdateCredentialParam;
+import com.alibaba.himarket.dto.params.consumer.CreateCredentialParam;
import com.alibaba.himarket.dto.params.consumer.CreateSubscriptionParam;
+import com.alibaba.himarket.dto.params.consumer.QueryConsumerParam;
import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
+import com.alibaba.himarket.dto.params.consumer.UpdateCredentialParam;
+import com.alibaba.himarket.dto.result.common.PageResult;
import com.alibaba.himarket.dto.result.consumer.ConsumerCredentialResult;
import com.alibaba.himarket.dto.result.consumer.ConsumerResult;
-import com.alibaba.himarket.dto.result.common.PageResult;
import com.alibaba.himarket.dto.result.product.SubscriptionResult;
import com.alibaba.himarket.service.ConsumerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-
@Tag(name = "Consumer管理", description = "提供Consumer注册、审批、产品订阅等管理功能")
@RestController
@RequestMapping("/consumers")
@@ -53,8 +52,7 @@ public class ConsumerController {
@Operation(summary = "获取Consumer列表")
@GetMapping
- public PageResult listConsumers(QueryConsumerParam param,
- Pageable pageable) {
+ public PageResult listConsumers(QueryConsumerParam param, Pageable pageable) {
return consumerService.listConsumers(param, pageable);
}
@@ -80,8 +78,8 @@ public void deleteDevConsumer(@PathVariable String consumerId) {
@Operation(summary = "生成Consumer凭证")
@PostMapping("/{consumerId}/credentials")
@DeveloperAuth
- public void createCredential(@PathVariable String consumerId,
- @RequestBody @Valid CreateCredentialParam param) {
+ public void createCredential(
+ @PathVariable String consumerId, @RequestBody @Valid CreateCredentialParam param) {
consumerService.createCredential(consumerId, param);
}
@@ -95,8 +93,8 @@ public ConsumerCredentialResult getCredential(@PathVariable String consumerId) {
@Operation(summary = "更新Consumer凭证")
@PutMapping("/{consumerId}/credentials")
@DeveloperAuth
- public void updateCredential(@PathVariable String consumerId,
- @RequestBody @Valid UpdateCredentialParam param) {
+ public void updateCredential(
+ @PathVariable String consumerId, @RequestBody @Valid UpdateCredentialParam param) {
consumerService.updateCredential(consumerId, param);
}
@@ -110,30 +108,31 @@ public void deleteCredential(@PathVariable String consumerId) {
@Operation(summary = "订阅API产品")
@PostMapping("/{consumerId}/subscriptions")
@DeveloperAuth
- public SubscriptionResult subscribeProduct(@PathVariable String consumerId,
- @RequestBody @Valid CreateSubscriptionParam param) {
+ public SubscriptionResult subscribeProduct(
+ @PathVariable String consumerId, @RequestBody @Valid CreateSubscriptionParam param) {
return consumerService.subscribeProduct(consumerId, param);
}
@Operation(summary = "获取Consumer的订阅列表")
@GetMapping("/{consumerId}/subscriptions")
@AdminOrDeveloperAuth
- public PageResult listSubscriptions(@PathVariable String consumerId,
- QuerySubscriptionParam param,
- Pageable pageable) {
+ public PageResult listSubscriptions(
+ @PathVariable String consumerId, QuerySubscriptionParam param, Pageable pageable) {
return consumerService.listSubscriptions(consumerId, param, pageable);
}
@Operation(summary = "取消订阅")
@DeleteMapping("/{consumerId}/subscriptions/{productId}")
- public void deleteSubscription(@PathVariable String consumerId, @PathVariable String productId) {
+ public void deleteSubscription(
+ @PathVariable String consumerId, @PathVariable String productId) {
consumerService.unsubscribeProduct(consumerId, productId);
}
@Operation(summary = "审批订阅申请")
@PatchMapping("/{consumerId}/subscriptions/{productId}")
@AdminAuth
- public SubscriptionResult approveSubscription(@PathVariable String consumerId, @PathVariable String productId) {
+ public SubscriptionResult approveSubscription(
+ @PathVariable String consumerId, @PathVariable String productId) {
return consumerService.approveSubscription(consumerId, productId);
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
index f315cd705..8ba48a207 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/DeveloperController.java
@@ -21,6 +21,7 @@
import com.alibaba.himarket.core.annotation.AdminAuth;
import com.alibaba.himarket.core.annotation.DeveloperAuth;
+import com.alibaba.himarket.dto.params.admin.ResetPasswordParam;
import com.alibaba.himarket.dto.params.developer.*;
import com.alibaba.himarket.dto.result.common.AuthResult;
import com.alibaba.himarket.dto.result.common.PageResult;
@@ -28,13 +29,12 @@
import com.alibaba.himarket.service.DeveloperService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-import jakarta.servlet.http.HttpServletRequest;
-import com.alibaba.himarket.dto.params.admin.ResetPasswordParam;
@Tag(name = "开发者管理", description = "提供开发者认证、管理等功能")
@RestController
@@ -66,7 +66,8 @@ public void logout(HttpServletRequest request) {
@Operation(summary = "获取门户的开发者列表", description = "管理员功能:获取当前门户下所有开发者的分页列表")
@GetMapping
- public PageResult listDevelopers(QueryDeveloperParam param, Pageable pageable) {
+ public PageResult listDevelopers(
+ QueryDeveloperParam param, Pageable pageable) {
return developerService.listDevelopers(param, pageable);
}
@@ -81,7 +82,8 @@ public DeveloperResult getCurrentDeveloperInfo() {
@PatchMapping("/password")
@DeveloperAuth
public String changePassword(@RequestBody ResetPasswordParam param) {
- developerService.changeCurrentDeveloperPassword(param.getOldPassword(), param.getNewPassword());
+ developerService.changeCurrentDeveloperPassword(
+ param.getOldPassword(), param.getNewPassword());
return "修改密码成功";
}
@@ -95,8 +97,9 @@ public void updateProfile(@Valid @RequestBody UpdateDeveloperParam param) {
@Operation(summary = "设置开发者状态", description = "管理员审核开发者账号,status为APPROVED/PENDING")
@PatchMapping("/{developerId}/status")
@AdminAuth
- public void setDeveloperStatus(@PathVariable("developerId") String developerId,
- @RequestBody UpdateDeveloperStatusParam param) {
+ public void setDeveloperStatus(
+ @PathVariable("developerId") String developerId,
+ @RequestBody UpdateDeveloperStatusParam param) {
developerService.setDeveloperStatus(developerId, param.getStatus());
}
@@ -106,4 +109,4 @@ public void setDeveloperStatus(@PathVariable("developerId") String developerId,
public void deleteDeveloper(@PathVariable("developerId") String developerId) {
developerService.deleteDeveloper(developerId);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java
index 81c31afef..0bc8e2e54 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/GatewayController.java
@@ -21,21 +21,20 @@
import com.alibaba.himarket.core.annotation.AdminAuth;
import com.alibaba.himarket.dto.params.gateway.*;
-import com.alibaba.himarket.dto.result.httpapi.APIResult;
+import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
import com.alibaba.himarket.dto.result.common.PageResult;
import com.alibaba.himarket.dto.result.gateway.GatewayResult;
+import com.alibaba.himarket.dto.result.httpapi.APIResult;
import com.alibaba.himarket.dto.result.mcp.GatewayMCPServerResult;
-import com.alibaba.himarket.dto.result.agent.AgentAPIResult;
import com.alibaba.himarket.dto.result.model.GatewayModelAPIResult;
import com.alibaba.himarket.service.GatewayService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-
@Tag(name = "网关资源管理")
@RestController
@RequestMapping("/gateways")
@@ -47,25 +46,28 @@ public class GatewayController {
@Operation(summary = "获取APIG Gateway列表")
@GetMapping("/apig")
- public PageResult fetchGateways(@Valid QueryAPIGParam param,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchGateways(
+ @Valid QueryAPIGParam param,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchAPIGGateways(param, page, size);
}
@Operation(summary = "获取ADP AI Gateway列表")
@PostMapping("/adp")
- public PageResult fetchAdpGateways(@RequestBody @Valid QueryAdpAIGatewayParam param,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchAdpGateways(
+ @RequestBody @Valid QueryAdpAIGatewayParam param,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchAdpGateways(param, page, size);
}
@Operation(summary = "获取Apsara Gateway列表")
@PostMapping("/apsara")
- public PageResult fetchApsaraGateways(@RequestBody @Valid QueryApsaraGatewayParam param,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchApsaraGateways(
+ @RequestBody @Valid QueryApsaraGatewayParam param,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchApsaraGateways(param, page, size);
}
@@ -83,7 +85,8 @@ public void importGateway(@RequestBody @Valid ImportGatewayParam param) {
@Operation(summary = "更新Gateway")
@PutMapping("/{gatewayId}")
- public void updateGateway(@PathVariable String gatewayId, @RequestBody @Valid UpdateGatewayParam param) {
+ public void updateGateway(
+ @PathVariable String gatewayId, @RequestBody @Valid UpdateGatewayParam param) {
gatewayService.updateGateway(gatewayId, param);
}
@@ -95,40 +98,45 @@ public void deleteGateway(@PathVariable String gatewayId) {
@Operation(summary = "获取REST API列表")
@GetMapping("/{gatewayId}/rest-apis")
- public PageResult fetchRESTAPIs(@PathVariable String gatewayId,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchRESTAPIs(
+ @PathVariable String gatewayId,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchRESTAPIs(gatewayId, page, size);
}
@Operation(summary = "获取MCP Server列表")
@GetMapping("/{gatewayId}/mcp-servers")
- public PageResult fetchMcpServers(@PathVariable String gatewayId,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchMcpServers(
+ @PathVariable String gatewayId,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchMcpServers(gatewayId, page, size);
}
@Operation(summary = "获取Agent API列表")
@GetMapping("/{gatewayId}/agent-apis")
- public PageResult fetchAgentAPIs(@PathVariable String gatewayId,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchAgentAPIs(
+ @PathVariable String gatewayId,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchAgentAPIs(gatewayId, page, size);
}
@Operation(summary = "获取Model API列表")
@GetMapping("/{gatewayId}/model-apis")
- public PageResult fetchModelAPIs(@PathVariable String gatewayId,
- @RequestParam(defaultValue = "1") int page,
- @RequestParam(defaultValue = "500") int size) {
+ public PageResult fetchModelAPIs(
+ @PathVariable String gatewayId,
+ @RequestParam(defaultValue = "1") int page,
+ @RequestParam(defaultValue = "500") int size) {
return gatewayService.fetchModelAPIs(gatewayId, page, size);
}
@Operation(summary = "获取仪表板URL")
@GetMapping("/{gatewayId}/dashboard")
- public String getDashboard(@PathVariable String gatewayId,
- @RequestParam(required = false, defaultValue = "API") String type) {
+ public String getDashboard(
+ @PathVariable String gatewayId,
+ @RequestParam(required = false, defaultValue = "API") String type) {
return gatewayService.getDashboard(gatewayId, type);
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java
index f79aa6b44..b8ef7d0ce 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/NacosController.java
@@ -23,22 +23,21 @@
import com.alibaba.himarket.dto.params.nacos.CreateNacosParam;
import com.alibaba.himarket.dto.params.nacos.QueryNacosParam;
import com.alibaba.himarket.dto.params.nacos.UpdateNacosParam;
-import com.alibaba.himarket.dto.result.nacos.MseNacosResult;
+import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
+import com.alibaba.himarket.dto.result.common.PageResult;
import com.alibaba.himarket.dto.result.mcp.NacosMCPServerResult;
+import com.alibaba.himarket.dto.result.nacos.MseNacosResult;
import com.alibaba.himarket.dto.result.nacos.NacosNamespaceResult;
import com.alibaba.himarket.dto.result.nacos.NacosResult;
-import com.alibaba.himarket.dto.result.common.PageResult;
-import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
import com.alibaba.himarket.service.NacosService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-
@Tag(name = "Nacos资源管理", description = "Nacos实例管理与能力市场统一控制器")
@RestController
@RequestMapping("/nacos")
@@ -56,8 +55,7 @@ public PageResult listNacosInstances(Pageable pageable) {
@Operation(summary = "从阿里云MSE获取Nacos集群列表")
@GetMapping("/mse")
- public PageResult fetchNacos(@Valid QueryNacosParam param,
- Pageable pageable) {
+ public PageResult fetchNacos(@Valid QueryNacosParam param, Pageable pageable) {
return nacosService.fetchNacos(param, pageable);
}
@@ -75,7 +73,8 @@ public void createNacosInstance(@RequestBody @Valid CreateNacosParam param) {
@Operation(summary = "更新Nacos实例", description = "更新指定Nacos实例信息")
@PutMapping("/{nacosId}")
- public void updateNacosInstance(@PathVariable String nacosId, @RequestBody @Valid UpdateNacosParam param) {
+ public void updateNacosInstance(
+ @PathVariable String nacosId, @RequestBody @Valid UpdateNacosParam param) {
nacosService.updateNacosInstance(nacosId, param);
}
@@ -85,42 +84,40 @@ public void deleteNacosInstance(@PathVariable String nacosId) {
nacosService.deleteNacosInstance(nacosId);
}
- @Operation(summary = "获取Nacos中的MCP Server列表", description = "获取指定Nacos实例中的MCP Server列表,可按命名空间过滤")
+ @Operation(
+ summary = "获取Nacos中的MCP Server列表",
+ description = "获取指定Nacos实例中的MCP Server列表,可按命名空间过滤")
@GetMapping("/{nacosId}/mcp-servers")
- public PageResult fetchMcpServers(@PathVariable String nacosId,
- @RequestParam(value = "namespaceId", required = false) String namespaceId,
- Pageable pageable) throws Exception {
+ public PageResult fetchMcpServers(
+ @PathVariable String nacosId,
+ @RequestParam(value = "namespaceId", required = false) String namespaceId,
+ Pageable pageable)
+ throws Exception {
return nacosService.fetchMcpServers(nacosId, namespaceId, pageable);
}
@Operation(summary = "获取指定Nacos实例的命名空间列表")
@GetMapping("/{nacosId}/namespaces")
- public PageResult fetchNamespaces(@PathVariable String nacosId,
- Pageable pageable) throws Exception {
+ public PageResult fetchNamespaces(
+ @PathVariable String nacosId, Pageable pageable) throws Exception {
return nacosService.fetchNamespaces(nacosId, pageable);
}
// ==================== Agent 相关 ====================
- /**
- * 获取 Nacos 中的 Agent 列表
- * 注意:与 GatewayController 保持一致,只提供列表接口,不提供详情接口
- */
+ /** 获取 Nacos 中的 Agent 列表 注意:与 GatewayController 保持一致,只提供列表接口,不提供详情接口 */
@Operation(
- summary = "获取 Nacos 中的 Agent 列表",
- description = "获取指定 Nacos 实例中注册的 Agent 列表,可按命名空间过滤"
- )
+ summary = "获取 Nacos 中的 Agent 列表",
+ description = "获取指定 Nacos 实例中注册的 Agent 列表,可按命名空间过滤")
@GetMapping("/{nacosId}/agents")
public PageResult fetchAgents(
- @Parameter(description = "Nacos 实例 ID", required = true)
- @PathVariable String nacosId,
-
+ @Parameter(description = "Nacos 实例 ID", required = true) @PathVariable String nacosId,
@Parameter(description = "命名空间 ID(可选,默认 public)")
- @RequestParam(value = "namespaceId", required = false) String namespaceId,
-
- Pageable pageable) throws Exception {
-
+ @RequestParam(value = "namespaceId", required = false)
+ String namespaceId,
+ Pageable pageable)
+ throws Exception {
+
return nacosService.fetchAgents(nacosId, namespaceId, pageable);
}
-
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java
index 150b751e4..96e724967 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/OAuth2Controller.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.controller;
import com.alibaba.himarket.dto.result.common.AuthResult;
@@ -39,8 +38,9 @@ public class OAuth2Controller {
private final OAuth2Service oAuth2Service;
@PostMapping("/token")
- public AuthResult authenticate(@RequestParam("grant_type") String grantType,
- @RequestParam("assertion") String assertion) {
+ public AuthResult authenticate(
+ @RequestParam("grant_type") String grantType,
+ @RequestParam("assertion") String assertion) {
return oAuth2Service.authenticate(grantType, assertion);
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java
index f820b720a..81009a9b3 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/OidcController.java
@@ -17,20 +17,18 @@
* under the License.
*/
-
package com.alibaba.himarket.controller;
import com.alibaba.himarket.dto.result.common.AuthResult;
import com.alibaba.himarket.dto.result.idp.IdpResult;
import com.alibaba.himarket.service.OidcService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@@ -41,10 +39,12 @@ public class OidcController {
private final OidcService oidcService;
@GetMapping("/authorize")
- public void authorize(@RequestParam String provider,
- @RequestParam(defaultValue = "/api/v1") String apiPrefix,
- HttpServletRequest request,
- HttpServletResponse response) throws IOException {
+ public void authorize(
+ @RequestParam String provider,
+ @RequestParam(defaultValue = "/api/v1") String apiPrefix,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException {
String authUrl = oidcService.buildAuthorizationUrl(provider, apiPrefix, request);
log.info("Redirecting to OIDC authorization URL: {}", authUrl);
@@ -52,10 +52,11 @@ public void authorize(@RequestParam String provider,
}
@GetMapping("/callback")
- public AuthResult callback(@RequestParam String code,
- @RequestParam String state,
- HttpServletRequest request,
- HttpServletResponse response) {
+ public AuthResult callback(
+ @RequestParam String code,
+ @RequestParam String state,
+ HttpServletRequest request,
+ HttpServletResponse response) {
return oidcService.handleCallback(code, state, request, response);
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java
index a033ef61e..7393ca4d6 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java
@@ -28,14 +28,13 @@
import com.alibaba.himarket.service.PortalService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-
@RestController
@RequestMapping("/portals")
@Slf4j
@@ -67,7 +66,8 @@ public PageResult listPortals(Pageable pageable) {
@Operation(summary = "更新门户信息")
@PutMapping("/{portalId}")
- public PortalResult updatePortal(@PathVariable String portalId, @Valid @RequestBody UpdatePortalParam param) {
+ public PortalResult updatePortal(
+ @PathVariable String portalId, @Valid @RequestBody UpdatePortalParam param) {
return portalService.updatePortal(portalId, param);
}
@@ -79,7 +79,8 @@ public void deletePortal(@PathVariable String portalId) {
@Operation(summary = "绑定域名")
@PostMapping("/{portalId}/domains")
- public PortalResult bindDomain(@PathVariable String portalId, @Valid @RequestBody BindDomainParam param) {
+ public PortalResult bindDomain(
+ @PathVariable String portalId, @Valid @RequestBody BindDomainParam param) {
return portalService.bindDomain(portalId, param);
}
@@ -91,9 +92,8 @@ public PortalResult unbindDomain(@PathVariable String portalId, @PathVariable St
@Operation(summary = "获取门户上的API产品订阅列表")
@GetMapping("/{portalId}/subscriptions")
- public PageResult listSubscriptions(@PathVariable String portalId,
- QuerySubscriptionParam param,
- Pageable pageable) {
+ public PageResult listSubscriptions(
+ @PathVariable String portalId, QuerySubscriptionParam param, Pageable pageable) {
return portalService.listSubscriptions(portalId, param, pageable);
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java
index f8024a612..75d628aef 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductCategoryController.java
@@ -29,14 +29,13 @@
import com.alibaba.himarket.service.ProductCategoryService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-import java.util.List;
-
@Tag(name = "产品类别管理", description = "提供产品类别的创建、更新、删除、查询等管理功能")
@RestController
@RequestMapping("/product-categories")
@@ -49,22 +48,24 @@ public class ProductCategoryController {
@Operation(summary = "创建产品类别")
@PostMapping
@AdminAuth
- public ProductCategoryResult createProductCategory(@RequestBody @Valid CreateProductCategoryParam param) {
+ public ProductCategoryResult createProductCategory(
+ @RequestBody @Valid CreateProductCategoryParam param) {
return productCategoryService.createProductCategory(param);
}
@Operation(summary = "获取产品类别列表")
@GetMapping
@AdminOrDeveloperAuth
- public PageResult listProductCategories(QueryProductCategoryParam param, Pageable pageable) {
+ public PageResult listProductCategories(
+ QueryProductCategoryParam param, Pageable pageable) {
return productCategoryService.listProductCategories(param, pageable);
}
@Operation(summary = "更新产品类别")
@PutMapping("/{categoryId}")
@AdminAuth
- public ProductCategoryResult updateProductCategory(@PathVariable String categoryId,
- @RequestBody @Valid UpdateProductCategoryParam param) {
+ public ProductCategoryResult updateProductCategory(
+ @PathVariable String categoryId, @RequestBody @Valid UpdateProductCategoryParam param) {
return productCategoryService.updateProductCategory(categoryId, param);
}
@@ -85,16 +86,16 @@ public void deleteProductCategory(@PathVariable String categoryId) {
@Operation(summary = "从类别中移除产品")
@DeleteMapping("/{categoryId}/products")
@AdminAuth
- public void unbindProductsFromCategory(@PathVariable String categoryId,
- @RequestBody List productIds) {
+ public void unbindProductsFromCategory(
+ @PathVariable String categoryId, @RequestBody List productIds) {
productCategoryService.unbindProductsFromCategory(productIds, categoryId);
}
-
+
@Operation(summary = "向类别中添加产品")
@PostMapping("/{categoryId}/products")
@AdminAuth
- public void bindProductsToCategory(@PathVariable String categoryId,
- @RequestBody List productIds) {
+ public void bindProductsToCategory(
+ @PathVariable String categoryId, @RequestBody List productIds) {
productCategoryService.bindProductsToCategory(categoryId, productIds);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java
index 24d0deb4a..0bc1fe41c 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/ProductController.java
@@ -19,32 +19,28 @@
package com.alibaba.himarket.controller;
-import java.util.List;
-
-import com.alibaba.himarket.dto.result.mcp.McpToolListResult;
-import jakarta.validation.Valid;
-
import com.alibaba.himarket.core.annotation.AdminAuth;
import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
import com.alibaba.himarket.dto.params.product.CreateProductParam;
import com.alibaba.himarket.dto.params.product.CreateProductRefParam;
+import com.alibaba.himarket.dto.params.product.QueryProductParam;
+import com.alibaba.himarket.dto.params.product.QueryProductSubscriptionParam;
+import com.alibaba.himarket.dto.params.product.UpdateProductParam;
import com.alibaba.himarket.dto.result.ProductCategoryResult;
import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.dto.result.mcp.McpToolListResult;
import com.alibaba.himarket.dto.result.product.ProductPublicationResult;
import com.alibaba.himarket.dto.result.product.ProductRefResult;
import com.alibaba.himarket.dto.result.product.ProductResult;
import com.alibaba.himarket.dto.result.product.SubscriptionResult;
-import com.alibaba.himarket.dto.params.product.QueryProductParam;
-import com.alibaba.himarket.dto.params.product.QueryProductSubscriptionParam;
-import com.alibaba.himarket.dto.params.product.UpdateProductParam;
-
import com.alibaba.himarket.service.ProductCategoryService;
import com.alibaba.himarket.service.ProductService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -75,8 +71,7 @@ public ProductResult createProduct(@RequestBody @Valid CreateProductParam param)
@Operation(summary = "获取API产品列表")
@GetMapping
- public PageResult listProducts(QueryProductParam param,
- Pageable pageable) {
+ public PageResult listProducts(QueryProductParam param, Pageable pageable) {
return productService.listProducts(param, pageable);
}
@@ -89,7 +84,8 @@ public ProductResult getProduct(@PathVariable String productId) {
@Operation(summary = "更新API产品")
@PutMapping("/{productId}")
@AdminAuth
- public ProductResult updateProduct(@PathVariable String productId, @RequestBody @Valid UpdateProductParam param) {
+ public ProductResult updateProduct(
+ @PathVariable String productId, @RequestBody @Valid UpdateProductParam param) {
return productService.updateProduct(productId, param);
}
@@ -103,7 +99,8 @@ public void publishProduct(@PathVariable String productId, @PathVariable String
@Operation(summary = "获取API产品的发布信息")
@GetMapping("/{productId}/publications")
@AdminAuth
- public PageResult getPublications(@PathVariable String productId, Pageable pageable) {
+ public PageResult getPublications(
+ @PathVariable String productId, Pageable pageable) {
return productService.getPublications(productId, pageable);
}
@@ -124,7 +121,9 @@ public void deleteProduct(@PathVariable String productId) {
@Operation(summary = "API产品关联API或MCP Server")
@PostMapping("/{productId}/ref")
@AdminAuth
- public void addProductRef(@PathVariable String productId, @RequestBody @Valid CreateProductRefParam param) throws Exception {
+ public void addProductRef(
+ @PathVariable String productId, @RequestBody @Valid CreateProductRefParam param)
+ throws Exception {
productService.addProductRef(productId, param);
}
@@ -169,7 +168,8 @@ public List getProductCategories(@PathVariable String pro
@Operation(summary = "设置产品类别")
@PostMapping("/{productId}/categories")
@AdminAuth
- public void setProductCategories(@PathVariable String productId, @RequestBody List categoryIds) {
+ public void setProductCategories(
+ @PathVariable String productId, @RequestBody List categoryIds) {
productService.setProductCategories(productId, categoryIds);
}
@@ -183,8 +183,7 @@ public void reloadProductConfig(@PathVariable String productId) {
@Operation(summary = "获取MCP服务的工具详情")
@GetMapping("/{productId}/tools")
@AdminOrDeveloperAuth
- public McpToolListResult listMcpTools(
- @PathVariable String productId) {
+ public McpToolListResult listMcpTools(@PathVariable String productId) {
return productService.listMcpTools(productId);
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java
index 055970533..a8a9253af 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/SearchEngineController.java
@@ -32,10 +32,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-/**
- * 搜索引擎控制器
- * 提供开发者可用的搜索引擎查询功能
- */
+/** 搜索引擎控制器 提供开发者可用的搜索引擎查询功能 */
@Tag(name = "搜索引擎", description = "开发者可用的搜索引擎查询")
@RestController
@RequestMapping("/search-engines")
@@ -47,37 +44,35 @@ public class SearchEngineController {
private final ContextHolder contextHolder;
/**
- * 获取当前 Portal 可用的搜索引擎配置
- * 供开发者在使用 talk 功能时查询是否有可用的联网搜索
+ * 获取当前 Portal 可用的搜索引擎配置 供开发者在使用 talk 功能时查询是否有可用的联网搜索
*
* @return 可用的搜索引擎配置,如果未配置或已禁用则返回 null
*/
- @Operation(summary = "获取当前Portal可用的搜索引擎配置",
+ @Operation(
+ summary = "获取当前Portal可用的搜索引擎配置",
description = "返回当前Portal已配置且启用的搜索引擎,供开发者使用。不包含敏感信息(API Key)")
@GetMapping("/available")
@DeveloperAuth
public AvailableSearchEngineResult getAvailableSearchEngine() {
// 从上下文中获取当前 Portal ID
String portalId = contextHolder.getPortal();
-
+
log.debug("Fetching available search engine for portal: {}", portalId);
-
+
// 获取当前 Portal 的搜索引擎配置
SearchEngineConfig config = portalService.getSearchEngineConfig(portalId);
-
+
// 如果未配置或已禁用,返回 null
if (config == null || !config.isEnabled()) {
log.debug("No available search engine for portal: {}", portalId);
return null;
}
-
- log.debug("Found available search engine for portal: {}, type: {}",
- portalId, config.getEngineType());
-
- return new AvailableSearchEngineResult(
- config.getEngineType(),
- config.getEngineName()
- );
+
+ log.debug(
+ "Found available search engine for portal: {}, type: {}",
+ portalId,
+ config.getEngineType());
+
+ return new AvailableSearchEngineResult(config.getEngineType(), config.getEngineName());
}
}
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java
index 7e5ebf54a..bc9bf9616 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/SessionController.java
@@ -1,23 +1,22 @@
package com.alibaba.himarket.controller;
import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
-import com.alibaba.himarket.dto.result.common.PageResult;
-import com.alibaba.himarket.service.ChatSessionService;
+import com.alibaba.himarket.dto.params.chat.CreateChatSessionParam;
+import com.alibaba.himarket.dto.params.chat.UpdateChatSessionParam;
import com.alibaba.himarket.dto.result.chat.ChatSessionResult;
import com.alibaba.himarket.dto.result.chat.ConversationResult_V1;
import com.alibaba.himarket.dto.result.chat.ProductConversationResult;
-import com.alibaba.himarket.dto.params.chat.CreateChatSessionParam;
-import com.alibaba.himarket.dto.params.chat.UpdateChatSessionParam;
+import com.alibaba.himarket.dto.result.common.PageResult;
+import com.alibaba.himarket.service.ChatSessionService;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
+import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.validation.Valid;
-import jakarta.validation.constraints.NotBlank;
-import java.util.List;
-
/**
* @author zh
*/
@@ -42,8 +41,8 @@ public PageResult listSessions(Pageable pageable) {
}
@PatchMapping("/{sessionId}")
- public ChatSessionResult updateSession(@PathVariable String sessionId,
- @Valid @RequestBody UpdateChatSessionParam param) {
+ public ChatSessionResult updateSession(
+ @PathVariable String sessionId, @Valid @RequestBody UpdateChatSessionParam param) {
return sessionService.updateSession(sessionId, param);
}
@@ -53,8 +52,7 @@ public void deleteSession(@PathVariable String sessionId) {
}
@GetMapping("/{sessionId}/conversations")
- public List listConversations(
- @PathVariable @NotBlank String sessionId) {
+ public List listConversations(@PathVariable @NotBlank String sessionId) {
return sessionService.listConversations(sessionId);
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java b/himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java
index 8155cdf76..49022b909 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/controller/SlsController.java
@@ -1,9 +1,5 @@
package com.alibaba.himarket.controller;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
import com.alibaba.himarket.config.SlsConfig;
import com.alibaba.himarket.dto.converter.SlsResponseConverter;
import com.alibaba.himarket.dto.params.sls.GenericSlsQueryRequest;
@@ -12,9 +8,11 @@
import com.alibaba.himarket.dto.params.sls.TimeSeriesChartResponse;
import com.alibaba.himarket.service.SlsLogService;
import com.alibaba.himarket.service.gateway.factory.SlsPresetSqlRegistry;
-
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -36,19 +34,23 @@ public class SlsController {
private final SlsConfig slsConfig;
-
@PostMapping("/statistics")
@Operation(summary = "日志转指标聚合查询")
- public ScenarioQueryResponse slsScenarioQuery(@RequestBody @Validated GenericSlsQueryRequest request) {
+ public ScenarioQueryResponse slsScenarioQuery(
+ @RequestBody @Validated GenericSlsQueryRequest request) {
// SLS未配置时优雅降级,避免大量错误日志
if (!slsConfig.isConfigured()) {
- log.debug("SLS endpoint not configured, returning empty result for scenario: {}", request.getScenario());
+ log.debug(
+ "SLS endpoint not configured, returning empty result for scenario: {}",
+ request.getScenario());
return buildEmptyResponse(request.getScenario());
}
SlsPresetSqlRegistry.Preset preset = presetRegistry.getPreset(request.getScenario());
if (preset == null) {
- log.warn("Scenario not found, returning empty result. scenario: {}", request.getScenario());
+ log.warn(
+ "Scenario not found, returning empty result. scenario: {}",
+ request.getScenario());
return buildEmptyResponse(request.getScenario());
}
// 应用预置SQL
@@ -58,78 +60,84 @@ public ScenarioQueryResponse slsScenarioQuery(@RequestBody @Validated GenericSls
ScenarioQueryResponse resp;
switch (preset.getType()) {
case LINE:
- TimeSeriesChartResponse chart = SlsResponseConverter.toTimeSeriesChart(
- response,
- preset.getTimeField() != null ? preset.getTimeField() : "time",
- preset.getValueField() != null ? preset.getValueField() : "count",
- interval);
- resp = ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.LINE)
- .timeSeries(chart)
- .build();
+ TimeSeriesChartResponse chart =
+ SlsResponseConverter.toTimeSeriesChart(
+ response,
+ preset.getTimeField() != null ? preset.getTimeField() : "time",
+ preset.getValueField() != null ? preset.getValueField() : "count",
+ interval);
+ resp =
+ ScenarioQueryResponse.builder()
+ .type(SlsPresetSqlRegistry.DisplayType.LINE)
+ .timeSeries(chart)
+ .build();
return resp;
case CARD:
Map statistics = SlsResponseConverter.toStatistics(response);
List items = new java.util.ArrayList<>();
for (Map.Entry e : statistics.entrySet()) {
- items.add(ScenarioQueryResponse.StatisticItem.builder()
- .key(e.getKey())
- .value(String.valueOf(e.getValue()))
- .build());
+ items.add(
+ ScenarioQueryResponse.StatisticItem.builder()
+ .key(e.getKey())
+ .value(String.valueOf(e.getValue()))
+ .build());
}
- resp = ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.CARD)
- .stats(items)
- .build();
+ resp =
+ ScenarioQueryResponse.builder()
+ .type(SlsPresetSqlRegistry.DisplayType.CARD)
+ .stats(items)
+ .build();
return resp;
case TABLE:
- List> table = response.getAggregations() != null ? response.getAggregations() : response.getLogs();
- resp = ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.TABLE)
- .table(table)
- .build();
+ List> table =
+ response.getAggregations() != null
+ ? response.getAggregations()
+ : response.getLogs();
+ resp =
+ ScenarioQueryResponse.builder()
+ .type(SlsPresetSqlRegistry.DisplayType.TABLE)
+ .table(table)
+ .build();
return resp;
default:
return buildEmptyResponse(request.getScenario());
}
}
- /**
- * 构建空响应(用于SLS未配置或查询失败场景的优雅降级)
- */
+ /** 构建空响应(用于SLS未配置或查询失败场景的优雅降级) */
private ScenarioQueryResponse buildEmptyResponse(String scenario) {
SlsPresetSqlRegistry.Preset preset = presetRegistry.getPreset(scenario);
if (preset == null) {
return ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.CARD)
- .stats(Collections.emptyList())
- .build();
+ .type(SlsPresetSqlRegistry.DisplayType.CARD)
+ .stats(Collections.emptyList())
+ .build();
}
switch (preset.getType()) {
case LINE:
return ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.LINE)
- .timeSeries(TimeSeriesChartResponse.builder()
- .dataPoints(Collections.emptyList())
- .build())
- .build();
+ .type(SlsPresetSqlRegistry.DisplayType.LINE)
+ .timeSeries(
+ TimeSeriesChartResponse.builder()
+ .dataPoints(Collections.emptyList())
+ .build())
+ .build();
case CARD:
return ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.CARD)
- .stats(Collections.emptyList())
- .build();
+ .type(SlsPresetSqlRegistry.DisplayType.CARD)
+ .stats(Collections.emptyList())
+ .build();
case TABLE:
return ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.TABLE)
- .table(Collections.emptyList())
- .build();
+ .type(SlsPresetSqlRegistry.DisplayType.TABLE)
+ .table(Collections.emptyList())
+ .build();
default:
return ScenarioQueryResponse.builder()
- .type(SlsPresetSqlRegistry.DisplayType.CARD)
- .stats(Collections.emptyList())
- .build();
+ .type(SlsPresetSqlRegistry.DisplayType.CARD)
+ .stats(Collections.emptyList())
+ .build();
}
}
-
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java
index 337dc71ea..7c0195405 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ExceptionAdvice.java
@@ -22,29 +22,20 @@
import com.alibaba.himarket.core.exception.BusinessException;
import com.alibaba.himarket.core.exception.ErrorCode;
import com.alibaba.himarket.core.response.Response;
+import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
-import java.util.stream.Collectors;
-
/**
* 全局异常处理
- *
- * 处理三类异常:
- * 1. 业务异常 {@link BusinessException}: 业务异常
- * 2. 参数校验异常 {@link MethodArgumentNotValidException}: 请求参数校验不通过
- * 3. 系统异常 {@link Exception}: 非预期的系统异常
- *
- * 所有异常都会被转换为统一的响应格式:
- * {
- * "code": "错误码",
- * "message": "错误信息",
- * "data": null
- * }
*
+ *
处理三类异常: 1. 业务异常 {@link BusinessException}: 业务异常 2. 参数校验异常 {@link
+ * MethodArgumentNotValidException}: 请求参数校验不通过 3. 系统异常 {@link Exception}: 非预期的系统异常
+ *
+ *
所有异常都会被转换为统一的响应格式: { "code": "错误码", "message": "错误信息", "data": null }
*/
@Slf4j
@RestControllerAdvice
@@ -53,34 +44,40 @@ public class ExceptionAdvice {
@ExceptionHandler(BusinessException.class)
public ResponseEntity> handleBusinessException(BusinessException e) {
log.warn("[Business Exception] code: {}, message: {}", e.getCode(), e.getMessage());
- return ResponseEntity
- .status(e.getStatus())
+ return ResponseEntity.status(e.getStatus())
.body(Response.fail(e.getCode(), e.getMessage()));
}
@ExceptionHandler(MethodArgumentNotValidException.class)
- public ResponseEntity> handleParamVerifyException(MethodArgumentNotValidException e) {
- String message = e.getBindingResult().getFieldErrors().stream()
- .map(fieldError -> fieldError.getField() + ": " + fieldError.getDefaultMessage())
- .collect(Collectors.joining("; "));
+ public ResponseEntity> handleParamVerifyException(
+ MethodArgumentNotValidException e) {
+ String message =
+ e.getBindingResult().getFieldErrors().stream()
+ .map(
+ fieldError ->
+ fieldError.getField()
+ + ": "
+ + fieldError.getDefaultMessage())
+ .collect(Collectors.joining("; "));
// 参数校验失败属于用户行为,不打印堆栈
log.warn("[Validation Exception] invalid parameters: {}", message);
- return ResponseEntity
- .status(ErrorCode.INVALID_PARAMETER.getStatus())
+ return ResponseEntity.status(ErrorCode.INVALID_PARAMETER.getStatus())
.body(Response.fail(ErrorCode.INVALID_PARAMETER.name(), message));
}
@ExceptionHandler(Exception.class)
public ResponseEntity> handleSystemException(Exception e) {
// 完整打印异常堆栈信息,包括异常类型、消息和堆栈跟踪
- log.error("[System Exception] type: {}, message: {}",
- e.getClass().getSimpleName(), e.getMessage(), e);
-
- return ResponseEntity
- .status(ErrorCode.INTERNAL_ERROR.getStatus())
- .body(Response.fail(
- ErrorCode.INTERNAL_ERROR.name(),
- ErrorCode.INTERNAL_ERROR.getMessage(e.getMessage())
- ));
+ log.error(
+ "[System Exception] type: {}, message: {}",
+ e.getClass().getSimpleName(),
+ e.getMessage(),
+ e);
+
+ return ResponseEntity.status(ErrorCode.INTERNAL_ERROR.getStatus())
+ .body(
+ Response.fail(
+ ErrorCode.INTERNAL_ERROR.name(),
+ ErrorCode.INTERNAL_ERROR.getMessage(e.getMessage())));
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java
index 34a3d981b..b068319d6 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/advice/ResponseAdvice.java
@@ -21,6 +21,7 @@
import cn.hutool.json.JSONUtil;
import com.alibaba.himarket.core.response.Response;
+import java.lang.reflect.Method;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpStatus;
@@ -33,33 +34,25 @@
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
-import java.lang.reflect.Method;
-
/**
* 统一响应处理
- *
- * 用于封装接口响应数据为统一格式:
- * {
- * "code": "Success",
- * "message": "操作成功",
- * "data": T
- * }
- *
- * 以下情况不会被包装:
- * 1. 返回值已经是 {@link ResponseEntity}
- * 2. 返回值已经是 {@link Response}
- * 3. ExceptionAdvice 已经处理的异常响应(避免二次包装)
+ *
+ *
用于封装接口响应数据为统一格式: { "code": "Success", "message": "操作成功", "data": T }
+ *
+ *
以下情况不会被包装: 1. 返回值已经是 {@link ResponseEntity} 2. 返回值已经是 {@link Response} 3. ExceptionAdvice
+ * 已经处理的异常响应(避免二次包装)
*/
@RestControllerAdvice
@Slf4j
public class ResponseAdvice implements ResponseBodyAdvice {
@Override
- public boolean supports(MethodParameter returnType, Class extends HttpMessageConverter>> converterType) {
+ public boolean supports(
+ MethodParameter returnType, Class extends HttpMessageConverter>> converterType) {
// 排除Swagger相关路径
Class> declaringClass = returnType.getDeclaringClass();
- if (declaringClass.getName().contains("org.springdoc") ||
- declaringClass.getName().contains("springfox.documentation")) {
+ if (declaringClass.getName().contains("org.springdoc")
+ || declaringClass.getName().contains("springfox.documentation")) {
return false;
}
Method method = returnType.getMethod();
@@ -68,18 +61,24 @@ public boolean supports(MethodParameter returnType, Class extends HttpMessageC
}
Class> type = returnType.getMethod().getReturnType();
- return !type.equals(ResponseEntity.class) && !type.equals(Response.class) && !type.equals(SseEmitter.class);
+ return !type.equals(ResponseEntity.class)
+ && !type.equals(Response.class)
+ && !type.equals(SseEmitter.class);
}
@Override
- public Object beforeBodyWrite(Object body, MethodParameter returnType,
- MediaType selectedContentType, Class extends HttpMessageConverter>> selectedConverterType,
- ServerHttpRequest request, ServerHttpResponse response) {
+ public Object beforeBodyWrite(
+ Object body,
+ MethodParameter returnType,
+ MediaType selectedContentType,
+ Class extends HttpMessageConverter>> selectedConverterType,
+ ServerHttpRequest request,
+ ServerHttpResponse response) {
// 如果body已经是Response对象,说明是ExceptionAdvice处理过的异常响应,直接返回,避免二次包装
if (body instanceof Response) {
return body;
}
-
+
// 设置成功响应码
response.setStatusCode(HttpStatus.OK);
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java
index c53df9447..7fda5fc97 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminAuth.java
@@ -19,15 +19,13 @@
package com.alibaba.himarket.core.annotation;
-import org.springframework.security.access.prepost.PreAuthorize;
-
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.springframework.security.access.prepost.PreAuthorize;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasRole('ADMIN')")
-public @interface AdminAuth {
-}
+public @interface AdminAuth {}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java
index 8474b7ba7..10ec368c4 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/AdminOrDeveloperAuth.java
@@ -19,15 +19,13 @@
package com.alibaba.himarket.core.annotation;
-import org.springframework.security.access.prepost.PreAuthorize;
-
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.springframework.security.access.prepost.PreAuthorize;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasRole('ADMIN') or hasRole('DEVELOPER')")
-public @interface AdminOrDeveloperAuth {
-}
+public @interface AdminOrDeveloperAuth {}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java
index c33863203..c1bbf434b 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/annotation/DeveloperAuth.java
@@ -19,15 +19,13 @@
package com.alibaba.himarket.core.annotation;
-import org.springframework.security.access.prepost.PreAuthorize;
-
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.springframework.security.access.prepost.PreAuthorize;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasRole('DEVELOPER')")
-public @interface DeveloperAuth {
-}
+public @interface DeveloperAuth {}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java
index 19d920172..d1b695949 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/CommonConstants.java
@@ -36,5 +36,4 @@ public class CommonConstants {
// HTTP
public static final Integer HTTP_PORT = 80;
public static final Integer HTTPS_PORT = 443;
-
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java
index 197a1326f..2d2325518 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/IdpConstants.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.core.constant;
/**
@@ -25,73 +24,45 @@
*/
public class IdpConstants {
- /**
- * 授权类型
- */
+ /** 授权类型 */
public static final String GRANT_TYPE = "grant_type";
- /**
- * 授权码
- */
+ /** 授权码 */
public static final String CODE = "code";
- /**
- * 重定向地址
- */
+ /** 重定向地址 */
public static final String REDIRECT_URI = "redirect_uri";
- /**
- * 客户端ID
- */
+ /** 客户端ID */
public static final String CLIENT_ID = "client_id";
- /**
- * 客户端密钥
- */
+ /** 客户端密钥 */
public static final String CLIENT_SECRET = "client_secret";
- /**
- * 响应类型
- */
+ /** 响应类型 */
public static final String RESPONSE_TYPE = "response_type";
- /**
- * 授权范围
- */
+ /** 授权范围 */
public static final String SCOPE = "scope";
- /**
- * 状态参数
- */
+ /** 状态参数 */
public static final String STATE = "state";
- /**
- * 用户标识
- */
+ /** 用户标识 */
public static final String SUBJECT = "sub";
- /**
- * 用户名
- */
+ /** 用户名 */
public static final String NAME = "name";
- /**
- * 邮箱
- */
+ /** 邮箱 */
public static final String EMAIL = "email";
- /**
- * 授权端点
- */
+ /** 授权端点 */
public static final String AUTHORIZATION_ENDPOINT = "authorization_endpoint";
- /**
- * 令牌端点
- */
+ /** 令牌端点 */
public static final String TOKEN_ENDPOINT = "token_endpoint";
- /**
- * 用户信息端点
- */
+ /** 用户信息端点 */
public static final String USERINFO_ENDPOINT = "userinfo_endpoint";
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java
index 86453bd8e..fb498e50e 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/JwtConstants.java
@@ -23,104 +23,70 @@ public class JwtConstants {
// region JWT Header
- /**
- * 算法字段
- */
+ /** 算法字段 */
public static final String HEADER_ALG = "alg";
- /**
- * 类型字段
- */
+ /** 类型字段 */
public static final String HEADER_TYP = "typ";
- /**
- * 密钥ID字段
- */
+ /** 密钥ID字段 */
public static final String HEADER_KID = "kid";
- // endregion
+ // endregion
// region JWT Payload
public static final String PAYLOAD_PROVIDER = "provider";
- /**
- * 过期时间
- */
+ /** 过期时间 */
public static final String PAYLOAD_EXP = "exp";
- /**
- * 签发时间
- */
+ /** 签发时间 */
public static final String PAYLOAD_IAT = "iat";
- /**
- * JWT唯一标识
- */
+ /** JWT唯一标识 */
public static final String PAYLOAD_JTI = "jti";
- /**
- * 签发者
- */
+ /** 签发者 */
public static final String PAYLOAD_ISS = "iss";
- /**
- * 主题
- */
+ /** 主题 */
public static final String PAYLOAD_SUB = "sub";
- /**
- * 受众
- */
+ /** 受众 */
public static final String PAYLOAD_AUD = "aud";
- /**
- * 门户ID
- */
+ /** 门户ID */
public static final String PAYLOAD_PORTAL = "portal";
- // endregion
+ // endregion
// region 自定义Payload
- /**
- * 用户ID(默认身份映射字段)
- */
+ /** 用户ID(默认身份映射字段) */
public static final String PAYLOAD_USER_ID = "userId";
- /**
- * 用户名(默认身份映射字段)
- */
+ /** 用户名(默认身份映射字段) */
public static final String PAYLOAD_USER_NAME = "name";
- /**
- * 邮箱(默认身份映射字段)
- */
+ /** 邮箱(默认身份映射字段) */
public static final String PAYLOAD_EMAIL = "email";
- // endregion
+ // endregion
// region OAuth2相关常量
- /**
- * JWT Bearer Grant类型
- */
- public static final String JWT_BEARER_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:jwt-bearer";
+ /** JWT Bearer Grant类型 */
+ public static final String JWT_BEARER_GRANT_TYPE =
+ "urn:ietf:params:oauth:grant-type:jwt-bearer";
- /**
- * Token类型
- */
+ /** Token类型 */
public static final String TOKEN_TYPE_BEARER = "Bearer";
- /**
- * 默认Token过期时间(秒)
- */
+ /** 默认Token过期时间(秒) */
public static final int DEFAULT_TOKEN_EXPIRES_IN = 3600;
-
- /**
- * JWT Token类型
- */
+ /** JWT Token类型 */
public static final String JWT_TOKEN_TYPE = "JWT";
// endregion
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java
index 138c9526d..5b79c7409 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/constant/Resources.java
@@ -57,7 +57,5 @@ public class Resources {
public static final String SUBSCRIPTION = "Subscription";
-
public static final String CHAT_SESSION = "ChatSession";
-
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java
index a73f223ab..f217dc36e 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/BusinessException.java
@@ -37,6 +37,7 @@ public BusinessException(ErrorCode errorCode, Object... args) {
/**
* 带原始异常的构造函数,用于保留完整的异常栈信息
+ *
* @param errorCode 错误码
* @param cause 原始异常
* @param args 错误消息参数
@@ -47,4 +48,4 @@ public BusinessException(ErrorCode errorCode, Throwable cause, Object... args) {
this.code = errorCode.name();
this.message = errorCode.getMessage(args);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java
index 2c74fbfd0..325d401d1 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ChatError.java
@@ -1,16 +1,14 @@
package com.alibaba.himarket.core.exception;
+import java.util.concurrent.TimeoutException;
import lombok.Getter;
import org.springframework.web.reactive.function.client.WebClientResponseException;
-import java.util.concurrent.TimeoutException;
-
/**
* @author zh
*/
@Getter
public enum ChatError {
-
WEB_RESPONSE_ERROR("Web response error"),
TIMEOUT("Timeout"),
@@ -18,7 +16,6 @@ public enum ChatError {
UNKNOWN_ERROR("Unknown error"),
LLM_ERROR("LLM error, please check the input"),
-
;
private final String description;
@@ -36,4 +33,4 @@ public static ChatError from(Throwable error) {
}
return UNKNOWN_ERROR;
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java
index c452657f1..96484db40 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/exception/ErrorCode.java
@@ -30,43 +30,27 @@ public enum ErrorCode {
// 客户端错误 (400-499)
- /**
- * 参数无效
- */
+ /** 参数无效 */
INVALID_PARAMETER(HttpStatus.BAD_REQUEST, "无效的请求参数:{}"),
- /**
- * 非法请求
- */
+ /** 非法请求 */
INVALID_REQUEST(HttpStatus.BAD_REQUEST, "请求无效:{}"),
- /**
- * 认证失败
- */
+ /** 认证失败 */
UNAUTHORIZED(HttpStatus.UNAUTHORIZED, "认证失败:{}"),
- /**
- * 资源不存在
- */
+ /** 资源不存在 */
NOT_FOUND(HttpStatus.NOT_FOUND, "资源不存在:{}:{}"),
- /**
- * 资源冲突
- */
+ /** 资源冲突 */
CONFLICT(HttpStatus.CONFLICT, "资源冲突:{}"),
-
// 服务端错误 (500-599)
- /**
- * 非预期错误
- */
+ /** 非预期错误 */
INTERNAL_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "服务器内部错误:{}"),
- /**
- * 网关操作相关错误
- */
+ /** 网关操作相关错误 */
GATEWAY_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "网关错误:{}"),
-
;
private final HttpStatus status;
@@ -81,4 +65,3 @@ public String getMessage(Object... args) {
}
}
}
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java b/himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java
index 4ef8bec4f..636f5d049 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/response/Response.java
@@ -19,10 +19,10 @@
package com.alibaba.himarket.core.response;
+import lombok.AllArgsConstructor;
import lombok.Data;
-import lombok.experimental.Accessors;
import lombok.NoArgsConstructor;
-import lombok.AllArgsConstructor;
+import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@@ -34,15 +34,10 @@ public class Response {
private T data;
public static Response ok(T data) {
- return new Response()
- .setCode("SUCCESS")
- .setData(data);
+ return new Response().setCode("SUCCESS").setData(data);
}
public static Response fail(String code, String message) {
- return new Response()
- .setCode(code)
- .setMessage(message);
+ return new Response().setCode(code).setMessage(message);
}
}
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java b/himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java
index 1520dc48d..599e5ae0b 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/security/ContextHolder.java
@@ -79,7 +79,10 @@ private UserType getCurrentUserType() {
.map(authority -> authority.substring(5))
.map(role -> EnumUtil.likeValueOf(UserType.class, role))
.findFirst()
- .orElseThrow(() -> new AuthenticationCredentialsNotFoundException("User type not found in authentication"));
+ .orElseThrow(
+ () ->
+ new AuthenticationCredentialsNotFoundException(
+ "User type not found in authentication"));
}
public boolean isAdministrator() {
@@ -105,8 +108,9 @@ public boolean isDeveloper() {
*/
private Authentication getAuthenticationFromContext() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
- if (authentication == null || !authentication.isAuthenticated() ||
- authentication instanceof AnonymousAuthenticationToken) {
+ if (authentication == null
+ || !authentication.isAuthenticated()
+ || authentication instanceof AnonymousAuthenticationToken) {
throw new AuthenticationCredentialsNotFoundException("No authenticated user found");
}
return authentication;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java b/himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java
index e0f612462..c17365cdb 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/security/DeveloperAuthenticationProvider.java
@@ -20,6 +20,7 @@
package com.alibaba.himarket.core.security;
import com.alibaba.himarket.service.DeveloperService;
+import java.util.Collections;
import lombok.RequiredArgsConstructor;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.BadCredentialsException;
@@ -30,8 +31,6 @@
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.stereotype.Component;
-import java.util.Collections;
-
@Component
@RequiredArgsConstructor
public class DeveloperAuthenticationProvider implements AuthenticationProvider {
@@ -39,13 +38,15 @@ public class DeveloperAuthenticationProvider implements AuthenticationProvider {
private final DeveloperService developerService;
@Override
- public Authentication authenticate(Authentication authentication) throws AuthenticationException {
+ public Authentication authenticate(Authentication authentication)
+ throws AuthenticationException {
String username = authentication.getName();
String password = authentication.getCredentials().toString();
try {
developerService.login(username, password);
GrantedAuthority authority = new SimpleGrantedAuthority("ROLE_DEVELOPER");
- return new UsernamePasswordAuthenticationToken(username, null, Collections.singletonList(authority));
+ return new UsernamePasswordAuthenticationToken(
+ username, null, Collections.singletonList(authority));
} catch (Exception e) {
throw new BadCredentialsException("用户名或密码错误");
}
@@ -55,4 +56,4 @@ public Authentication authenticate(Authentication authentication) throws Authent
public boolean supports(Class> authentication) {
return UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java b/himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java
index fca866810..8a7e21247 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/security/JwtAuthenticationFilter.java
@@ -22,49 +22,49 @@
import com.alibaba.himarket.core.constant.CommonConstants;
import com.alibaba.himarket.core.utils.TokenUtil;
import com.alibaba.himarket.support.common.User;
-import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.web.filter.OncePerRequestFilter;
-
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collections;
+import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.web.filter.OncePerRequestFilter;
@Slf4j
public class JwtAuthenticationFilter extends OncePerRequestFilter {
// 白名单路径
private static final String[] WHITELIST_PATHS = {
- "/admins/init",
- "/admins/need-init",
- "/admins/login",
- "/developers",
- "/developers/login",
- "/developers/authorize",
- "/developers/callback",
- "/developers/providers",
- "/developers/oidc/authorize",
- "/developers/oidc/callback",
- "/developers/oidc/providers",
- "/developers/oauth2/token",
- "/portal/swagger-ui.html",
- "/portal/swagger-ui/**",
- "/portal/v3/api-docs/**",
- "/favicon.ico",
- "/error"
+ "/admins/init",
+ "/admins/need-init",
+ "/admins/login",
+ "/developers",
+ "/developers/login",
+ "/developers/authorize",
+ "/developers/callback",
+ "/developers/providers",
+ "/developers/oidc/authorize",
+ "/developers/oidc/callback",
+ "/developers/oidc/providers",
+ "/developers/oauth2/token",
+ "/portal/swagger-ui.html",
+ "/portal/swagger-ui/**",
+ "/portal/v3/api-docs/**",
+ "/favicon.ico",
+ "/error"
};
@Override
- protected void doFilterInternal(@NotNull HttpServletRequest request,
- @NotNull HttpServletResponse response,
- @NotNull FilterChain chain)
+ protected void doFilterInternal(
+ @NotNull HttpServletRequest request,
+ @NotNull HttpServletResponse response,
+ @NotNull FilterChain chain)
throws IOException, ServletException {
// 检查是否是白名单路径
@@ -115,11 +115,11 @@ private void authenticateRequest(String token) {
User user = TokenUtil.parseUser(token);
// 设置认证信息
String role = CommonConstants.ROLE_PREFIX + user.getUserType().name();
- Authentication authentication = new UsernamePasswordAuthenticationToken(
- user.getUserId(),
- null,
- Collections.singletonList(new SimpleGrantedAuthority(role))
- );
+ Authentication authentication =
+ new UsernamePasswordAuthenticationToken(
+ user.getUserId(),
+ null,
+ Collections.singletonList(new SimpleGrantedAuthority(role)));
SecurityContextHolder.getContext().setAuthentication(authentication);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java
index d87043fec..99e33b686 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/CacheUtil.java
@@ -2,7 +2,6 @@
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
-
import java.util.concurrent.TimeUnit;
/**
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java
index abae6ad8e..345c60713 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/IdGenerator.java
@@ -23,19 +23,13 @@
/**
* ID生成器
- *
- * 格式为: prefix + 24位字符串
- *
- * 支持的ID类型:
- * - 门户ID: portal-xxxxxx
- * - API产品ID: api-xxxxxx
- * - 开发者ID: dev-xxxxxx
- * - 管理员ID: admin-xxxxxx
+ *
+ *
格式为: prefix + 24位字符串
+ *
+ *
支持的ID类型: - 门户ID: portal-xxxxxx - API产品ID: api-xxxxxx - 开发者ID: dev-xxxxxx - 管理员ID: admin-xxxxxx
* - 产品类别ID: category-xxxxxx
- *
- * 注意:
- * - API ID由网关同步,不在此生成
*
+ *
注意: - API ID由网关同步,不在此生成
*/
public class IdGenerator {
@@ -94,4 +88,4 @@ public static String genChatId() {
public static String genIdWithPrefix(String prefix) {
return prefix + ObjectId.next();
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java
index 47153ccfa..599123967 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/PasswordHasher.java
@@ -32,4 +32,4 @@ public static String hash(String plainPassword) {
public static boolean verify(String plainPassword, String hashed) {
return ENCODER.matches(plainPassword, hashed);
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java
index aa353bbbb..5fc3064e4 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/core/utils/TokenUtil.java
@@ -29,7 +29,6 @@
import com.alibaba.himarket.core.constant.CommonConstants;
import com.alibaba.himarket.support.common.User;
import com.alibaba.himarket.support.enums.UserType;
-
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import java.nio.charset.StandardCharsets;
@@ -90,10 +89,11 @@ public static String generateDeveloperToken(String userId) {
private static String generateToken(UserType userType, String userId) {
long now = System.currentTimeMillis();
- Map claims = MapUtil.builder()
- .put(CommonConstants.USER_TYPE, userType.name())
- .put(CommonConstants.USER_ID, userId)
- .build();
+ Map claims =
+ MapUtil.builder()
+ .put(CommonConstants.USER_TYPE, userType.name())
+ .put(CommonConstants.USER_ID, userId)
+ .build();
return JWT.create()
.addPayloads(claims)
@@ -113,7 +113,9 @@ public static User parseUser(String token) {
JWT jwt = JWTUtil.parseToken(token);
// 验证签名
- boolean isValid = jwt.setSigner(JWTSignerUtil.hs256(getJwtSecret().getBytes(StandardCharsets.UTF_8))).verify();
+ boolean isValid =
+ jwt.setSigner(JWTSignerUtil.hs256(getJwtSecret().getBytes(StandardCharsets.UTF_8)))
+ .verify();
if (!isValid) {
throw new IllegalArgumentException("Invalid token signature");
}
@@ -141,12 +143,21 @@ public static String getTokenFromRequest(HttpServletRequest request) {
// 从Cookie中获取token
if (StrUtil.isBlank(token)) {
- token = Optional.ofNullable(request.getCookies())
- .flatMap(cookies -> Arrays.stream(cookies)
- .filter(cookie -> CommonConstants.AUTH_TOKEN_COOKIE.equals(cookie.getName()))
- .map(Cookie::getValue)
- .findFirst())
- .orElse(null);
+ token =
+ Optional.ofNullable(request.getCookies())
+ .flatMap(
+ cookies ->
+ Arrays.stream(cookies)
+ .filter(
+ cookie ->
+ CommonConstants
+ .AUTH_TOKEN_COOKIE
+ .equals(
+ cookie
+ .getName()))
+ .map(Cookie::getValue)
+ .findFirst())
+ .orElse(null);
}
if (StrUtil.isBlank(token) || isTokenRevoked(token)) {
return null;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java
index e804b92c9..e721d5149 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/InputConverter.java
@@ -21,14 +21,13 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
-
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
/**
* 一个通用的转换器,用于将DTO转换为领域对象
- *
- * 例如:CreatePortalRequest -> Portal
+ *
+ *
例如:CreatePortalRequest -> Portal
*
* @param 目标领域对象类型
*/
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java
index ec6e9eccb..5a00ec22e 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosAgentConverter.java
@@ -2,48 +2,40 @@
import com.alibaba.himarket.dto.result.agent.NacosAgentResult;
import com.alibaba.nacos.api.ai.model.a2a.AgentCardVersionInfo;
-import org.springframework.stereotype.Component;
-
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
+import org.springframework.stereotype.Component;
/**
- * Nacos Agent 转换器
- * 与 Gateway 的 AgentAPIResult 保持一致,只转换必要字段
- *
+ * Nacos Agent 转换器 与 Gateway 的 AgentAPIResult 保持一致,只转换必要字段
+ *
* @author HiMarket Team
*/
@Component
public class NacosAgentConverter {
-
- /**
- * 批量转换 AgentCardVersionInfo 列表为 NacosAgentResult 列表
- */
+
+ /** 批量转换 AgentCardVersionInfo 列表为 NacosAgentResult 列表 */
public List convertToAgentResults(
- List agentCards,
- String namespaceId) {
-
+ List agentCards, String namespaceId) {
+
if (agentCards == null || agentCards.isEmpty()) {
return Collections.emptyList();
}
-
+
return agentCards.stream()
.map(card -> convertToAgentResult(card, namespaceId))
.collect(Collectors.toList());
}
-
- /**
- * 转换单个 AgentCardVersionInfo 为 NacosAgentResult
- */
+
+ /** 转换单个 AgentCardVersionInfo 为 NacosAgentResult */
public NacosAgentResult convertToAgentResult(
- AgentCardVersionInfo agentCard,
- String namespaceId) {
-
+ AgentCardVersionInfo agentCard, String namespaceId) {
+
if (agentCard == null) {
return null;
}
-
+
// 只返回必要字段,与 Gateway 保持一致
// 注意:AgentCardVersionInfo 继承自 AgentCardBasicInfo
// name 和 description 字段来自父类
@@ -54,4 +46,3 @@ public NacosAgentResult convertToAgentResult(
.build();
}
}
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java
index 642948316..2cdac10ba 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/NacosToGatewayToolsConverter.java
@@ -20,15 +20,14 @@
package com.alibaba.himarket.dto.converter;
import com.alibaba.nacos.api.ai.model.mcp.McpServerDetailInfo;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
-import lombok.Data;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import lombok.Data;
@Data
public class NacosToGatewayToolsConverter {
@@ -41,7 +40,7 @@ public void convertFromNacos(McpServerDetailInfo nacosDetail) {
server.setName(nacosDetail.getName());
server.getConfig().put("apiKey", "your-api-key-here");
allowTools.add(nacosDetail.getName());
-
+
if (nacosDetail.getToolSpec() != null) {
convertTools(nacosDetail.getToolSpec());
}
@@ -61,7 +60,7 @@ private void convertTools(Object toolSpec) {
ObjectMapper jsonMapper = new ObjectMapper();
String toolSpecJson = jsonMapper.writeValueAsString(toolSpec);
JsonNode toolSpecNode = jsonMapper.readTree(toolSpecJson);
-
+
if (toolSpecNode.isArray()) {
for (JsonNode toolNode : toolSpecNode) {
Tool tool = convertToolNode(toolNode);
@@ -82,43 +81,46 @@ private void convertTools(Object toolSpec) {
// 转换失败时,tools保持空列表
}
}
-
+
private Tool convertToolNode(JsonNode toolNode) {
Tool result = new Tool();
result.setName(getStringValue(toolNode, "name"));
result.setDescription(getStringValue(toolNode, "description"));
-
+
if (result.getName() == null) {
return null;
}
-
+
List args = convertArgs(toolNode);
result.setArgs(args);
result.setRequestTemplate(buildDefaultRequestTemplate(result.getName()));
result.setResponseTemplate(buildDefaultResponseTemplate());
-
+
return result;
}
-
+
private List convertArgs(JsonNode toolNode) {
List args = new ArrayList<>();
-
+
try {
if (toolNode.has("inputSchema") && toolNode.get("inputSchema").has("properties")) {
JsonNode properties = toolNode.get("inputSchema").get("properties");
- properties.fields().forEachRemaining(entry -> {
- String argName = entry.getKey();
- JsonNode argNode = entry.getValue();
-
- Arg arg = new Arg();
- arg.setName(argName);
- arg.setDescription(getStringValue(argNode, "description"));
- arg.setType(getStringValue(argNode, "type"));
- arg.setRequired(getBooleanValue(argNode, "required", false));
- arg.setPosition("query");
-
- args.add(arg);
- });
+ properties
+ .fields()
+ .forEachRemaining(
+ entry -> {
+ String argName = entry.getKey();
+ JsonNode argNode = entry.getValue();
+
+ Arg arg = new Arg();
+ arg.setName(argName);
+ arg.setDescription(getStringValue(argNode, "description"));
+ arg.setType(getStringValue(argNode, "type"));
+ arg.setRequired(getBooleanValue(argNode, "required", false));
+ arg.setPosition("query");
+
+ args.add(arg);
+ });
} else if (toolNode.has("args") && toolNode.get("args").isArray()) {
JsonNode argsNode = toolNode.get("args");
for (JsonNode argNode : argsNode) {
@@ -129,44 +131,46 @@ private List convertArgs(JsonNode toolNode) {
arg.setRequired(getBooleanValue(argNode, "required", false));
arg.setPosition(getStringValue(argNode, "position"));
arg.setDefaultValue(getStringValue(argNode, "default"));
-
+
args.add(arg);
}
}
} catch (Exception e) {
// 转换失败时,args保持空列表
}
-
+
return args;
}
-
+
private RequestTemplate buildDefaultRequestTemplate(String toolName) {
RequestTemplate template = new RequestTemplate();
template.setUrl("https://api.example.com/v1/" + toolName);
template.setMethod("GET");
-
+
Header header = new Header();
header.setKey("Content-Type");
header.setValue("application/json");
template.getHeaders().add(header);
-
+
return template;
}
-
+
private ResponseTemplate buildDefaultResponseTemplate() {
ResponseTemplate template = new ResponseTemplate();
template.setBody("");
return template;
}
-
+
private String getStringValue(JsonNode node, String fieldName) {
- return node.has(fieldName) && !node.get(fieldName).isNull() ?
- node.get(fieldName).asText() : null;
+ return node.has(fieldName) && !node.get(fieldName).isNull()
+ ? node.get(fieldName).asText()
+ : null;
}
-
+
private boolean getBooleanValue(JsonNode node, String fieldName, boolean defaultValue) {
- return node.has(fieldName) && !node.get(fieldName).isNull() ?
- node.get(fieldName).asBoolean() : defaultValue;
+ return node.has(fieldName) && !node.get(fieldName).isNull()
+ ? node.get(fieldName).asBoolean()
+ : defaultValue;
}
@Data
@@ -174,7 +178,7 @@ public static class Server {
private String name;
private Map config = new HashMap<>();
}
-
+
@Data
public static class Tool {
private String name;
@@ -183,7 +187,7 @@ public static class Tool {
private RequestTemplate requestTemplate;
private ResponseTemplate responseTemplate;
}
-
+
@Data
public static class Arg {
private String name;
@@ -194,19 +198,19 @@ public static class Arg {
private String defaultValue;
private List enumValues;
}
-
+
@Data
public static class RequestTemplate {
private String url;
private String method;
private List headers = new ArrayList<>();
}
-
+
@Data
public static class ResponseTemplate {
private String body;
}
-
+
@Data
public static class Header {
private String key;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java
index 4fc260315..b54a2ca65 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/OutputConverter.java
@@ -40,4 +40,3 @@ default CopyOptions configOptions() {
return CopyOptions.create().ignoreNullValue().ignoreError();
}
}
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java
index a6fe909fe..a7e523e94 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/converter/SlsResponseConverter.java
@@ -1,31 +1,25 @@
package com.alibaba.himarket.dto.converter;
+import com.alibaba.himarket.dto.params.sls.GenericSlsQueryResponse;
+import com.alibaba.himarket.dto.params.sls.TimeSeriesChartResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
-import com.alibaba.himarket.dto.params.sls.GenericSlsQueryResponse;
-import com.alibaba.himarket.dto.params.sls.TimeSeriesChartResponse;
-
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
-/**
- * SLS查询响应转换工具类
- * 用于将通用查询结果转换为前端所需的各种格式
- *
- */
+/** SLS查询响应转换工具类 用于将通用查询结果转换为前端所需的各种格式 */
@Slf4j
public class SlsResponseConverter {
/**
* 转换为时序图表数据
*
- * @param response 通用查询响应
- * @param timeField 时间字段名(如: time, __time__)
- * @param valueField 数值字段名(如: count, total)
- * @param interval 时间间隔(秒)
+ * @param response 通用查询响应
+ * @param timeField 时间字段名(如: time, __time__)
+ * @param valueField 数值字段名(如: count, total)
+ * @param interval 时间间隔(秒)
* @return 时序图表响应
*/
public static TimeSeriesChartResponse toTimeSeriesChart(
@@ -39,17 +33,19 @@ public static TimeSeriesChartResponse toTimeSeriesChart(
return null;
}
- List> data = response.getAggregations() != null
- ? response.getAggregations()
- : response.getLogs();
+ List> data =
+ response.getAggregations() != null
+ ? response.getAggregations()
+ : response.getLogs();
if (data == null || data.isEmpty()) {
return TimeSeriesChartResponse.builder()
.dataPoints(new ArrayList<>())
- .metadata(TimeSeriesChartResponse.ChartMetadata.builder()
- .totalCount(0L)
- .interval(interval)
- .build())
+ .metadata(
+ TimeSeriesChartResponse.ChartMetadata.builder()
+ .totalCount(0L)
+ .interval(interval)
+ .build())
.build();
}
@@ -64,10 +60,11 @@ public static TimeSeriesChartResponse toTimeSeriesChart(
}
try {
- TimeSeriesChartResponse.TimeSeriesDataPoint point = TimeSeriesChartResponse.TimeSeriesDataPoint.builder()
- .timestamp(time)
- .value(Double.parseDouble(value))
- .build();
+ TimeSeriesChartResponse.TimeSeriesDataPoint point =
+ TimeSeriesChartResponse.TimeSeriesDataPoint.builder()
+ .timestamp(time)
+ .value(Double.parseDouble(value))
+ .build();
// 添加其他维度字段
Map dimensions = new HashMap<>();
@@ -87,17 +84,15 @@ public static TimeSeriesChartResponse toTimeSeriesChart(
}
}
- TimeSeriesChartResponse.ChartMetadata metadata = TimeSeriesChartResponse.ChartMetadata.builder()
- .totalCount((long) dataPoints.size())
- .interval(interval)
- .xAxisLabel("Time")
- .yAxisLabel(valueField)
- .build();
-
- return TimeSeriesChartResponse.builder()
- .dataPoints(dataPoints)
- .metadata(metadata)
- .build();
+ TimeSeriesChartResponse.ChartMetadata metadata =
+ TimeSeriesChartResponse.ChartMetadata.builder()
+ .totalCount((long) dataPoints.size())
+ .interval(interval)
+ .xAxisLabel("Time")
+ .yAxisLabel(valueField)
+ .build();
+
+ return TimeSeriesChartResponse.builder().dataPoints(dataPoints).metadata(metadata).build();
}
/**
@@ -108,8 +103,7 @@ public static TimeSeriesChartResponse toTimeSeriesChart(
* @return 时序图表响应
*/
public static TimeSeriesChartResponse toTimeSeriesChart(
- GenericSlsQueryResponse response,
- Integer interval) {
+ GenericSlsQueryResponse response, Integer interval) {
return toTimeSeriesChart(response, "time", "count", interval);
}
@@ -166,15 +160,13 @@ public static Map toStatistics(GenericSlsQueryResponse response)
/**
* 转换为饼图数据
*
- * @param response 通用查询响应
+ * @param response 通用查询响应
* @param labelField 标签字段名
* @param valueField 数值字段名
* @return 饼图数据
*/
public static List> toPieChart(
- GenericSlsQueryResponse response,
- String labelField,
- String valueField) {
+ GenericSlsQueryResponse response, String labelField, String valueField) {
List> pieData = new ArrayList<>();
@@ -182,9 +174,10 @@ public static List> toPieChart(
return pieData;
}
- List> data = response.getAggregations() != null
- ? response.getAggregations()
- : response.getLogs();
+ List> data =
+ response.getAggregations() != null
+ ? response.getAggregations()
+ : response.getLogs();
if (data == null) {
return pieData;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java
index a064687bc..76e6fd051 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminCreateParam.java
@@ -21,13 +21,10 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Administrator;
-import lombok.Data;
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
-/**
- * 管理员注册/创建参数DTO
- *
- */
+/** 管理员注册/创建参数DTO */
@Data
public class AdminCreateParam implements InputConverter {
@@ -36,4 +33,4 @@ public class AdminCreateParam implements InputConverter {
@NotBlank(message = "密码不能为空")
private String password;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java
index 78cee0cf7..9843ac55b 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/AdminLoginParam.java
@@ -19,13 +19,10 @@
package com.alibaba.himarket.dto.params.admin;
-import lombok.Data;
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
-/**
- * 管理员登录参数DTO
- *
- */
+/** 管理员登录参数DTO */
@Data
public class AdminLoginParam {
@NotBlank(message = "用户名不能为空")
@@ -33,4 +30,4 @@ public class AdminLoginParam {
@NotBlank(message = "密码不能为空")
private String password;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java
index 0dfd85a2b..fc5a85e61 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/admin/ResetPasswordParam.java
@@ -21,14 +21,11 @@
import lombok.Data;
-/**
- * 修改密码参数
- *
- */
+/** 修改密码参数 */
@Data
public class ResetPasswordParam {
private String oldPassword;
private String newPassword;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java
index 2124fb429..8eda6da0f 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/category/CreateProductCategoryParam.java
@@ -22,10 +22,9 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.ProductCategory;
import com.alibaba.himarket.support.product.Icon;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
+import lombok.Data;
@Data
public class CreateProductCategoryParam implements InputConverter {
@@ -38,4 +37,4 @@ public class CreateProductCategoryParam implements InputConverter {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java
index bf4d5d2d9..cbb135855 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ChatContext.java
@@ -22,6 +22,8 @@
import com.alibaba.himarket.service.impl.McpClientWrapper;
import com.alibaba.himarket.support.chat.ChatUsage;
import com.google.common.base.Stopwatch;
+import java.io.IOException;
+import java.util.List;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -29,9 +31,6 @@
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.prompt.ChatOptions;
-import java.io.IOException;
-import java.util.List;
-
/**
* @author shihan
* @version : ChatContext, v0.1 2025年11月26日 15:49 shihan Exp $
@@ -41,24 +40,21 @@
@Slf4j
public class ChatContext {
- //region Chat Result - Fields for storing chat response and metrics
+ // region Chat Result - Fields for storing chat response and metrics
private String chatId;
- @Builder.Default
- private StringBuilder answerContent = new StringBuilder();
+ @Builder.Default private StringBuilder answerContent = new StringBuilder();
- @Builder.Default
- Stopwatch stopWatch = Stopwatch.createUnstarted();
+ @Builder.Default Stopwatch stopWatch = Stopwatch.createUnstarted();
private Long firstByteTimeout;
private ChatUsage chatUsage;
- @Builder.Default
- private Boolean success = true;
+ @Builder.Default private Boolean success = true;
// endregion
- //region Chat Input - Fields for chat request and configuration
+ // region Chat Input - Fields for chat request and configuration
private List messages;
private ChatOptions chatOptions;
@@ -69,11 +65,9 @@ public class ChatContext {
private List mcpClientWrappers;
- /**
- * Current round number of tool-calling in the chat
- */
- @Builder.Default
- private int round = 0;
+ /** Current round number of tool-calling in the chat */
+ @Builder.Default private int round = 0;
+
// endregion
public void start() {
@@ -109,15 +103,14 @@ public int nextRound() {
public void close() {
if (CollUtil.isNotEmpty(mcpClientWrappers)) {
- mcpClientWrappers.forEach(mcpClientWrapper -> {
- try {
- mcpClientWrapper.close();
- } catch (IOException e) {
- log.warn("Close mcp client error", e);
- }
- });
+ mcpClientWrappers.forEach(
+ mcpClientWrapper -> {
+ try {
+ mcpClientWrapper.close();
+ } catch (IOException e) {
+ log.warn("Close mcp client error", e);
+ }
+ });
}
}
}
-
-
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java
index 056ddb5a3..0e2aa0dcc 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatParam.java
@@ -3,70 +3,49 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Chat;
import com.alibaba.himarket.support.chat.attachment.ChatAttachmentConfig;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import java.util.List;
+import lombok.Data;
@Data
public class CreateChatParam implements InputConverter {
- /**
- * Session ID
- */
+ /** Session ID */
@NotBlank(message = "sessionId cannot be empty")
private String sessionId;
- /**
- * Conversation ID
- */
+ /** Conversation ID */
@NotBlank(message = "conversationId cannot be empty")
private String conversationId;
- /**
- * Question ID, generated by the client
- */
+ /** Question ID, generated by the client */
@NotBlank(message = "questionId cannot be empty")
private String questionId;
- /**
- * Answer ID, generated by server
- */
+ /** Answer ID, generated by server */
private String answerId;
- /**
- * Product ID, must be the same as the product ID used to create the session
- */
+ /** Product ID, must be the same as the product ID used to create the session */
@NotBlank(message = "productId cannot be empty")
private String productId;
- /**
- * Question
- */
+ /** Question */
@NotBlank(message = "question cannot be empty")
private String question;
- /**
- * Multi-modal content
- */
+ /** Multi-modal content */
private List attachments;
- /**
- * MCP servers to use in chat
- */
+ /** MCP servers to use in chat */
private List mcpProducts;
- /**
- * If need stream
- */
+ /** If need stream */
private Boolean stream = true;
- /**
- * If need memory
- */
+ /** If need memory */
private Boolean needMemory = true;
-
+
private Boolean enableWebSearch = false;
-
+
private String searchType = "";
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java
index 371f91db3..30491bb1e 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/CreateChatSessionParam.java
@@ -3,31 +3,24 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.ChatSession;
import com.alibaba.himarket.support.enums.TalkType;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.List;
+import lombok.Data;
@Data
public class CreateChatSessionParam implements InputConverter {
- /**
- * Products to use
- */
+ /** Products to use */
@NotEmpty(message = "products cannot be empty")
private List products;
- /**
- * Model or Agent
- */
+ /** Model or Agent */
@NotNull(message = "talkType cannot be null")
private TalkType talkType;
- /**
- * Session name
- */
+ /** Session name */
@NotBlank(message = "name cannot be empty")
private String name;
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java
index 4b41d1d7c..72431a415 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/InvokeModelParam.java
@@ -4,11 +4,10 @@
import com.alibaba.himarket.dto.result.product.ProductResult;
import com.alibaba.himarket.support.chat.ChatMessage;
import com.alibaba.himarket.support.chat.mcp.MCPTransportConfig;
+import java.util.List;
import lombok.Builder;
import lombok.Data;
-import java.util.List;
-
/**
* @author zh
*/
@@ -16,43 +15,27 @@
@Builder
public class InvokeModelParam {
- /**
- * Unique ID
- */
+ /** Unique ID */
private String chatId;
- /**
- * Model Product
- */
+ /** Model Product */
private ProductResult product;
- /**
- * User question
- */
+ /** User question */
private String userQuestion;
- /**
- * Chat messages in OpenAI-compatible format
- */
+ /** Chat messages in OpenAI-compatible format */
private List chatMessages;
- /**
- * If need web search
- */
+ /** If need web search */
private Boolean enableWebSearch;
- /**
- * Gateway Ips, used to request gatewy
- */
+ /** Gateway Ips, used to request gatewy */
private List gatewayIps;
- /**
- * MCP servers with transport config
- */
+ /** MCP servers with transport config */
private List mcpConfigs;
- /**
- * Credential for invoking the Model and MCP
- */
+ /** Credential for invoking the Model and MCP */
private CredentialContext credentialContext;
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java
index 788a52d6a..49a40a803 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/McpToolMeta.java
@@ -31,20 +31,15 @@
@NoArgsConstructor
@AllArgsConstructor
public class McpToolMeta {
- /**
- * 工具名称
- */
+ /** 工具名称 */
private String toolName;
- /**
- * 工具中文名称
- */
+
+ /** 工具中文名称 */
private String toolNameCn;
- /**
- * 对应的mcp server名称
- */
+
+ /** 对应的mcp server名称 */
private String mcpName;
- /**
- * 对应的mcp server中文名称
- */
+
+ /** 对应的mcp server中文名称 */
private String mcpNameCn;
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java
index 362c83602..56d694827 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/chat/ToolContext.java
@@ -18,17 +18,16 @@
*/
package com.alibaba.himarket.dto.params.chat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.apache.commons.collections.MapUtils;
import org.springframework.ai.tool.ToolCallback;
import org.springframework.ai.tool.definition.ToolDefinition;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
/**
* @author shihan
* @version : ToolContext, v0.1 2025年11月26日 16:22 shihan Exp $
@@ -36,9 +35,9 @@
@Getter
@NoArgsConstructor
public class ToolContext {
- private final List toolCallbacks = new ArrayList<>();
+ private final List toolCallbacks = new ArrayList<>();
private final Map toolDefinitionMap = new HashMap<>();
- private final Map toolMetaMap = new HashMap<>();
+ private final Map toolMetaMap = new HashMap<>();
public static ToolContext of(Map toolsMap) {
ToolContext toolContext = new ToolContext();
@@ -47,11 +46,12 @@ public static ToolContext of(Map toolsMap) {
}
toolContext.toolCallbacks.addAll(toolsMap.values());
- toolsMap.forEach((meta, toolCallback) -> {
- ToolDefinition toolDefinition = toolCallback.getToolDefinition();
- toolContext.toolDefinitionMap.put(toolDefinition.name(), toolDefinition);
- toolContext.toolMetaMap.put(toolDefinition.name(), meta);
- });
+ toolsMap.forEach(
+ (meta, toolCallback) -> {
+ ToolDefinition toolDefinition = toolCallback.getToolDefinition();
+ toolContext.toolDefinitionMap.put(toolDefinition.name(), toolDefinition);
+ toolContext.toolMetaMap.put(toolDefinition.name(), meta);
+ });
return toolContext;
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java
index 5aca46299..9ac276094 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateConsumerParam.java
@@ -21,11 +21,10 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Consumer;
-import lombok.Builder;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
+import lombok.Builder;
+import lombok.Data;
@Data
@Builder
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java
index eaeced4c3..125f03ef2 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateCredentialParam.java
@@ -24,9 +24,8 @@
import com.alibaba.himarket.support.consumer.ApiKeyConfig;
import com.alibaba.himarket.support.consumer.HmacConfig;
import com.alibaba.himarket.support.consumer.JwtConfig;
-import lombok.Data;
-
import jakarta.validation.constraints.AssertTrue;
+import lombok.Data;
@Data
public class CreateCredentialParam implements InputConverter {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java
index 7bcbca225..521569abb 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/CreateSubscriptionParam.java
@@ -21,13 +21,12 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.ProductSubscription;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
@Data
public class CreateSubscriptionParam implements InputConverter {
@NotBlank(message = "Product ID不能为空")
private String productId;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java
index 0e663f1e1..4e2bc3262 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/consumer/QuerySubscriptionParam.java
@@ -28,4 +28,4 @@ public class QuerySubscriptionParam {
private SubscriptionStatus status;
private String productName;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java
index f4998ba4b..e1955f3a6 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateDeveloperParam.java
@@ -21,11 +21,10 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Developer;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
+import lombok.Data;
+import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@@ -41,4 +40,4 @@ public class CreateDeveloperParam implements InputConverter {
@Size(max = 256, message = "头像url长度不能超过256个字符")
private String avatarUrl;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java
index b217da4ef..d6bb58940 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/CreateExternalDeveloperParam.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.dto.params.developer;
import com.alibaba.himarket.dto.converter.InputConverter;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java
index df06e4ae9..7258eb095 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/DeveloperLoginParam.java
@@ -19,8 +19,8 @@
package com.alibaba.himarket.dto.params.developer;
-import lombok.Data;
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
@Data
public class DeveloperLoginParam {
@@ -30,4 +30,4 @@ public class DeveloperLoginParam {
@NotBlank(message = "密码不能为空")
private String password;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java
index dae4908c1..c7f16b5d5 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UnbindExternalIdentityParam.java
@@ -21,10 +21,7 @@
import lombok.Data;
-/**
- * 解绑外部身份参数
- *
- */
+/** 解绑外部身份参数 */
@Data
public class UnbindExternalIdentityParam {
@@ -33,4 +30,4 @@ public class UnbindExternalIdentityParam {
private String providerSubject;
private String portalId;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java
index c37254b5d..8234132e2 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperParam.java
@@ -21,24 +21,21 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Developer;
-import lombok.Data;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Size;
+import lombok.Data;
-/**
- * 开发者更新个人信息请求参数
- *
- */
+/** 开发者更新个人信息请求参数 */
@Data
public class UpdateDeveloperParam implements InputConverter {
-
+
@Size(max = 64, message = "用户名长度不能超过64个字符")
private String username;
-
+
@Email(message = "邮箱格式不正确")
@Size(max = 128, message = "邮箱长度不能超过128个字符")
private String email;
-
+
@Size(max = 256, message = "头像URL长度不能超过256个字符")
private String avatarUrl;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java
index fb94147f8..1ffb4e1cf 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/developer/UpdateDeveloperStatusParam.java
@@ -28,4 +28,4 @@ public class UpdateDeveloperStatusParam {
private String portalId;
private DeveloperStatus status;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java
index 0c13f120d..db13966c8 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/ImportGatewayParam.java
@@ -25,13 +25,12 @@
import com.alibaba.himarket.support.enums.GatewayType;
import com.alibaba.himarket.support.gateway.APIGConfig;
import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
-import com.alibaba.himarket.support.gateway.HigressConfig;
import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
-import lombok.Data;
-
+import com.alibaba.himarket.support.gateway.HigressConfig;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Data
public class ImportGatewayParam implements InputConverter {
@@ -54,9 +53,18 @@ public class ImportGatewayParam implements InputConverter {
@AssertTrue(message = "Invalid gateway config")
private boolean isGatewayConfigValid() {
- return gatewayType.isAPIG() && apigConfig != null && StrUtil.isNotBlank(gatewayId) && apigConfig.validate()
- || gatewayType.isAdpAIGateway() && adpAIGatewayConfig != null && StrUtil.isNotBlank(gatewayId) && adpAIGatewayConfig.validate()
- || gatewayType.isApsaraGateway() && apsaraGatewayConfig != null && StrUtil.isNotBlank(gatewayId) && apsaraGatewayConfig.validate()
+ return gatewayType.isAPIG()
+ && apigConfig != null
+ && StrUtil.isNotBlank(gatewayId)
+ && apigConfig.validate()
+ || gatewayType.isAdpAIGateway()
+ && adpAIGatewayConfig != null
+ && StrUtil.isNotBlank(gatewayId)
+ && adpAIGatewayConfig.validate()
+ || gatewayType.isApsaraGateway()
+ && apsaraGatewayConfig != null
+ && StrUtil.isNotBlank(gatewayId)
+ && apsaraGatewayConfig.validate()
|| gatewayType.isHigress() && higressConfig != null && higressConfig.validate();
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java
index dbd952932..2b7e49806 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAPIGParam.java
@@ -22,10 +22,9 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.support.enums.GatewayType;
import com.alibaba.himarket.support.gateway.APIGConfig;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Data
public class QueryAPIGParam implements InputConverter {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java
index ca76619a1..8c0d546f2 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryAdpAIGatewayParam.java
@@ -17,19 +17,15 @@
* under the License.
*/
-
package com.alibaba.himarket.dto.params.gateway;
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.support.gateway.AdpAIGatewayConfig;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
-/**
- * 查询 ADP 网关实例列表所需的连接参数
- */
+/** 查询 ADP 网关实例列表所需的连接参数 */
@Data
public class QueryAdpAIGatewayParam implements InputConverter {
@@ -40,11 +36,11 @@ public class QueryAdpAIGatewayParam implements InputConverter authHeaders;
-
+
@Data
public static class AuthHeader {
private String key;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java
index 1361e4b39..50173f3cb 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/gateway/QueryApsaraGatewayParam.java
@@ -3,9 +3,8 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.support.gateway.ApsaraGatewayConfig;
import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
@Data
public class QueryApsaraGatewayParam implements InputConverter {
@@ -43,13 +42,13 @@ public class QueryApsaraGatewayParam implements InputConverter {
@AssertTrue(message = "Invalid gateway config")
private boolean isGatewayConfigValid() {
return gatewayType.isAPIG() && (apigConfig == null || apigConfig.validate())
- || gatewayType.isAdpAIGateway() && (adpAIGatewayConfig == null || adpAIGatewayConfig.validate())
- || gatewayType.isApsaraGateway() && (apsaraGatewayConfig == null || apsaraGatewayConfig.validate())
+ || gatewayType.isAdpAIGateway()
+ && (adpAIGatewayConfig == null || adpAIGatewayConfig.validate())
+ || gatewayType.isApsaraGateway()
+ && (apsaraGatewayConfig == null || apsaraGatewayConfig.validate())
|| gatewayType.isHigress() && (higressConfig == null || higressConfig.validate());
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java
index fa89742bc..6448c669d 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/CreateNacosParam.java
@@ -21,15 +21,10 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.NacosInstance;
-
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
-/**
- * 创建Nacos实例参数
- *
- */
+/** 创建Nacos实例参数 */
@Data
public class CreateNacosParam implements InputConverter {
@@ -39,9 +34,7 @@ public class CreateNacosParam implements InputConverter {
@NotBlank(message = "服务器地址不能为空")
private String serverUrl;
- /**
- * 可选:客户端指定的 nacosId,若为空则由服务端生成
- */
+ /** 可选:客户端指定的 nacosId,若为空则由服务端生成 */
private String nacosId;
// namespace removed from create param as it's no longer stored on instance
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java
index 1b265c609..7b6846f00 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosNamespaceParam.java
@@ -21,14 +21,9 @@
import lombok.Data;
-/**
- * 查询Nacos命名空间参数
- *
- */
+/** 查询Nacos命名空间参数 */
@Data
public class QueryNacosNamespaceParam extends CreateNacosParam {
- /**
- * runtime namespace to query on remote Nacos (not stored on instance)
- */
- private String namespace;
+ /** runtime namespace to query on remote Nacos (not stored on instance) */
+ private String namespace;
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java
index 9a01b09d6..b0375630c 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/QueryNacosParam.java
@@ -19,16 +19,11 @@
package com.alibaba.himarket.dto.params.nacos;
-import lombok.Data;
-
-import jakarta.validation.constraints.NotBlank;
-
import com.aliyun.teaopenapi.models.Config;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
-/**
- * 查询Nacos集群参数
- *
- */
+/** 查询Nacos集群参数 */
@Data
public class QueryNacosParam {
@@ -42,10 +37,11 @@ public class QueryNacosParam {
private String secretKey;
public Config toClientConfig() {
- Config config = new Config()
- .setAccessKeyId(this.accessKey)
- .setAccessKeySecret(this.secretKey)
- .setRegionId(this.regionId);
+ Config config =
+ new Config()
+ .setAccessKeyId(this.accessKey)
+ .setAccessKeySecret(this.secretKey)
+ .setRegionId(this.regionId);
return config;
}
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java
index 36f294720..8b6e028ba 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/nacos/UpdateNacosParam.java
@@ -21,15 +21,11 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.NacosInstance;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
+import lombok.Data;
-/**
- * 更新Nacos实例参数
- *
- */
+/** 更新Nacos实例参数 */
@Data
public class UpdateNacosParam implements InputConverter {
@@ -57,4 +53,4 @@ public class UpdateNacosParam implements InputConverter {
@Size(max = 512, message = "描述长度不能超过512个字符")
private String description;
- }
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java
index 981bbee35..892fbf797 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java
@@ -23,10 +23,9 @@
import com.alibaba.himarket.entity.PortalDomain;
import com.alibaba.himarket.support.enums.DomainType;
import com.alibaba.himarket.support.enums.ProtocolType;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Data
public class BindDomainParam implements InputConverter {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java
index ca1f74aca..f487390d2 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/CreatePortalParam.java
@@ -22,10 +22,9 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Portal;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
+import lombok.Data;
@Schema(description = "创建门户参数")
@Data
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java
index 3208e1d6e..f16d3ab4d 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/UpdatePortalParam.java
@@ -23,9 +23,8 @@
import com.alibaba.himarket.entity.Portal;
import com.alibaba.himarket.support.portal.PortalSettingConfig;
import com.alibaba.himarket.support.portal.PortalUiConfig;
-import lombok.Data;
-
import jakarta.validation.constraints.Size;
+import lombok.Data;
@Data
public class UpdatePortalParam implements InputConverter {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java
index 8fd3252cb..144717398 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java
@@ -19,20 +19,18 @@
package com.alibaba.himarket.dto.params.product;
-import java.util.List;
-
import cn.hutool.core.util.StrUtil;
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Product;
import com.alibaba.himarket.support.enums.ProductType;
import com.alibaba.himarket.support.product.Icon;
import com.alibaba.himarket.support.product.ProductFeature;
-import lombok.Data;
-
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
+import java.util.List;
+import lombok.Data;
@Data
public class CreateProductParam implements InputConverter {
@@ -52,7 +50,7 @@ public class CreateProductParam implements InputConverter {
private Icon icon;
private Boolean autoApprove;
-
+
private List categories;
private ProductFeature feature;
@@ -64,4 +62,4 @@ public boolean checkIcon() {
}
return icon.getValue().length() < 16 * 1024;
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java
index 442f2bc3d..12fed9eb7 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductRefParam.java
@@ -25,9 +25,8 @@
import com.alibaba.himarket.support.product.APIGRefConfig;
import com.alibaba.himarket.support.product.HigressRefConfig;
import com.alibaba.himarket.support.product.NacosRefConfig;
-import lombok.Data;
-
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Data
public class CreateProductRefParam implements InputConverter {
@@ -48,5 +47,4 @@ public class CreateProductRefParam implements InputConverter {
private HigressRefConfig higressRefConfig;
private NacosRefConfig nacosRefConfig;
-
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java
index 4bca196a7..65569e37e 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/PublishProductParam.java
@@ -21,9 +21,8 @@
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.ProductPublication;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
@Data
public class PublishProductParam implements InputConverter {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java
index 5bc18d8c8..c72218ffb 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductParam.java
@@ -21,9 +21,8 @@
import com.alibaba.himarket.support.enums.ProductStatus;
import com.alibaba.himarket.support.enums.ProductType;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
public class QueryProductParam {
@@ -35,10 +34,10 @@ public class QueryProductParam {
private String name;
private ProductStatus status;
-
+
private List categoryIds;
-
+
private String excludeCategoryId;
private Boolean querySubscribeStatus;
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java
index 23ddad2bb..cce1714df 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/QueryProductSubscriptionParam.java
@@ -17,7 +17,6 @@
* under the License.
*/
-
package com.alibaba.himarket.dto.params.product;
import com.alibaba.himarket.support.enums.SubscriptionStatus;
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java
index 35ed5b6c7..535213f87 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UnPublishProductParam.java
@@ -19,9 +19,8 @@
package com.alibaba.himarket.dto.params.product;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
@Data
public class UnPublishProductParam {
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java
index a3af4b5c5..b7ba9a9f1 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/UpdateProductParam.java
@@ -19,17 +19,15 @@
package com.alibaba.himarket.dto.params.product;
-import java.util.List;
-
import cn.hutool.core.util.StrUtil;
import com.alibaba.himarket.dto.converter.InputConverter;
import com.alibaba.himarket.entity.Product;
import com.alibaba.himarket.support.enums.ProductType;
import com.alibaba.himarket.support.product.Icon;
import com.alibaba.himarket.support.product.ProductFeature;
-import lombok.Data;
-
import jakarta.validation.constraints.AssertTrue;
+import java.util.List;
+import lombok.Data;
@Data
public class UpdateProductParam implements InputConverter {
@@ -47,7 +45,7 @@ public class UpdateProductParam implements InputConverter {
private Icon icon;
private Boolean autoApprove;
-
+
private List categories;
private ProductFeature feature;
@@ -59,4 +57,4 @@ public boolean checkIcon() {
}
return icon.getValue().length() < 16 * 1024;
}
-}
\ No newline at end of file
+}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java
index 370e3478d..803fade1c 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryRequest.java
@@ -1,97 +1,60 @@
package com.alibaba.himarket.dto.params.sls;
-
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import lombok.Data;
-/**
- * 通用SLS日志查询请求
- *
- */
+/** 通用SLS日志查询请求 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GenericSlsQueryRequest {
- /**
- * 用户ID(仅当配置为STS认证时需要)
- * 此字段由Controller层从上下文获取并设置,前端不应传入
- */
- @JsonIgnore
- private String userId;
+ /** 用户ID(仅当配置为STS认证时需要) 此字段由Controller层从上下文获取并设置,前端不应传入 */
+ @JsonIgnore private String userId;
- /**
- * 开始时间(Unix时间戳,秒)
- */
+ /** 开始时间(Unix时间戳,秒) */
private Integer fromTime;
- /**
- * 结束时间(Unix时间戳,秒)
- */
+ /** 结束时间(Unix时间戳,秒) */
private Integer toTime;
- /**
- * 开始时间(字符串:yyyy-MM-dd HH:mm:ss,可选)
- */
+ /** 开始时间(字符串:yyyy-MM-dd HH:mm:ss,可选) */
private String startTime;
- /**
- * 结束时间(字符串:yyyy-MM-dd HH:mm:ss,可选)
- */
+ /** 结束时间(字符串:yyyy-MM-dd HH:mm:ss,可选) */
private String endTime;
- /**
- * Model API(过滤参数,支持多个值OR查询)
- */
+ /** Model API(过滤参数,支持多个值OR查询) */
private String[] api;
- /**
- * Model(过滤参数,支持多个值OR查询)
- */
+ /** Model(过滤参数,支持多个值OR查询) */
private String[] model;
- /**
- * 消费者(过滤参数,支持多个值OR查询)
- */
+ /** 消费者(过滤参数,支持多个值OR查询) */
private String[] consumer;
- /**
- * 实例ID,对应 instanceId(过滤参数,支持多个值OR查询)
- */
+ /** 实例ID,对应 instanceId(过滤参数,支持多个值OR查询) */
private String[] clusterId;
- /**
- * 路由名称(过滤参数,支持多个值OR查询)
- */
+ /** 路由名称(过滤参数,支持多个值OR查询) */
private String[] route;
- /**
- * 服务名(过滤参数,对 upstream_cluster 进行包含匹配,支持多个值OR查询)
- */
+ /** 服务名(过滤参数,对 upstream_cluster 进行包含匹配,支持多个值OR查询) */
private String[] service;
- /**
- * 场景名(如: pv, uv, qps_total 等)
- */
+ /** 场景名(如: pv, uv, qps_total 等) */
private String scenario;
- /**
- * SQL查询语句
- */
+ /** SQL查询语句 */
private String sql;
- /**
- * 单页返回条数(默认1000,上镐5000)
- */
+ /** 单页返回条数(默认1000,上镐5000) */
@Min(1)
@Max(5000)
private Integer pageSize;
- /**
- * 时间间隔(秒,用于时序图表聚合)
- */
+ /** 时间间隔(秒,用于时序图表聚合) */
private Integer interval;
-
}
diff --git a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java
index 44da6ad54..ec5a7dace 100644
--- a/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java
+++ b/himarket-server/src/main/java/com/alibaba/himarket/dto/params/sls/GenericSlsQueryResponse.java
@@ -1,18 +1,14 @@
package com.alibaba.himarket.dto.params.sls;
+import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.List;
import java.util.Map;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
-/**
- * 通用SLS查询响应
- *
- */
+/** 通用SLS查询响应 */
@Data
@Builder
@NoArgsConstructor
@@ -20,48 +16,30 @@
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GenericSlsQueryResponse {
- /**
- * 查询是否成功
- */
+ /** 查询是否成功 */
private Boolean success;
- /**
- * 查询进度(Complete/InComplete)
- */
+ /** 查询进度(Complete/InComplete) */
private String processStatus;
- /**
- * 命中日志条数
- */
+ /** 命中日志条数 */
private Long count;
- /**
- * 查询到的日志列表
- */
+ /** 查询到的日志列表 */
private List