Commit eefd5341b34057f07b603f5bc2a3d4d6e261d4bc

Authored by YunaiV
2 parents ff32b015 8fb018a6

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
Showing 150 changed files with 762 additions and 1002 deletions

Too many changes.

To preserve performance only 100 of 150 files are displayed.

yudao-module-ai/pom.xml
... ... @@ -11,7 +11,6 @@
11 11 <modules>
12 12 <module>yudao-module-ai-api</module>
13 13 <module>yudao-module-ai-biz</module>
14   - <module>yudao-spring-boot-starter-ai</module>
15 14 </modules>
16 15 <packaging>pom</packaging>
17 16 <artifactId>yudao-module-ai</artifactId>
... ...
yudao-module-ai/yudao-module-ai-biz/pom.xml
... ... @@ -17,6 +17,10 @@
17 17 国内:通义千问、文心一言、讯飞星火、智谱 GLM、DeepSeek
18 18 国外:OpenAI、Ollama、Midjourney、StableDiffusion、Suno
19 19 </description>
  20 + <properties>
  21 + <spring-ai.version>1.0.0-M6</spring-ai.version>
  22 + <tinyflow.version>1.0.2</tinyflow.version>
  23 + </properties>
20 24  
21 25 <dependencies>
22 26 <dependency>
... ... @@ -24,14 +28,19 @@
24 28 <artifactId>yudao-module-ai-api</artifactId>
25 29 <version>${revision}</version>
26 30 </dependency>
27   -
28   - <!-- 业务组件 -->
29 31 <dependency>
30 32 <groupId>cn.iocoder.boot</groupId>
31   - <artifactId>yudao-spring-boot-starter-ai</artifactId>
  33 + <artifactId>yudao-module-system-api</artifactId>
  34 + <version>${revision}</version>
  35 + </dependency>
  36 + <dependency>
  37 + <groupId>cn.iocoder.boot</groupId>
  38 + <artifactId>yudao-module-infra-api</artifactId>
32 39 <version>${revision}</version>
33 40 </dependency>
34 41  
  42 + <!-- 业务组件 -->
  43 +
35 44 <dependency>
36 45 <groupId>cn.iocoder.boot</groupId>
37 46 <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
... ... @@ -66,5 +75,142 @@
66 75 <groupId>cn.iocoder.boot</groupId>
67 76 <artifactId>yudao-spring-boot-starter-excel</artifactId>
68 77 </dependency>
  78 +
  79 + <!-- Spring AI Model 模型接入 -->
  80 + <dependency>
  81 + <groupId>org.springframework.ai</groupId>
  82 + <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
  83 + <version>${spring-ai.version}</version>
  84 + </dependency>
  85 + <dependency>
  86 + <groupId>org.springframework.ai</groupId>
  87 + <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
  88 + <version>${spring-ai.version}</version>
  89 + </dependency>
  90 + <dependency>
  91 + <groupId>org.springframework.ai</groupId>
  92 + <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
  93 + <version>${spring-ai.version}</version>
  94 + </dependency>
  95 + <dependency>
  96 + <groupId>org.springframework.ai</groupId>
  97 + <artifactId>spring-ai-stability-ai-spring-boot-starter</artifactId>
  98 + <version>${spring-ai.version}</version>
  99 + </dependency>
  100 + <dependency>
  101 + <!-- 通义千问 -->
  102 + <groupId>com.alibaba.cloud.ai</groupId>
  103 + <artifactId>spring-ai-alibaba-starter</artifactId>
  104 + <version>${spring-ai.version}.1</version>
  105 + </dependency>
  106 + <dependency>
  107 + <!-- 文心一言 -->
  108 + <groupId>org.springframework.ai</groupId>
  109 + <artifactId>spring-ai-qianfan-spring-boot-starter</artifactId>
  110 + <version>${spring-ai.version}</version>
  111 + </dependency>
  112 + <dependency>
  113 + <!-- 智谱 GLM -->
  114 + <groupId>org.springframework.ai</groupId>
  115 + <artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
  116 + <version>${spring-ai.version}</version>
  117 + </dependency>
  118 + <dependency>
  119 + <groupId>org.springframework.ai</groupId>
  120 + <artifactId>spring-ai-minimax-spring-boot-starter</artifactId>
  121 + <version>${spring-ai.version}</version>
  122 + </dependency>
  123 + <dependency>
  124 + <groupId>org.springframework.ai</groupId>
  125 + <artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>
  126 + <version>${spring-ai.version}</version>
  127 + </dependency>
  128 +
  129 + <!-- 向量存储:https://db-engines.com/en/ranking/vector+dbms -->
  130 + <dependency>
  131 + <!-- Qdrant:https://qdrant.tech/ -->
  132 + <groupId>org.springframework.ai</groupId>
  133 + <artifactId>spring-ai-qdrant-store</artifactId>
  134 + <version>${spring-ai.version}</version>
  135 + </dependency>
  136 +
  137 + <dependency>
  138 + <!-- Redis:https://redis.io/docs/latest/develop/get-started/vector-database/ -->
  139 + <groupId>org.springframework.ai</groupId>
  140 + <artifactId>spring-ai-redis-store</artifactId>
  141 + <version>${spring-ai.version}</version>
  142 + </dependency>
  143 + <dependency>
  144 + <groupId>cn.iocoder.boot</groupId>
  145 + <artifactId>yudao-spring-boot-starter-redis</artifactId>
  146 + </dependency>
  147 +
  148 + <dependency>
  149 + <!-- Milvus:https://milvus.io/ -->
  150 + <groupId>org.springframework.ai</groupId>
  151 + <artifactId>spring-ai-milvus-store</artifactId>
  152 + <version>${spring-ai.version}</version>
  153 + <exclusions>
  154 + <!-- 解决和 logback 的日志冲突 -->
  155 + <exclusion>
  156 + <groupId>org.slf4j</groupId>
  157 + <artifactId>slf4j-reload4j</artifactId>
  158 + </exclusion>
  159 + </exclusions>
  160 + </dependency>
  161 +
  162 + <dependency>
  163 + <!-- Tika:负责内容的解析 -->
  164 + <groupId>org.springframework.ai</groupId>
  165 + <artifactId>spring-ai-tika-document-reader</artifactId>
  166 + <version>${spring-ai.version}</version>
  167 + <!-- TODO 芋艿:boot 项目里,不引入 cloud 依赖!!!另外,这样也是为了解决启动报错的问题! -->
  168 + <exclusions>
  169 + <exclusion>
  170 + <artifactId>spring-cloud-function-context</artifactId>
  171 + <groupId>org.springframework.cloud</groupId>
  172 + </exclusion>
  173 + <exclusion>
  174 + <artifactId>spring-cloud-function-core</artifactId>
  175 + <groupId>org.springframework.cloud</groupId>
  176 + </exclusion>
  177 + </exclusions>
  178 + </dependency>
  179 +
  180 + <!-- TinyFlow:AI 工作流 -->
  181 + <dependency>
  182 + <groupId>dev.tinyflow</groupId>
  183 + <artifactId>tinyflow-java-core</artifactId>
  184 + <version>${tinyflow.version}</version>
  185 + <exclusions>
  186 + <exclusion>
  187 + <groupId>com.jfinal</groupId>
  188 + <artifactId>enjoy</artifactId>
  189 + </exclusion>
  190 + <exclusion>
  191 + <!-- 解决 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1318/ 问题 -->
  192 + <groupId>com.agentsflex</groupId>
  193 + <artifactId>agents-flex-store-elasticsearch</artifactId>
  194 + </exclusion>
  195 + <exclusion>
  196 + <!-- TODO @芋艿:暂时移除 groovy,和 iot 冲突 -->
  197 + <groupId>org.codehaus.groovy</groupId>
  198 + <artifactId>groovy-all</artifactId>
  199 + </exclusion>
  200 + <!-- 解决和 logback 的日志冲突 -->
  201 + <exclusion>
  202 + <groupId>org.slf4j</groupId>
  203 + <artifactId>slf4j-simple</artifactId>
  204 + </exclusion>
  205 + <exclusion>
  206 + <groupId>org.apache.logging.log4j</groupId>
  207 + <artifactId>log4j-slf4j-impl</artifactId>
  208 + </exclusion>
  209 + <exclusion>
  210 + <groupId>org.slf4j</groupId>
  211 + <artifactId>slf4j-reload4j</artifactId>
  212 + </exclusion>
  213 + </exclusions>
  214 + </dependency>
