Эх сурвалжийг харах

Merge branch 'master-jdk17' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into develop-api-remove

# Conflicts:
#	yudao-module-ai/yudao-module-ai-biz/pom.xml
YunaiV 5 сар өмнө
parent
commit
eefd5341b3
100 өөрчлөгдсөн 466 нэмэгдсэн , 413 устгасан
  1. 0 1
      yudao-module-ai/pom.xml
  2. 149 3
      yudao-module-ai/yudao-module-ai-biz/pom.xml
  3. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java
  4. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageRespVO.java
  5. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiModelSaveReqVO.java
  6. 3 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java
  7. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/mindmap/AiMindMapDO.java
  8. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiApiKeyDO.java
  9. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiModelDO.java
  10. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/music/AiMusicDO.java
  11. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/write/AiWriteDO.java
  12. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiModelTypeEnum.java
  13. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiPlatformEnum.java
  14. 4 0
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/package-info.java
  15. 15 15
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java
  16. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/YudaoAiProperties.java
  17. 4 4
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactory.java
  18. 27 27
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactoryImpl.java
  19. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/baichuan/BaiChuanChatModel.java
  20. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/deepseek/DeepSeekChatModel.java
  21. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/doubao/DouBaoChatModel.java
  22. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/hunyuan/HunYuanChatModel.java
  23. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/midjourney/api/MidjourneyApi.java
  24. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowApiConstants.java
  25. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java
  26. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageApi.java
  27. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageModel.java
  28. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java
  29. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/suno/api/SunoApi.java
  30. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java
  31. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/XingHuoChatModel.java
  32. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java
  33. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/package-info.java
  34. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatConversationServiceImpl.java
  35. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java
  36. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageService.java
  37. 3 3
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
  38. 3 3
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/mindmap/AiMindMapServiceImpl.java
  39. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelService.java
  40. 4 4
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelServiceImpl.java
  41. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/tool/UserProfileQueryToolFunction.java
  42. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/music/AiMusicServiceImpl.java
  43. 4 3
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/write/AiWriteServiceImpl.java
  44. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/util/AiUtils.java
  45. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/AzureOpenAIChatModelTests.java
  46. 3 3
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/BaiChuanChatModelTests.java
  47. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/CozeChatModelTests.java
  48. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DeepSeekChatModelTests.java
  49. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DifyChatModelTests.java
  50. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DouBaoChatModelTests.java
  51. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/FastGPTChatModelTests.java
  52. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/HunYuanChatModelTests.java
  53. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/LlamaChatModelTests.java
  54. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MiniMaxChatModelTests.java
  55. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MoonshotChatModelTests.java
  56. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OllamaChatModelTests.java
  57. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OpenAIChatModelTests.java
  58. 3 3
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/SiliconFlowChatModelTests.java
  59. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/TongYiChatModelTests.java
  60. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/XingHuoChatModelTests.java
  61. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/YiYanChatModelTests.java
  62. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/ZhiPuAiChatModelTests.java
  63. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/MidjourneyApiTests.java
  64. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/OpenAiImageModelTests.java
  65. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/QianFanImageTests.java
  66. 4 4
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/SiliconFlowImageModelTests.java
  67. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/StabilityAiImageModelTests.java
  68. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/TongYiImagesModelTest.java
  69. 1 1
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/ZhiPuAiImageModelTests.java
  70. 4 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/mcp/DouBaoMcpTests.java
  71. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/music/SunoApiTests.java
  72. 3 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java
  73. 2 2
      yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/xunfei/XunFeiPptApiTests.java
  74. 0 184
      yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml
  75. 0 1
      yudao-module-ai/yudao-spring-boot-starter-ai/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  76. 0 1
      yudao-module-pay/pom.xml
  77. 15 0
      yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/PayChannelEnum.java
  78. 10 0
      yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java
  79. 2 2
      yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/transfer/PayTransferStatusEnum.java
  80. 18 5
      yudao-module-pay/yudao-module-pay-biz/pom.xml
  81. 1 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
  82. 5 5
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java
  83. 2 2
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/PayOrderController.java
  84. 2 2
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.java
  85. 2 2
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/order/PayOrderConvert.java
  86. 52 3
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/channel/PayChannelDO.java
  87. 1 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
  88. 1 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java
  89. 2 2
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
  90. 3 3
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java
  91. 9 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayConfiguration.java
  92. 8 8
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClient.java
  93. 1 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientConfig.java
  94. 1 12
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientFactory.java
  95. 9 9
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderRespDTO.java
  96. 2 2
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java
  97. 8 8
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundRespDTO.java
  98. 1 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java
  99. 7 7
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java
  100. 1 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java

+ 0 - 1
yudao-module-ai/pom.xml

@@ -11,7 +11,6 @@
     <modules>
     <modules>
         <module>yudao-module-ai-api</module>
         <module>yudao-module-ai-api</module>
         <module>yudao-module-ai-biz</module>
         <module>yudao-module-ai-biz</module>
-        <module>yudao-spring-boot-starter-ai</module>
     </modules>
     </modules>
     <packaging>pom</packaging>
     <packaging>pom</packaging>
     <artifactId>yudao-module-ai</artifactId>
     <artifactId>yudao-module-ai</artifactId>

+ 149 - 3
yudao-module-ai/yudao-module-ai-biz/pom.xml

@@ -17,6 +17,10 @@
         国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek
         国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek
         国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
         国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
     </description>
     </description>
+    <properties>
+        <spring-ai.version>1.0.0-M6</spring-ai.version>
+        <tinyflow.version>1.0.2</tinyflow.version>
+    </properties>
 
 
     <dependencies>
     <dependencies>
         <dependency>
         <dependency>
@@ -24,14 +28,19 @@
             <artifactId>yudao-module-ai-api</artifactId>
             <artifactId>yudao-module-ai-api</artifactId>
             <version>${revision}</version>
             <version>${revision}</version>
         </dependency>
         </dependency>
-
-        <!-- 业务组件 -->
         <dependency>
         <dependency>
             <groupId>cn.iocoder.boot</groupId>
             <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-ai</artifactId>
+            <artifactId>yudao-module-system-api</artifactId>
+            <version>${revision}</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-infra-api</artifactId>
             <version>${revision}</version>
             <version>${revision}</version>
         </dependency>
         </dependency>
 
 
+        <!-- 业务组件 -->
+
         <dependency>
         <dependency>
             <groupId>cn.iocoder.boot</groupId>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
             <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
@@ -66,5 +75,142 @@
             <groupId>cn.iocoder.boot</groupId>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-spring-boot-starter-excel</artifactId>
             <artifactId>yudao-spring-boot-starter-excel</artifactId>
         </dependency>
         </dependency>