69 215 </dependencies>
70 216 </project>
71 217 \ No newline at end of file
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/AiImageController.java
1 1 package cn.iocoder.yudao.module.ai.controller.admin.image;
2 2  
3 3 import cn.hutool.core.util.ObjUtil;
4   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
5 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageRespVO.java
1 1 package cn.iocoder.yudao.module.ai.controller.admin.image.vo;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 4 import io.swagger.v3.oas.annotations.media.Schema;
5 5 import lombok.Data;
6 6  
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/vo/model/AiModelSaveReqVO.java
1 1 package cn.iocoder.yudao.module.ai.controller.admin.model.vo.model;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
4   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  4 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
5 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 6 import cn.iocoder.yudao.framework.common.validation.InEnum;
7 7 import io.swagger.v3.oas.annotations.media.Schema;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java
1 1 package cn.iocoder.yudao.module.ai.dal.dataobject.image;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 6 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
6 7 import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum;
... ... @@ -49,7 +50,7 @@ public class AiImageDO extends BaseDO {
49 50 /**
50 51 * 平台
51 52 *
52   - * 枚举 {@link cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum}
  53 + * 枚举 {@link AiPlatformEnum}
53 54 */
54 55 private String platform;
55 56 /**
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/mindmap/AiMindMapDO.java
1 1 package cn.iocoder.yudao.module.ai.dal.dataobject.mindmap;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
6 6 import com.baomidou.mybatisplus.annotation.KeySequence;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiApiKeyDO.java
1 1 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 6 import com.baomidou.mybatisplus.annotation.KeySequence;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiModelDO.java
1 1 package cn.iocoder.yudao.module.ai.dal.dataobject.model;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
4   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  4 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
5 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7 7 import com.baomidou.mybatisplus.annotation.KeySequence;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/music/AiMusicDO.java
1 1 package cn.iocoder.yudao.module.ai.dal.dataobject.music;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 5 import cn.iocoder.yudao.module.ai.enums.music.AiMusicGenerateModeEnum;
6 6 import cn.iocoder.yudao.module.ai.enums.music.AiMusicStatusEnum;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/write/AiWriteDO.java
1 1 package cn.iocoder.yudao.module.ai.dal.dataobject.write;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 5 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
6 6 import cn.iocoder.yudao.module.ai.enums.DictTypeConstants;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiModelTypeEnum.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiModelTypeEnum.java
1   -package cn.iocoder.yudao.framework.ai.core.enums;
  1 +package cn.iocoder.yudao.module.ai.enums.model;
2 2  
3 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4 4 import lombok.Getter;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/enums/AiPlatformEnum.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/model/AiPlatformEnum.java
1   -package cn.iocoder.yudao.framework.ai.core.enums;
  1 +package cn.iocoder.yudao.module.ai.enums.model;
2 2  
3 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4 4 import lombok.AllArgsConstructor;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/enums/package-info.java 0 → 100644
  1 +/**
  2 + * 占位
  3 + */
  4 +package cn.iocoder.yudao.module.ai.enums;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiAutoConfiguration.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java
1   -package cn.iocoder.yudao.framework.ai.config;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.config;
2 2  
3 3 import cn.hutool.core.util.StrUtil;
4 4 import cn.hutool.extra.spring.SpringUtil;
5   -import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactory;
6   -import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactoryImpl;
7   -import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;
8   -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
9   -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
10   -import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;
11   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
12   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
13   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
14   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
15   -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactory;
  6 +import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactoryImpl;
  7 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
  8 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
  9 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
  10 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
  11 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  12 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
  13 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
  14 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
  15 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
16 16 import lombok.extern.slf4j.Slf4j;
17 17 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusServiceClientProperties;
18 18 import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreProperties;
... ... @@ -26,24 +26,24 @@ import org.springframework.ai.openai.OpenAiChatOptions;
26 26 import org.springframework.ai.openai.api.OpenAiApi;
27 27 import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator;
28 28 import org.springframework.ai.tokenizer.TokenCountEstimator;
29   -import org.springframework.boot.autoconfigure.AutoConfiguration;
30 29 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
31 30 import org.springframework.boot.context.properties.EnableConfigurationProperties;
32 31 import org.springframework.context.annotation.Bean;
  32 +import org.springframework.context.annotation.Configuration;
33 33  
34 34 /**
35 35 * 芋道 AI 自动配置
36 36 *
37 37 * @author fansili
38 38 */
39   -@AutoConfiguration
  39 +@Configuration
40 40 @EnableConfigurationProperties({ YudaoAiProperties.class,
41 41 QdrantVectorStoreProperties.class, // 解析 Qdrant 配置
42 42 RedisVectorStoreProperties.class, // 解析 Redis 配置
43 43 MilvusVectorStoreProperties.class, MilvusServiceClientProperties.class // 解析 Milvus 配置
44 44 })
45 45 @Slf4j
46   -public class YudaoAiAutoConfiguration {
  46 +public class AiAutoConfiguration {
47 47  
48 48 @Bean
49 49 public AiModelFactory aiModelFactory() {
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoAiProperties.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/YudaoAiProperties.java
1   -package cn.iocoder.yudao.framework.ai.config;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.config;
2 2  
3 3 import lombok.Data;
4 4 import org.springframework.boot.context.properties.ConfigurationProperties;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiModelFactory.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactory.java
1   -package cn.iocoder.yudao.framework.ai.core.factory;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
4   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
5   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
6 6 import org.springframework.ai.chat.model.ChatModel;
7 7 import org.springframework.ai.embedding.EmbeddingModel;
8 8 import org.springframework.ai.image.ImageModel;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/factory/AiModelFactoryImpl.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/AiModelFactoryImpl.java
1   -package cn.iocoder.yudao.framework.ai.core.factory;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core;
2 2  
3 3 import cn.hutool.core.io.FileUtil;
4 4 import cn.hutool.core.lang.Assert;
... ... @@ -8,20 +8,20 @@ import cn.hutool.core.util.ArrayUtil;
8 8 import cn.hutool.core.util.RuntimeUtil;
9 9 import cn.hutool.core.util.StrUtil;
10 10 import cn.hutool.extra.spring.SpringUtil;
11   -import cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration;
12   -import cn.iocoder.yudao.framework.ai.config.YudaoAiProperties;
13   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
14   -import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;
15   -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
16   -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
17   -import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;
18   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
19   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
20   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
21   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
22   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
23   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
24   -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
  11 +import cn.iocoder.yudao.module.ai.framework.ai.config.AiAutoConfiguration;
  12 +import cn.iocoder.yudao.module.ai.framework.ai.config.YudaoAiProperties;
  13 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  14 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
  15 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
  16 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
  17 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
  18 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  19 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
  20 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
  21 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
  22 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
  23 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
  24 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
25 25 import cn.iocoder.yudao.framework.common.util.spring.SpringUtils;
26 26 import com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeAutoConfiguration;
27 27 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
... ... @@ -361,39 +361,39 @@ public class AiModelFactoryImpl implements AiModelFactory {
361 361 }
362 362  
363 363 /**
364   - * 可参考 {@link YudaoAiAutoConfiguration#deepSeekChatModel(YudaoAiProperties)}
  364 + * 可参考 {@link AiAutoConfiguration#deepSeekChatModel(YudaoAiProperties)}
365 365 */
366 366 private static DeepSeekChatModel buildDeepSeekChatModel(String apiKey) {
367 367 YudaoAiProperties.DeepSeekProperties properties = new YudaoAiProperties.DeepSeekProperties()
368 368 .setApiKey(apiKey);
369   - return new YudaoAiAutoConfiguration().buildDeepSeekChatModel(properties);
  369 + return new AiAutoConfiguration().buildDeepSeekChatModel(properties);
370 370 }
371 371  
372 372 /**
373   - * 可参考 {@link YudaoAiAutoConfiguration#douBaoChatClient(YudaoAiProperties)}
  373 + * 可参考 {@link AiAutoConfiguration#douBaoChatClient(YudaoAiProperties)}
374 374 */
375 375 private ChatModel buildDouBaoChatModel(String apiKey) {
376 376 YudaoAiProperties.DouBaoProperties properties = new YudaoAiProperties.DouBaoProperties()
377 377 .setApiKey(apiKey);
378   - return new YudaoAiAutoConfiguration().buildDouBaoChatClient(properties);
  378 + return new AiAutoConfiguration().buildDouBaoChatClient(properties);
379 379 }
380 380  
381 381 /**
382   - * 可参考 {@link YudaoAiAutoConfiguration#hunYuanChatClient(YudaoAiProperties)}
  382 + * 可参考 {@link AiAutoConfiguration#hunYuanChatClient(YudaoAiProperties)}
383 383 */
384 384 private ChatModel buildHunYuanChatModel(String apiKey, String url) {
385 385 YudaoAiProperties.HunYuanProperties properties = new YudaoAiProperties.HunYuanProperties()
386 386 .setBaseUrl(url).setApiKey(apiKey);
387   - return new YudaoAiAutoConfiguration().buildHunYuanChatClient(properties);
  387 + return new AiAutoConfiguration().buildHunYuanChatClient(properties);
388 388 }
389 389  
390 390 /**
391   - * 可参考 {@link YudaoAiAutoConfiguration#siliconFlowChatClient(YudaoAiProperties)}
  391 + * 可参考 {@link AiAutoConfiguration#siliconFlowChatClient(YudaoAiProperties)}
392 392 */
393 393 private ChatModel buildSiliconFlowChatModel(String apiKey) {
394 394 YudaoAiProperties.SiliconFlowProperties properties = new YudaoAiProperties.SiliconFlowProperties()
395 395 .setApiKey(apiKey);
396   - return new YudaoAiAutoConfiguration().buildSiliconFlowChatClient(properties);
  396 + return new AiAutoConfiguration().buildSiliconFlowChatClient(properties);
397 397 }
398 398  
399 399 /**
... ... @@ -436,23 +436,23 @@ public class AiModelFactoryImpl implements AiModelFactory {
436 436 }
437 437  
438 438 /**
439   - * 可参考 {@link YudaoAiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)}
  439 + * 可参考 {@link AiAutoConfiguration#xingHuoChatClient(YudaoAiProperties)}
440 440 */
441 441 private static XingHuoChatModel buildXingHuoChatModel(String key) {
442 442 List<String> keys = StrUtil.split(key, '|');
443 443 Assert.equals(keys.size(), 2, "XingHuoChatClient 的密钥需要 (appKey|secretKey) 格式");
444 444 YudaoAiProperties.XingHuoProperties properties = new YudaoAiProperties.XingHuoProperties()
445 445 .setAppKey(keys.get(0)).setSecretKey(keys.get(1));
446   - return new YudaoAiAutoConfiguration().buildXingHuoChatClient(properties);
  446 + return new AiAutoConfiguration().buildXingHuoChatClient(properties);
447 447 }
448 448  
449 449 /**
450   - * 可参考 {@link YudaoAiAutoConfiguration#baiChuanChatClient(YudaoAiProperties)}
  450 + * 可参考 {@link AiAutoConfiguration#baiChuanChatClient(YudaoAiProperties)}
451 451 */
452 452 private BaiChuanChatModel buildBaiChuanChatModel(String apiKey) {
453 453 YudaoAiProperties.BaiChuanProperties properties = new YudaoAiProperties.BaiChuanProperties()
454 454 .setApiKey(apiKey);
455   - return new YudaoAiAutoConfiguration().buildBaiChuanChatClient(properties);
  455 + return new AiAutoConfiguration().buildBaiChuanChatClient(properties);
456 456 }
457 457  
458 458 /**
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/baichuan/BaiChuanChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/baichuan/BaiChuanChatModel.java
1   -package cn.iocoder.yudao.framework.ai.core.model.baichuan;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan;
2 2  
3 3 import lombok.RequiredArgsConstructor;
4 4 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/deepseek/DeepSeekChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/deepseek/DeepSeekChatModel.java
1   -package cn.iocoder.yudao.framework.ai.core.model.deepseek;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek;
2 2  
3 3 import lombok.RequiredArgsConstructor;
4 4 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/doubao/DouBaoChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/doubao/DouBaoChatModel.java
1   -package cn.iocoder.yudao.framework.ai.core.model.doubao;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao;
2 2  
3 3 import lombok.RequiredArgsConstructor;
4 4 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/hunyuan/HunYuanChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/hunyuan/HunYuanChatModel.java
1   -package cn.iocoder.yudao.framework.ai.core.model.hunyuan;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan;
2 2  
3 3 import lombok.RequiredArgsConstructor;
4 4 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/midjourney/api/MidjourneyApi.java
1   -package cn.iocoder.yudao.framework.ai.core.model.midjourney.api;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api;
2 2  
3 3 import cn.hutool.core.util.StrUtil;
4 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowApiConstants.java renamed to 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 @@
14 14 * limitations under the License.
15 15 */
16 16  
17   -package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
  17 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
18 18  
19 19 /**
20 20 * SiliconFlow API 枚举类
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowChatModel.java
1   -package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
2 2  
3 3 import lombok.RequiredArgsConstructor;
4 4 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageApi.java renamed to 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 @@
14 14 * limitations under the License.
15 15 */
16 16  
17   -package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
  17 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
18 18  
19 19 import com.fasterxml.jackson.annotation.JsonInclude;
20 20 import com.fasterxml.jackson.annotation.JsonProperty;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageModel.java renamed to 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 @@
14 14 * limitations under the License.
15 15 */
16 16  
17   -package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
  17 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
18 18  
19 19 import io.micrometer.observation.ObservationRegistry;
20 20 import lombok.Setter;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/siliconflow/SiliconFlowImageOptions.java
1   -package cn.iocoder.yudao.framework.ai.core.model.siliconflow;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonProperty;
4 4 import lombok.AllArgsConstructor;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/suno/api/SunoApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/suno/api/SunoApi.java
1   -package cn.iocoder.yudao.framework.ai.core.model.suno.api;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.text.StrPool;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/wenduoduo/api/WenDuoDuoPptApi.java
1   -package cn.iocoder.yudao.framework.ai.core.model.wenduoduo.api;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.wenduoduo.api;
2 2  
3 3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4 4 import com.fasterxml.jackson.annotation.JsonFormat;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/XingHuoChatModel.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/XingHuoChatModel.java
1   -package cn.iocoder.yudao.framework.ai.core.model.xinghuo;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo;
2 2  
3 3 import lombok.RequiredArgsConstructor;
4 4 import lombok.extern.slf4j.Slf4j;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/xinghuo/api/XunFeiPptApi.java
1   -package cn.iocoder.yudao.framework.ai.core.model.xinghuo.api;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.api;
2 2  
3 3 import cn.hutool.core.util.ObjUtil;
4 4 import cn.hutool.crypto.SecureUtil;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/package-info.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/package-info.java
... ... @@ -10,4 +10,4 @@
10 10 * 6. midjourney 包:Midjourney API,对接 https://github.com/novicezk/midjourney-proxy 实现
11 11 * 7. suno 包:Suno API,对接 https://github.com/gcui-art/suno-api 实现
12 12 */
13   -package cn.iocoder.yudao.framework.ai;
14 13 \ No newline at end of file
  14 +package cn.iocoder.yudao.module.ai.framework.ai;
15 15 \ No newline at end of file
... ...
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;
4 4 import cn.hutool.core.lang.Assert;
5 5 import cn.hutool.core.util.ObjUtil;
6 6 import cn.hutool.core.util.ObjectUtil;
7   -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
  7 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
8 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
10 10 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO;
... ...
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;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjUtil;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
7   -import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
  6 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  7 +import cn.iocoder.yudao.module.ai.util.AiUtils;
8 8 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
9 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
10 10 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageService.java
1 1 package cn.iocoder.yudao.module.ai.service.image;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 5 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*;
6 6 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.midjourney.AiMidjourneyActionReqVO;
... ...
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;
9 9 import cn.hutool.core.util.StrUtil;
10 10 import cn.hutool.extra.spring.SpringUtil;
11 11 import cn.hutool.http.HttpUtil;
12   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
13   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
14   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
  12 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  13 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  14 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
15 15 import cn.iocoder.yudao.framework.common.pojo.PageResult;
16 16 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
17 17 import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDrawReqVO;
... ...
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;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjUtil;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
7   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
8   -import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
  6 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  7 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  8 +import cn.iocoder.yudao.module.ai.util.AiUtils;
9 9 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 11 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelService.java
1 1 package cn.iocoder.yudao.module.ai.service.model;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
4   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelPageReqVO;
7 7 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelSaveReqVO;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/AiModelServiceImpl.java
1 1 package cn.iocoder.yudao.module.ai.service.model;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
4   -import cn.iocoder.yudao.framework.ai.core.factory.AiModelFactory;
5   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
6   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
  3 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.AiModelFactory;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
  6 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
7 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/model/tool/UserProfileQueryToolFunction.java
1 1 package cn.iocoder.yudao.module.ai.service.model.tool;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
  3 +import cn.iocoder.yudao.module.ai.util.AiUtils;
4 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 5 import cn.iocoder.yudao.framework.security.core.LoginUser;
6 6 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
... ...
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;
6 6 import cn.hutool.core.util.ObjectUtil;
7 7 import cn.hutool.core.util.StrUtil;
8 8 import cn.hutool.http.HttpUtil;
9   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
  9 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
10 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 11 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicPageReqVO;
12 12 import cn.iocoder.yudao.module.ai.controller.admin.music.vo.AiMusicUpdateMyReqVO;
... ...
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;
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ObjUtil;
5 5 import cn.hutool.core.util.StrUtil;
6   -import cn.iocoder.yudao.framework.ai.core.enums.AiModelTypeEnum;
7   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
8   -import cn.iocoder.yudao.framework.ai.core.util.AiUtils;
  6 +import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
  7 +import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
  8 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
  9 +import cn.iocoder.yudao.module.ai.util.AiUtils;
9 10 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 12 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/util/AiUtils.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/util/AiUtils.java
1   -package cn.iocoder.yudao.framework.ai.core.util;
  1 +package cn.iocoder.yudao.module.ai.util;
2 2  
3 3 import cn.hutool.core.util.ObjUtil;
4 4 import cn.hutool.core.util.StrUtil;
5   -import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum;
  5 +import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
6 6 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
7 7 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
8 8 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/AzureOpenAIChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/AzureOpenAIChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import com.azure.ai.openai.OpenAIClientBuilder;
4 4 import com.azure.core.credential.AzureKeyCredential;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/BaiChuanChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/BaiChuanChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.baichuan.BaiChuanChatModel;
4   -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.baichuan.BaiChuanChatModel;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
5 5 import org.junit.jupiter.api.Disabled;
6 6 import org.junit.jupiter.api.Test;
7 7 import org.springframework.ai.chat.messages.Message;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/CozeChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/CozeChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DeepSeekChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DeepSeekChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.deepseek.DeepSeekChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.deepseek.DeepSeekChatModel;
4 4 import org.junit.jupiter.api.Disabled;
5 5 import org.junit.jupiter.api.Test;
6 6 import org.springframework.ai.chat.messages.Message;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DifyChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DifyChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/DouBaoChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/DouBaoChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
4 4 import org.junit.jupiter.api.Disabled;
5 5 import org.junit.jupiter.api.Test;
6 6 import org.springframework.ai.chat.messages.Message;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/FastGPTChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/FastGPTChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/HunYuanChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/HunYuanChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.hunyuan.HunYuanChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.hunyuan.HunYuanChatModel;
4 4 import org.junit.jupiter.api.Disabled;
5 5 import org.junit.jupiter.api.Test;
6 6 import org.springframework.ai.chat.messages.Message;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/LlamaChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/LlamaChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/MiniMaxChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MiniMaxChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/MoonshotChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/MoonshotChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/OllamaChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OllamaChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/OpenAIChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/OpenAIChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/SiliconFlowChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/SiliconFlowChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
4   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowApiConstants;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowChatModel;
5 5 import org.junit.jupiter.api.Disabled;
6 6 import org.junit.jupiter.api.Test;
7 7 import org.springframework.ai.chat.messages.Message;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/TongYiChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/TongYiChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
4 4 import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/XingHuoChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/XingHuoChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.XingHuoChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.XingHuoChatModel;
4 4 import org.junit.jupiter.api.Disabled;
5 5 import org.junit.jupiter.api.Test;
6 6 import org.springframework.ai.chat.messages.Message;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/YiYanChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/YiYanChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/chat/ZhiPuAiChatModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/chat/ZhiPuAiChatModelTests.java
1   -package cn.iocoder.yudao.framework.ai.chat;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.chat;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/MidjourneyApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/MidjourneyApiTests.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.midjourney.api.MidjourneyApi;
4 4 import org.junit.jupiter.api.Disabled;
5 5 import org.junit.jupiter.api.Test;
6 6  
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/OpenAiImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/OpenAiImageModelTests.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/QianFanImageTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/QianFanImageTests.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ... @@ -8,7 +8,7 @@ import org.springframework.ai.qianfan.QianFanImageModel;
8 8 import org.springframework.ai.qianfan.QianFanImageOptions;
9 9 import org.springframework.ai.qianfan.api.QianFanImageApi;
10 10  
11   -import static cn.iocoder.yudao.framework.ai.image.StabilityAiImageModelTests.viewImage;
  11 +import static cn.iocoder.yudao.module.ai.framework.ai.core.model.image.StabilityAiImageModelTests.viewImage;
12 12  
13 13 // TODO @芋艿:百度千帆 API 提供了 V2 版本,目前 Spring AI 不兼容,可关键 <https://github.com/spring-projects/spring-ai/issues/2179> 进展
14 14  
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/SiliconFlowImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/SiliconFlowImageModelTests.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
4   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
5   -import cn.iocoder.yudao.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageModel;
  5 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.siliconflow.SiliconFlowImageOptions;
6 6 import org.junit.jupiter.api.Disabled;
7 7 import org.junit.jupiter.api.Test;
8 8 import org.springframework.ai.image.ImagePrompt;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/StabilityAiImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/StabilityAiImageModelTests.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3 3 import cn.hutool.core.codec.Base64;
4 4 import cn.hutool.core.thread.ThreadUtil;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/TongYiImagesModelTest.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/TongYiImagesModelTest.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3 3 import com.alibaba.cloud.ai.dashscope.api.DashScopeImageApi;
4 4 import com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/image/ZhiPuAiImageModelTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/image/ZhiPuAiImageModelTests.java
1   -package cn.iocoder.yudao.framework.ai.image;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.image;
2 2  
3 3 import org.junit.jupiter.api.Disabled;
4 4 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/mcp/DouBaoMcpTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/mcp/DouBaoMcpTests.java
1   -package cn.iocoder.yudao.framework.ai.mcp;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.mcp;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.doubao.DouBaoChatModel;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.doubao.DouBaoChatModel;
  4 +import org.junit.jupiter.api.Disabled;
4 5 import org.junit.jupiter.api.Test;
5 6 import org.springframework.ai.chat.client.ChatClient;
6 7 import org.springframework.ai.openai.OpenAiChatModel;
... ... @@ -9,6 +10,7 @@ import org.springframework.ai.openai.api.OpenAiApi;
9 10 import org.springframework.ai.tool.annotation.Tool;
10 11 import org.springframework.ai.tool.method.MethodToolCallbackProvider;
11 12  
  13 +@Disabled
12 14 public class DouBaoMcpTests {
13 15  
14 16 private final OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/music/SunoApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/music/SunoApiTests.java
1   -package cn.iocoder.yudao.framework.ai.music;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.music;
2 2  
3 3 import cn.hutool.core.collection.ListUtil;
4   -import cn.iocoder.yudao.framework.ai.core.model.suno.api.SunoApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.suno.api.SunoApi;
5 5 import org.junit.jupiter.api.Disabled;
6 6 import org.junit.jupiter.api.Test;
7 7  
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/ppt/wdd/WenDuoDuoPptApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/wdd/WenDuoDuoPptApiTests.java
1   -package cn.iocoder.yudao.framework.ai.ppt.wdd;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.ppt.wdd;
2 2  
3   -import cn.iocoder.yudao.framework.ai.core.model.wenduoduo.api.WenDuoDuoPptApi;
  3 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.wenduoduo.api.WenDuoDuoPptApi;
4 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
5 5 import org.junit.jupiter.api.Disabled;
6 6 import org.junit.jupiter.api.Test;
... ... @@ -14,6 +14,7 @@ import java.util.Objects;
14 14 *
15 15 * @author xiaoxin
16 16 */
  17 +@Disabled
17 18 public class WenDuoDuoPptApiTests {
18 19  
19 20 private final String token = ""; // API Token
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/test/java/cn/iocoder/yudao/framework/ai/ppt/xunfei/XunFeiPptApiTests.java renamed to yudao-module-ai/yudao-module-ai-biz/src/test/java/cn/iocoder/yudao/module/ai/framework/ai/core/model/ppt/xunfei/XunFeiPptApiTests.java
1   -package cn.iocoder.yudao.framework.ai.ppt.xunfei;
  1 +package cn.iocoder.yudao.module.ai.framework.ai.core.model.ppt.xunfei;
2 2  
3 3 import cn.hutool.core.io.FileUtil;
4   -import cn.iocoder.yudao.framework.ai.core.model.xinghuo.api.XunFeiPptApi;
  4 +import cn.iocoder.yudao.module.ai.framework.ai.core.model.xinghuo.api.XunFeiPptApi;
5 5 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
6 6 import org.junit.jupiter.api.Disabled;
7 7 import org.junit.jupiter.api.Test;
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/pom.xml deleted
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<project xmlns="http://maven.apache.org/POM/4.0.0"
3   - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4   - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5   - <parent>
6   - <groupId>cn.iocoder.boot</groupId>
7   - <artifactId>yudao-module-ai</artifactId>
8   - <version>${revision}</version>
9   - </parent>
10   - <modelVersion>4.0.0</modelVersion>
11   - <artifactId>yudao-spring-boot-starter-ai</artifactId>
12   - <packaging>jar</packaging>
13   -
14   - <name>${project.artifactId}</name>
15   - <description>AI 大模型拓展,接入国内外大模型</description>
16   - <properties>
17   - <spring-ai.version>1.0.0-M6</spring-ai.version>
18   - <tinyflow.version>1.0.2</tinyflow.version>
19   - </properties>
20   -
21   - <dependencies>
22   - <dependency>
23   - <groupId>cn.iocoder.boot</groupId>
24   - <artifactId>yudao-common</artifactId>
25   - </dependency>
26   -
27   - <!-- 业务组件 -->
28   - <dependency>
29   - <groupId>cn.iocoder.boot</groupId>
30   - <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
31   - </dependency>
32   -
33   - <!-- Web 相关 -->
34   - <dependency>
35   - <groupId>cn.iocoder.boot</groupId>
36   - <artifactId>yudao-spring-boot-starter-security</artifactId>
37   - </dependency>
38   -
39   - <!-- Spring AI Model 模型接入 -->
40   - <dependency>
41   - <groupId>org.springframework.ai</groupId>
42   - <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
43   - <version>${spring-ai.version}</version>
44   - </dependency>
45   - <dependency>
46   - <groupId>org.springframework.ai</groupId>
47   - <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
48   - <version>${spring-ai.version}</version>
49   - </dependency>
50   - <dependency>
51   - <groupId>org.springframework.ai</groupId>
52   - <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
53   - <version>${spring-ai.version}</version>
54   - </dependency>
55   - <dependency>
56   - <groupId>org.springframework.ai</groupId>
57   - <artifactId>spring-ai-stability-ai-spring-boot-starter</artifactId>
58   - <version>${spring-ai.version}</version>
59   - </dependency>
60   - <dependency>
61   - <!-- 通义千问 -->
62   - <groupId>com.alibaba.cloud.ai</groupId>
63   - <artifactId>spring-ai-alibaba-starter</artifactId>
64   - <version>${spring-ai.version}.1</version>
65   - </dependency>
66   - <dependency>
67   - <!-- 文心一言 -->
68   - <groupId>org.springframework.ai</groupId>
69   - <artifactId>spring-ai-qianfan-spring-boot-starter</artifactId>
70   - <version>${spring-ai.version}</version>
71   - </dependency>
72   - <dependency>
73   - <!-- 智谱 GLM -->
74   - <groupId>org.springframework.ai</groupId>
75   - <artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
76   - <version>${spring-ai.version}</version>
77   - </dependency>
78   - <dependency>
79   - <groupId>org.springframework.ai</groupId>
80   - <artifactId>spring-ai-minimax-spring-boot-starter</artifactId>
81   - <version>${spring-ai.version}</version>
82   - </dependency>
83   - <dependency>
84   - <groupId>org.springframework.ai</groupId>
85   - <artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>
86   - <version>${spring-ai.version}</version>
87   - </dependency>
88   -
89   - <!-- 向量存储:https://db-engines.com/en/ranking/vector+dbms -->
90   - <dependency>
91   - <!-- Qdrant:https://qdrant.tech/ -->
92   - <groupId>org.springframework.ai</groupId>
93   - <artifactId>spring-ai-qdrant-store</artifactId>
94   - <version>${spring-ai.version}</version>
95   - </dependency>
96   -
97   - <dependency>
98   - <!-- Redis:https://redis.io/docs/latest/develop/get-started/vector-database/ -->
99   - <groupId>org.springframework.ai</groupId>
100   - <artifactId>spring-ai-redis-store</artifactId>
101   - <version>${spring-ai.version}</version>
102   - </dependency>
103   - <dependency>
104   - <groupId>cn.iocoder.boot</groupId>
105   - <artifactId>yudao-spring-boot-starter-redis</artifactId>
106   - </dependency>
107   -
108   - <dependency>
109   - <!-- Milvus:https://milvus.io/ -->
110   - <groupId>org.springframework.ai</groupId>
111   - <artifactId>spring-ai-milvus-store</artifactId>
112   - <version>${spring-ai.version}</version>
113   - <exclusions>
114   - <!-- 解决和 logback 的日志冲突 -->
115   - <exclusion>
116   - <groupId>org.slf4j</groupId>
117   - <artifactId>slf4j-reload4j</artifactId>
118   - </exclusion>
119   - </exclusions>
120   - </dependency>
121   -
122   - <dependency>
123   - <!-- Tika:负责内容的解析 -->
124   - <groupId>org.springframework.ai</groupId>
125   - <artifactId>spring-ai-tika-document-reader</artifactId>
126   - <version>${spring-ai.version}</version>
127   - <!-- TODO 芋艿:boot 项目里,不引入 cloud 依赖!!!另外,这样也是为了解决启动报错的问题! -->
128   - <exclusions>
129   - <exclusion>
130   - <artifactId>spring-cloud-function-context</artifactId>
131   - <groupId>org.springframework.cloud</groupId>
132   - </exclusion>
133   - <exclusion>
134   - <artifactId>spring-cloud-function-core</artifactId>
135   - <groupId>org.springframework.cloud</groupId>
136   - </exclusion>
137   - </exclusions>
138   - </dependency>
139   -
140   - <!-- TinyFlow:AI 工作流 -->
141   - <dependency>
142   - <groupId>dev.tinyflow</groupId>
143   - <artifactId>tinyflow-java-core</artifactId>
144   - <version>${tinyflow.version}</version>
145   - <exclusions>
146   - <exclusion>
147   - <groupId>com.jfinal</groupId>
148   - <artifactId>enjoy</artifactId>
149   - </exclusion>
150   - <exclusion>
151   - <!-- 解决 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1318/ 问题 -->
152   - <groupId>com.agentsflex</groupId>
153   - <artifactId>agents-flex-store-elasticsearch</artifactId>
154   - </exclusion>
155   - <exclusion>
156   - <!-- TODO @芋艿:暂时移除 groovy,和 iot 冲突 -->
157   - <groupId>org.codehaus.groovy</groupId>
158   - <artifactId>groovy-all</artifactId>
159   - </exclusion>
160   - <!-- 解决和 logback 的日志冲突 -->
161   - <exclusion>
162   - <groupId>org.slf4j</groupId>
163   - <artifactId>slf4j-simple</artifactId>
164   - </exclusion>
165   - <exclusion>
166   - <groupId>org.apache.logging.log4j</groupId>
167   - <artifactId>log4j-slf4j-impl</artifactId>
168   - </exclusion>
169   - <exclusion>
170   - <groupId>org.slf4j</groupId>
171   - <artifactId>slf4j-reload4j</artifactId>
172   - </exclusion>
173   - </exclusions>
174   - </dependency>
175   -
176   - <!-- Test 测试相关 -->
177   - <dependency>
178   - <groupId>org.springframework.boot</groupId>
179   - <artifactId>spring-boot-starter-test</artifactId>
180   - <scope>test</scope>
181   - </dependency>
182   - </dependencies>
183   -
184   -</project>
185 0 \ No newline at end of file
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted
1   -cn.iocoder.yudao.framework.ai.config.YudaoAiAutoConfiguration
2 0 \ No newline at end of file
yudao-module-pay/pom.xml
... ... @@ -13,7 +13,6 @@
13 13 <modules>
14 14 <module>yudao-module-pay-api</module>
15 15 <module>yudao-module-pay-biz</module>
16   - <module>yudao-spring-boot-starter-biz-pay</module>
17 16 </modules>
18 17  
19 18 <name>${project.artifactId}</name>
... ...
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/PayChannelEnum.java
1 1 package cn.iocoder.yudao.module.pay.enums;
2 2  
  3 +import cn.hutool.core.util.ArrayUtil;
  4 +import cn.hutool.core.util.StrUtil;
3 5 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4 6 import lombok.AllArgsConstructor;
5 7 import lombok.Getter;
... ... @@ -27,6 +29,7 @@ public enum PayChannelEnum implements ArrayValuable&lt;String&gt; {
27 29 ALIPAY_APP("alipay_app", "支付宝App 支付"),
28 30 ALIPAY_QR("alipay_qr", "支付宝扫码支付"),
29 31 ALIPAY_BAR("alipay_bar", "支付宝条码支付"),
  32 +
30 33 MOCK("mock", "模拟支付"),
31 34  
32 35 WALLET("wallet", "钱包支付");
... ... @@ -49,4 +52,16 @@ public enum PayChannelEnum implements ArrayValuable&lt;String&gt; {
49 52 return ARRAYS;
50 53 }
51 54  
  55 + public static PayChannelEnum getByCode(String code) {
  56 + return ArrayUtil.firstMatch(o -> o.getCode().equals(code), values());
  57 + }
  58 +
  59 + public static boolean isAlipay(String channelCode) {
  60 + return StrUtil.startWith(channelCode, "alipay_");
  61 + }
  62 +
  63 + public static boolean isWeixin(String channelCode) {
  64 + return StrUtil.startWith(channelCode, "wx_");
  65 + }
  66 +
52 67 }
... ...
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java
... ... @@ -51,6 +51,16 @@ public enum PayOrderStatusEnum implements ArrayValuable&lt;Integer&gt; {
51 51 }
52 52  
53 53 /**
  54 + * 判断是否已退款
  55 + *
  56 + * @param status 状态
  57 + * @return 是否已退款
  58 + */
  59 + public static boolean isRefund(Integer status) {
  60 + return Objects.equals(status, REFUND.getStatus());
  61 + }
  62 +
  63 + /**
54 64 * 判断是否支付成功或者已退款
55 65 *
56 66 * @param status 状态
... ...
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 {
40 40 return Objects.equals(status, WAITING.getStatus());
41 41 }
42 42  
43   - public static boolean isProgressing(Integer status) {
  43 + public static boolean isProcessing(Integer status) {
44 44 return Objects.equals(status, PROCESSING.getStatus());
45 45 }
46 46  
... ... @@ -51,7 +51,7 @@ public enum PayTransferStatusEnum {
51 51 * @return 是否
52 52 */
53 53 public static boolean isWaitingOrProcessing(Integer status) {
54   - return isWaiting(status) || isProgressing(status);
  54 + return isWaiting(status) || isProcessing(status);
55 55 }
56 56  
57 57 /**
... ...
yudao-module-pay/yudao-module-pay-biz/pom.xml
... ... @@ -32,11 +32,6 @@
32 32 <!-- 业务组件 -->
33 33 <dependency>
34 34 <groupId>cn.iocoder.boot</groupId>
35   - <artifactId>yudao-spring-boot-starter-biz-pay</artifactId>
36   - <version>${revision}</version>
37   - </dependency>
38   - <dependency>
39   - <groupId>cn.iocoder.boot</groupId>
40 35 <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
41 36 </dependency>
42 37  
... ... @@ -75,6 +70,24 @@
75 70 <groupId>cn.iocoder.boot</groupId>
76 71 <artifactId>yudao-spring-boot-starter-excel</artifactId>
77 72 </dependency>
  73 +
  74 + <!-- 三方云服务相关 -->
  75 + <dependency>
  76 + <groupId>com.alipay.sdk</groupId>
  77 + <artifactId>alipay-sdk-java</artifactId>
  78 + <version>4.35.79.ALL</version>
  79 + <exclusions>
  80 + <exclusion>
  81 + <groupId>org.bouncycastle</groupId>
  82 + <artifactId>bcprov-jdk15on</artifactId>
  83 + </exclusion>
  84 + </exclusions>
  85 + </dependency>
  86 + <dependency>
  87 + <groupId>com.github.binarywang</groupId>
  88 + <artifactId>weixin-java-pay</artifactId>
  89 + </dependency>
  90 +
78 91 </dependencies>
79 92  
80 93 </project>
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
1 1 package cn.iocoder.yudao.module.pay.api.transfer;
2 2  
3 3 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4   -import cn.iocoder.yudao.framework.pay.core.client.impl.weixin.WxPayClientConfig;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin.WxPayClientConfig;
5 5 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
6 6 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
7 7 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;
... ...
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;
4 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7   -import cn.iocoder.yudao.framework.pay.core.client.PayClient;
8   -import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
9   -import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
10   -import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
  7 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.PayClient;
  8 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
  9 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
  10 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
11 11 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
12 12 import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskDetailRespVO;
13 13 import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO;
... ... @@ -156,7 +156,7 @@ public class PayNotifyController {
156 156 }
157 157 // 拼接返回
158 158 Map<Long, PayAppDO> apps = appService.getAppMap(convertList(pageResult.getList(), PayNotifyTaskDO::getAppId));
159   -
  159 +
160 160 // 转换对象
161 161 return success(BeanUtils.toBean(pageResult, PayNotifyTaskRespVO.class, order -> {
162 162 PayAppDO app = apps.get(order.getAppId());
... ...
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;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
8 8 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
9   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
10 9 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
11 10 import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
12 11 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
13 12 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
14 13 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
15 14 import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
  15 +import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
16 16 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
17   -import cn.iocoder.yudao.module.pay.framework.pay.core.WalletPayClient;
  17 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.wallet.WalletPayClient;
18 18 import cn.iocoder.yudao.module.pay.service.app.PayAppService;
19 19 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
20 20 import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
... ...
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;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
6 5 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderRespVO;
7 6 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderSubmitRespVO;
8 7 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
10 9 import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
11 10 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
12 11 import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
  12 +import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
13 13 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
14   -import cn.iocoder.yudao.module.pay.framework.pay.core.WalletPayClient;
  14 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.wallet.WalletPayClient;
15 15 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
16 16 import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
17 17 import com.google.common.collect.Maps;
... ...
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;
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
5 5 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
6   -import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
  6 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
7 7 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
8 8 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
9 9 import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
... ... @@ -67,7 +67,7 @@ public interface PayOrderConvert {
67 67 PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqVO reqVO, String userIp);
68 68  
69 69 @Mapping(source = "order.status", target = "status")
70   - PayOrderSubmitRespVO convert(PayOrderDO order, cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO respDTO);
  70 + PayOrderSubmitRespVO convert(PayOrderDO order, cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO respDTO);
71 71  
72 72 AppPayOrderSubmitRespVO convert3(PayOrderSubmitRespVO bean);
73 73  
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/channel/PayChannelDO.java
1 1 package cn.iocoder.yudao.module.pay.dal.dataobject.channel;
2 2  
  3 +import cn.hutool.core.util.StrUtil;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4   -import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
5   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
  5 +import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
  6 +import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
  7 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.PayClientConfig;
6 8 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
7 9 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
  10 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.NonePayClientConfig;
  11 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay.AlipayAppPayClient;
  12 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay.AlipayPayClientConfig;
  13 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin.WxPayClientConfig;
8 14 import com.baomidou.mybatisplus.annotation.KeySequence;
9 15 import com.baomidou.mybatisplus.annotation.TableField;
10 16 import com.baomidou.mybatisplus.annotation.TableName;
  17 +import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
11 18 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
  19 +import com.fasterxml.jackson.core.type.TypeReference;
12 20 import lombok.*;
13 21  
  22 +import java.lang.reflect.Field;
  23 +
14 24 /**
15 25 * 支付渠道 DO
16 26 * 一个应用下,会有多种支付渠道,例如说微信支付、支付宝支付等等
... ... @@ -63,7 +73,46 @@ public class PayChannelDO extends TenantBaseDO {
63 73 /**
64 74 * 支付渠道配置
65 75 */
66   - @TableField(typeHandler = JacksonTypeHandler.class)
  76 + @TableField(typeHandler = PayClientConfigTypeHandler.class)
67 77 private PayClientConfig config;
68 78  
  79 + public static class PayClientConfigTypeHandler extends AbstractJsonTypeHandler<Object> {
  80 +
  81 + public PayClientConfigTypeHandler(Class<?> type) {
  82 + super(type);
  83 + }
  84 +
  85 + public PayClientConfigTypeHandler(Class<?> type, Field field) {
  86 + super(type, field);
  87 + }
  88 +
  89 + @Override
  90 + public Object parse(String json) {
  91 + PayClientConfig config = JsonUtils.parseObjectQuietly(json, new TypeReference<>() {});
  92 + if (config != null) {
  93 + return config;
  94 + }
  95 +
  96 + // 兼容老版本的包路径
  97 + String className = JsonUtils.parseObject(json, "@class", String.class);
  98 + className = StrUtil.subAfter(className, ".", true);
  99 + switch (className) {
  100 + case "AlipayPayClientConfig":
  101 + return JsonUtils.parseObject2(json, AlipayPayClientConfig.class);
  102 + case "WxPayClientConfig":
  103 + return JsonUtils.parseObject2(json, WxPayClientConfig.class);
  104 + case "NonePayClientConfig":
  105 + return JsonUtils.parseObject2(json, NonePayClientConfig.class);
  106 + default:
  107 + throw new IllegalArgumentException("未知的 PayClientConfig 类型:" + json);
  108 + }
  109 + }
  110 +
  111 + @Override
  112 + public String toJson(Object obj) {
  113 + return JsonUtils.toJsonString(obj);
  114 + }
  115 +
  116 + }
  117 +
69 118 }
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
1 1 package cn.iocoder.yudao.module.pay.dal.dataobject.order;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
5 4 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
6 5 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
  6 +import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
7 7 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
8 8 import com.baomidou.mybatisplus.annotation.KeySequence;
9 9 import com.baomidou.mybatisplus.annotation.TableName;
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java
1 1 package cn.iocoder.yudao.module.pay.dal.dataobject.order;
2 2  
3   -import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
  3 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
4 4 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
5 5 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
6 6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
1 1 package cn.iocoder.yudao.module.pay.dal.dataobject.refund;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
5   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
  4 +import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
  5 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
6 6 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
7 7 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
8 8 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java
1 1 package cn.iocoder.yudao.module.pay.dal.dataobject.transfer;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
5   -import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
  4 +import cn.iocoder.yudao.module.pay.enums.PayChannelEnum;
6 5 import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
7 6 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
  7 +import cn.iocoder.yudao.module.pay.enums.transfer.PayTransferStatusEnum;
8 8 import com.baomidou.mybatisplus.annotation.KeySequence;
9 9 import com.baomidou.mybatisplus.annotation.TableField;
10 10 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -89,7 +89,7 @@ public class PayTransferDO extends BaseDO {
89 89 /**
90 90 * 转账状态
91 91 *
92   - * 枚举 {@link PayTransferStatusRespEnum}
  92 + * 枚举 {@link PayTransferStatusEnum}
93 93 */
94 94 private Integer status;
95 95  
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayConfiguration.java
1 1 package cn.iocoder.yudao.module.pay.framework.pay.config;
2 2  
  3 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.PayClientFactory;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.PayClientFactoryImpl;
3 5 import org.springframework.boot.context.properties.EnableConfigurationProperties;
  6 +import org.springframework.context.annotation.Bean;
4 7 import org.springframework.context.annotation.Configuration;
5 8  
6 9 @Configuration(proxyBeanMethods = false)
7 10 @EnableConfigurationProperties(PayProperties.class)
8 11 public class PayConfiguration {
  12 +
  13 + @Bean
  14 + public PayClientFactory payClientFactory() {
  15 + return new PayClientFactoryImpl();
  16 + }
  17 +
9 18 }
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClient.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClient.java
1   -package cn.iocoder.yudao.framework.pay.core.client;
2   -
3   -import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
4   -import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
5   -import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
6   -import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
7   -import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
8   -import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client;
  2 +
  3 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
  5 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
  6 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
  7 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
  8 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO;
9 9  
10 10 import java.util.Map;
11 11  
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClientConfig.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientConfig.java
1   -package cn.iocoder.yudao.framework.pay.core.client;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 4 import com.fasterxml.jackson.annotation.JsonTypeInfo;
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClientFactory.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientFactory.java
1   -package cn.iocoder.yudao.framework.pay.core.client;
2   -
3   -import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client;
4 2  
5 3 /**
6 4 * 支付客户端的工厂接口
... ... @@ -27,13 +25,4 @@ public interface PayClientFactory {
27 25 */
28 26 <Config extends PayClientConfig> PayClient createOrUpdatePayClient(Long channelId, String channelCode,
29 27 Config config);
30   -
31   - /**
32   - * 注册支付客户端 Class,用于模块中实现的 PayClient
33   - *
34   - * @param channel 支付渠道的编码的枚举
35   - * @param payClientClass 支付客户端 class
36   - */
37   - void registerPayClientClass(PayChannelEnum channel, Class<?> payClientClass);
38   -
39 28 }
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/order/PayOrderRespDTO.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderRespDTO.java
1   -package cn.iocoder.yudao.framework.pay.core.client.dto.order;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order;
2 2  
3   -import cn.iocoder.yudao.framework.pay.core.client.exception.PayException;
4   -import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
5   -import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum;
  3 +import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.exception.PayClientException;
  5 +import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum;
6 6 import lombok.Data;
7 7  
8 8 import java.time.LocalDateTime;
... ... @@ -18,7 +18,7 @@ public class PayOrderRespDTO {
18 18 /**
19 19 * 支付状态
20 20 *
21   - * 枚举:{@link PayOrderStatusRespEnum}
  21 + * 枚举:{@link PayOrderStatusEnum}
22 22 */
23 23 private Integer status;
24 24  
... ... @@ -65,7 +65,7 @@ public class PayOrderRespDTO {
65 65 * 调用渠道的错误码
66 66 *
67 67 * 注意:这里返回的是业务异常,而是不系统异常。
68   - * 如果是系统异常,则会抛出 {@link PayException}
  68 + * 如果是系统异常,则会抛出 {@link PayClientException}
69 69 */
70 70 private String channelErrorCode;
71 71 /**
... ... @@ -82,7 +82,7 @@ public class PayOrderRespDTO {
82 82 public static PayOrderRespDTO waitingOf(String displayMode, String displayContent,
83 83 String outTradeNo, Object rawData) {
84 84 PayOrderRespDTO respDTO = new PayOrderRespDTO();
85   - respDTO.status = PayOrderStatusRespEnum.WAITING.getStatus();
  85 + respDTO.status = PayOrderStatusEnum.WAITING.getStatus();
86 86 respDTO.displayMode = displayMode;
87 87 respDTO.displayContent = displayContent;
88 88 // 相对通用的字段
... ... @@ -97,7 +97,7 @@ public class PayOrderRespDTO {
97 97 public static PayOrderRespDTO successOf(String channelOrderNo, String channelUserId, LocalDateTime successTime,
98 98 String outTradeNo, Object rawData) {
99 99 PayOrderRespDTO respDTO = new PayOrderRespDTO();
100   - respDTO.status = PayOrderStatusRespEnum.SUCCESS.getStatus();
  100 + respDTO.status = PayOrderStatusEnum.SUCCESS.getStatus();
101 101 respDTO.channelOrderNo = channelOrderNo;
102 102 respDTO.channelUserId = channelUserId;
103 103 respDTO.successTime = successTime;
... ... @@ -129,7 +129,7 @@ public class PayOrderRespDTO {
129 129 public static PayOrderRespDTO closedOf(String channelErrorCode, String channelErrorMsg,
130 130 String outTradeNo, Object rawData) {
131 131 PayOrderRespDTO respDTO = new PayOrderRespDTO();
132   - respDTO.status = PayOrderStatusRespEnum.CLOSED.getStatus();
  132 + respDTO.status = PayOrderStatusEnum.CLOSED.getStatus();
133 133 respDTO.channelErrorCode = channelErrorCode;
134 134 respDTO.channelErrorMsg = channelErrorMsg;
135 135 // 相对通用的字段
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java
1   -package cn.iocoder.yudao.framework.pay.core.client.dto.order;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order;
2 2  
3   -import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
  3 +import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum;
4 4 import lombok.Data;
5 5 import org.hibernate.validator.constraints.Length;
6 6 import org.hibernate.validator.constraints.URL;
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/refund/PayRefundRespDTO.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundRespDTO.java
1   -package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund;
2 2  
3   -import cn.iocoder.yudao.framework.pay.core.client.exception.PayException;
4   -import cn.iocoder.yudao.framework.pay.core.enums.refund.PayRefundStatusRespEnum;
  3 +import cn.iocoder.yudao.module.pay.enums.refund.PayRefundStatusEnum;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.exception.PayClientException;
5 5 import lombok.Data;
6 6  
7 7 import java.time.LocalDateTime;
... ... @@ -17,7 +17,7 @@ public class PayRefundRespDTO {
17 17 /**
18 18 * 退款状态
19 19 *
20   - * 枚举 {@link PayRefundStatusRespEnum}
  20 + * 枚举 {@link PayRefundStatusEnum}
21 21 */
22 22 private Integer status;
23 23  
... ... @@ -49,7 +49,7 @@ public class PayRefundRespDTO {
49 49 * 调用渠道的错误码
50 50 *
51 51 * 注意:这里返回的是业务异常,而是不系统异常。
52   - * 如果是系统异常,则会抛出 {@link PayException}
  52 + * 如果是系统异常,则会抛出 {@link PayClientException}
53 53 */
54 54 private String channelErrorCode;
55 55 /**
... ... @@ -66,7 +66,7 @@ public class PayRefundRespDTO {
66 66 public static PayRefundRespDTO waitingOf(String channelRefundNo,
67 67 String outRefundNo, Object rawData) {
68 68 PayRefundRespDTO respDTO = new PayRefundRespDTO();
69   - respDTO.status = PayRefundStatusRespEnum.WAITING.getStatus();
  69 + respDTO.status = PayRefundStatusEnum.WAITING.getStatus();
70 70 respDTO.channelRefundNo = channelRefundNo;
71 71 // 相对通用的字段
72 72 respDTO.outRefundNo = outRefundNo;
... ... @@ -80,7 +80,7 @@ public class PayRefundRespDTO {
80 80 public static PayRefundRespDTO successOf(String channelRefundNo, LocalDateTime successTime,
81 81 String outRefundNo, Object rawData) {
82 82 PayRefundRespDTO respDTO = new PayRefundRespDTO();
83   - respDTO.status = PayRefundStatusRespEnum.SUCCESS.getStatus();
  83 + respDTO.status = PayRefundStatusEnum.SUCCESS.getStatus();
84 84 respDTO.channelRefundNo = channelRefundNo;
85 85 respDTO.successTime = successTime;
86 86 // 相对通用的字段
... ... @@ -103,7 +103,7 @@ public class PayRefundRespDTO {
103 103 public static PayRefundRespDTO failureOf(String channelErrorCode, String channelErrorMsg,
104 104 String outRefundNo, Object rawData) {
105 105 PayRefundRespDTO respDTO = new PayRefundRespDTO();
106   - respDTO.status = PayRefundStatusRespEnum.FAILURE.getStatus();
  106 + respDTO.status = PayRefundStatusEnum.FAILURE.getStatus();
107 107 respDTO.channelErrorCode = channelErrorCode;
108 108 respDTO.channelErrorMsg = channelErrorMsg;
109 109 // 相对通用的字段
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java
1   -package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund;
2 2  
3 3 import lombok.AllArgsConstructor;
4 4 import lombok.Builder;
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java
1   -package cn.iocoder.yudao.framework.pay.core.client.dto.transfer;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer;
2 2  
3   -import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
  3 +import cn.iocoder.yudao.module.pay.enums.transfer.PayTransferStatusEnum;
4 4 import lombok.Data;
5 5  
6 6 import java.time.LocalDateTime;
... ... @@ -16,7 +16,7 @@ public class PayTransferRespDTO {
16 16 /**
17 17 * 转账状态
18 18 *
19   - * 关联 {@link PayTransferStatusRespEnum#getStatus()}
  19 + * 关联 {@link PayTransferStatusEnum}
20 20 */
21 21 private Integer status;
22 22  
... ... @@ -63,7 +63,7 @@ public class PayTransferRespDTO {
63 63 public static PayTransferRespDTO waitingOf(String channelTransferNo,
64 64 String outTransferNo, Object rawData) {
65 65 PayTransferRespDTO respDTO = new PayTransferRespDTO();
66   - respDTO.status = PayTransferStatusRespEnum.WAITING.getStatus();
  66 + respDTO.status = PayTransferStatusEnum.WAITING.getStatus();
67 67 respDTO.channelTransferNo = channelTransferNo;
68 68 respDTO.outTransferNo = outTransferNo;
69 69 respDTO.rawData = rawData;
... ... @@ -76,7 +76,7 @@ public class PayTransferRespDTO {
76 76 public static PayTransferRespDTO processingOf(String channelTransferNo,
77 77 String outTransferNo, Object rawData) {
78 78 PayTransferRespDTO respDTO = new PayTransferRespDTO();
79   - respDTO.status = PayTransferStatusRespEnum.PROCESSING.getStatus();
  79 + respDTO.status = PayTransferStatusEnum.PROCESSING.getStatus();
80 80 respDTO.channelTransferNo = channelTransferNo;
81 81 respDTO.outTransferNo = outTransferNo;
82 82 respDTO.rawData = rawData;
... ... @@ -89,7 +89,7 @@ public class PayTransferRespDTO {
89 89 public static PayTransferRespDTO closedOf(String channelErrorCode, String channelErrorMsg,
90 90 String outTransferNo, Object rawData) {
91 91 PayTransferRespDTO respDTO = new PayTransferRespDTO();
92   - respDTO.status = PayTransferStatusRespEnum.CLOSED.getStatus();
  92 + respDTO.status = PayTransferStatusEnum.CLOSED.getStatus();
93 93 respDTO.channelErrorCode = channelErrorCode;
94 94 respDTO.channelErrorMsg = channelErrorMsg;
95 95 // 相对通用的字段
... ... @@ -104,7 +104,7 @@ public class PayTransferRespDTO {
104 104 public static PayTransferRespDTO successOf(String channelTransferNo, LocalDateTime successTime,
105 105 String outTransferNo, Object rawData) {
106 106 PayTransferRespDTO respDTO = new PayTransferRespDTO();
107   - respDTO.status = PayTransferStatusRespEnum.SUCCESS.getStatus();
  107 + respDTO.status = PayTransferStatusEnum.SUCCESS.getStatus();
108 108 respDTO.channelTransferNo = channelTransferNo;
109 109 respDTO.successTime = successTime;
110 110 // 相对通用的字段
... ...
yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java renamed to yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java
1   -package cn.iocoder.yudao.framework.pay.core.client.dto.transfer;
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer;
2 2  
3 3 import jakarta.validation.constraints.Min;
4 4 import jakarta.validation.constraints.NotEmpty;
... ...