+
+        <!-- Spring AI Model 模型接入 -->
+        <dependency>
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-stability-ai-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <!-- 通义千问 -->
+            <groupId>com.alibaba.cloud.ai</groupId>
+            <artifactId>spring-ai-alibaba-starter</artifactId>
+            <version>${spring-ai.version}.1</version>
+        </dependency>
+        <dependency>
+            <!-- 文心一言 -->
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-qianfan-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <!-- 智谱 GLM -->
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-minimax-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+
+        <!-- 向量存储:https://db-engines.com/en/ranking/vector+dbms -->
+        <dependency>
+            <!-- Qdrant:https://qdrant.tech/ -->
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-qdrant-store</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+
+        <dependency>
+            <!-- Redis:https://redis.io/docs/latest/develop/get-started/vector-database/ -->
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-redis-store</artifactId>
+            <version>${spring-ai.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-spring-boot-starter-redis</artifactId>
+        </dependency>
+
+        <dependency>
+            <!-- Milvus:https://milvus.io/ -->
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-milvus-store</artifactId>
+            <version>${spring-ai.version}</version>
+            <exclusions>
+                <!-- 解决和 logback 的日志冲突 -->
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-reload4j</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <!-- Tika:负责内容的解析 -->
+            <groupId>org.springframework.ai</groupId>
+            <artifactId>spring-ai-tika-document-reader</artifactId>
+            <version>${spring-ai.version}</version>
+            <!-- TODO 芋艿:boot 项目里,不引入 cloud 依赖!!!另外,这样也是为了解决启动报错的问题! -->
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-cloud-function-context</artifactId>
+                    <groupId>org.springframework.cloud</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>spring-cloud-function-core</artifactId>
+                    <groupId>org.springframework.cloud</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- TinyFlow:AI 工作流 -->
+        <dependency>
+            <groupId>dev.tinyflow</groupId>
+            <artifactId>tinyflow-java-core</artifactId>
+            <version>${tinyflow.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.jfinal</groupId>
+                    <artifactId>enjoy</artifactId>
+                </exclusion>
+                <exclusion>
+                    <!-- 解决 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1318/ 问题 -->
+                    <groupId>com.agentsflex</groupId>
+                    <artifactId>agents-flex-store-elasticsearch</artifactId>
+                </exclusion>
+                <exclusion>
+                    <!-- TODO @芋艿:暂时移除 groovy,和 iot 冲突 -->
+                    <groupId>org.codehaus.groovy</groupId>
+                    <artifactId>groovy-all</artifactId>
+                </exclusion>
+                <!-- 解决和 logback 的日志冲突 -->
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-simple</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.logging.log4j</groupId>
+                    <artifactId>log4j-slf4j-impl</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-reload4j</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
     </dependencies>
 </project>
 </project>

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.ai.controller.admin.image;
 package cn.iocoder.yudao.module.ai.controller.admin.image;
 
 
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageRespVO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.controller.admin.image.vo;
 package cn.iocoder.yudao.module.ai.controller.admin.image.vo;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 
 

+ 2 - 2
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiModelSaveReqVO.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model;
 package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.validation.InEnum;
 import cn.iocoder.yudao.framework.common.validation.InEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 3 - 2
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.ai.dal.dataobject.image;
 package cn.iocoder.yudao.module.ai.dal.dataobject.image;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
 import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum;
 import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum;
@@ -49,7 +50,7 @@ public class AiImageDO extends BaseDO {
     /**
     /**
      * 平台
      * 平台
      *
      *
-     * 枚举 {@link cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum}
+     * 枚举 {@link AiPlatformEnum}
      */
      */
     private String platform;
     private String platform;
     /**
     /**

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/mindmap/AiMindMapDO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.dal.dataobject.mindmap;
 package cn.iocoder.yudao.module.ai.dal.dataobject.mindmap;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiApiKeyDO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;

+ 2 - 2
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiModelDO.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/music/AiMusicDO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.dal.dataobject.music;
 package cn.iocoder.yudao.module.ai.dal.dataobject.music;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.ai.enums.music.AiMusicGenerateModeEnum;
 import cn.iocoder.yudao.module.ai.enums.music.AiMusicGenerateModeEnum;
 import cn.iocoder.yudao.module.ai.enums.music.AiMusicStatusEnum;
 import cn.iocoder.yudao.module.ai.enums.music.AiMusicStatusEnum;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/write/AiWriteDO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.dal.dataobject.write;
 package cn.iocoder.yudao.module.ai.dal.dataobject.write;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
 import cn.iocoder.yudao.module.ai.enums.DictTypeConstants;
 import cn.iocoder.yudao.module.ai.enums.DictTypeConstants;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiModelTypeEnum.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiModelTypeEnum.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.enums;
+package cn.iocoder.yudao.module.ai.enums.model;
 
 
 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
 import lombok.Getter;
 import lombok.Getter;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiPlatformEnum.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiPlatformEnum.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.enums;
+package cn.iocoder.yudao.module.ai.enums.model;
 
 
 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;

+ 4 - 0
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 占位
+ */
+package cn.iocoder.yudao.module.ai.enums;

+ 15 - 15
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiAutoConfiguration.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java

@@ -1,18 +1,18 @@
-package cn.iocoder.yudao.framework.ai.config;
+package cn.iocoder.yudao.module.ai.framework.ai.config;
 
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactory;
-import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactoryImpl;
-import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
-import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactory;
+import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactoryImpl;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusServiceClientProperties;
 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusServiceClientProperties;
 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreProperties;
 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreProperties;
@@ -26,24 +26,24 @@ import org.springframework.ai.openai.OpenAiChatOptions;
 import org.springframework.ai.openai.api.OpenAiApi;
 import org.springframework.ai.openai.api.OpenAiApi;
 import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator;
 import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator;
 import org.springframework.ai.tokenizer.TokenCountEstimator;
 import org.springframework.ai.tokenizer.TokenCountEstimator;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
 
 /**
 /**
  * 芋道 AI 自动配置
  * 芋道 AI 自动配置
  *
  *
  * @author fansili
  * @author fansili
  */
  */
-@AutoConfiguration
+@Configuration
 @EnableConfigurationProperties({ YudaoAiProperties.class,
 @EnableConfigurationProperties({ YudaoAiProperties.class,
         QdrantVectorStoreProperties.class, // 解析 Qdrant 配置
         QdrantVectorStoreProperties.class, // 解析 Qdrant 配置
         RedisVectorStoreProperties.class, // 解析 Redis 配置
         RedisVectorStoreProperties.class, // 解析 Redis 配置
         MilvusVectorStoreProperties.class, MilvusServiceClientProperties.class // 解析 Milvus 配置
         MilvusVectorStoreProperties.class, MilvusServiceClientProperties.class // 解析 Milvus 配置
 })
 })
 @Slf4j
 @Slf4j
-public class YudaoAiAutoConfiguration {
+public class AiAutoConfiguration {
 
 
     @Bean
     @Bean
     public AiModelFactory aiModelFactory() {
     public AiModelFactory aiModelFactory() {

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiProperties.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/YudaoAiProperties.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.config;
+package cn.iocoder.yudao.module.ai.framework.ai.config;
 
 
 import lombok.Data;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;

+ 4 - 4
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiModelFactory.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactory.java

@@ -1,8 +1,8 @@
-package cn.iocoder.yudao.framework.ai.core.factory;
+package cn.iocoder.yudao.module.ai.framework.ai.core;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
 import org.springframework.ai.chat.model.ChatModel;
 import org.springframework.ai.chat.model.ChatModel;
 import org.springframework.ai.embedding.EmbeddingModel;
 import org.springframework.ai.embedding.EmbeddingModel;
 import org.springframework.ai.image.ImageModel;
 import org.springframework.ai.image.ImageModel;

+ 27 - 27
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiModelFactoryImpl.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactoryImpl.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.factory;
+package cn.iocoder.yudao.module.ai.framework.ai.core;
 
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.lang.Assert;
@@ -8,20 +8,20 @@ import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.RuntimeUtil;
 import cn.hutool.core.util.RuntimeUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration;
-import cn.iocoder.yudao.framework.ai.config.YudaoAiProperties;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
-import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.config.AiAutoConfiguration;
+import cn.iocoder.yudao.module.ai.framework.ai.config.YudaoAiProperties;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
 import cn.iocoder.yudao.framework.common.util.spring.SpringUtils;
 import cn.iocoder.yudao.framework.common.util.spring.SpringUtils;
 import com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeAutoConfiguration;
 import com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeAutoConfiguration;
 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
@@ -361,39 +361,39 @@ public class AiModelFactoryImpl implements AiModelFactory {
     }
     }
 
 
     /**
     /**
-     * 可参考 {@link YudaoAiAutoConfiguration#deepSeekChatModel(YudaoAiProperties)}
+     * 可参考 {@link AiAutoConfiguration#deepSeekChatModel(YudaoAiProperties)}
      */
      */
     private static DeepSeekChatModel buildDeepSeekChatModel(String apiKey) {
     private static DeepSeekChatModel buildDeepSeekChatModel(String apiKey) {
         YudaoAiProperties.DeepSeekProperties properties = new YudaoAiProperties.DeepSeekProperties()
         YudaoAiProperties.DeepSeekProperties properties = new YudaoAiProperties.DeepSeekProperties()
                 .setApiKey(apiKey);
                 .setApiKey(apiKey);
-        return new YudaoAiAutoConfiguration().buildDeepSeekChatModel(properties);
+        return new AiAutoConfiguration().buildDeepSeekChatModel(properties);
     }
     }
 
 
     /**
     /**
-     * 可参考 {@link YudaoAiAutoConfiguration#douBaoChatClient(YudaoAiProperties)}
+     * 可参考 {@link AiAutoConfiguration#douBaoChatClient(YudaoAiProperties)}
      */
      */
     private ChatModel buildDouBaoChatModel(String apiKey) {
     private ChatModel buildDouBaoChatModel(String apiKey) {
         YudaoAiProperties.DouBaoProperties properties = new YudaoAiProperties.DouBaoProperties()
         YudaoAiProperties.DouBaoProperties properties = new YudaoAiProperties.DouBaoProperties()
                 .setApiKey(apiKey);
                 .setApiKey(apiKey);
-        return new YudaoAiAutoConfiguration().buildDouBaoChatClient(properties);
+        return new AiAutoConfiguration().buildDouBaoChatClient(properties);
     }
     }
 
 
     /**
     /**
-     * 可参考 {@link YudaoAiAutoConfiguration#hunYuanChatClient(YudaoAiProperties)}
+     * 可参考 {@link AiAutoConfiguration#hunYuanChatClient(YudaoAiProperties)}
      */
      */
     private ChatModel buildHunYuanChatModel(String apiKey, String url) {
     private ChatModel buildHunYuanChatModel(String apiKey, String url) {
         YudaoAiProperties.HunYuanProperties properties = new YudaoAiProperties.HunYuanProperties()
         YudaoAiProperties.HunYuanProperties properties = new YudaoAiProperties.HunYuanProperties()
                 .setBaseUrl(url).setApiKey(apiKey);
                 .setBaseUrl(url).setApiKey(apiKey);
-        return new YudaoAiAutoConfiguration().buildHunYuanChatClient(properties);
+        return new AiAutoConfiguration().buildHunYuanChatClient(properties);
     }
     }
 
 
     /**
     /**
-     * 可参考 {@link YudaoAiAutoConfiguration#siliconFlowChatClient(YudaoAiProperties)}
+     * 可参考 {@link AiAutoConfiguration#siliconFlowChatClient(YudaoAiProperties)}
      */
      */
     private ChatModel buildSiliconFlowChatModel(String apiKey) {
     private ChatModel buildSiliconFlowChatModel(String apiKey) {
         YudaoAiProperties.SiliconFlowProperties properties = new YudaoAiProperties.SiliconFlowProperties()
         YudaoAiProperties.SiliconFlowProperties properties = new YudaoAiProperties.SiliconFlowProperties()
                 .setApiKey(apiKey);
                 .setApiKey(apiKey);
-        return new YudaoAiAutoConfiguration().buildSiliconFlowChatClient(properties);
+        return new AiAutoConfiguration().buildSiliconFlowChatClient(properties);
     }
     }
 
 
     /**
     /**
@@ -436,23 +436,23 @@ public class AiModelFactoryImpl implements AiModelFactory {
     }
     }
 
 
     /**
     /**
-     * 可参考 {@link YudaoAiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)}
+     * 可参考 {@link AiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)}
      */
      */
     private static XingHuoChatModel buildXingHuoChatModel(String key) {
     private static XingHuoChatModel buildXingHuoChatModel(String key) {
         List<String> keys = StrUtil.split(key, '|');
         List<String> keys = StrUtil.split(key, '|');
         Assert.equals(keys.size(), 2, "XingHuoChatClient 的密钥需要 (appKey|secretKey) 格式");
         Assert.equals(keys.size(), 2, "XingHuoChatClient 的密钥需要 (appKey|secretKey) 格式");
         YudaoAiProperties.XingHuoProperties properties = new YudaoAiProperties.XingHuoProperties()
         YudaoAiProperties.XingHuoProperties properties = new YudaoAiProperties.XingHuoProperties()
                 .setAppKey(keys.get(0)).setSecretKey(keys.get(1));
                 .setAppKey(keys.get(0)).setSecretKey(keys.get(1));
-        return new YudaoAiAutoConfiguration().buildXingHuoChatClient(properties);
+        return new AiAutoConfiguration().buildXingHuoChatClient(properties);
     }
     }
 
 
     /**
     /**
-     * 可参考 {@link YudaoAiAutoConfiguration#baiChuanChatClient(YudaoAiProperties)}
+     * 可参考 {@link AiAutoConfiguration#baiChuanChatClient(YudaoAiProperties)}
      */
      */
     private BaiChuanChatModel buildBaiChuanChatModel(String apiKey) {
     private BaiChuanChatModel buildBaiChuanChatModel(String apiKey) {
         YudaoAiProperties.BaiChuanProperties properties = new YudaoAiProperties.BaiChuanProperties()
         YudaoAiProperties.BaiChuanProperties properties = new YudaoAiProperties.BaiChuanProperties()
                 .setApiKey(apiKey);
                 .setApiKey(apiKey);
-        return new YudaoAiAutoConfiguration().buildBaiChuanChatClient(properties);
+        return new AiAutoConfiguration().buildBaiChuanChatClient(properties);
     }
     }
 
 
     /**
     /**

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/baichuan/BaiChuanChatModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/baichuan/BaiChuanChatModel.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.baichuan;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan;
 
 
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/deepseek/DeepSeekChatModel.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.deepseek;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek;
 
 
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/doubao/DouBaoChatModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/doubao/DouBaoChatModel.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.doubao;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao;
 
 
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/hunyuan/HunYuanChatModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/hunyuan/HunYuanChatModel.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.hunyuan;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan;
 
 
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/midjourney/api/MidjourneyApi.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.midjourney.api;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api;
 
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowApiConstants.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowApiConstants.java

@@ -14,7 +14,7 @@
  * limitations under the License.
  * limitations under the License.
  */
  */
 
 
-package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
 
 
 /**
 /**
  * SiliconFlow API 枚举类
  * SiliconFlow API 枚举类

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
 
 
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageApi.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageApi.java

@@ -14,7 +14,7 @@
  * limitations under the License.
  * limitations under the License.
  */
  */
 
 
-package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
 
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageModel.java

@@ -14,7 +14,7 @@
  * limitations under the License.
  * limitations under the License.
  */
  */
 
 
-package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
 
 
 import io.micrometer.observation.ObservationRegistry;
 import io.micrometer.observation.ObservationRegistry;
 import lombok.Setter;
 import lombok.Setter;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/suno/api/SunoApi.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.suno.api;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.StrPool;
 import cn.hutool.core.text.StrPool;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.wenduoduo.api;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.wenduoduo.api;
 
 
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/XingHuoChatModel.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo;
 
 
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.api;
 
 
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.crypto.SecureUtil;
 import cn.hutool.crypto.SecureUtil;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/package-info.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/package-info.java

@@ -10,4 +10,4 @@
  *  6. midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现
  *  6. midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现
  *  7. suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现
  *  7. suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现
  */
  */
-package cn.iocoder.yudao.framework.ai;
+package cn.iocoder.yudao.module.ai.framework.ai;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatConversationServiceImpl.java

@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO;

+ 2 - 2
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java

@@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.ai.service.chat;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.util.AiUtils;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageService.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.service.image;
 package cn.iocoder.yudao.module.ai.service.image;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*;
 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*;
 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyActionReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyActionReqVO;

+ 3 - 3
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java

@@ -9,9 +9,9 @@ import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.http.HttpUtil;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDrawReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDrawReqVO;

+ 3 - 3
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/mindmap/AiMindMapServiceImpl.java

@@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.ai.service.mindmap;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
+import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.util.AiUtils;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

+ 2 - 2
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelService.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.ai.service.model;
 package cn.iocoder.yudao.module.ai.service.model;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelPageReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelPageReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelSaveReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelSaveReqVO;

+ 4 - 4
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelServiceImpl.java

@@ -1,9 +1,9 @@
 package cn.iocoder.yudao.module.ai.service.model;
 package cn.iocoder.yudao.module.ai.service.model;
 
 
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactory;
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactory;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/tool/UserProfileQueryToolFunction.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.ai.service.model.tool;
 package cn.iocoder.yudao.module.ai.service.model.tool;
 
 
-import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
+import cn.iocoder.yudao.module.ai.util.AiUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;

+ 1 - 1
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/music/AiMusicServiceImpl.java

@@ -6,7 +6,7 @@ import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.http.HttpUtil;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicPageReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicPageReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicUpdateMyReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicUpdateMyReqVO;

+ 4 - 3
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/write/AiWriteServiceImpl.java

@@ -3,9 +3,10 @@ package cn.iocoder.yudao.module.ai.service.write;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
-import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
+import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
+import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.util.AiUtils;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/util/AiUtils.java → yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/util/AiUtils.java

@@ -1,8 +1,8 @@
-package cn.iocoder.yudao.framework.ai.core.util;
+package cn.iocoder.yudao.module.ai.util;
 
 
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
+import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/AzureOpenAIChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/AzureOpenAIChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import com.azure.ai.openai.OpenAIClientBuilder;
 import com.azure.ai.openai.OpenAIClientBuilder;
 import com.azure.core.credential.AzureKeyCredential;
 import com.azure.core.credential.AzureKeyCredential;

+ 3 - 3
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/BaiChuanChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/BaiChuanChatModelTests.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;
-import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.Message;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/CozeChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/CozeChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DeepSeekChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DeepSeekChatModelTests.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.Message;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DifyChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DifyChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DouBaoChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DouBaoChatModelTests.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.Message;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/FastGPTChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/FastGPTChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/HunYuanChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/HunYuanChatModelTests.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.Message;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/LlamaChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/LlamaChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/MiniMaxChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MiniMaxChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/MoonshotChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MoonshotChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/OllamaChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OllamaChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/OpenAIChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OpenAIChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 3 - 3
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/SiliconFlowChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/SiliconFlowChatModelTests.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.Message;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/TongYiChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/TongYiChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/XingHuoChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/XingHuoChatModelTests.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.messages.Message;
 import org.springframework.ai.chat.messages.Message;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/YiYanChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/YiYanChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/ZhiPuAiChatModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/ZhiPuAiChatModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.chat;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/MidjourneyApiTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/MidjourneyApiTests.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 
 

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/OpenAiImageModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/OpenAiImageModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/QianFanImageTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/QianFanImageTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
@@ -8,7 +8,7 @@ import org.springframework.ai.qianfan.QianFanImageModel;
 import org.springframework.ai.qianfan.QianFanImageOptions;
 import org.springframework.ai.qianfan.QianFanImageOptions;
 import org.springframework.ai.qianfan.api.QianFanImageApi;
 import org.springframework.ai.qianfan.api.QianFanImageApi;
 
 
-import static cn.iocoder.yudao.framework.ai.image.StabilityAiImageModelTests.viewImage;
+import static cn.iocoder.yudao.module.ai.framework.ai.core.model.image.StabilityAiImageModelTests.viewImage;
 
 
 // TODO @芋艿:百度千帆 API 提供了 V2 版本,目前 Spring AI 不兼容,可关键 <https://github.com/spring-projects/spring-ai/issues/2179> 进展
 // TODO @芋艿:百度千帆 API 提供了 V2 版本,目前 Spring AI 不兼容,可关键 <https://github.com/spring-projects/spring-ai/issues/2179> 进展
 
 

+ 4 - 4
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/SiliconFlowImageModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/SiliconFlowImageModelTests.java

@@ -1,8 +1,8 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
-import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.image.ImagePrompt;
 import org.springframework.ai.image.ImagePrompt;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/StabilityAiImageModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/StabilityAiImageModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.thread.ThreadUtil;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/TongYiImagesModelTest.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/TongYiImagesModelTest.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
 import com.alibaba.cloud.ai.dashscope.api.DashScopeImageApi;
 import com.alibaba.cloud.ai.dashscope.api.DashScopeImageApi;
 import com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel;
 import com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel;

+ 1 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/ZhiPuAiImageModelTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/ZhiPuAiImageModelTests.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.ai.image;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
 
 
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 4 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/mcp/DouBaoMcpTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/mcp/DouBaoMcpTests.java

@@ -1,6 +1,7 @@
-package cn.iocoder.yudao.framework.ai.mcp;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.mcp;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.ai.chat.client.ChatClient;
 import org.springframework.ai.chat.client.ChatClient;
 import org.springframework.ai.openai.OpenAiChatModel;
 import org.springframework.ai.openai.OpenAiChatModel;
@@ -9,6 +10,7 @@ import org.springframework.ai.openai.api.OpenAiApi;
 import org.springframework.ai.tool.annotation.Tool;
 import org.springframework.ai.tool.annotation.Tool;
 import org.springframework.ai.tool.method.MethodToolCallbackProvider;
 import org.springframework.ai.tool.method.MethodToolCallbackProvider;
 
 
+@Disabled
 public class DouBaoMcpTests {
 public class DouBaoMcpTests {
 
 
     private final OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()
     private final OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/music/SunoApiTests.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.framework.ai.music;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.music;
 
 
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.collection.ListUtil;
-import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 
 

+ 3 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/ppt/wdd/WenDuoDuoPptApiTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.ai.ppt.wdd;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.ppt.wdd;
 
 
-import cn.iocoder.yudao.framework.ai.core.model.wenduoduo.api.WenDuoDuoPptApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.wenduoduo.api.WenDuoDuoPptApi;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
@@ -14,6 +14,7 @@ import java.util.Objects;
  *
  *
  * @author xiaoxin
  * @author xiaoxin
  */
  */
+@Disabled
 public class WenDuoDuoPptApiTests {
 public class WenDuoDuoPptApiTests {
 
 
     private final String token = ""; // API Token
     private final String token = ""; // API Token

+ 2 - 2
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/ppt/xunfei/XunFeiPptApiTests.java → yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/xunfei/XunFeiPptApiTests.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.framework.ai.ppt.xunfei;
+package cn.iocoder.yudao.module.ai.framework.ai.core.model.ppt.xunfei;
 
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.FileUtil;
-import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XunFeiPptApi;
+import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.api.XunFeiPptApi;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;

+ 0 - 184
yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml

@@ -1,184 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>cn.iocoder.boot</groupId>
-        <artifactId>yudao-module-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>yudao-spring-boot-starter-ai</artifactId>
-    <packaging>jar</packaging>
-
-    <name>${project.artifactId}</name>
-    <description>AI 大模型拓展,接入国内外大模型</description>
-    <properties>
-        <spring-ai.version>1.0.0-M6</spring-ai.version>
-        <tinyflow.version>1.0.2</tinyflow.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-common</artifactId>
-        </dependency>
-
-        <!-- 业务组件 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
-        </dependency>
-
-        <!-- Web 相关 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-security</artifactId>
-        </dependency>
-
-        <!-- Spring AI Model 模型接入 -->
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-stability-ai-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <!-- 通义千问 -->
-            <groupId>com.alibaba.cloud.ai</groupId>
-            <artifactId>spring-ai-alibaba-starter</artifactId>
-            <version>${spring-ai.version}.1</version>
-        </dependency>
-        <dependency>
-            <!-- 文心一言 -->
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-qianfan-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <!-- 智谱 GLM -->
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-minimax-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-
-        <!-- 向量存储:https://db-engines.com/en/ranking/vector+dbms -->
-        <dependency>
-            <!-- Qdrant:https://qdrant.tech/ -->
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-qdrant-store</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-
-        <dependency>
-            <!-- Redis:https://redis.io/docs/latest/develop/get-started/vector-database/ -->
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-redis-store</artifactId>
-            <version>${spring-ai.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-redis</artifactId>
-        </dependency>
-
-        <dependency>
-            <!-- Milvus:https://milvus.io/ -->
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-milvus-store</artifactId>
-            <version>${spring-ai.version}</version>
-            <exclusions>
-                <!-- 解决和 logback 的日志冲突 -->
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-reload4j</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <!-- Tika:负责内容的解析 -->
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-tika-document-reader</artifactId>
-            <version>${spring-ai.version}</version>
-            <!-- TODO 芋艿:boot 项目里,不引入 cloud 依赖!!!另外,这样也是为了解决启动报错的问题! -->
-            <exclusions>
-                <exclusion>
-                    <artifactId>spring-cloud-function-context</artifactId>
-                    <groupId>org.springframework.cloud</groupId>
-                </exclusion>
-                <exclusion>
-                    <artifactId>spring-cloud-function-core</artifactId>
-                    <groupId>org.springframework.cloud</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <!-- TinyFlow:AI 工作流 -->
-        <dependency>
-            <groupId>dev.tinyflow</groupId>
-            <artifactId>tinyflow-java-core</artifactId>
-            <version>${tinyflow.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.jfinal</groupId>
-                    <artifactId>enjoy</artifactId>
-                </exclusion>
-                <exclusion>
-                    <!-- 解决 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1318/ 问题 -->
-                    <groupId>com.agentsflex</groupId>
-                    <artifactId>agents-flex-store-elasticsearch</artifactId>
-                </exclusion>
-                <exclusion>
-                    <!-- TODO @芋艿:暂时移除 groovy,和 iot 冲突 -->
-                    <groupId>org.codehaus.groovy</groupId>
-                    <artifactId>groovy-all</artifactId>
-                </exclusion>
-                <!-- 解决和 logback 的日志冲突 -->
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-simple</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.apache.logging.log4j</groupId>
-                    <artifactId>log4j-slf4j-impl</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-reload4j</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <!-- Test 测试相关 -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 1
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration

+ 0 - 1
yudao-module-pay/pom.xml

@@ -13,7 +13,6 @@
     <modules>
     <modules>
         <module>yudao-module-pay-api</module>
         <module>yudao-module-pay-api</module>
         <module>yudao-module-pay-biz</module>
         <module>yudao-module-pay-biz</module>
-        <module>yudao-spring-boot-starter-biz-pay</module>
     </modules>
     </modules>
 
 
     <name>${project.artifactId}</name>
     <name>${project.artifactId}</name>

+ 15 - 0
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/PayChannelEnum.java

@@ -1,5 +1,7 @@
 package cn.iocoder.yudao.module.pay.enums;
 package cn.iocoder.yudao.module.pay.enums;
 
 
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;
@@ -27,6 +29,7 @@ public enum PayChannelEnum implements ArrayValuable<String> {
     ALIPAY_APP("alipay_app", "支付宝App 支付"),
     ALIPAY_APP("alipay_app", "支付宝App 支付"),
     ALIPAY_QR("alipay_qr", "支付宝扫码支付"),
     ALIPAY_QR("alipay_qr", "支付宝扫码支付"),
     ALIPAY_BAR("alipay_bar", "支付宝条码支付"),
     ALIPAY_BAR("alipay_bar", "支付宝条码支付"),
+
     MOCK("mock", "模拟支付"),
     MOCK("mock", "模拟支付"),
 
 
     WALLET("wallet", "钱包支付");
     WALLET("wallet", "钱包支付");
@@ -49,4 +52,16 @@ public enum PayChannelEnum implements ArrayValuable<String> {
         return ARRAYS;
         return ARRAYS;
     }
     }
 
 
+    public static PayChannelEnum getByCode(String code) {
+        return ArrayUtil.firstMatch(o -> o.getCode().equals(code), values());
+    }
+
+    public static boolean isAlipay(String channelCode) {
+        return StrUtil.startWith(channelCode, "alipay_");
+    }
+
+    public static boolean isWeixin(String channelCode) {
+        return StrUtil.startWith(channelCode, "wx_");
+    }
+
 }
 }

+ 10 - 0
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java

@@ -50,6 +50,16 @@ public enum PayOrderStatusEnum implements ArrayValuable<Integer> {
         return Objects.equals(status, SUCCESS.getStatus());
         return Objects.equals(status, SUCCESS.getStatus());
     }
     }
 
 
+    /**
+     * 判断是否已退款
+     *
+     * @param status 状态
+     * @return 是否已退款
+     */
+    public static boolean isRefund(Integer status) {
+        return Objects.equals(status, REFUND.getStatus());
+    }
+
     /**
     /**
      * 判断是否支付成功或者已退款
      * 判断是否支付成功或者已退款
      *
      *

+ 2 - 2
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/transfer/PayTransferStatusEnum.java

@@ -40,7 +40,7 @@ public enum PayTransferStatusEnum {
         return Objects.equals(status, WAITING.getStatus());
         return Objects.equals(status, WAITING.getStatus());
     }
     }
 
 
-    public static boolean isProgressing(Integer status) {
+    public static boolean isProcessing(Integer status) {
         return Objects.equals(status, PROCESSING.getStatus());
         return Objects.equals(status, PROCESSING.getStatus());
     }
     }
 
 
@@ -51,7 +51,7 @@ public enum PayTransferStatusEnum {
      * @return 是否
      * @return 是否
      */
      */
     public static boolean isWaitingOrProcessing(Integer status) {
     public static boolean isWaitingOrProcessing(Integer status) {
-        return isWaiting(status) || isProgressing(status);
+        return isWaiting(status) || isProcessing(status);
     }
     }
 
 
     /**
     /**

+ 18 - 5
yudao-module-pay/yudao-module-pay-biz/pom.xml

@@ -30,11 +30,6 @@
         </dependency>
         </dependency>
 
 
         <!-- 业务组件 -->
         <!-- 业务组件 -->
-        <dependency>
-            <groupId>cn.iocoder.boot</groupId>
-            <artifactId>yudao-spring-boot-starter-biz-pay</artifactId>
-            <version>${revision}</version>
-        </dependency>
         <dependency>
         <dependency>
             <groupId>cn.iocoder.boot</groupId>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
             <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
@@ -75,6 +70,24 @@
             <groupId>cn.iocoder.boot</groupId>
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-spring-boot-starter-excel</artifactId>
             <artifactId>yudao-spring-boot-starter-excel</artifactId>
         </dependency>
         </dependency>
+
+        <!-- 三方云服务相关 -->
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>4.35.79.ALL</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.bouncycastle</groupId>
+                    <artifactId>bcprov-jdk15on</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-pay</artifactId>
+        </dependency>
+
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 1 - 1
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.pay.api.transfer;
 package cn.iocoder.yudao.module.pay.api.transfer;
 
 
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.framework.pay.core.client.impl.weixin.WxPayClientConfig;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin.WxPayClientConfig;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;

+ 5 - 5
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java

@@ -4,10 +4,10 @@ import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.framework.pay.core.client.PayClient;
-import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.PayClient;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskDetailRespVO;
 import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskDetailRespVO;
 import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO;
 import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO;
@@ -156,7 +156,7 @@ public class PayNotifyController {
         }
         }
         // 拼接返回
         // 拼接返回
         Map<Long, PayAppDO> apps = appService.getAppMap(convertList(pageResult.getList(), PayNotifyTaskDO::getAppId));
         Map<Long, PayAppDO> apps = appService.getAppMap(convertList(pageResult.getList(), PayNotifyTaskDO::getAppId));
-        
+
         // 转换对象
         // 转换对象
         return success(BeanUtils.toBean(pageResult, PayNotifyTaskRespVO.class, order -> {
         return success(BeanUtils.toBean(pageResult, PayNotifyTaskRespVO.class, order -> {
             PayAppDO app = apps.get(order.getAppId());
             PayAppDO app = apps.get(order.getAppId());

+ 2 - 2
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/PayOrderController.java

@@ -6,15 +6,15 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
 import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
 import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
+import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
-import cn.iocoder.yudao.module.pay.framework.pay.core.WalletPayClient;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.wallet.WalletPayClient;
 import cn.iocoder.yudao.module.pay.service.app.PayAppService;
 import cn.iocoder.yudao.module.pay.service.app.PayAppService;
 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
 import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
 import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;

+ 2 - 2
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.java

@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.pay.controller.app.order;
 
 
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderRespVO;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderRespVO;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderSubmitRespVO;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderSubmitRespVO;
 import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitReqVO;
 import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitReqVO;
@@ -10,8 +9,9 @@ import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitResp
 import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
 import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
+import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
-import cn.iocoder.yudao.module.pay.framework.pay.core.WalletPayClient;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.wallet.WalletPayClient;
 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
 import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
 import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;

+ 2 - 2
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/order/PayOrderConvert.java

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.pay.convert.order;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
-import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
@@ -67,7 +67,7 @@ public interface PayOrderConvert {
     PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqVO reqVO, String userIp);
     PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqVO reqVO, String userIp);
 
 
     @Mapping(source = "order.status", target = "status")
     @Mapping(source = "order.status", target = "status")
-    PayOrderSubmitRespVO convert(PayOrderDO order, cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO respDTO);
+    PayOrderSubmitRespVO convert(PayOrderDO order, cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO respDTO);
 
 
     AppPayOrderSubmitRespVO convert3(PayOrderSubmitRespVO bean);
     AppPayOrderSubmitRespVO convert3(PayOrderSubmitRespVO bean);
 
 

+ 52 - 3
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/channel/PayChannelDO.java

@@ -1,16 +1,26 @@
 package cn.iocoder.yudao.module.pay.dal.dataobject.channel;
 package cn.iocoder.yudao.module.pay.dal.dataobject.channel;
 
 
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
+import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
+import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.PayClientConfig;
 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.NonePayClientConfig;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay.AlipayAppPayClient;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay.AlipayPayClientConfig;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin.WxPayClientConfig;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.core.type.TypeReference;
 import lombok.*;
 import lombok.*;
 
 
+import java.lang.reflect.Field;
+
 /**
 /**
  * 支付渠道 DO
  * 支付渠道 DO
  * 一个应用下,会有多种支付渠道,例如说微信支付、支付宝支付等等
  * 一个应用下,会有多种支付渠道,例如说微信支付、支付宝支付等等
@@ -63,7 +73,46 @@ public class PayChannelDO extends TenantBaseDO {
     /**
     /**
      * 支付渠道配置
      * 支付渠道配置
      */
      */
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(typeHandler = PayClientConfigTypeHandler.class)
     private PayClientConfig config;
     private PayClientConfig config;
 
 
+    public static class PayClientConfigTypeHandler extends AbstractJsonTypeHandler<Object> {
+
+        public PayClientConfigTypeHandler(Class<?> type) {
+            super(type);
+        }
+
+        public PayClientConfigTypeHandler(Class<?> type, Field field) {
+            super(type, field);
+        }
+
+        @Override
+        public Object parse(String json) {
+            PayClientConfig config = JsonUtils.parseObjectQuietly(json, new TypeReference<>() {});
+            if (config != null) {
+                return config;
+            }
+
+            // 兼容老版本的包路径
+            String className = JsonUtils.parseObject(json, "@class", String.class);
+            className = StrUtil.subAfter(className, ".", true);
+            switch (className) {
+                case "AlipayPayClientConfig":
+                    return JsonUtils.parseObject2(json, AlipayPayClientConfig.class);
+                case "WxPayClientConfig":
+                    return JsonUtils.parseObject2(json, WxPayClientConfig.class);
+                case "NonePayClientConfig":
+                    return JsonUtils.parseObject2(json, NonePayClientConfig.class);
+                default:
+                    throw new IllegalArgumentException("未知的 PayClientConfig 类型:" + json);
+            }
+        }
+
+        @Override
+        public String toJson(Object obj) {
+            return JsonUtils.toJsonString(obj);
+        }
+
+    }
+
 }
 }

+ 1 - 1
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java

@@ -1,9 +1,9 @@
 package cn.iocoder.yudao.module.pay.dal.dataobject.order;
 package cn.iocoder.yudao.module.pay.dal.dataobject.order;
 
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
+import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.pay.dal.dataobject.order;
 package cn.iocoder.yudao.module.pay.dal.dataobject.order;
 
 
-import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

+ 2 - 2
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java

@@ -1,8 +1,8 @@
 package cn.iocoder.yudao.module.pay.dal.dataobject.refund;
 package cn.iocoder.yudao.module.pay.dal.dataobject.refund;
 
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
+import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;

+ 3 - 3
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java

@@ -1,10 +1,10 @@
 package cn.iocoder.yudao.module.pay.dal.dataobject.transfer;
 package cn.iocoder.yudao.module.pay.dal.dataobject.transfer;
 
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
-import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
+import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
+import cn.iocoder.yudao.module.pay.enums.transfer.PayTransferStatusEnum;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -89,7 +89,7 @@ public class PayTransferDO extends BaseDO {
     /**
     /**
      * 转账状态
      * 转账状态
      *
      *
-     * 枚举 {@link PayTransferStatusRespEnum}
+     * 枚举 {@link PayTransferStatusEnum}
      */
      */
     private Integer status;
     private Integer status;
 
 

+ 9 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayConfiguration.java

@@ -1,9 +1,18 @@
 package cn.iocoder.yudao.module.pay.framework.pay.config;
 package cn.iocoder.yudao.module.pay.framework.pay.config;
 
 
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.PayClientFactory;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.PayClientFactoryImpl;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;
 
 
 @Configuration(proxyBeanMethods = false)
 @Configuration(proxyBeanMethods = false)
 @EnableConfigurationProperties(PayProperties.class)
 @EnableConfigurationProperties(PayProperties.class)
 public class PayConfiguration {
 public class PayConfiguration {
+
+    @Bean
+    public PayClientFactory payClientFactory() {
+        return new PayClientFactoryImpl();
+    }
+
 }
 }

+ 8 - 8
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClient.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClient.java

@@ -1,11 +1,11 @@
-package cn.iocoder.yudao.framework.pay.core.client;
-
-import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
-import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client;
+
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO;
 
 
 import java.util.Map;
 import java.util.Map;
 
 

+ 1 - 1
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClientConfig.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientConfig.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.pay.core.client;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client;
 
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;

+ 1 - 12
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClientFactory.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientFactory.java

@@ -1,6 +1,4 @@
-package cn.iocoder.yudao.framework.pay.core.client;
-
-import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client;
 
 
 /**
 /**
  * 支付客户端的工厂接口
  * 支付客户端的工厂接口
@@ -27,13 +25,4 @@ public interface PayClientFactory {
      */
      */
     <Config extends PayClientConfig> PayClient createOrUpdatePayClient(Long channelId, String channelCode,
     <Config extends PayClientConfig> PayClient createOrUpdatePayClient(Long channelId, String channelCode,
                                                                        Config config);
                                                                        Config config);
-
-    /**
-     * 注册支付客户端 Class,用于模块中实现的 PayClient
-     *
-     * @param channel 支付渠道的编码的枚举
-     * @param payClientClass 支付客户端 class
-     */
-    void registerPayClientClass(PayChannelEnum channel, Class<?> payClientClass);
-
 }
 }

+ 9 - 9
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/order/PayOrderRespDTO.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderRespDTO.java

@@ -1,8 +1,8 @@
-package cn.iocoder.yudao.framework.pay.core.client.dto.order;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order;
 
 
-import cn.iocoder.yudao.framework.pay.core.client.exception.PayException;
-import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
-import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum;
+import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.exception.PayClientException;
+import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -18,7 +18,7 @@ public class PayOrderRespDTO {
     /**
     /**
      * 支付状态
      * 支付状态
      *
      *
-     * 枚举:{@link PayOrderStatusRespEnum}
+     * 枚举:{@link PayOrderStatusEnum}
      */
      */
     private Integer status;
     private Integer status;
 
 
@@ -65,7 +65,7 @@ public class PayOrderRespDTO {
      * 调用渠道的错误码
      * 调用渠道的错误码
      *
      *
      * 注意:这里返回的是业务异常,而是不系统异常。
      * 注意:这里返回的是业务异常,而是不系统异常。
-     * 如果是系统异常,则会抛出 {@link PayException}
+     * 如果是系统异常,则会抛出 {@link PayClientException}
      */
      */
     private String channelErrorCode;
     private String channelErrorCode;
     /**
     /**
@@ -82,7 +82,7 @@ public class PayOrderRespDTO {
     public static PayOrderRespDTO waitingOf(String displayMode, String displayContent,
     public static PayOrderRespDTO waitingOf(String displayMode, String displayContent,
                                             String outTradeNo, Object rawData) {
                                             String outTradeNo, Object rawData) {
         PayOrderRespDTO respDTO = new PayOrderRespDTO();
         PayOrderRespDTO respDTO = new PayOrderRespDTO();
-        respDTO.status = PayOrderStatusRespEnum.WAITING.getStatus();
+        respDTO.status = PayOrderStatusEnum.WAITING.getStatus();
         respDTO.displayMode = displayMode;
         respDTO.displayMode = displayMode;
         respDTO.displayContent = displayContent;
         respDTO.displayContent = displayContent;
         // 相对通用的字段
         // 相对通用的字段
@@ -97,7 +97,7 @@ public class PayOrderRespDTO {
     public static PayOrderRespDTO successOf(String channelOrderNo, String channelUserId, LocalDateTime successTime,
     public static PayOrderRespDTO successOf(String channelOrderNo, String channelUserId, LocalDateTime successTime,
                                             String outTradeNo, Object rawData) {
                                             String outTradeNo, Object rawData) {
         PayOrderRespDTO respDTO = new PayOrderRespDTO();
         PayOrderRespDTO respDTO = new PayOrderRespDTO();
-        respDTO.status = PayOrderStatusRespEnum.SUCCESS.getStatus();
+        respDTO.status = PayOrderStatusEnum.SUCCESS.getStatus();
         respDTO.channelOrderNo = channelOrderNo;
         respDTO.channelOrderNo = channelOrderNo;
         respDTO.channelUserId = channelUserId;
         respDTO.channelUserId = channelUserId;
         respDTO.successTime = successTime;
         respDTO.successTime = successTime;
@@ -129,7 +129,7 @@ public class PayOrderRespDTO {
     public static PayOrderRespDTO closedOf(String channelErrorCode, String channelErrorMsg,
     public static PayOrderRespDTO closedOf(String channelErrorCode, String channelErrorMsg,
                                            String outTradeNo, Object rawData) {
                                            String outTradeNo, Object rawData) {
         PayOrderRespDTO respDTO = new PayOrderRespDTO();
         PayOrderRespDTO respDTO = new PayOrderRespDTO();
-        respDTO.status = PayOrderStatusRespEnum.CLOSED.getStatus();
+        respDTO.status = PayOrderStatusEnum.CLOSED.getStatus();
         respDTO.channelErrorCode = channelErrorCode;
         respDTO.channelErrorCode = channelErrorCode;
         respDTO.channelErrorMsg = channelErrorMsg;
         respDTO.channelErrorMsg = channelErrorMsg;
         // 相对通用的字段
         // 相对通用的字段

+ 2 - 2
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.pay.core.client.dto.order;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order;
 
 
-import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
+import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum;
 import lombok.Data;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.URL;
 import org.hibernate.validator.constraints.URL;

+ 8 - 8
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/refund/PayRefundRespDTO.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundRespDTO.java

@@ -1,7 +1,7 @@
-package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund;
 
 
-import cn.iocoder.yudao.framework.pay.core.client.exception.PayException;
-import cn.iocoder.yudao.framework.pay.core.enums.refund.PayRefundStatusRespEnum;
+import cn.iocoder.yudao.module.pay.enums.refund.PayRefundStatusEnum;
+import cn.iocoder.yudao.module.pay.framework.pay.core.client.exception.PayClientException;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -17,7 +17,7 @@ public class PayRefundRespDTO {
     /**
     /**
      * 退款状态
      * 退款状态
      *
      *
-     * 枚举 {@link PayRefundStatusRespEnum}
+     * 枚举 {@link PayRefundStatusEnum}
      */
      */
     private Integer status;
     private Integer status;
 
 
@@ -49,7 +49,7 @@ public class PayRefundRespDTO {
      * 调用渠道的错误码
      * 调用渠道的错误码
      *
      *
      * 注意:这里返回的是业务异常,而是不系统异常。
      * 注意:这里返回的是业务异常,而是不系统异常。
-     * 如果是系统异常,则会抛出 {@link PayException}
+     * 如果是系统异常,则会抛出 {@link PayClientException}
      */
      */
     private String channelErrorCode;
     private String channelErrorCode;
     /**
     /**
@@ -66,7 +66,7 @@ public class PayRefundRespDTO {
     public static PayRefundRespDTO waitingOf(String channelRefundNo,
     public static PayRefundRespDTO waitingOf(String channelRefundNo,
                                              String outRefundNo, Object rawData) {
                                              String outRefundNo, Object rawData) {
         PayRefundRespDTO respDTO = new PayRefundRespDTO();
         PayRefundRespDTO respDTO = new PayRefundRespDTO();
-        respDTO.status = PayRefundStatusRespEnum.WAITING.getStatus();
+        respDTO.status = PayRefundStatusEnum.WAITING.getStatus();
         respDTO.channelRefundNo = channelRefundNo;
         respDTO.channelRefundNo = channelRefundNo;
         // 相对通用的字段
         // 相对通用的字段
         respDTO.outRefundNo = outRefundNo;
         respDTO.outRefundNo = outRefundNo;
@@ -80,7 +80,7 @@ public class PayRefundRespDTO {
     public static PayRefundRespDTO successOf(String channelRefundNo, LocalDateTime successTime,
     public static PayRefundRespDTO successOf(String channelRefundNo, LocalDateTime successTime,
                                              String outRefundNo, Object rawData) {
                                              String outRefundNo, Object rawData) {
         PayRefundRespDTO respDTO = new PayRefundRespDTO();
         PayRefundRespDTO respDTO = new PayRefundRespDTO();
-        respDTO.status = PayRefundStatusRespEnum.SUCCESS.getStatus();
+        respDTO.status = PayRefundStatusEnum.SUCCESS.getStatus();
         respDTO.channelRefundNo = channelRefundNo;
         respDTO.channelRefundNo = channelRefundNo;
         respDTO.successTime = successTime;
         respDTO.successTime = successTime;
         // 相对通用的字段
         // 相对通用的字段
@@ -103,7 +103,7 @@ public class PayRefundRespDTO {
     public static PayRefundRespDTO failureOf(String channelErrorCode, String channelErrorMsg,
     public static PayRefundRespDTO failureOf(String channelErrorCode, String channelErrorMsg,
                                              String outRefundNo, Object rawData) {
                                              String outRefundNo, Object rawData) {
         PayRefundRespDTO respDTO = new PayRefundRespDTO();
         PayRefundRespDTO respDTO = new PayRefundRespDTO();
-        respDTO.status = PayRefundStatusRespEnum.FAILURE.getStatus();
+        respDTO.status = PayRefundStatusEnum.FAILURE.getStatus();
         respDTO.channelErrorCode = channelErrorCode;
         respDTO.channelErrorCode = channelErrorCode;
         respDTO.channelErrorMsg = channelErrorMsg;
         respDTO.channelErrorMsg = channelErrorMsg;
         // 相对通用的字段
         // 相对通用的字段

+ 1 - 1
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Builder;

+ 7 - 7
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java

@@ -1,6 +1,6 @@
-package cn.iocoder.yudao.framework.pay.core.client.dto.transfer;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer;
 
 
-import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
+import cn.iocoder.yudao.module.pay.enums.transfer.PayTransferStatusEnum;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -16,7 +16,7 @@ public class PayTransferRespDTO {
     /**
     /**
      * 转账状态
      * 转账状态
      *
      *
-     * 关联 {@link  PayTransferStatusRespEnum#getStatus()}
+     * 关联 {@link  PayTransferStatusEnum}
      */
      */
     private Integer status;
     private Integer status;
 
 
@@ -63,7 +63,7 @@ public class PayTransferRespDTO {
     public static PayTransferRespDTO waitingOf(String channelTransferNo,
     public static PayTransferRespDTO waitingOf(String channelTransferNo,
                                                String outTransferNo, Object rawData) {
                                                String outTransferNo, Object rawData) {
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
-        respDTO.status = PayTransferStatusRespEnum.WAITING.getStatus();
+        respDTO.status = PayTransferStatusEnum.WAITING.getStatus();
         respDTO.channelTransferNo = channelTransferNo;
         respDTO.channelTransferNo = channelTransferNo;
         respDTO.outTransferNo = outTransferNo;
         respDTO.outTransferNo = outTransferNo;
         respDTO.rawData = rawData;
         respDTO.rawData = rawData;
@@ -76,7 +76,7 @@ public class PayTransferRespDTO {
     public static PayTransferRespDTO processingOf(String channelTransferNo,
     public static PayTransferRespDTO processingOf(String channelTransferNo,
                                                   String outTransferNo, Object rawData) {
                                                   String outTransferNo, Object rawData) {
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
-        respDTO.status = PayTransferStatusRespEnum.PROCESSING.getStatus();
+        respDTO.status = PayTransferStatusEnum.PROCESSING.getStatus();
         respDTO.channelTransferNo = channelTransferNo;
         respDTO.channelTransferNo = channelTransferNo;
         respDTO.outTransferNo = outTransferNo;
         respDTO.outTransferNo = outTransferNo;
         respDTO.rawData = rawData;
         respDTO.rawData = rawData;
@@ -89,7 +89,7 @@ public class PayTransferRespDTO {
     public static PayTransferRespDTO closedOf(String channelErrorCode, String channelErrorMsg,
     public static PayTransferRespDTO closedOf(String channelErrorCode, String channelErrorMsg,
                                               String outTransferNo, Object rawData) {
                                               String outTransferNo, Object rawData) {
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
-        respDTO.status = PayTransferStatusRespEnum.CLOSED.getStatus();
+        respDTO.status = PayTransferStatusEnum.CLOSED.getStatus();
         respDTO.channelErrorCode = channelErrorCode;
         respDTO.channelErrorCode = channelErrorCode;
         respDTO.channelErrorMsg = channelErrorMsg;
         respDTO.channelErrorMsg = channelErrorMsg;
         // 相对通用的字段
         // 相对通用的字段
@@ -104,7 +104,7 @@ public class PayTransferRespDTO {
     public static PayTransferRespDTO successOf(String channelTransferNo, LocalDateTime successTime,
     public static PayTransferRespDTO successOf(String channelTransferNo, LocalDateTime successTime,
                                              String outTransferNo, Object rawData) {
                                              String outTransferNo, Object rawData) {
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
         PayTransferRespDTO respDTO = new PayTransferRespDTO();
-        respDTO.status = PayTransferStatusRespEnum.SUCCESS.getStatus();
+        respDTO.status = PayTransferStatusEnum.SUCCESS.getStatus();
         respDTO.channelTransferNo = channelTransferNo;
         respDTO.channelTransferNo = channelTransferNo;
         respDTO.successTime = successTime;
         respDTO.successTime = successTime;
         // 相对通用的字段
         // 相对通用的字段

+ 1 - 1
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java → yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.framework.pay.core.client.dto.transfer;
+package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer;
 
 
 import jakarta.validation.constraints.Min;
 import jakarta.validation.constraints.Min;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotEmpty;

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно