diff --git a/pom.xml b/pom.xml index d8d596c1..78d6758b 100644 --- a/pom.xml +++ b/pom.xml @@ -244,18 +244,6 @@ ${tencent.sms.version} - - - - - - - - - - - - org.redisson redisson-spring-boot-starter @@ -321,10 +309,15 @@ ${revision} + + org.ruoyi + ruoyi-knowledge-api + ${revision} + org.ruoyi - ruoyi-knowledge + ruoyi-system-api ${revision} @@ -347,11 +340,6 @@ ruoyi-common ruoyi-modules ruoyi-modules-api - ruoyi-modules-api - ruoyi-modules-api/ruoyi-device-api - ruoyi-modules-api/ruoyi-weixin-api - ruoyi-modules/ruoyi-weixin - ruoyi-modules/ruoyi-device pom diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index 2adc1ba2..a7d9e117 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -166,15 +166,12 @@ ${revision} - org.ruoyi ruoyi-chat ${revision} - - org.ruoyi @@ -182,6 +179,7 @@ ${revision} + diff --git a/ruoyi-common/ruoyi-common-chat/pom.xml b/ruoyi-common/ruoyi-common-chat/pom.xml index b06f19c1..63a5fb94 100644 --- a/ruoyi-common/ruoyi-common-chat/pom.xml +++ b/ruoyi-common/ruoyi-common-chat/pom.xml @@ -98,10 +98,6 @@ - - junit - junit - cn.bigmodel.openapi diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml index 36bd0d8e..fe3897d0 100644 --- a/ruoyi-common/ruoyi-common-core/pom.xml +++ b/ruoyi-common/ruoyi-common-core/pom.xml @@ -47,25 +47,11 @@ jakarta.servlet-api + cn.hutool - hutool-core - - - - cn.hutool - hutool-http - - - - cn.hutool - hutool-extra - - - - cn.hutool - hutool-json - provided + hutool-all + 5.8.24 diff --git a/ruoyi-modules-api/pom.xml b/ruoyi-modules-api/pom.xml index 5acc7101..fe4d2c2f 100644 --- a/ruoyi-modules-api/pom.xml +++ b/ruoyi-modules-api/pom.xml @@ -12,9 +12,11 @@ ruoyi-modules-api pom - ruoyi-system-api ruoyi-chat-api + ruoyi-device-api ruoyi-knowledge-api + ruoyi-system-api + ruoyi-weixin-api @@ -24,38 +26,55 @@ - org.ruoyi ruoyi-common-core - org.ruoyi ruoyi-common-mybatis - org.ruoyi ruoyi-common-sensitive - org.ruoyi ruoyi-common-excel + + + org.ruoyi + ruoyi-common-tenant + + + + + org.ruoyi + ruoyi-common-translation + + + + + org.ruoyi + ruoyi-common-log + + + + + org.ruoyi + ruoyi-common-oss + + - - - diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index fde7a466..bca2ede3 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -17,6 +17,13 @@ UTF-8 + + + + org.ruoyi + ruoyi-common-chat + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java index b9caf73b..732d9d77 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java @@ -46,8 +46,6 @@ public class ChatMessage extends BaseEntity { /** * 扣除金额 - - */ private BigDecimal deductCost; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java similarity index 78% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java index 490a3e51..b2120bf0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java @@ -1,22 +1,22 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; /** - * 微信机器人对象 wx_rob_config + * 聊天机器人配置对象 chat_rob_config * - * @author Lion Li - * @date 2024-05-01 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @TableName("chat_rob_config") -public class WxRobConfig extends BaseEntity { +public class ChatRobConfig extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -28,7 +28,7 @@ public class WxRobConfig extends BaseEntity { private Long id; /** - * 用户id + * 所属用户 */ private Long userId; @@ -42,11 +42,6 @@ public class WxRobConfig extends BaseEntity { */ private String uniqueKey; - /** - * 备注(微信号) - */ - private String remark; - /** * 默认好友回复开关 */ @@ -57,10 +52,15 @@ public class WxRobConfig extends BaseEntity { */ private String defaultGroup; - /** - * 机器启用1禁用0 + * 机器人状态 0正常 1启用 */ private String enable; + /** + * 备注 + */ + private String remark; + + } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java new file mode 100644 index 00000000..cc15a3d0 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java @@ -0,0 +1,51 @@ +package org.ruoyi.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; + +/** + * 用户token使用详情对象 chat_usage_token + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("chat_usage_token") +public class ChatUsageToken extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 用户 + */ + private Long userId; + + /** + * 待结算token + */ + private Integer token; + + /** + * 模型名称 + */ + private String modelName; + + /** + * 累计使用token + */ + private String totalToken; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java new file mode 100644 index 00000000..60cb384a --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java @@ -0,0 +1,72 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.ChatRobConfig; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 聊天机器人配置业务对象 chat_rob_config + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatRobConfig.class, reverseConvertGenerate = false) +public class ChatRobConfigBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 所属用户 + */ + @NotNull(message = "所属用户不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 机器人名称 + */ + @NotBlank(message = "机器人名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String botName; + + /** + * 机器唯一码 + */ + @NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String uniqueKey; + + /** + * 默认好友回复开关 + */ + @NotBlank(message = "默认好友回复开关不能为空", groups = { AddGroup.class, EditGroup.class }) + private String defaultFriend; + + /** + * 默认群回复开关 + */ + @NotBlank(message = "默认群回复开关不能为空", groups = { AddGroup.class, EditGroup.class }) + private String defaultGroup; + + /** + * 机器人状态 0正常 1启用 + */ + @NotBlank(message = "机器人状态 0正常 1启用不能为空", groups = { AddGroup.class, EditGroup.class }) + private String enable; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java new file mode 100644 index 00000000..59823d05 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java @@ -0,0 +1,54 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.ChatUsageToken; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 用户token使用详情业务对象 chat_usage_token + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatUsageToken.class, reverseConvertGenerate = false) +public class ChatUsageTokenBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 用户 + */ + @NotNull(message = "用户不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 待结算token + */ + @NotNull(message = "待结算token不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer token; + + /** + * 模型名称 + */ + @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelName; + + /** + * 累计使用token + */ + @NotBlank(message = "累计使用token不能为空", groups = { AddGroup.class, EditGroup.class }) + private String totalToken; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java index 35782a7b..9c6a83d1 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatVoucher; +import org.ruoyi.domain.ChatVoucher; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation/TranslationRequest.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java similarity index 86% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation/TranslationRequest.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java index 04fa785a..c8121e7e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation/TranslationRequest.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.request.translation; +package org.ruoyi.domain.request; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java similarity index 61% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java index a3102f47..247ebe2c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java @@ -1,10 +1,9 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; +import org.ruoyi.domain.ChatRobConfig; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.ruoyi.common.excel.annotation.ExcelDictFormat; -import org.ruoyi.common.excel.convert.ExcelDictConvert; -import org.ruoyi.system.domain.WxRobConfig; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; @@ -14,15 +13,15 @@ import java.io.Serializable; /** - * 微信机器人视图对象 wx_rob_config + * 聊天机器人配置视图对象 chat_rob_config * - * @author Lion Li - * @date 2024-05-01 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated -@AutoMapper(target = WxRobConfig.class) -public class WxRobConfigVo implements Serializable { +@AutoMapper(target = ChatRobConfig.class) +public class ChatRobConfigVo implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -34,18 +33,15 @@ public class WxRobConfigVo implements Serializable { private Long id; /** - * 用户id + * 所属用户 */ + @ExcelProperty(value = "所属用户") private Long userId; - /** - * 用户名称 - */ - private String userName; - /** * 机器人名称 */ + @ExcelProperty(value = "机器人名称") private String botName; /** @@ -54,13 +50,6 @@ public class WxRobConfigVo implements Serializable { @ExcelProperty(value = "机器唯一码") private String uniqueKey; - /** - * 备注 - */ - @ExcelProperty(value = "备注", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "备注") - private String remark; - /** * 默认好友回复开关 */ @@ -73,12 +62,17 @@ public class WxRobConfigVo implements Serializable { @ExcelProperty(value = "默认群回复开关") private String defaultGroup; + /** + * 机器人状态 0正常 1启用 + */ + @ExcelProperty(value = "机器人状态 0正常 1启用") + private String enable; /** - * 机器启用1禁用0 + * 备注 */ - @ExcelProperty(value = "机器启用1禁用0") - private String enable; + @ExcelProperty(value = "备注") + private String remark; } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java new file mode 100644 index 00000000..e8f279d2 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java @@ -0,0 +1,61 @@ +package org.ruoyi.domain.vo; + +import org.ruoyi.domain.ChatUsageToken; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + + +/** + * 用户token使用详情视图对象 chat_usage_token + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ChatUsageToken.class) +public class ChatUsageTokenVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 用户 + */ + @ExcelProperty(value = "用户") + private Long userId; + + /** + * 待结算token + */ + @ExcelProperty(value = "待结算token") + private Integer token; + + /** + * 模型名称 + */ + @ExcelProperty(value = "模型名称") + private String modelName; + + /** + * 累计使用token + */ + @ExcelProperty(value = "累计使用token") + private String totalToken; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java index b1a6c6cb..8b7092da 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java @@ -1,12 +1,13 @@ package org.ruoyi.domain.vo; import java.math.BigDecimal; -import org.ruoyi.system.domain.ChatVoucher; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatVoucher; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java new file mode 100644 index 00000000..fb6d0c9f --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatRobConfig; +import org.ruoyi.domain.vo.ChatRobConfigVo; + +/** + * 聊天机器人配置Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatRobConfigMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java new file mode 100644 index 00000000..206f9009 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatUsageToken; +import org.ruoyi.domain.vo.ChatUsageTokenVo; + +/** + * 用户token使用详情Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatUsageTokenMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java index 9657b59e..82dd6219 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java @@ -46,4 +46,10 @@ public interface IChatModelService { * 校验并批量删除聊天模型信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + /** + * 通过模型名称获取模型信息 + */ + ChatModelVo selectModelByName(String modelName); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java index 7eb1b1f2..d2aca244 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java @@ -5,8 +5,8 @@ import org.ruoyi.domain.ChatToken; /** * 聊天消息Service接口 * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ public interface IChatTokenService { @@ -20,6 +20,9 @@ public interface IChatTokenService { */ void resetToken(Long userId,String modelName); + /** + * 修改用户token + */ void editToken(ChatToken chatToken); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java new file mode 100644 index 00000000..3f757f1e --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java @@ -0,0 +1,49 @@ +package org.ruoyi.service; + + +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.ChatUsageTokenBo; +import org.ruoyi.domain.vo.ChatUsageTokenVo; + +import java.util.Collection; +import java.util.List; + +/** + * 用户token使用详情Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatUsageTokenService { + + /** + * 查询用户token使用详情 + */ + ChatUsageTokenVo queryById(Long id); + + /** + * 查询用户token使用详情列表 + */ + TableDataInfo queryPageList(ChatUsageTokenBo bo, PageQuery pageQuery); + + /** + * 查询用户token使用详情列表 + */ + List queryList(ChatUsageTokenBo bo); + + /** + * 新增用户token使用详情 + */ + Boolean insertByBo(ChatUsageTokenBo bo); + + /** + * 修改用户token使用详情 + */ + Boolean updateByBo(ChatUsageTokenBo bo); + + /** + * 校验并批量删除用户token使用详情信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java index 20c39263..5df31cc0 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java @@ -11,8 +11,8 @@ import java.util.List; /** * 访客管理Service接口 * - * @author Lion Li - * @date 2024-07-14 + * @author ageerle + * @date 2025-04-08 */ public interface IChatVisitorUsageService { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java index 26d4533b..c136bb19 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java @@ -115,4 +115,12 @@ public class ChatModelServiceImpl implements IChatModelService { } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 通过模型名称获取模型信息 + */ + @Override + public ChatModelVo selectModelByName(String modelName) { + return baseMapper.selectVoOne(Wrappers.lambdaQuery().eq(ChatModel::getModelName, modelName)); + } } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java new file mode 100644 index 00000000..57565ba1 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java @@ -0,0 +1,112 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatUsageToken; +import org.ruoyi.domain.bo.ChatUsageTokenBo; +import org.ruoyi.domain.vo.ChatUsageTokenVo; +import org.ruoyi.mapper.ChatUsageTokenMapper; +import org.ruoyi.service.IChatUsageTokenService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 用户token使用详情Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatUsageTokenServiceImpl implements IChatUsageTokenService { + + private final ChatUsageTokenMapper baseMapper; + + /** + * 查询用户token使用详情 + */ + @Override + public ChatUsageTokenVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询用户token使用详情列表 + */ + @Override + public TableDataInfo queryPageList(ChatUsageTokenBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询用户token使用详情列表 + */ + @Override + public List queryList(ChatUsageTokenBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatUsageTokenBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getUserId() != null, ChatUsageToken::getUserId, bo.getUserId()); + lqw.eq(bo.getToken() != null, ChatUsageToken::getToken, bo.getToken()); + lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatUsageToken::getModelName, bo.getModelName()); + lqw.eq(StringUtils.isNotBlank(bo.getTotalToken()), ChatUsageToken::getTotalToken, bo.getTotalToken()); + return lqw; + } + + /** + * 新增用户token使用详情 + */ + @Override + public Boolean insertByBo(ChatUsageTokenBo bo) { + ChatUsageToken add = MapstructUtils.convert(bo, ChatUsageToken.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改用户token使用详情 + */ + @Override + public Boolean updateByBo(ChatUsageTokenBo bo) { + ChatUsageToken update = MapstructUtils.convert(bo, ChatUsageToken.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatUsageToken entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除用户token使用详情 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml index 1ba1e998..cf1e0311 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml @@ -17,4 +17,35 @@ UTF-8 + + + + + org.apache.pdfbox + pdfbox + 2.0.27 + + + + + io.github.ollama4j + ollama4j + 1.0.79 + + + + + io.milvus + milvus-sdk-java + 2.3.2 + + + + io.weaviate + client + 4.0.0 + + + + diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CodeFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CodeFileLoader.java similarity index 87% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CodeFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CodeFileLoader.java index 5a74978d..93231412 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CodeFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CodeFileLoader.java @@ -1,8 +1,8 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.BufferedReader; @@ -14,7 +14,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class CodeFileLoader implements ResourceLoader{ +public class CodeFileLoader implements ResourceLoader { private final TextSplitter textSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CsvFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CsvFileLoader.java similarity index 66% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CsvFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CsvFileLoader.java index cec04fe2..37d99031 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CsvFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CsvFileLoader.java @@ -1,9 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; + +import org.ruoyi.chain.loader.ResourceLoader; import java.io.InputStream; import java.util.List; -public class CsvFileLoader implements ResourceLoader{ +public class CsvFileLoader implements ResourceLoader { @Override public String getContent(InputStream inputStream) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/FolderLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/FolderLoader.java similarity index 88% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/FolderLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/FolderLoader.java index 1bbbc7c8..7422d31e 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/FolderLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/FolderLoader.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import java.io.InputStream; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/GithubLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/GithubLoader.java similarity index 66% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/GithubLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/GithubLoader.java index dd6b4496..55446efe 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/GithubLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/GithubLoader.java @@ -1,9 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; + +import org.ruoyi.chain.loader.ResourceLoader; import java.io.InputStream; import java.util.List; -public class GithubLoader implements ResourceLoader{ +public class GithubLoader implements ResourceLoader { @Override public String getContent(InputStream inputStream) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/JsonFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/JsonFileLoader.java similarity index 65% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/JsonFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/JsonFileLoader.java index 5c69389c..35f3fd44 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/JsonFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/JsonFileLoader.java @@ -1,9 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; + +import org.ruoyi.chain.loader.ResourceLoader; import java.io.InputStream; import java.util.List; -public class JsonFileLoader implements ResourceLoader{ +public class JsonFileLoader implements ResourceLoader { @Override public String getContent(InputStream inputStream) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/MarkDownFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/MarkDownFileLoader.java similarity index 85% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/MarkDownFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/MarkDownFileLoader.java index 24d43ff2..182d0a7c 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/MarkDownFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/MarkDownFileLoader.java @@ -1,8 +1,9 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.BufferedReader; @@ -14,7 +15,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class MarkDownFileLoader implements ResourceLoader{ +public class MarkDownFileLoader implements ResourceLoader { private final TextSplitter textSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/PdfFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/PdfFileLoader.java similarity index 83% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/PdfFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/PdfFileLoader.java index 0acf355e..06e74b87 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/PdfFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/PdfFileLoader.java @@ -1,9 +1,10 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.IOException; @@ -12,7 +13,7 @@ import java.util.List; @Component @AllArgsConstructor -public class PdfFileLoader implements ResourceLoader{ +public class PdfFileLoader implements ResourceLoader { private final TextSplitter characterTextSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoader.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoader.java index 9ef4b11d..9a91cdd0 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoader.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import java.io.InputStream; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoaderFactory.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java similarity index 77% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoaderFactory.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java index 6a29b25c..6aca9009 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoaderFactory.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java @@ -1,10 +1,12 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; -import org.ruoyi.knowledge.chain.split.CharacterTextSplitter; -import org.ruoyi.knowledge.chain.split.CodeTextSplitter; -import org.ruoyi.knowledge.chain.split.MarkdownTextSplitter; -import org.ruoyi.knowledge.chain.split.TokenTextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.loader.TextFileLoader; +import org.ruoyi.chain.split.CharacterTextSplitter; +import org.ruoyi.chain.split.CodeTextSplitter; +import org.ruoyi.chain.split.MarkdownTextSplitter; +import org.ruoyi.chain.split.TokenTextSplitter; import org.ruoyi.knowledge.constant.FileType; import org.springframework.stereotype.Component; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/TextFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/TextFileLoader.java similarity index 92% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/TextFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/TextFileLoader.java index 95b8929a..da3051e9 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/TextFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/TextFileLoader.java @@ -1,8 +1,8 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.BufferedReader; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/WordLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/WordLoader.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/WordLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/WordLoader.java index c31b9e6c..624f01b8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/WordLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/WordLoader.java @@ -1,10 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.IOException; @@ -14,7 +15,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class WordLoader implements ResourceLoader{ +public class WordLoader implements ResourceLoader { private final TextSplitter textSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CharacterTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CharacterTextSplitter.java similarity index 92% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CharacterTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CharacterTextSplitter.java index 4b8f4af1..83ca3342 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CharacterTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CharacterTextSplitter.java @@ -1,10 +1,11 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.chain.split.TextSplitter; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CodeTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CodeTextSplitter.java similarity index 68% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CodeTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CodeTextSplitter.java index 209f5de6..f082ec8a 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CodeTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CodeTextSplitter.java @@ -1,7 +1,8 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.util.List; @@ -9,7 +10,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class CodeTextSplitter implements TextSplitter{ +public class CodeTextSplitter implements TextSplitter { @Override public List split(String content, String kid) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/MarkdownTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/MarkdownTextSplitter.java similarity index 89% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/MarkdownTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/MarkdownTextSplitter.java index 89ea6536..299cc435 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/MarkdownTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/MarkdownTextSplitter.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TextSplitter.java similarity index 87% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TextSplitter.java index 86b3aafd..93b5d57f 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TextSplitter.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TokenTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TokenTextSplitter.java similarity index 68% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TokenTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TokenTextSplitter.java index 696f2610..823014a9 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TokenTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TokenTextSplitter.java @@ -1,7 +1,8 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.util.List; @@ -9,7 +10,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class TokenTextSplitter implements TextSplitter{ +public class TokenTextSplitter implements TextSplitter { @Override public List split(String content, String kid) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/constant/FileType.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java similarity index 98% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/constant/FileType.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java index 6a9451a6..aa141679 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/constant/FileType.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.constant; +package org.ruoyi.constant; public class FileType { public static final String TXT = "txt"; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeAttach.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeAttach.java similarity index 57% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeAttach.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeAttach.java index 694018da..b72c7335 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeAttach.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeAttach.java @@ -1,25 +1,29 @@ -package org.ruoyi.knowledge.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; +import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import java.io.Serializable; -import java.util.Date; +import java.io.Serial; /** * 知识库附件对象 knowledge_attach * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data - +@EqualsAndHashCode(callSuper = true) @TableName("knowledge_attach") -public class KnowledgeAttach extends BaseEntity { +public class KnowledgeAttach extends BaseEntity { + @Serial + private static final long serialVersionUID = 1L; + /** + * + */ @TableId(value = "id") private Long id; @@ -48,4 +52,10 @@ public class KnowledgeAttach extends BaseEntity { */ private String content; + /** + * 备注 + */ + private String remark; + + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeFragment.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeFragment.java similarity index 69% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeFragment.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeFragment.java index f733f067..df325e6a 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeFragment.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeFragment.java @@ -1,27 +1,29 @@ -package org.ruoyi.knowledge.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; +import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; -import java.io.Serializable; -import java.util.Date; /** * 知识片段对象 knowledge_fragment * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data +@EqualsAndHashCode(callSuper = true) @TableName("knowledge_fragment") public class KnowledgeFragment extends BaseEntity { @Serial private static final long serialVersionUID = 1L; + /** + * + */ @TableId(value = "id") private Long id; @@ -43,12 +45,17 @@ public class KnowledgeFragment extends BaseEntity { /** * 片段索引下标 */ - private Integer idx; + private Long idx; /** * 文档内容 */ private String content; + /** + * 备注 + */ + private String remark; + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeInfo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeInfo.java similarity index 69% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeInfo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeInfo.java index 4f1c4821..02442cd1 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeInfo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeInfo.java @@ -1,25 +1,22 @@ -package org.ruoyi.knowledge.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import jakarta.validation.constraints.NotBlank; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; +import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; -import java.io.Serializable; -import java.util.Date; - /** * 知识库对象 knowledge_info * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data +@EqualsAndHashCode(callSuper = true) @TableName("knowledge_info") -public class KnowledgeInfo extends BaseEntity { +public class KnowledgeInfo extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -48,7 +45,7 @@ public class KnowledgeInfo extends BaseEntity { /** * 是否公开知识库(0 否 1是) */ - private String share; + private Integer share; /** * 描述 @@ -68,17 +65,17 @@ public class KnowledgeInfo extends BaseEntity { /** * 重叠字符数 */ - private Integer overlapChar; + private Long overlapChar; /** * 知识库中检索的条数 */ - private Integer retrieveLimit; + private Long retrieveLimit; /** * 文本块大小 */ - private Integer textBlockSize; + private Long textBlockSize; /** * 向量库 @@ -89,4 +86,11 @@ public class KnowledgeInfo extends BaseEntity { * 向量模型 */ private String vectorModel; + + /** + * 备注 + */ + private String remark; + + } diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java new file mode 100644 index 00000000..e2daedb3 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java @@ -0,0 +1,66 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.KnowledgeAttach; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 知识库附件业务对象 knowledge_attach + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = KnowledgeAttach.class, reverseConvertGenerate = false) +public class KnowledgeAttachBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 知识库ID + */ + @NotBlank(message = "知识库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kid; + + /** + * 文档ID + */ + @NotBlank(message = "文档ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docId; + + /** + * 文档名称 + */ + @NotBlank(message = "文档名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docName; + + /** + * 文档类型 + */ + @NotBlank(message = "文档类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docType; + + /** + * 文档内容 + */ + @NotBlank(message = "文档内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String content; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java new file mode 100644 index 00000000..a5461917 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java @@ -0,0 +1,66 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.KnowledgeFragment; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 知识片段业务对象 knowledge_fragment + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = KnowledgeFragment.class, reverseConvertGenerate = false) +public class KnowledgeFragmentBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 知识库ID + */ + @NotBlank(message = "知识库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kid; + + /** + * 文档ID + */ + @NotBlank(message = "文档ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docId; + + /** + * 知识片段ID + */ + @NotBlank(message = "知识片段ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String fid; + + /** + * 片段索引下标 + */ + @NotNull(message = "片段索引下标不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long idx; + + /** + * 文档内容 + */ + @NotBlank(message = "文档内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String content; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java new file mode 100644 index 00000000..82753243 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java @@ -0,0 +1,108 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.KnowledgeInfo; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 知识库业务对象 knowledge_info + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = KnowledgeInfo.class, reverseConvertGenerate = false) +public class KnowledgeInfoBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 知识库ID + */ + @NotBlank(message = "知识库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kid; + + /** + * 用户ID + */ + @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long uid; + + /** + * 知识库名称 + */ + @NotBlank(message = "知识库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kname; + + /** + * 是否公开知识库(0 否 1是) + */ + @NotNull(message = "是否公开知识库(0 否 1是)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer share; + + /** + * 描述 + */ + @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String description; + + /** + * 知识分隔符 + */ + @NotBlank(message = "知识分隔符不能为空", groups = { AddGroup.class, EditGroup.class }) + private String knowledgeSeparator; + + /** + * 提问分隔符 + */ + @NotBlank(message = "提问分隔符不能为空", groups = { AddGroup.class, EditGroup.class }) + private String questionSeparator; + + /** + * 重叠字符数 + */ + @NotNull(message = "重叠字符数不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long overlapChar; + + /** + * 知识库中检索的条数 + */ + @NotNull(message = "知识库中检索的条数不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long retrieveLimit; + + /** + * 文本块大小 + */ + @NotNull(message = "文本块大小不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long textBlockSize; + + /** + * 向量库 + */ + @NotBlank(message = "向量库不能为空", groups = { AddGroup.class, EditGroup.class }) + private String vector; + + /** + * 向量模型 + */ + @NotBlank(message = "向量模型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String vectorModel; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeAttachVo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeAttachVo.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeAttachVo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeAttachVo.java index bd0b141f..fb463d4b 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeAttachVo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeAttachVo.java @@ -1,19 +1,22 @@ -package org.ruoyi.knowledge.domain.vo; +package org.ruoyi.domain.vo; +import org.ruoyi.domain.KnowledgeAttach; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.knowledge.domain.KnowledgeAttach; import java.io.Serial; import java.io.Serializable; + + + /** * 知识库附件视图对象 knowledge_attach * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -59,5 +62,11 @@ public class KnowledgeAttachVo implements Serializable { @ExcelProperty(value = "文档内容") private String content; + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeFragmentVo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeFragmentVo.java similarity index 83% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeFragmentVo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeFragmentVo.java index 630bbe06..fcda4580 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeFragmentVo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeFragmentVo.java @@ -1,19 +1,24 @@ -package org.ruoyi.knowledge.domain.vo; +package org.ruoyi.domain.vo; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.knowledge.domain.KnowledgeFragment; +import org.ruoyi.domain.KnowledgeFragment; import java.io.Serial; import java.io.Serializable; + + + /** * 知识片段视图对象 knowledge_fragment * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -59,4 +64,11 @@ public class KnowledgeFragmentVo implements Serializable { @ExcelProperty(value = "文档内容") private String content; + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeInfoVo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeInfoVo.java similarity index 77% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeInfoVo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeInfoVo.java index a47b5d60..6a5fdbf8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeInfoVo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeInfoVo.java @@ -1,19 +1,26 @@ -package org.ruoyi.knowledge.domain.vo; +package org.ruoyi.domain.vo; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.knowledge.domain.KnowledgeInfo; +import org.ruoyi.common.excel.annotation.ExcelDictFormat; +import org.ruoyi.common.excel.convert.ExcelDictConvert; +import org.ruoyi.domain.KnowledgeInfo; import java.io.Serial; import java.io.Serializable; + + + /** * 知识库视图对象 knowledge_info * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -48,9 +55,11 @@ public class KnowledgeInfoVo implements Serializable { private String kname; /** - * 知识库名称 + * 是否公开知识库(0 否 1是) */ - private String share; + @ExcelProperty(value = "是否公开知识库", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=,否=,1=是") + private Integer share; /** * 描述 @@ -99,4 +108,12 @@ public class KnowledgeInfoVo implements Serializable { */ @ExcelProperty(value = "向量模型") private String vectorModel; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeAttachMapper.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeAttachMapper.java similarity index 53% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeAttachMapper.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeAttachMapper.java index ec7d2641..c58856c4 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeAttachMapper.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeAttachMapper.java @@ -1,14 +1,15 @@ -package org.ruoyi.knowledge.mapper; +package org.ruoyi.mapper; + +import org.ruoyi.domain.KnowledgeAttach; +import org.ruoyi.domain.vo.KnowledgeAttachVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.knowledge.domain.KnowledgeAttach; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; /** * 知识库附件Mapper接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface KnowledgeAttachMapper extends BaseMapperPlus { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeFragmentMapper.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeFragmentMapper.java similarity index 53% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeFragmentMapper.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeFragmentMapper.java index 92d9ccbc..5e73b38d 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeFragmentMapper.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeFragmentMapper.java @@ -1,14 +1,15 @@ -package org.ruoyi.knowledge.mapper; +package org.ruoyi.mapper; + +import org.ruoyi.domain.KnowledgeFragment; +import org.ruoyi.domain.vo.KnowledgeFragmentVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.knowledge.domain.KnowledgeFragment; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; /** * 知识片段Mapper接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface KnowledgeFragmentMapper extends BaseMapperPlus { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeInfoMapper.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeInfoMapper.java similarity index 52% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeInfoMapper.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeInfoMapper.java index 1984e0ae..47db02b2 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeInfoMapper.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeInfoMapper.java @@ -1,14 +1,15 @@ -package org.ruoyi.knowledge.mapper; +package org.ruoyi.mapper; + +import org.ruoyi.domain.KnowledgeInfo; +import org.ruoyi.domain.vo.KnowledgeInfoVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.knowledge.domain.KnowledgeInfo; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; /** * 知识库Mapper接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface KnowledgeInfoMapper extends BaseMapperPlus { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/EmbeddingService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/EmbeddingService.java similarity index 92% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/EmbeddingService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/EmbeddingService.java index a4dd30d5..98841189 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/EmbeddingService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/EmbeddingService.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeAttachService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeAttachService.java similarity index 76% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeAttachService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeAttachService.java index 6ed856ee..90828782 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeAttachService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeAttachService.java @@ -1,9 +1,10 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + +import org.ruoyi.domain.bo.KnowledgeAttachBo; +import org.ruoyi.domain.vo.KnowledgeAttachVo; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; @@ -11,8 +12,8 @@ import java.util.List; /** * 知识库附件Service接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface IKnowledgeAttachService { @@ -45,10 +46,4 @@ public interface IKnowledgeAttachService { * 校验并批量删除知识库附件信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - - /** - * 删除知识附件 - */ - void removeKnowledgeAttach(String docId); } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeFragmentService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeFragmentService.java similarity index 82% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeFragmentService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeFragmentService.java index 7546a1d5..5e88ef70 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeFragmentService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeFragmentService.java @@ -1,9 +1,10 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; + -import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.KnowledgeFragmentBo; +import org.ruoyi.domain.vo.KnowledgeFragmentVo; import java.util.Collection; import java.util.List; @@ -11,8 +12,8 @@ import java.util.List; /** * 知识片段Service接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface IKnowledgeFragmentService { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeInfoService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeInfoService.java similarity index 53% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeInfoService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeInfoService.java index 14e8e972..fc9d37b8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeInfoService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeInfoService.java @@ -1,18 +1,19 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + +import org.ruoyi.domain.bo.KnowledgeInfoBo; +import org.ruoyi.domain.vo.KnowledgeInfoVo; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import java.util.Collection; import java.util.List; /** * 知识库Service接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface IKnowledgeInfoService { @@ -31,6 +32,10 @@ public interface IKnowledgeInfoService { */ List queryList(KnowledgeInfoBo bo); + /** + * 新增知识库 + */ + Boolean insertByBo(KnowledgeInfoBo bo); /** * 修改知识库 @@ -38,23 +43,7 @@ public interface IKnowledgeInfoService { Boolean updateByBo(KnowledgeInfoBo bo); /** - * 新增知识库 + * 校验并批量删除知识库信息 */ - void saveOne(KnowledgeInfoBo bo); - - /** - * 上传附件 - */ - void upload(KnowledgeInfoUploadRequest request); - - /** - * 删除知识库 - */ - void removeKnowledge(String id); - - /** - * 检查是否有删除权限 - * @param knowledgeInfoList 知识列表 - */ - void check(List knowledgeInfoList); + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java similarity index 85% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java index 6be022d4..d3294bb3 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java @@ -1,11 +1,11 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.service; import java.util.List; /** * 向量存储 */ -public interface VectorStore { +public interface VectorStoreService { void storeEmbeddings(List chunkList, List> vectorList, String kid, String docId, List fidList); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java similarity index 66% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java index 1c25ddeb..81888810 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java @@ -1,11 +1,12 @@ -package org.ruoyi.knowledge.chain.vectorizer; +package org.ruoyi.service; import java.util.List; /** - * 向量化 + * 文本向量化 */ -public interface Vectorization { +public interface VectorizationService { + List> batchVectorization(List chunkList, String kid); List singleVectorization(String chunk, String kid); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/EmbeddingServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/EmbeddingServiceImpl.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/EmbeddingServiceImpl.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/EmbeddingServiceImpl.java index 96e568a2..00657399 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/EmbeddingServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/EmbeddingServiceImpl.java @@ -1,9 +1,9 @@ -package org.ruoyi.knowledge.service.impl; +package org.ruoyi.service.impl; import lombok.AllArgsConstructor; -import org.ruoyi.knowledge.chain.vectorizer.Vectorization; -import org.ruoyi.knowledge.chain.vectorstore.VectorStore; -import org.ruoyi.knowledge.service.EmbeddingService; +import org.ruoyi.service.EmbeddingService; +import org.ruoyi.service.VectorStoreService; +import org.ruoyi.service.VectorizationService; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -13,8 +13,8 @@ import java.util.List; @AllArgsConstructor public class EmbeddingServiceImpl implements EmbeddingService { - private final VectorStore vectorStore; - private final Vectorization vectorization; + private final VectorStoreService vectorStore; + private final VectorizationService vectorization; /** * 保存向量数据库 diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeAttachServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeAttachServiceImpl.java similarity index 75% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeAttachServiceImpl.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeAttachServiceImpl.java index 8ae5340b..6a0a571f 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeAttachServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeAttachServiceImpl.java @@ -1,36 +1,30 @@ -package org.ruoyi.knowledge.service.impl; +package org.ruoyi.service.impl; +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.knowledge.domain.KnowledgeAttach; -import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.mapper.KnowledgeAttachMapper; -import org.ruoyi.knowledge.mapper.KnowledgeFragmentMapper; -import org.ruoyi.knowledge.mapper.KnowledgeInfoMapper; -import org.ruoyi.knowledge.service.IKnowledgeAttachService; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.domain.vo.KnowledgeAttachVo; import org.springframework.stereotype.Service; +import org.ruoyi.domain.bo.KnowledgeAttachBo; + +import org.ruoyi.domain.KnowledgeAttach; +import org.ruoyi.mapper.KnowledgeAttachMapper; +import org.ruoyi.service.IKnowledgeAttachService; -import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Collection; /** * 知识库附件Service业务层处理 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @RequiredArgsConstructor @Service @@ -38,13 +32,6 @@ public class KnowledgeAttachServiceImpl implements IKnowledgeAttachService { private final KnowledgeAttachMapper baseMapper; - private final KnowledgeFragmentMapper fragmentMapper; - - private final KnowledgeInfoMapper knowledgeInfoMapper; - - private final IKnowledgeInfoService knowledgeInfoService; - - /** * 查询知识库附件 */ @@ -124,12 +111,4 @@ public class KnowledgeAttachServiceImpl implements IKnowledgeAttachService { } return baseMapper.deleteBatchIds(ids) > 0; } - - @Override - public void removeKnowledgeAttach(String docId) { - Map map = new HashMap<>(); - map.put("doc_id",docId); - baseMapper.deleteByMap(map); - fragmentMapper.deleteByMap(map); - } } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeFragmentServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeFragmentServiceImpl.java similarity index 88% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeFragmentServiceImpl.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeFragmentServiceImpl.java index ff6efcc7..25028366 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeFragmentServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeFragmentServiceImpl.java @@ -1,28 +1,29 @@ -package org.ruoyi.knowledge.service.impl; +package org.ruoyi.service.impl; +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.KnowledgeFragment; -import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; -import org.ruoyi.knowledge.mapper.KnowledgeFragmentMapper; -import org.ruoyi.knowledge.service.IKnowledgeFragmentService; +import org.ruoyi.domain.vo.KnowledgeFragmentVo; import org.springframework.stereotype.Service; +import org.ruoyi.domain.bo.KnowledgeFragmentBo; +import org.ruoyi.domain.KnowledgeFragment; +import org.ruoyi.mapper.KnowledgeFragmentMapper; +import org.ruoyi.service.IKnowledgeFragmentService; -import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Collection; + /** * 知识片段Service业务层处理 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @RequiredArgsConstructor @Service @@ -44,7 +45,6 @@ public class KnowledgeFragmentServiceImpl implements IKnowledgeFragmentService { @Override public TableDataInfo queryPageList(KnowledgeFragmentBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.eq(KnowledgeFragment::getDocId, bo.getDocId()); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java new file mode 100644 index 00000000..7acaa098 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java @@ -0,0 +1,120 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.springframework.stereotype.Service; +import org.ruoyi.domain.bo.KnowledgeInfoBo; +import org.ruoyi.domain.KnowledgeInfo; +import org.ruoyi.mapper.KnowledgeInfoMapper; +import org.ruoyi.service.IKnowledgeInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 知识库Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class KnowledgeInfoServiceImpl implements IKnowledgeInfoService { + + private final KnowledgeInfoMapper baseMapper; + + /** + * 查询知识库 + */ + @Override + public KnowledgeInfoVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询知识库列表 + */ + @Override + public TableDataInfo queryPageList(KnowledgeInfoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询知识库列表 + */ + @Override + public List queryList(KnowledgeInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(KnowledgeInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getKid()), KnowledgeInfo::getKid, bo.getKid()); + lqw.eq(bo.getUid() != null, KnowledgeInfo::getUid, bo.getUid()); + lqw.like(StringUtils.isNotBlank(bo.getKname()), KnowledgeInfo::getKname, bo.getKname()); + lqw.eq(bo.getShare() != null, KnowledgeInfo::getShare, bo.getShare()); + lqw.eq(StringUtils.isNotBlank(bo.getDescription()), KnowledgeInfo::getDescription, bo.getDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getKnowledgeSeparator()), KnowledgeInfo::getKnowledgeSeparator, bo.getKnowledgeSeparator()); + lqw.eq(StringUtils.isNotBlank(bo.getQuestionSeparator()), KnowledgeInfo::getQuestionSeparator, bo.getQuestionSeparator()); + lqw.eq(bo.getOverlapChar() != null, KnowledgeInfo::getOverlapChar, bo.getOverlapChar()); + lqw.eq(bo.getRetrieveLimit() != null, KnowledgeInfo::getRetrieveLimit, bo.getRetrieveLimit()); + lqw.eq(bo.getTextBlockSize() != null, KnowledgeInfo::getTextBlockSize, bo.getTextBlockSize()); + lqw.eq(StringUtils.isNotBlank(bo.getVector()), KnowledgeInfo::getVector, bo.getVector()); + lqw.eq(StringUtils.isNotBlank(bo.getVectorModel()), KnowledgeInfo::getVectorModel, bo.getVectorModel()); + return lqw; + } + + /** + * 新增知识库 + */ + @Override + public Boolean insertByBo(KnowledgeInfoBo bo) { + KnowledgeInfo add = MapstructUtils.convert(bo, KnowledgeInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改知识库 + */ + @Override + public Boolean updateByBo(KnowledgeInfoBo bo) { + KnowledgeInfo update = MapstructUtils.convert(bo, KnowledgeInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(KnowledgeInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除知识库 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysCache.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysCache.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysCache.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysCache.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysConfig.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysConfig.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysConfig.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysConfig.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDept.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDept.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDept.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDept.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictData.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictData.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictData.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictData.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictType.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictType.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictType.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictType.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysLogininfor.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysLogininfor.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysLogininfor.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysLogininfor.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysMenu.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysMenu.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysMenu.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysMenu.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNotice.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNotice.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNotice.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNotice.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNoticeState.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNoticeState.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNoticeState.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNoticeState.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOperLog.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOperLog.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOperLog.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOperLog.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOss.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOss.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOss.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOss.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOssConfig.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOssConfig.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOssConfig.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOssConfig.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPost.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysPost.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPost.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysPost.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRole.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRole.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRole.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRole.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleDept.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleDept.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleDept.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleDept.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenant.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenant.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenant.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenant.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUser.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUser.java similarity index 99% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUser.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUser.java index 96e80db1..f451e982 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUser.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUser.java @@ -37,7 +37,6 @@ public class SysUser extends TenantEntity { */ private String userName; - /** * 用户套餐 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserOnline.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserOnline.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserOnline.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserOnline.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserPost.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserPost.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserPost.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserPost.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserRole.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserRole.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserRole.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserRole.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/UserRequest.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/UserRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/UserRequest.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/UserRequest.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java similarity index 67% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java index d9c82294..fa279d98 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java @@ -2,13 +2,11 @@ package org.ruoyi.system.domain.vo; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.common.translation.annotation.Translation; -import org.ruoyi.common.translation.constant.TransConstant; import org.ruoyi.system.domain.SysNotice; import java.io.Serial; import java.io.Serializable; -import java.util.Date; + @@ -54,20 +52,4 @@ public class SysNoticeVo implements Serializable { */ private String remark; - /** - * 创建者 - */ - private Long createBy; - - /** - * 创建人名称 - */ - @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy") - private String createByName; - - /** - * 创建时间 - */ - private Date createTime; - } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java index 1e95de2b..8b134b6b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java @@ -4,7 +4,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.system.domain.SysUserModel; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java index 1a6f7921..08cb737d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java @@ -1,7 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.Cover; import org.ruoyi.system.domain.vo.cover.CoverVo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java similarity index 91% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java index 2bf27ec7..6abffd98 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java @@ -1,7 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.CoverPromptAudio; import org.ruoyi.system.domain.vo.cover.CoverPromptAudioVo; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java similarity index 73% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java index 67e404a8..e854cfc3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.PaymentOrder; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java index 18a1f4de..1b436f81 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.vo.SysModelVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java similarity index 73% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java index 492cf977..3a6718aa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.SysPackagePlan; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; /** * 套餐管理Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java index 81410f34..8cf07137 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.SysUserGroup; -import org.ruoyi.system.domain.vo.SysUserGroupVo; /** * 【请填写功能名称】Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java index 0817e824..e62693e7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java @@ -1,7 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.SysUserModel; import org.ruoyi.system.domain.vo.SysUserModelVo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java similarity index 75% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java index 9cfc5b19..36ad76ea 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.WxRobConfig; -import org.ruoyi.system.domain.vo.WxRobConfigVo; /** * 【请填写功能名称】Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java index e76ec3ed..a062dc27 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.WxRobKeyword; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java index edd32fe6..df7d19fa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.WxRobRelation; -import org.ruoyi.system.domain.vo.WxRobRelationVo; /** * 【请填写功能名称】Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java similarity index 90% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java index 13d9670c..2b531ad9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java @@ -1,8 +1,8 @@ package org.ruoyi.system.runner; -import org.ruoyi.system.service.ISysOssConfigService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.system.service.ISysOssConfigService; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @@ -20,7 +20,7 @@ public class SystemApplicationRunner implements ApplicationRunner { private final ISysOssConfigService ossConfigService; @Override - public void run(ApplicationArguments args) throws Exception { + public void run(ApplicationArguments args) { ossConfigService.init(); log.info("初始化OSS配置成功"); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysConfigService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysConfigService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysConfigService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysConfigService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDeptService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDeptService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDeptService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDeptService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictDataService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictDataService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictDataService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictDataService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysLogininforService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysLogininforService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysLogininforService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysLogininforService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysMenuService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysMenuService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysMenuService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOperLogService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOperLogService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOperLogService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOperLogService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPermissionService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPermissionService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPermissionService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPermissionService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPostService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPostService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPostService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPostService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysRoleService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysRoleService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysRoleService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysRoleService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysUserService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysUserService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java similarity index 98% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java index 017388c1..5ab11951 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java @@ -1,7 +1,6 @@ package org.ruoyi.system.service; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.api.WxMaUserService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.util.WxMaConfigHolder; import cn.dev33.satoken.exception.NotLoginException; @@ -10,6 +9,10 @@ import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.error.WxErrorException; +import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.constant.GlobalConstants; import org.ruoyi.common.core.constant.TenantConstants; @@ -28,23 +31,19 @@ import org.ruoyi.common.redis.utils.RedisUtils; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.common.tenant.exception.TenantException; import org.ruoyi.common.tenant.helper.TenantHelper; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; import org.ruoyi.system.domain.SysUser; import org.ruoyi.system.domain.bo.SysUserBo; import org.ruoyi.system.domain.vo.LoginVo; import org.ruoyi.system.domain.vo.SysTenantVo; import org.ruoyi.system.domain.vo.SysUserVo; import org.ruoyi.system.mapper.SysUserMapper; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.error.WxErrorException; -import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.time.Duration; import java.util.Date; import java.util.List; +import java.util.UUID; import java.util.function.Supplier; /** @@ -172,8 +171,7 @@ public class SysLoginService { if (ObjectUtil.isNull(user)) { SysUserBo sysUser = new SysUserBo(); // 改为自增 - String name = "用户" + UUIDShortUtil.generateShortUuid(); - ; + String name = "用户" + UUID.randomUUID().toString().replace("-", ""); // 设置默认用户名 sysUser.setUserName(name); // 设置默认昵称 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java index 7da71d51..c3a90947 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java @@ -9,11 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.SysUserGroupBo; -import org.ruoyi.system.domain.vo.SysUserGroupVo; -import org.ruoyi.system.domain.SysUserGroup; import org.ruoyi.system.mapper.SysUserGroupMapper; -import org.ruoyi.system.service.ISysUserGroupService; import java.util.List; import java.util.Map; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AesUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AesUtils.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/HttpUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/HttpUtils.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/KeyUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/KeyUtils.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WddPptApi.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WddPptApi.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java index 49d2b18f..56fbd197 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java @@ -3,10 +3,10 @@ package org.ruoyi.system.util; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.system.domain.model.WeixinQrCode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.system.domain.model.WeixinQrCode; import org.springframework.stereotype.Component; import java.net.URI; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/XmlUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/XmlUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverPromptAudioMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverPromptAudioMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/PaymentOrdersMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/PaymentOrdersMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysConfigMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysConfigMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDeptMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDeptMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictDataMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictDataMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictTypeMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictTypeMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysMenuMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysMenuMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysModelMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysModelMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeStateMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeStateMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeStateMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeStateMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOperLogMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOperLogMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssConfigMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssConfigMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPackagePlanMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPackagePlanMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPostMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPostMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleDeptMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleDeptMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMenuMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMenuMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantPackageMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantPackageMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserPostMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserPostMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserRoleMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserRoleMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobConfigMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobKeywordMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobKeywordMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobRelationMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobRelationMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index ac97241b..20c54198 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -20,7 +20,6 @@ ruoyi-demo ruoyi-chat ruoyi-system - ruoyi-knowledge ruoyi-generator diff --git a/ruoyi-modules/ruoyi-chat/pom.xml b/ruoyi-modules/ruoyi-chat/pom.xml index b6a9d823..9f254284 100644 --- a/ruoyi-modules/ruoyi-chat/pom.xml +++ b/ruoyi-modules/ruoyi-chat/pom.xml @@ -107,13 +107,27 @@ jakarta.servlet jakarta.servlet-api + org.ruoyi ruoyi-system + org.ruoyi - ruoyi-knowledge + ruoyi-knowledge-api + + + org.ruoyi + ruoyi-chat-api + 1.0.0 + compile + + + cn.hutool + hutool-all + 5.8.26 + compile diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java index e6a44464..4d5f9fae 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java @@ -5,11 +5,12 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.service.chat.ISseService; import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.domain.request.Dall3Request; + import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.files.UploadFileResponse; -import org.ruoyi.common.chat.entity.images.Item; + import org.ruoyi.common.chat.entity.whisper.WhisperResponse; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.domain.model.LoginUser; @@ -17,8 +18,10 @@ import org.ruoyi.common.core.exception.base.BaseException; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.request.translation.TranslationRequest; -import org.ruoyi.system.service.ISseService; +import org.ruoyi.domain.bo.ChatMessageBo; + +import org.ruoyi.domain.vo.ChatMessageVo; +import org.ruoyi.service.IChatMessageService; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -26,7 +29,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import java.util.List; /** * 描述:聊天管理 @@ -56,7 +58,6 @@ public class ChatController { return sseService.sseChat(chatRequest,request); } - /** * 上传文件 */ @@ -90,22 +91,6 @@ public class ChatController { return sseService.textToSpeed(textToSpeech); } - /** - * 文本翻译 - * - * @param - */ - @PostMapping("/translation") - @ResponseBody - public String translation(@RequestBody TranslationRequest translationRequest) { - return sseService.translation(translationRequest); - } - - @PostMapping("/dall3") - @ResponseBody - public R> dall3(@RequestBody @Valid Dall3Request request) { - return R.ok(sseService.dall3(request)); - } /** * 聊天记录 diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java index a5e9208b..11fd751c 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java @@ -7,7 +7,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; -import org.ruoyi.chat.dto.*; +import org.ruoyi.chat.domain.dto.*; import org.ruoyi.chat.enums.ActionType; import org.ruoyi.chat.util.MjOkHttpUtil; import org.springframework.web.bind.annotation.PostMapping; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java index 481b5b32..ea86a2ac 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java @@ -7,7 +7,7 @@ import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.Request; -import org.ruoyi.chat.dto.TaskConditionDTO; +import org.ruoyi.chat.domain.dto.TaskConditionDTO; import org.ruoyi.chat.util.MjOkHttpUtil; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/BaseSubmitDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/BaseSubmitDTO.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/BaseSubmitDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/BaseSubmitDTO.java index 318fd130..0c2334f8 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/BaseSubmitDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/BaseSubmitDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitActionDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitActionDTO.java similarity index 87% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitActionDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitActionDTO.java index c450169b..49da1da0 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitActionDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitActionDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitBlendDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitBlendDTO.java similarity index 95% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitBlendDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitBlendDTO.java index 4e11dfeb..3c3d8cc8 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitBlendDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitBlendDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitChangeDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitChangeDTO.java similarity index 95% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitChangeDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitChangeDTO.java index 80e42451..039e15f1 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitChangeDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitChangeDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitDescribeDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitDescribeDTO.java similarity index 91% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitDescribeDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitDescribeDTO.java index 4becb81c..3be051e3 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitDescribeDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitDescribeDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitImagineDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitImagineDTO.java similarity index 94% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitImagineDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitImagineDTO.java index c8f306a1..d65a0db1 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitImagineDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitImagineDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitModalDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitModalDTO.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitModalDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitModalDTO.java index 38c5d862..4a321e4c 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitModalDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitModalDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitShortenDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitShortenDTO.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitShortenDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitShortenDTO.java index 8be2f8b4..f8f7ed37 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitShortenDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitShortenDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitSimpleChangeDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitSimpleChangeDTO.java similarity index 92% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitSimpleChangeDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitSimpleChangeDTO.java index 62c80098..b4e09a08 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitSimpleChangeDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitSimpleChangeDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/TaskConditionDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/TaskConditionDTO.java similarity index 84% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/TaskConditionDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/TaskConditionDTO.java index 84634776..46864ce9 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/TaskConditionDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/TaskConditionDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java similarity index 59% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java index 92d767ba..f64e6158 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.listener; +package org.ruoyi.chat.listener; import cn.hutool.core.collection.CollectionUtil; @@ -10,20 +10,13 @@ import okhttp3.Response; import okhttp3.ResponseBody; import okhttp3.sse.EventSource; import okhttp3.sse.EventSourceListener; -import org.ruoyi.common.chat.config.LocalCache; -import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; -import org.ruoyi.common.chat.utils.TikTokensUtil; -import org.ruoyi.common.core.utils.SpringUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.service.ISysModelService; import org.jetbrains.annotations.NotNull; +import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.core.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter; -import java.util.List; import java.util.Objects; /** @@ -37,15 +30,15 @@ import java.util.Objects; @Component public class SSEEventSourceListener extends EventSourceListener { - private ResponseBodyEmitter emitter; - - private StringBuilder stringBuffer = new StringBuilder(); - @Autowired(required = false) public SSEEventSourceListener(ResponseBodyEmitter emitter) { this.emitter = emitter; } - private static final ISysModelService sysModelService = SpringUtils.getBean(ISysModelService.class); + + private ResponseBodyEmitter emitter; + + private StringBuilder stringBuffer; + private String modelName; /** * {@inheritDoc} @@ -65,34 +58,8 @@ public class SSEEventSourceListener extends EventSourceListener { if ("[DONE]".equals(data)) { //成功响应 emitter.complete(); - if(StringUtils.isNotEmpty(modelName)){ - IChatCostService IChatCostService = SpringUtils.context().getBean(IChatCostService.class); - IChatMessageService chatMessageService = SpringUtils.context().getBean(IChatMessageService.class); - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setModelName(modelName); - chatMessageBo.setContent(stringBuffer.toString()); - Long userId = (Long)LocalCache.CACHE.get("userId"); - if(userId == null){ - return; - } - chatMessageBo.setUserId(userId); - //查询按次数扣费的模型 - SysModelBo sysModelBo = new SysModelBo(); - sysModelBo.setModelType("2"); - sysModelBo.setModelName(modelName); - List sysModelList = sysModelService.queryList(sysModelBo); - if (CollectionUtil.isNotEmpty(sysModelList)){ - chatMessageBo.setDeductCost(0d); - chatMessageBo.setRemark("提问时扣费"); - // 保存消息记录 - chatMessageService.insertByBo(chatMessageBo); - }else{ - int tokens = TikTokensUtil.tokens(modelName,stringBuffer.toString()); - chatMessageBo.setTotalTokens(tokens); - // 按token扣费并且保存消息记录 - IChatCostService.deductToken(chatMessageBo); - } - } + + // 扣除费用 (消耗字符 模型名称) return; } // 解析返回内容 diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java similarity index 85% rename from ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java index e5825b0f..234360a0 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java @@ -1,7 +1,13 @@ -package org.ruoyi.service; +package org.ruoyi.chat.service.chat; import org.ruoyi.domain.bo.ChatMessageBo; +/** + * 计费管理Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ public interface IChatCostService { /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISseService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java similarity index 54% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISseService.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java index 7230c78e..84da5b42 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISseService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java @@ -1,75 +1,58 @@ -package org.ruoyi.system.service; - +package org.ruoyi.chat.service.chat; import jakarta.servlet.http.HttpServletRequest; import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.domain.request.Dall3Request; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.files.UploadFileResponse; -import org.ruoyi.common.chat.entity.images.Item; import org.ruoyi.common.chat.entity.whisper.WhisperResponse; -import org.ruoyi.system.domain.request.translation.TranslationRequest; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import java.util.List; /** - * 描述: + * 用户聊天管理Service接口 * - * @author https:www.unfbx.com - * @date 2023-04-08 + * @author ageerle + * @date 2025-04-08 */ public interface ISseService { /** * 客户端发送消息到服务端 - * @param chatRequest + * @param chatRequest 请求对象 */ - SseEmitter sseChat(ChatRequest chatRequest,HttpServletRequest request); + SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request); /** * 语音转文字 - * @param file + * @param file 语音文件 */ WhisperResponse speechToTextTranscriptionsV2(MultipartFile file); /** * 文字转语音 + * + * @param textToSpeech 文本信息 + * @return 流式语音 */ ResponseEntity textToSpeed(TextToSpeech textToSpeech); - /** - * 客户端发送消息到服务端 - * @param chatRequest - */ - String chat(ChatRequest chatRequest,String userId); /** - * 客户端发送消息到服务端 + * 上传文件到api服务器 + * + * @param file 文件信息 + * @return 返回文件信息 */ - List wxDall(String prompt,String userId); - - /** - * 绘画接口 - * @param request - */ - List dall3(Dall3Request request); - - UploadFileResponse upload(MultipartFile file); - /** - * 文本翻译 - * @param - */ - String translation(TranslationRequest translationRequest); /** - * 调用本地模型 - * @param chatRequest + * 使用ollama调用本地模型 + * @param chatRequest 对话信息 + * @return 流式输出返回内容 */ SseEmitter ollamaChat(ChatRequest chatRequest); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java new file mode 100644 index 00000000..2e3e294d --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -0,0 +1,292 @@ +package org.ruoyi.chat.service.chat.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.extra.servlet.ServletUtil; +import com.google.protobuf.ServiceException; +import io.github.ollama4j.OllamaAPI; +import io.github.ollama4j.models.chat.OllamaChatMessage; +import io.github.ollama4j.models.chat.OllamaChatMessageRole; +import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; +import io.github.ollama4j.models.chat.OllamaChatRequestModel; +import io.github.ollama4j.models.generate.OllamaStreamHandler; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.ruoyi.chat.listener.SSEEventSourceListener; + +import org.ruoyi.chat.service.chat.ISseService; +import org.ruoyi.common.chat.config.ChatConfig; +import org.ruoyi.common.chat.domain.request.ChatRequest; +import org.ruoyi.common.chat.entity.Tts.TextToSpeech; +import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; + +import org.ruoyi.common.chat.entity.chat.Message; +import org.ruoyi.common.chat.entity.files.UploadFileResponse; +import org.ruoyi.common.chat.entity.whisper.WhisperResponse; +import org.ruoyi.common.chat.openai.OpenAiStreamClient; +import org.ruoyi.common.core.utils.file.FileUtils; +import org.ruoyi.common.core.utils.file.MimeTypeUtils; + +import org.ruoyi.common.redis.utils.RedisUtils; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; +import org.springframework.core.io.InputStreamResource; +import org.springframework.core.io.Resource; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +@Service +@Slf4j +@RequiredArgsConstructor +public class SseServiceImpl implements ISseService { + + private OpenAiStreamClient openAiStreamClient; + + private final ChatConfig chatConfig; + + private final IChatModelService chatModelService; + + @Override + public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { + SseEmitter sseEmitter = new SseEmitter(0L); + SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); + // 获取对话消息列表 + List messages = chatRequest.getMessages(); + try { + if (StpUtil.isLogin()) { + // 通过模型名称查询模型信息 + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + // 构建api请求客户端 + openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + + // 模型设置默认提示词 + + // 是否开启联网查询 + }else { + // 未登录用户限制对话次数,默认5次 + String clientIp = ServletUtil.getClientIP((javax.servlet.http.HttpServletRequest) request,"X-Forwarded-For"); + + int timeWindowInSeconds = 5; + + String redisKey = "visitor:" + clientIp; + int count = 0; + + if (RedisUtils.getCacheObject(redisKey) == null) { + // 当前访问次数 + RedisUtils.setCacheObject(redisKey, count, Duration.ofSeconds(86400)); + }else { + count = RedisUtils.getCacheObject(redisKey); + if (count >= timeWindowInSeconds) { + throw new ServiceException("当日免费次数已用完"); + } + count++; + RedisUtils.setCacheObject(redisKey, count); + } + } + + ChatCompletion completion = ChatCompletion + .builder() + .messages(messages) + .model(chatRequest.getModel()) + .temperature(chatRequest.getTemperature()) + .topP(chatRequest.getTop_p()) + .stream(true) + .build(); + openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + // 保存消息记录 并扣除费用 + + } catch (Exception e) { + String message = e.getMessage(); + sendErrorEvent(sseEmitter, message); + return sseEmitter; + } + return sseEmitter; + } + + + /** + * 发送SSE错误事件的封装方法 + * + * @param sseEmitter + * @param errorMessage + */ + private void sendErrorEvent(SseEmitter sseEmitter, String errorMessage) { + SseEmitter.SseEventBuilder event = SseEmitter.event() + .name("error") + .data(errorMessage); + try { + sseEmitter.send(event); + } catch (IOException e) { + log.error("发送事件失败: {}", e.getMessage()); + } + sseEmitter.complete(); + } + + /** + * 文字转语音 + */ + @Override + public ResponseEntity textToSpeed(TextToSpeech textToSpeech) { + ResponseBody body = openAiStreamClient.textToSpeech(textToSpeech); + if (body != null) { + // 将ResponseBody转换为InputStreamResource + InputStreamResource resource = new InputStreamResource(body.byteStream()); + + // 创建并返回ResponseEntity + return ResponseEntity.ok() + .contentType(MediaType.parseMediaType("audio/mpeg")) + .body(resource); + } else { + // 如果ResponseBody为空,返回404状态码 + return ResponseEntity.notFound().build(); + } + } + + /** + * 语音转文字 + */ + @Override + public WhisperResponse speechToTextTranscriptionsV2(MultipartFile file) { + // 确保文件不为空 + if (file.isEmpty()) { + throw new IllegalStateException("Cannot convert an empty MultipartFile"); + } + if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.AUDIO__EXTENSION)) { + throw new IllegalStateException("File Extention not supported"); + } + // 创建一个文件对象 + File fileA = new File(System.getProperty("java.io.tmpdir") + File.separator + file.getOriginalFilename()); + try { + // 将 MultipartFile 的内容写入文件 + file.transferTo(fileA); + } catch (IOException e) { + throw new RuntimeException("Failed to convert MultipartFile to File", e); + } + return openAiStreamClient.speechToTextTranscriptions(fileA); + } + + + @Override + public UploadFileResponse upload(MultipartFile file) { + if (file.isEmpty()) { + throw new IllegalStateException("Cannot upload an empty MultipartFile"); + } + if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) { + throw new IllegalStateException("File Extention not supported"); + } + openAiStreamClient = chatConfig.getOpenAiStreamClient(); + return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file)); + } + + private File convertMultiPartToFile(MultipartFile multipartFile) { + File file = null; + try { + // 获取原始文件名 + String originalFileName = multipartFile.getOriginalFilename(); + // 默认扩展名 + String extension = ".tmp"; + // 尝试从原始文件名中获取扩展名 + if (originalFileName != null && originalFileName.contains(".")) { + extension = originalFileName.substring(originalFileName.lastIndexOf(".")); + } + + // 使用原始文件的扩展名创建临时文件 + Path tempFile = Files.createTempFile(null, extension); + file = tempFile.toFile(); + + // 将MultipartFile的内容写入文件 + try (InputStream inputStream = multipartFile.getInputStream(); + FileOutputStream outputStream = new FileOutputStream(file)) { + int read; + byte[] bytes = new byte[1024]; + while ((read = inputStream.read(bytes)) != -1) { + outputStream.write(bytes, 0, read); + } + } catch (IOException e) { + // 处理文件写入异常 + e.printStackTrace(); + } + } catch (IOException e) { + // 处理临时文件创建异常 + e.printStackTrace(); + } + return file; + } + + @Override + public SseEmitter ollamaChat(ChatRequest chatRequest) { + String[] parts = chatRequest.getModel().split("ollama-"); + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + final SseEmitter emitter = new SseEmitter(); + String host = chatModelVo.getApiHost(); + List msgList = chatRequest.getMessages(); + List messages = new ArrayList<>(); + + for (Message message : msgList) { + OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); + ollamaChatMessage.setRole(OllamaChatMessageRole.USER); + ollamaChatMessage.setContent(message.getContent().toString()); + messages.add(ollamaChatMessage); + } + OllamaAPI api = new OllamaAPI(host); + api.setRequestTimeoutSeconds(100); + OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(parts[1]); + + OllamaChatRequestModel requestModel = builder + .withMessages(messages) + .build(); + + // 异步执行 OllAma API 调用 + CompletableFuture.runAsync(() -> { + try { + StringBuilder response = new StringBuilder(); + OllamaStreamHandler streamHandler = (s) -> { + String substr = s.substring(response.length()); + response.append(substr); + System.out.println(substr); + try { + emitter.send(substr); + } catch (IOException e) { + sendErrorEvent(emitter, e.getMessage()); + } + }; + api.chat(requestModel, streamHandler); + emitter.complete(); + } catch (Exception e) { + sendErrorEvent(emitter, e.getMessage()); + } + }); + return emitter; + } + + @Override + public String wxCpChat(String prompt) { + List messageList = new ArrayList<>(); + Message message = Message.builder().role(Message.Role.USER).content(prompt).build(); + messageList.add(message); + ChatCompletion chatCompletion = ChatCompletion + .builder() + .messages(messageList) + .model("gpt-4o-mini") + .stream(false) + .build(); + ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); + return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); + } +} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/BgeLargeVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java similarity index 88% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/BgeLargeVectorization.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java index 840b62f5..66a65772 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/BgeLargeVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java @@ -1,8 +1,4 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +package org.ruoyi.chat.service.knowledge.vectorizer; import com.google.gson.Gson; import io.github.ollama4j.OllamaAPI; @@ -10,15 +6,20 @@ import io.github.ollama4j.models.embeddings.OllamaEmbeddingsRequestModel; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorizationService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + @Component @Slf4j @RequiredArgsConstructor -public class BgeLargeVectorization implements Vectorization { +public class BgeLargeVectorization implements VectorizationService { String host = "http://localhost:11434/"; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/OpenAiVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java similarity index 90% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/OpenAiVectorization.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java index bc82dbff..6365a77c 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/OpenAiVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.vectorizer; +package org.ruoyi.chat.service.knowledge.vectorizer; import jakarta.annotation.Resource; import lombok.Getter; @@ -6,14 +6,13 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.chat.config.ChatConfig; import org.ruoyi.common.chat.entity.embeddings.Embedding; - import org.ruoyi.common.chat.entity.embeddings.EmbeddingResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorizationService; import org.ruoyi.system.domain.SysModel; import org.ruoyi.system.service.ISysModelService; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -25,14 +24,12 @@ import java.util.stream.Collectors; @Component @Slf4j @RequiredArgsConstructor -public class OpenAiVectorization implements Vectorization { +public class OpenAiVectorization implements VectorizationService { @Lazy @Resource private IKnowledgeInfoService knowledgeInfoService; - @Lazy - @Resource - private LocalModelsVectorization localModelsVectorization; + @Lazy @Resource private ISysModelService sysModelService; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java similarity index 80% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationFactory.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java index 87a09b76..18a0b9a8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java @@ -1,10 +1,12 @@ -package org.ruoyi.knowledge.chain.vectorizer; +package org.ruoyi.chat.service.knowledge.vectorizer; import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; + +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorizationService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -24,12 +26,12 @@ public class VectorizationFactory { @Resource private IKnowledgeInfoService knowledgeInfoService; - public VectorizationFactory(OpenAiVectorization openAiVectorization,BgeLargeVectorization bgeLargeVectorization) { + public VectorizationFactory(OpenAiVectorization openAiVectorization, BgeLargeVectorization bgeLargeVectorization) { this.openAiVectorization = openAiVectorization; this.bgeLargeVectorization = bgeLargeVectorization; } - public Vectorization getEmbedding(String kid){ + public VectorizationService getEmbedding(String kid){ String vectorModel = "text-embedding-3-small"; if (StrUtil.isNotEmpty(kid)) { KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoService.queryById(Long.valueOf(kid)); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/MilvusVectorStore.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java similarity index 99% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/MilvusVectorStore.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java index 32e6216b..8a271aa7 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/MilvusVectorStore.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.chat.service.knowledge.vectorstore; import io.milvus.client.MilvusServiceClient; import io.milvus.grpc.DataType; @@ -20,7 +20,8 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.ruoyi.common.core.service.ConfigService; -import org.springframework.beans.factory.annotation.Value; + +import org.ruoyi.service.VectorStoreService; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -29,7 +30,7 @@ import java.util.List; @Service @Slf4j -public class MilvusVectorStore implements VectorStore { +public class MilvusVectorStore implements VectorStoreService { private volatile Integer dimension; private volatile String collectionName; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java similarity index 82% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreFactory.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java index 4471fca9..10ce84d4 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java @@ -1,10 +1,11 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.chat.service.knowledge.vectorstore; import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.mapper.KnowledgeInfoMapper; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.mapper.KnowledgeInfoMapper; +import org.ruoyi.service.VectorStoreService; import org.springframework.stereotype.Component; @Component @@ -23,7 +24,7 @@ public class VectorStoreFactory { this.milvusVectorStore = milvusVectorStore; } - public VectorStore getVectorStore(String kid){ + public VectorStoreService getVectorStore(String kid){ String vectorModel = "weaviate"; if (StrUtil.isNotEmpty(kid)) { KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoMapper.selectVoById(Long.valueOf(kid)); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/WeaviateVectorStore.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java similarity index 98% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/WeaviateVectorStore.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java index 785054d0..147fc500 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/WeaviateVectorStore.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java @@ -1,7 +1,7 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.chat.service.knowledge.vectorstore; import cn.hutool.core.lang.UUID; -import com.alibaba.fastjson2.JSONObject; +import cn.hutool.json.JSONObject; import com.google.gson.internal.LinkedTreeMap; import io.weaviate.client.Config; import io.weaviate.client.WeaviateClient; @@ -27,9 +27,9 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.beans.factory.annotation.Value; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorStoreService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -40,7 +40,7 @@ import java.util.Map; @Service @Slf4j -public class WeaviateVectorStore implements VectorStore { +public class WeaviateVectorStore implements VectorStoreService { private volatile String protocol; private volatile String host; diff --git a/ruoyi-modules/ruoyi-device/pom.xml b/ruoyi-modules/ruoyi-device/pom.xml deleted file mode 100644 index ec4cbc40..00000000 --- a/ruoyi-modules/ruoyi-device/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - - ruoyi-device - - - 17 - 17 - UTF-8 - - - diff --git a/ruoyi-modules/ruoyi-knowledge/pom.xml b/ruoyi-modules/ruoyi-knowledge/pom.xml deleted file mode 100644 index 46576f82..00000000 --- a/ruoyi-modules/ruoyi-knowledge/pom.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-modules - ${revision} - ../pom.xml - - - ruoyi-knowledge - - - 17 - 17 - UTF-8 - - - - - org.springframework.boot - spring-boot-starter-data-redis - - - org.springframework.boot - spring-boot-starter-freemarker - - - org.springframework.boot - spring-boot-starter-validation - - - - org.springframework.boot - spring-boot-starter-aop - - - - org.webjars - webjars-locator-core - - - org.webjars - sockjs-client - 1.0.2 - - - - org.webjars - bootstrap - 3.3.7 - - - org.webjars - jquery - 3.1.1-1 - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - 3.0.2 - - - com.baomidou - mybatis-plus-boot-starter - 3.5.3 - - - cn.hutool - hutool-all - 5.8.10 - - - com.github.xiaoymin - knife4j-openapi3-jakarta-spring-boot-starter - 4.0.0 - - - org.springframework.boot - spring-boot-devtools - runtime - true - - - - - - com.mysql - mysql-connector-j - runtime - - - io.projectreactor.netty - reactor-netty-core - 1.1.16 - - - io.projectreactor.netty - reactor-netty-http - 1.1.16 - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.projectlombok - lombok - true - - - - com.theokanning.openai-gpt3-java - api - 0.18.0 - - - com.theokanning.openai-gpt3-java - client - 0.18.0 - - - com.theokanning.openai-gpt3-java - service - 0.18.0 - - - org.springframework.boot - spring-boot-starter-test - test - - - - - com.alibaba.fastjson2 - fastjson2 - 2.0.24 - - - com.knuddels - jtokkit - 0.5.0 - - - io.weaviate - client - 4.0.0 - - - org.apache.poi - poi - 3.8 - - - org.apache.poi - poi-ooxml - 3.8 - - - org.apache.poi - poi-ooxml-schemas - 3.8 - - - org.apache.pdfbox - pdfbox - 2.0.27 - - - com.squareup.retrofit2 - converter-jackson - 2.9.0 - - - io.milvus - milvus-sdk-java - 2.3.2 - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.6 - - - com.belerweb - pinyin4j - 2.5.1 - - - - - org.ruoyi - ruoyi-system - - - - - - - diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java deleted file mode 100644 index 306d823f..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -import jakarta.annotation.Resource; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.chat.config.ChatConfig; -import org.ruoyi.common.chat.localModels.LocalModelsofitClient; -import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -@Component -@Slf4j -@RequiredArgsConstructor -public class LocalModelsVectorization { - @Resource - private IKnowledgeInfoService knowledgeInfoService; - - @Resource - private LocalModelsofitClient localModelsofitClient; - - @Getter - private OpenAiStreamClient openAiStreamClient; - - private final ChatConfig chatConfig; - - /** - * 批量向量化 - * - * @param chunkList 文本块列表 - * @param kid 知识 ID - * @return 向量化结果 - */ - - public List> batchVectorization(List chunkList, String kid) { - logVectorizationRequest(kid, chunkList); // 在向量化开始前记录日志 - openAiStreamClient = chatConfig.getOpenAiStreamClient(); // 获取 OpenAi 客户端 - KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoService.queryById(Long.valueOf(kid)); // 查询知识信息 - // 调用 localModelsofitClient 获取 Top K 嵌入向量 - try { - return localModelsofitClient.getTopKEmbeddings( - chunkList, - knowledgeInfoVo.getVectorModel(), - knowledgeInfoVo.getKnowledgeSeparator(), - knowledgeInfoVo.getRetrieveLimit(), - knowledgeInfoVo.getTextBlockSize(), - knowledgeInfoVo.getOverlapChar() - ); - } catch (Exception e) { - log.error("Failed to perform batch vectorization for knowledgeId: {}", kid, e); - throw new RuntimeException("Batch vectorization failed", e); - } - } - - /** - * 单一文本块向量化 - * - * @param chunk 单一文本块 - * @param kid 知识 ID - * @return 向量化结果 - */ - - public List singleVectorization(String chunk, String kid) { - List chunkList = new ArrayList<>(); - chunkList.add(chunk); - - // 调用批量向量化方法 - List> vectorList = batchVectorization(chunkList, kid); - - if (vectorList.isEmpty()) { - log.warn("Vectorization returned empty list for chunk: {}", chunk); - return new ArrayList<>(); - } - - return vectorList.get(0); // 返回第一个向量 - } - - /** - * 提供更简洁的日志记录方法 - * - * @param kid 知识 ID - * @param chunkList 文本块列表 - */ - private void logVectorizationRequest(String kid, List chunkList) { - log.info("Starting vectorization for Knowledge ID: {} with {} chunks.", kid, chunkList.size()); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java deleted file mode 100644 index a9d370d5..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -public enum VectorizationType { - OPENAI, // OpenAI 向量化 - LOCAL; // 本地模型向量化 - - public static VectorizationType fromString(String type) { - for (VectorizationType v : values()) { - if (v.name().equalsIgnoreCase(type)) { - return v; - } - } - throw new IllegalArgumentException("Unknown VectorizationType: " + type); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java deleted file mode 100644 index e25d3316..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -import jakarta.annotation.Resource; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -@Slf4j -@Primary -@AllArgsConstructor -public class VectorizationWrapper implements Vectorization{ - - private final VectorizationFactory vectorizationFactory; - @Override - public List> batchVectorization(List chunkList, String kid) { - Vectorization embedding = vectorizationFactory.getEmbedding(kid); - return embedding.batchVectorization(chunkList, kid); - } - - @Override - public List singleVectorization(String chunk, String kid) { - Vectorization embedding = vectorizationFactory.getEmbedding(kid); - return embedding.singleVectorization(chunk, kid); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java deleted file mode 100644 index e1daa619..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorstore; - -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -@Slf4j -@Primary -@AllArgsConstructor -public class VectorStoreWrapper implements VectorStore { - - private final VectorStoreFactory vectorStoreFactory; - - @Override - public void storeEmbeddings(List chunkList, List> vectorList, String kid, String docId, List fidList) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.storeEmbeddings(chunkList, vectorList, kid, docId, fidList); - } - - @Override - public void removeByDocId(String kid, String docId) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.removeByDocId(kid, docId); - } - - @Override - public void removeByKid(String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.removeByKid(kid); - } - - @Override - public List nearest(List queryVector, String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - return vectorStore.nearest(queryVector, kid); - } - - @Override - public List nearest(String query, String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - return vectorStore.nearest(query, kid); - } - - @Override - public void newSchema(String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.newSchema(kid); - } - - @Override - public void removeByKidAndFid(String kid, String fid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.removeByKidAndFid(kid, fid); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java deleted file mode 100644 index 497e7173..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.ruoyi.knowledge.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.knowledge.domain.KnowledgeAttach; - -/** - * 知识库附件业务对象 knowledge_attach - * - * @author Lion Li - * @date 2024-10-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = KnowledgeAttach.class, reverseConvertGenerate = false) -public class KnowledgeAttachBo extends BaseEntity { - - @NotNull(message = "不能为空") - private Long id; - - /** - * 知识库ID - */ - @NotBlank(message = "知识库ID不能为空") - private String kid; - - /** - * 文档ID - */ - @NotBlank(message = "文档ID不能为空") - private String docId; - - /** - * 文档名称 - */ - @NotBlank(message = "文档名称不能为空") - private String docName; - - /** - * 文档类型 - */ - @NotBlank(message = "文档类型不能为空") - private String docType; - - /** - * 文档内容 - */ - @NotBlank(message = "文档内容不能为空") - private String content; - - -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java deleted file mode 100644 index be6bca18..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.ruoyi.knowledge.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.knowledge.domain.KnowledgeFragment; - -/** - * 知识片段业务对象 knowledge_fragment - * - * @author Lion Li - * @date 2024-10-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = KnowledgeFragment.class, reverseConvertGenerate = false) -public class KnowledgeFragmentBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空") - private Long id; - - /** - * 知识库ID - */ - @NotBlank(message = "知识库ID不能为空") - private String kid; - - /** - * 文档ID - */ - @NotBlank(message = "文档ID不能为空") - private String docId; - - /** - * 知识片段ID - */ - @NotBlank(message = "知识片段ID不能为空") - private String fid; - - /** - * 片段索引下标 - */ - @NotNull(message = "片段索引下标不能为空") - private Long idx; - - /** - * 文档内容 - */ - @NotBlank(message = "文档内容不能为空") - private String content; - - -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java deleted file mode 100644 index b606d823..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.ruoyi.knowledge.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.knowledge.domain.KnowledgeInfo; - -/** - * 知识库业务对象 knowledge_info - * - * @author Lion Li - * @date 2024-10-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = KnowledgeInfo.class, reverseConvertGenerate = false) -public class KnowledgeInfoBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空") - private Long id; - - /** - * 知识库ID - */ - @NotBlank(message = "知识库ID不能为空") - private String kid; - - /** - * 用户ID - */ - @NotNull(message = "用户ID不能为空") - private Long uid; - - /** - * 知识库名称 - */ - @NotBlank(message = "知识库名称不能为空") - private String kname; - - /** - * 知识库名称 - */ - @NotBlank(message = "是否公开知识库") - private String share; - - /** - * 描述 - */ - @NotBlank(message = "描述不能为空") - private String description; - - /** - * 知识分隔符 - */ - @NotBlank(message = "知识分隔符不能为空") - private String knowledgeSeparator; - - /** - * 提问分隔符 - */ - @NotBlank(message = "提问分隔符不能为空") - private String questionSeparator; - - /** - * 重叠字符数 - */ - @NotNull(message = "重叠字符数不能为空") - private Integer overlapChar; - - /** - * 知识库中检索的条数 - */ - @NotNull(message = "知识库中检索的条数不能为空") - private Integer retrieveLimit; - - /** - * 文本块大小 - */ - @NotNull(message = "文本块大小不能为空") - private Integer textBlockSize; - - /** - * 向量库 - */ - @NotBlank(message = "向量库不能为空") - private String vector; - - /** - * 向量模型 - */ - @NotBlank(message = "向量模型不能为空") - private String vectorModel; -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java deleted file mode 100644 index 866119da..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.knowledge.domain.req; - -import lombok.Data; -import org.springframework.web.multipart.MultipartFile; - -@Data -public class KnowledgeInfoUploadRequest { - - private String kid; - - private MultipartFile file; - -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java deleted file mode 100644 index 9a84995a..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.ruoyi.knowledge.domain; - -public class request { -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java deleted file mode 100644 index 23f255b0..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java +++ /dev/null @@ -1,200 +0,0 @@ -package org.ruoyi.knowledge.service.impl; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.RandomUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.knowledge.chain.loader.ResourceLoader; -import org.ruoyi.knowledge.chain.loader.ResourceLoaderFactory; -import org.ruoyi.knowledge.domain.KnowledgeAttach; -import org.ruoyi.knowledge.domain.KnowledgeFragment; -import org.ruoyi.knowledge.domain.KnowledgeInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.mapper.KnowledgeAttachMapper; -import org.ruoyi.knowledge.mapper.KnowledgeFragmentMapper; -import org.ruoyi.knowledge.mapper.KnowledgeInfoMapper; -import org.ruoyi.knowledge.service.EmbeddingService; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.util.*; - -/** - * 知识库Service业务层处理 - * - * @author Lion Li - * @date 2024-10-21 - */ -@Service -@RequiredArgsConstructor -public class KnowledgeInfoServiceImpl implements IKnowledgeInfoService { - - private final KnowledgeInfoMapper baseMapper; - - private final EmbeddingService embeddingService; - - private final ResourceLoaderFactory resourceLoaderFactory; - - private final KnowledgeFragmentMapper fragmentMapper; - - private final KnowledgeAttachMapper attachMapper; - - /** - * 查询知识库 - */ - @Override - public KnowledgeInfoVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询知识库列表 - */ - @Override - public TableDataInfo queryPageList(KnowledgeInfoBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询知识库列表 - */ - @Override - public List queryList(KnowledgeInfoBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(KnowledgeInfoBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getKid()), KnowledgeInfo::getKid, bo.getKid()); - lqw.eq(bo.getUid() != null, KnowledgeInfo::getUid, bo.getUid()); - lqw.like(StringUtils.isNotBlank(bo.getKname()), KnowledgeInfo::getKname, bo.getKname()); - lqw.eq(StringUtils.isNotBlank(bo.getDescription()), KnowledgeInfo::getDescription, bo.getDescription()); - // 查询公开的知识库 - lqw.or(wrapper -> wrapper.eq(KnowledgeInfo::getShare, "1")); - return lqw; - } - - /** - * 修改知识库 - */ - @Override - public Boolean updateByBo(KnowledgeInfoBo bo) { - KnowledgeInfo update = MapstructUtils.convert(bo, KnowledgeInfo.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(KnowledgeInfo entity){ - //TODO 做一些数据校验,如唯一约束 - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void saveOne(KnowledgeInfoBo bo) { - KnowledgeInfo knowledgeInfo = MapstructUtils.convert(bo, KnowledgeInfo.class); - if (StringUtils.isBlank(bo.getKid())){ - String kid = RandomUtil.randomString(10); - if (knowledgeInfo != null) { - knowledgeInfo.setKid(kid); - knowledgeInfo.setUid(LoginHelper.getLoginUser().getUserId()); - } - baseMapper.insert(knowledgeInfo); - embeddingService.createSchema(String.valueOf(knowledgeInfo.getId())); - }else { - baseMapper.updateById(knowledgeInfo); - } - } - - @Override - public void upload(KnowledgeInfoUploadRequest request) { - storeContent(request.getFile(), request.getKid()); - } - - public void storeContent(MultipartFile file, String kid) { - String fileName = file.getOriginalFilename(); - List chunkList = new ArrayList<>(); - KnowledgeAttach knowledgeAttach = new KnowledgeAttach(); - knowledgeAttach.setKid(kid); - String docId = RandomUtil.randomString(10); - knowledgeAttach.setDocId(docId); - knowledgeAttach.setDocName(fileName); - knowledgeAttach.setDocType(fileName.substring(fileName.lastIndexOf(".")+1)); - String content = ""; - ResourceLoader resourceLoader = resourceLoaderFactory.getLoaderByFileType(knowledgeAttach.getDocType()); - List fids = new ArrayList<>(); - try { - content = resourceLoader.getContent(file.getInputStream()); - chunkList = resourceLoader.getChunkList(content, kid); - List knowledgeFragmentList = new ArrayList<>(); - if (CollUtil.isNotEmpty(chunkList)) { - for (int i = 0; i < chunkList.size(); i++) { - String fid = RandomUtil.randomString(16); - fids.add(fid); - KnowledgeFragment knowledgeFragment = new KnowledgeFragment(); - knowledgeFragment.setKid(kid); - knowledgeFragment.setDocId(docId); - knowledgeFragment.setFid(fid); - knowledgeFragment.setIdx(i); - // String text = convertTextBlockToPretrainData(chunkList.get(i)); - knowledgeFragment.setContent(chunkList.get(i)); - knowledgeFragment.setCreateTime(new Date()); - knowledgeFragmentList.add(knowledgeFragment); - } - } - fragmentMapper.insertBatch(knowledgeFragmentList); - } catch (IOException e) { - e.printStackTrace(); - } - knowledgeAttach.setContent(content); - knowledgeAttach.setCreateTime(new Date()); - attachMapper.insert(knowledgeAttach); - embeddingService.storeEmbeddings(chunkList,kid,docId,fids); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void removeKnowledge(String id) { - Map map = new HashMap<>(); - map.put("kid",id); - List knowledgeInfoList = baseMapper.selectVoByMap(map); - check(knowledgeInfoList); - // 删除向量库信息 - knowledgeInfoList.forEach(knowledgeInfoVo -> { - embeddingService.removeByKid(String.valueOf(knowledgeInfoVo.getId())); - }); - // 删除附件和知识片段 - fragmentMapper.deleteByMap(map); - attachMapper.deleteByMap(map); - // 删除知识库 - baseMapper.deleteByMap(map); - } - - @Override - public void check(List knowledgeInfoList){ - LoginUser loginUser = LoginHelper.getLoginUser(); - for (KnowledgeInfoVo knowledgeInfoVo : knowledgeInfoList) { - if(!knowledgeInfoVo.getUid().equals(loginUser.getUserId())){ - throw new SecurityException("权限不足"); - } - } - } -} diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 17d37c57..a22691de 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -118,17 +118,19 @@ org.ruoyi ruoyi-common-pay - - io.github.ollama4j - ollama4j - 1.0.79 - compile - + + org.ruoyi ruoyi-common-mail + + + org.ruoyi + ruoyi-system-api + + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java deleted file mode 100644 index 18763372..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.ruoyi.system.builder; - -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Binary Wang - */ -public abstract class AbstractBuilder { - protected final Logger logger = LoggerFactory.getLogger(getClass()); - - public abstract WxCpXmlOutMessage build(String content, WxCpXmlMessage wxMessage, WxCpService service); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java deleted file mode 100644 index 048372e0..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.system.builder; - -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutImageMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; - - -/** - * @author Binary Wang - */ -public class ImageBuilder extends AbstractBuilder { - - @Override - public WxCpXmlOutMessage build(String content, WxCpXmlMessage wxMessage, - WxCpService service) { - - WxCpXmlOutImageMessage m = WxCpXmlOutMessage.IMAGE().mediaId(content) - .fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()) - .build(); - - return m; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java deleted file mode 100644 index c60fe8fe..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.builder; - -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutTextMessage; - -/** - * @author Binary Wang - */ -public class TextBuilder extends AbstractBuilder { - - @Override - public WxCpXmlOutMessage build(String content, WxCpXmlMessage wxMessage, - WxCpService service) { - WxCpXmlOutTextMessage m = WxCpXmlOutMessage.TEXT().content(content) - .fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()) - .build(); - return m; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java deleted file mode 100644 index 1200f51a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.ruoyi.system.cofing; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * gpt配置 - * - * @author ashinnotfound - * @date 2023/03/04 - */ -@Data -@Component -@ConfigurationProperties("gpt") -public class GptConfig { - private String baseUrl; - private String model; - private Integer maxToken; - private Double temperature; - private List basicPrompt; - private List apiKey; - private Long ofSeconds; - private String imageQuality; - private String imageStyle; - private String audioModel; - private String audioVoice; - private Double audioSpeed; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java deleted file mode 100644 index b7406c11..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.ruoyi.system.cofing; - -import jakarta.annotation.PostConstruct; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.OkHttpUtil; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.service.ISysModelService; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Component -@RequiredArgsConstructor -public class OkHttpConfig { - - private final ISysModelService sysModelService; - private final Map okHttpUtilMap = new HashMap<>(); - @Getter - private String generate; - - @PostConstruct - public void init() { - initializeOkHttpUtil("suno"); - initializeOkHttpUtil("luma"); - initializeOkHttpUtil("ppt"); - } - - private void initializeOkHttpUtil(String modelName) { - SysModelBo sysModelBo = new SysModelBo(); - sysModelBo.setModelName(modelName); - List sysModelList = sysModelService.queryList(sysModelBo); - if (!sysModelList.isEmpty()) { - SysModelVo model = sysModelList.get(0); - OkHttpUtil okHttpUtil = new OkHttpUtil(); - okHttpUtil.setApiHost(model.getApiHost()); - okHttpUtil.setApiKey(model.getApiKey()); - generate = String.valueOf(model.getModelPrice()); - okHttpUtilMap.put(modelName, okHttpUtil); - } - } - - public OkHttpUtil getOkHttpUtil(String modelName) { - return okHttpUtilMap.get(modelName); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java deleted file mode 100644 index 34ccccdc..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.system.cofing; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -/** - * qq配置 - * - * @author ashinnotfound - * @date 2023/03/04 - */ -@Data -@Component -@ConfigurationProperties("qq") -public class QqConfig { - private Boolean enable; - private Long account; - private Boolean acceptNewFriend; - private Boolean acceptNewGroup; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java deleted file mode 100644 index 784c939c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.ruoyi.system.cofing; - - -import com.google.common.collect.Maps; -import jakarta.annotation.PostConstruct; -import lombok.val; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; -import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl; -import me.chanjar.weixin.cp.constant.WxCpConsts; -import me.chanjar.weixin.cp.message.WxCpMessageRouter; -import org.ruoyi.system.handler.wxcp.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import me.chanjar.weixin.cp.api.WxCpService; - -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 单实例配置 - * - * @author Binary Wang - */ -@Configuration -@EnableConfigurationProperties(WxCpProperties.class) -public class WxCpConfiguration { - private LogHandler logHandler; - private NullHandler nullHandler; - private LocationHandler locationHandler; - private MenuHandler menuHandler; - private MsgHandler msgHandler; - private UnsubscribeHandler unsubscribeHandler; - private SubscribeHandler subscribeHandler; - - private WxCpProperties properties; - - private static Map routers = Maps.newHashMap(); - private static Map cpServices = Maps.newHashMap(); - - @Autowired - public WxCpConfiguration(LogHandler logHandler, NullHandler nullHandler, LocationHandler locationHandler, - MenuHandler menuHandler, MsgHandler msgHandler, UnsubscribeHandler unsubscribeHandler, - SubscribeHandler subscribeHandler, WxCpProperties properties) { - this.logHandler = logHandler; - this.nullHandler = nullHandler; - this.locationHandler = locationHandler; - this.menuHandler = menuHandler; - this.msgHandler = msgHandler; - this.unsubscribeHandler = unsubscribeHandler; - this.subscribeHandler = subscribeHandler; - this.properties = properties; - } - - - public static Map getRouters() { - return routers; - } - - public static WxCpService getCpService(Integer agentId) { - return cpServices.get(agentId); - } - - @PostConstruct - public void initServices() { - cpServices = this.properties.getAppConfigs().stream().map(a -> { - val configStorage = new WxCpDefaultConfigImpl(); - configStorage.setCorpId(this.properties.getCorpId()); - configStorage.setAgentId(a.getAgentId()); - configStorage.setCorpSecret(a.getSecret()); - configStorage.setToken(a.getToken()); - configStorage.setAesKey(a.getAesKey()); - val service = new WxCpServiceImpl(); - service.setWxCpConfigStorage(configStorage); - routers.put(a.getAgentId(), this.newRouter(service)); - return service; - }).collect(Collectors.toMap(service -> service.getWxCpConfigStorage().getAgentId(), a -> a)); - } - - private WxCpMessageRouter newRouter(WxCpService wxCpService) { - final val newRouter = new WxCpMessageRouter(wxCpService); - - // 记录所有事件的日志 (异步执行) - newRouter.rule().handler(this.logHandler).next(); - - // 自定义菜单事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.MenuButtonType.CLICK).handler(this.menuHandler).end(); - - // 点击菜单链接事件(这里使用了一个空的处理器,可以根据自己需要进行扩展) - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.MenuButtonType.VIEW).handler(this.nullHandler).end(); - - // 关注事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.SUBSCRIBE).handler(this.subscribeHandler) - .end(); - - // 取消关注事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.UNSUBSCRIBE) - .handler(this.unsubscribeHandler).end(); - - // 上报地理位置事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.LOCATION).handler(this.locationHandler) - .end(); - - // 接收地理位置消息 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.LOCATION) - .handler(this.locationHandler).end(); - - // 扫码事件(这里使用了一个空的处理器,可以根据自己需要进行扩展) - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.SCAN).handler(this.nullHandler).end(); - - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxCpConsts.EventType.CHANGE_CONTACT).handler(new ContactChangeHandler()).end(); - - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxCpConsts.EventType.ENTER_AGENT).handler(new EnterAgentHandler()).end(); - - // 默认 - newRouter.rule().async(false).handler(this.msgHandler).end(); - - return newRouter; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java deleted file mode 100644 index 7b27f15b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.cofing; - -import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; - -import java.util.List; - -/** - * @author Binary Wang - */ -@Data -@ConfigurationProperties(prefix = "wechat.cp") -public class WxCpProperties { - /** - * 设置企业微信的corpId - */ - private String corpId; - - private List appConfigs; - - @Getter - @Setter - public static class AppConfig { - /** - * 设置企业微信应用的AgentId - */ - private Integer agentId; - - /** - * 设置企业微信应用的Secret - */ - private String secret; - - /** - * 设置企业微信应用的token - */ - private String token; - - /** - * 设置企业微信应用的EncodingAESKey - */ - private String aesKey; - - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java deleted file mode 100644 index 5fdc06d5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.ruoyi.system.cofing; - -import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; -import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; -import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; -import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; -import cn.binarywang.wx.miniapp.message.WxMaMessageHandler; -import cn.binarywang.wx.miniapp.message.WxMaMessageRouter; -import com.google.common.collect.Lists; -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.error.WxRuntimeException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.io.File; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author Admin - */ -@Slf4j -@Configuration -@EnableConfigurationProperties(WxMaProperties.class) -public class WxMaConfiguration { - private final WxMaProperties properties; - - @Autowired - public WxMaConfiguration(WxMaProperties properties) { - this.properties = properties; - } - - @Bean - public WxMaService wxMaService() { - List configs = this.properties.getConfigs(); - if (configs == null) { - throw new WxRuntimeException("大哥,拜托先看下项目首页的说明(readme文件),添加下相关配置,注意别配错了!"); - } - WxMaService maService = new WxMaServiceImpl(); - maService.setMultiConfigs( - configs.stream() - .map(a -> { - WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); -// WxMaDefaultConfigImpl config = new WxMaRedisConfigImpl(new JedisPool()); - // 使用上面的配置时,需要同时引入jedis-lock的依赖,否则会报类无法找到的异常 - config.setAppid(a.getAppid()); - config.setSecret(a.getSecret()); - config.setToken(a.getToken()); - config.setAesKey(a.getAesKey()); - config.setMsgDataFormat(a.getMsgDataFormat()); - return config; - }).collect(Collectors.toMap(WxMaDefaultConfigImpl::getAppid, a -> a, (o, n) -> o))); - return maService; - } - - @Bean - public WxMaMessageRouter wxMaMessageRouter(WxMaService wxMaService) { - final WxMaMessageRouter router = new WxMaMessageRouter(wxMaService); - router - .rule().handler(logHandler).next() - .rule().async(false).content("订阅消息").handler(subscribeMsgHandler).end() - .rule().async(false).content("文本").handler(textHandler).end() - .rule().async(false).content("图片").handler(picHandler).end() - .rule().async(false).content("二维码").handler(qrcodeHandler).end(); - return router; - } - - private final WxMaMessageHandler subscribeMsgHandler = (wxMessage, context, service, sessionManager) -> { - service.getMsgService().sendSubscribeMsg(WxMaSubscribeMessage.builder() - .templateId("此处更换为自己的模板id") - .data(Lists.newArrayList( - new WxMaSubscribeMessage.MsgData("keyword1", "339208499"))) - .toUser(wxMessage.getFromUser()) - .build()); - return null; - }; - - private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> { - log.info("收到消息:" + wxMessage.toString()); - service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson()) - .toUser(wxMessage.getFromUser()).build()); - return null; - }; - - private final WxMaMessageHandler textHandler = (wxMessage, context, service, sessionManager) -> { - service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息") - .toUser(wxMessage.getFromUser()).build()); - return null; - }; - - private final WxMaMessageHandler picHandler = (wxMessage, context, service, sessionManager) -> { - try { - WxMediaUploadResult uploadResult = service.getMediaService() - .uploadMedia("image", "png", - ClassLoader.getSystemResourceAsStream("tmp.png")); - service.getMsgService().sendKefuMsg( - WxMaKefuMessage - .newImageBuilder() - .mediaId(uploadResult.getMediaId()) - .toUser(wxMessage.getFromUser()) - .build()); - } catch (WxErrorException e) { - e.printStackTrace(); - } - - return null; - }; - - private final WxMaMessageHandler qrcodeHandler = (wxMessage, context, service, sessionManager) -> { - try { - final File file = service.getQrcodeService().createQrcode("123", 430); - WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia("image", file); - service.getMsgService().sendKefuMsg( - WxMaKefuMessage - .newImageBuilder() - .mediaId(uploadResult.getMediaId()) - .toUser(wxMessage.getFromUser()) - .build()); - } catch (WxErrorException e) { - e.printStackTrace(); - } - - return null; - }; - -} - diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java deleted file mode 100644 index eb3ad063..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.ruoyi.system.cofing; - -/** - * 微信小程序属性配置类 - * - * @author: wangle - * @date: 2023/5/18 - */ - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; - -import java.util.List; - -/** - * @author Binary Wang - */ -@Data -@ConfigurationProperties(prefix = "wx.miniapp") -public class WxMaProperties { - - private List configs; - - @Data - public static class Config { - /** - * 设置微信小程序的appid - */ - private String appid; - - /** - * 设置微信小程序的Secret - */ - private String secret; - - /** - * 设置微信小程序消息服务器配置的token - */ - private String token; - - /** - * 设置微信小程序消息服务器配置的EncodingAESKey - */ - private String aesKey; - - /** - * 消息格式,XML或者JSON - */ - private String msgDataFormat; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java deleted file mode 100644 index a3db5ad8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 对话配置信息 - * - * @author Lion Li - * @date 2024-04-13 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/chat/config") -public class ChatConfigController extends BaseController { - - private final IChatConfigService chatConfigService; - - private final ConfigService configService; - - /** - * 查询配置信息列表 - */ - @GetMapping("/list") - @SaCheckPermission("system:config:list") - public R> list(ChatConfigBo bo) { - return R.ok(chatConfigService.queryList(bo)); - } - - /** - * 获取对话配置信详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:config:list") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatConfigService.queryById(id)); - } - - /** - * 根据参数键名查询系统参数值 - * - * @param configKey 参数Key - */ - @SaCheckPermission("system:config:list") - @GetMapping(value = "/configKey/{configKey}") - public R getConfigKey(@PathVariable String configKey) { - return R.ok(configService.getConfigValue("sys",configKey)); - } - - /** - * 查询版权信息 - * - */ - @GetMapping(value = "/configKey/copyright") - public R getConfigKeyCopyright() { - return R.ok(configService.getConfigValue("sys","copyright")); - } - - /** - * 查询logoImage - * - */ - @GetMapping(value = "/configKey/logoImage") - public R getConfigKeyLogoImage() { - return R.ok(configService.getConfigValue("sys","logoImage")); - } - - /** - * 查询系统参数 - * - */ - @SaCheckPermission("system:config:list") - @GetMapping(value = "/sysConfigKey") - public R> getSysConfigKey() { - return R.ok(chatConfigService.getSysConfigValue("sys")); - } - - /** - * 新增对话配置信息 - */ - @SaCheckPermission("system:config:add") - @PostMapping("/add") - public R add(@RequestBody List boList) { - for (ChatConfigBo chatConfigBo : boList) { - if(chatConfigBo.getId() == null){ - chatConfigService.insertByBo(chatConfigBo); - }else { - chatConfigService.updateByBo(chatConfigBo); - } - } - return toAjax(true); - } - - /** - * 修改对话配置信息 - */ - @SaCheckPermission("system:config:edit") - @PutMapping("/edit") - public R edit(@Validated(EditGroup.class) @RequestBody ChatConfigBo bo) { - return toAjax(chatConfigService.updateByBo(bo)); - } - - /** - * 删除对话配置信息 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:config:edit") - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatConfigService.deleteWithValidByIds(List.of(ids), true)); - } - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java deleted file mode 100644 index 96e5b19a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * gpts管理 - * - * @author Lion Li - * @date 2024-07-09 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/gpts") -public class ChatGptsController extends BaseController { - - private final IChatGptsService chatGptsService; - - /** - * 查询gpts管理列表 - */ - @GetMapping("/list") - public TableDataInfo list(ChatGptsBo bo, PageQuery pageQuery) { - return chatGptsService.queryPageList(bo, pageQuery); - } - - /** - * 导出gpts管理列表 - */ - @SaCheckPermission("system:gpts:export") - @Log(title = "gpts管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatGptsBo bo, HttpServletResponse response) { - List list = chatGptsService.queryList(bo); - ExcelUtil.exportExcel(list, "gpts管理", ChatGptsVo.class, response); - } - - /** - * 获取gpts管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:gpts:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatGptsService.queryById(id)); - } - - /** - * 新增gpts管理 - */ - @SaCheckPermission("system:gpts:add") - @Log(title = "gpts管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatGptsBo bo) { - return toAjax(chatGptsService.insertByBo(bo)); - } - - /** - * 修改gpts管理 - */ - @SaCheckPermission("system:gpts:edit") - @Log(title = "gpts管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatGptsBo bo) { - return toAjax(chatGptsService.updateByBo(bo)); - } - - /** - * 删除gpts管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:gpts:remove") - @Log(title = "gpts管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatGptsService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java deleted file mode 100644 index 5d0486df..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 聊天消息 - * - * @author Lion Li - * @date 2024-04-16 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/message") -public class ChatMessageController extends BaseController { - - private final IChatMessageService chatMessageService; - - /** - * 查询聊天消息列表 - */ - @SaCheckPermission("system:message:list") - @GetMapping("/list") - public TableDataInfo list(ChatMessageBo bo, PageQuery pageQuery) { - pageQuery.setOrderByColumn("createTime"); - pageQuery.setIsAsc("desc"); - return chatMessageService.queryPageList(bo, pageQuery); - } - - /** - * 查询我的聊天消息列表 - */ - @GetMapping("/listByUser") - public R> listByUser(ChatMessageBo bo, PageQuery pageQuery) { - bo.setUserId(LoginHelper.getUserId()); - pageQuery.setOrderByColumn("createTime"); - pageQuery.setIsAsc("desc"); - return R.ok(chatMessageService.queryPageList(bo, pageQuery)); - } - - /** - * 导出聊天消息列表 - */ - @SaCheckPermission("system:message:export") - @Log(title = "聊天消息", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatMessageBo bo, HttpServletResponse response) { - List list = chatMessageService.queryList(bo); - ExcelUtil.exportExcel(list, "聊天消息", ChatMessageVo.class, response); - } - - /** - * 获取聊天消息详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:message:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatMessageService.queryById(id)); - } - - /** - * 新增聊天消息 - */ - @SaCheckPermission("system:message:add") - @Log(title = "聊天消息", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatMessageBo bo) { - return toAjax(chatMessageService.insertByBo(bo)); - } - - /** - * 修改聊天消息 - */ - @SaCheckPermission("system:message:edit") - @Log(title = "聊天消息", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatMessageBo bo) { - return toAjax(chatMessageService.updateByBo(bo)); - } - - /** - * 删除聊天消息 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:message:remove") - @Log(title = "聊天消息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatMessageService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java deleted file mode 100644 index a0d9a1b4..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.ruoyi.system.controller.system; - -import java.util.List; - -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; - -/** - * 插件管理 - * - * @author ageerle - * @date 2025-03-30 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/plugin") -public class ChatPluginController extends BaseController { - - private final IChatPluginService chatPluginService; - - /** - * 查询插件管理列表 - */ - @SaCheckPermission("system:plugin:list") - @GetMapping("/list") - public TableDataInfo list(ChatPluginBo bo, PageQuery pageQuery) { - return chatPluginService.queryPageList(bo, pageQuery); - } - - /** - * 导出插件管理列表 - */ - @SaCheckPermission("system:plugin:export") - @Log(title = "插件管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatPluginBo bo, HttpServletResponse response) { - List list = chatPluginService.queryList(bo); - ExcelUtil.exportExcel(list, "插件管理", ChatPluginVo.class, response); - } - - /** - * 获取插件管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:plugin:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatPluginService.queryById(id)); - } - - /** - * 新增插件管理 - */ - @SaCheckPermission("system:plugin:add") - @Log(title = "插件管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatPluginBo bo) { - return toAjax(chatPluginService.insertByBo(bo)); - } - - /** - * 修改插件管理 - */ - @SaCheckPermission("system:plugin:edit") - @Log(title = "插件管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatPluginBo bo) { - return toAjax(chatPluginService.updateByBo(bo)); - } - - /** - * 删除插件管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:plugin:remove") - @Log(title = "插件管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatPluginService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java deleted file mode 100644 index 532fb330..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.ruoyi.system.controller.system; - -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 应用商店 - * - * @author Lion Li - * @date 2024-03-19 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/store") -public class ChatStoreController extends BaseController { - - private final IChatAppStoreService appStoreService; - - /** - * 应用商店 - */ - @GetMapping("/appList") - public R> appList(ChatAppStoreBo bo) { - return R.ok(appStoreService.queryList(bo)); - } - - /** - * 收藏应用 - */ - @PostMapping("/copyApp") - public R copyApp() { - return R.ok(); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java deleted file mode 100644 index f4022782..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 访客管理 - * - * @author Lion Li - * @date 2024-07-14 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/visitorUsage") -public class ChatVisitorUsageController extends BaseController { - - private final IChatVisitorUsageService chatVisitorUsageService; - - /** - * 查询访客管理列表 - */ - @SaCheckPermission("system:visitorUsage:list") - @GetMapping("/list") - public TableDataInfo list(ChatVisitorUsageBo bo, PageQuery pageQuery) { - return chatVisitorUsageService.queryPageList(bo, pageQuery); - } - - /** - * 导出访客管理列表 - */ - @SaCheckPermission("system:visitorUsage:export") - @Log(title = "访客管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatVisitorUsageBo bo, HttpServletResponse response) { - List list = chatVisitorUsageService.queryList(bo); - ExcelUtil.exportExcel(list, "访客管理", ChatVisitorUsageVo.class, response); - } - - /** - * 获取访客管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:visitorUsage:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatVisitorUsageService.queryById(id)); - } - - /** - * 新增访客管理 - */ - @SaCheckPermission("system:visitorUsage:add") - @Log(title = "访客管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatVisitorUsageBo bo) { - return toAjax(chatVisitorUsageService.insertByBo(bo)); - } - - /** - * 修改访客管理 - */ - @SaCheckPermission("system:visitorUsage:edit") - @Log(title = "访客管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatVisitorUsageBo bo) { - return toAjax(chatVisitorUsageService.updateByBo(bo)); - } - - /** - * 删除访客管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:visitorUsage:remove") - @Log(title = "访客管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatVisitorUsageService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java deleted file mode 100644 index 88cc4f40..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 用户兑换记录 - * - * @author Lion Li - * @date 2024-05-03 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/voucher") -public class ChatVoucherController extends BaseController { - - private final IChatVoucherService chatVoucherService; - - /** - * 查询用户兑换记录列表 - */ - @SaCheckPermission("system:voucher:list") - @GetMapping("/list") - public TableDataInfo list(ChatVoucherBo bo, PageQuery pageQuery) { - return chatVoucherService.queryPageList(bo, pageQuery); - } - - /** - * 导出用户兑换记录列表 - */ - @SaCheckPermission("system:voucher:export") - @Log(title = "用户兑换记录", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatVoucherBo bo, HttpServletResponse response) { - List list = chatVoucherService.queryList(bo); - ExcelUtil.exportExcel(list, "用户兑换记录", ChatVoucherVo.class, response); - } - - /** - * 获取用户兑换记录详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:voucher:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatVoucherService.queryById(id)); - } - - /** - * 新增用户兑换记录 - */ - @SaCheckPermission("system:voucher:add") - @Log(title = "用户兑换记录", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatVoucherBo bo) { - bo.setCode(UUIDShortUtil.generateShortUuid()); - return toAjax(chatVoucherService.insertByBo(bo)); - } - - /** - * 兑换卡密 - * - * @param bo 卡密信息 - * @return 是否兑换成功 - */ - @PostMapping("/redeem") - public R redeem(@RequestBody ChatVoucherBo bo) { - if(chatVoucherService.redeem(bo)){ - return R.ok("兑换成功!"); - }else { - return R.fail("兑换失败,请联系管理员!"); - } - } - - /** - * 修改用户兑换记录 - */ - @SaCheckPermission("system:voucher:edit") - @Log(title = "用户兑换记录", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatVoucherBo bo) { - return toAjax(chatVoucherService.updateByBo(bo)); - } - - /** - * 删除用户兑换记录 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:voucher:remove") - @Log(title = "用户兑换记录", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatVoucherService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java deleted file mode 100644 index 3ea10afe..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java +++ /dev/null @@ -1,184 +0,0 @@ -//package org.ruoyi.system.controller.system; -// -//import cn.dev33.satoken.stp.StpUtil; -//import jakarta.servlet.http.HttpServletRequest; -//import jakarta.servlet.http.HttpServletResponse; -//import jakarta.validation.Valid; -//import jakarta.validation.constraints.NotEmpty; -//import jakarta.validation.constraints.NotNull; -//import lombok.RequiredArgsConstructor; -//import org.ruoyi.common.chat.domain.request.ChatRequest; -//import org.ruoyi.common.chat.entity.chat.Message; -//import org.ruoyi.common.core.domain.R; -//import org.ruoyi.common.core.validate.AddGroup; -//import org.ruoyi.common.excel.utils.ExcelUtil; -//import org.ruoyi.common.log.annotation.Log; -//import org.ruoyi.common.log.enums.BusinessType; -//import org.ruoyi.common.mybatis.core.page.PageQuery; -//import org.ruoyi.common.mybatis.core.page.TableDataInfo; -//import org.ruoyi.common.satoken.utils.LoginHelper; -//import org.ruoyi.common.web.core.BaseController; -//import org.ruoyi.knowledge.chain.vectorstore.VectorStore; -//import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -//import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -//import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -//import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -//import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; -//import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; -//import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -//import org.ruoyi.knowledge.service.EmbeddingService; -//import org.ruoyi.knowledge.service.IKnowledgeAttachService; -//import org.ruoyi.knowledge.service.IKnowledgeFragmentService; -//import org.ruoyi.knowledge.service.IKnowledgeInfoService; -//import org.ruoyi.system.service.ISseService; -//import org.springframework.validation.annotation.Validated; -//import org.springframework.web.bind.annotation.*; -//import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -// -//import java.util.List; -// -// -///** -// * 知识库 -// * -// * @author Lion Li -// * @date 2024-10-21 -// */ -//@Validated -//@RequiredArgsConstructor -//@RestController -//@RequestMapping("/knowledge") -//public class KnowledgeController extends BaseController { -// -// private final IKnowledgeInfoService knowledgeInfoService; -// -// private final VectorStore vectorStore; -// -// private final IKnowledgeAttachService attachService; -// -// private final IKnowledgeFragmentService fragmentService; -// -// private final EmbeddingService embeddingService; -// -// private final ISseService sseService; -// -// /** -// * 知识库对话 -// */ -// @PostMapping("/send") -// public SseEmitter send(@RequestBody @Valid ChatRequest chatRequest, HttpServletRequest request) { -// List messages = chatRequest.getMessages(); -// // 获取知识库信息 -// Message message = messages.get(messages.size() - 1); -// StringBuilder sb = new StringBuilder(message.getContent().toString()); -// List nearestList; -// List queryVector = embeddingService.getQueryVector(message.getContent().toString(), chatRequest.getKid()); -// nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); -// for (String prompt : nearestList) { -// sb.append("\n####").append(prompt); -// } -// sb.append( (nearestList.size() > 0 ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")); -// message.setContent(sb.toString()); -// return sseService.sseChat(chatRequest, request); -// } -// -// /** -// * 根据用户信息查询本地知识库 -// */ -// @GetMapping("/list") -// public TableDataInfo list(KnowledgeInfoBo bo, PageQuery pageQuery) { -// if(!StpUtil.isLogin()){ -// return null; -// } -// bo.setUid(LoginHelper.getUserId()); -// return knowledgeInfoService.queryPageList(bo, pageQuery); -// } -// -// /** -// * 新增知识库 -// */ -// @Log(title = "知识库", businessType = BusinessType.INSERT) -// @PostMapping("/save") -// public R save(@Validated(AddGroup.class) @RequestBody KnowledgeInfoBo bo) { -// knowledgeInfoService.saveOne(bo); -// return R.ok(); -// } -// -// /** -// * 删除知识库 -// */ -// @PostMapping("/remove/{id}") -// public R remove(@PathVariable String id){ -// knowledgeInfoService.removeKnowledge(id); -// return R.ok("删除知识库成功!"); -// } -// -// /** -// * 修改知识库 -// */ -// @Log(title = "知识库", businessType = BusinessType.UPDATE) -// @PostMapping("/edit") -// public R edit( @RequestBody KnowledgeInfoBo bo) { -// return toAjax(knowledgeInfoService.updateByBo(bo)); -// } -// -// /** -// * 导出知识库列表 -// */ -// @Log(title = "知识库", businessType = BusinessType.EXPORT) -// @PostMapping("/export") -// public void export(KnowledgeInfoBo bo, HttpServletResponse response) { -// List list = knowledgeInfoService.queryList(bo); -// ExcelUtil.exportExcel(list, "知识库", KnowledgeInfoVo.class, response); -// } -// -// /** -// * 查询知识附件信息 -// */ -// @GetMapping("/detail/{kid}") -// public TableDataInfo attach(KnowledgeAttachBo bo, PageQuery pageQuery,@PathVariable String kid){ -// bo.setKid(kid); -// return attachService.queryPageList(bo, pageQuery); -// } -// -// /** -// * 上传知识库附件 -// */ -// @PostMapping(value = "/attach/upload") -// public R upload(KnowledgeInfoUploadRequest request){ -// knowledgeInfoService.upload(request); -// return R.ok("上传知识库附件成功!"); -// } -// -// /** -// * 获取知识库附件详细信息 -// * -// * @param id 主键 -// */ -// @GetMapping("attach/info/{id}") -// public R getAttachInfo(@NotNull(message = "主键不能为空") -// @PathVariable Long id) { -// return R.ok(attachService.queryById(id)); -// } -// -// /** -// * 删除知识库附件 -// * -// */ -// @PostMapping("attach/remove/{docId}") -// public R removeAttach(@NotEmpty(message = "主键不能为空") @PathVariable String docId) { -// attachService.removeKnowledgeAttach(docId); -// return R.ok(); -// } -// -// -// /** -// * 查询知识片段 -// */ -// @GetMapping("/fragment/list/{docId}") -// public TableDataInfo fragmentList(KnowledgeFragmentBo bo, PageQuery pageQuery, @PathVariable String docId) { -// bo.setDocId(docId); -// return fragmentService.queryPageList(bo, pageQuery); -// } -// -//} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java deleted file mode 100644 index eef83314..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java +++ /dev/null @@ -1,333 +0,0 @@ -//package org.ruoyi.system.controller.system; -// -//import cn.hutool.core.bean.BeanUtil; -//import cn.hutool.core.collection.CollectionUtil; -//import cn.hutool.extra.qrcode.QrCodeUtil; -//import cn.hutool.json.JSONObject; -//import cn.hutool.json.JSONUtil; -//import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; -//import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; -//import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult; -//import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; -//import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; -//import com.github.binarywang.wxpay.exception.WxPayException; -//import com.github.binarywang.wxpay.service.WxPayService; -//import com.stripe.Stripe; -//import com.stripe.exception.StripeException; -//import com.stripe.model.Event; -//import com.stripe.model.Price; -//import com.stripe.model.Product; -//import com.stripe.model.checkout.Session; -//import com.stripe.net.Webhook; -//import com.stripe.param.checkout.SessionCreateParams; -//import jakarta.servlet.http.HttpServletRequest; -//import lombok.RequiredArgsConstructor; -//import lombok.extern.slf4j.Slf4j; -//import org.ruoyi.common.config.PayConfig; -//import org.ruoyi.common.core.domain.R; -//import org.ruoyi.common.core.exception.base.BaseException; -//import org.ruoyi.common.core.service.ConfigService; -//import org.ruoyi.common.core.utils.StringUtils; -//import org.ruoyi.common.oss.core.OssClient; -//import org.ruoyi.common.oss.entity.UploadResult; -//import org.ruoyi.common.oss.factory.OssFactory; -//import org.ruoyi.common.response.PayResponse; -//import org.ruoyi.common.service.PayService; -//import org.ruoyi.common.utils.MD5Util; -//import org.ruoyi.system.domain.bo.PaymentOrdersBo; -//import org.ruoyi.system.domain.bo.SysUserBo; -//import org.ruoyi.system.domain.request.OrderRequest; -//import org.ruoyi.system.domain.vo.PaymentOrdersVo; -//import org.ruoyi.system.domain.vo.SysUserVo; -//import org.ruoyi.system.service.IPaymentOrdersService; -//import org.ruoyi.system.service.ISysUserService; -//import org.springframework.web.bind.annotation.*; -// -//import java.io.ByteArrayOutputStream; -//import java.io.InputStream; -//import java.math.BigDecimal; -//import java.math.RoundingMode; -//import java.util.HashMap; -//import java.util.List; -//import java.util.Map; -// -// -//@RequiredArgsConstructor -//@RestController -//@RequestMapping("/pay") -//@Slf4j -//public class PayController { -// -// private final PayService payService; -// -// private final ISysUserService userService; -// -// private final IPaymentOrdersService paymentOrdersService; -// -// private final PayConfig payConfig; -// -// private final WxPayService wxService; -// -// private final ConfigService configService; -// -// /** -// * 获取支付二维码 -// * -// * @Date 2023/7/3 -// * @return void -// **/ -// @PostMapping("/payUrl") -// public R payUrl(@RequestBody OrderRequest orderRequest) { -// PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); -// PaymentOrdersVo paymentOrdersVo = new PaymentOrdersVo(); -// if(!Boolean.parseBoolean(getKey("enabled"))){ -// String payUrl = payService.getPayUrl(payOrder.getOrderNo(), orderRequest.getName(), Double.parseDouble(orderRequest.getMoney()), "192.168.1.6"); -// byte[] bytes = QrCodeUtil.generatePng(payUrl, 300, 300); -// OssClient storage = OssFactory.instance(); -// UploadResult upload=storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); -// BeanUtil.copyProperties(payOrder,paymentOrdersVo); -// paymentOrdersVo.setUrl(upload.getUrl()); -// }else { -// WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); -// request.setTradeType("NATIVE"); -// request.setBody(orderRequest.getName()); -// request.setOutTradeNo(payOrder.getOrderNo()); -// request.setTotalFee(BaseWxPayRequest.yuanToFen(orderRequest.getMoney())); -// request.setSpbillCreateIp("127.0.0.1"); -// request.setNotifyUrl(getKey("notifyUrl")); -// request.setProductId(payOrder.getId().toString()); -// try { -// WxPayNativeOrderResult order = wxService.createOrder(request); -// byte[] bytes = QrCodeUtil.generatePng(order.getCodeUrl(), 300, 300); -// OssClient storage = OssFactory.instance(); -// UploadResult upload = storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); -// BeanUtil.copyProperties(payOrder,paymentOrdersVo); -// paymentOrdersVo.setUrl(upload.getUrl()); -// } catch (WxPayException e) { -// throw new BaseException("获取微信支付二维码发生错误:{}"+e.getMessage()); -// } -// } -// return R.ok(paymentOrdersVo); -// } -// -// /** -// * 回调通知地址 -// * -// * @Date 2023/7/3 -// * @param -// * @return void -// **/ -// @GetMapping("/notifyUrl") -// public String notifyUrl(PayResponse payResponse) { -// // 校验签名 -// String mdString = "money=" + payResponse.getMoney() + "&name=" + payResponse.getName() + -// "&out_trade_no=" + payResponse.getOut_trade_no() + "&pid=" + payConfig.getPid() + -// "&trade_no=" + payResponse.getTrade_no() + "&trade_status=" + payResponse.getTrade_status() + -// "&type=" + payResponse.getType() + payConfig.getKey(); -// String sign = MD5Util.GetMD5Code(mdString); -// if(!sign.equals(payResponse.getSign())){ -// throw new BaseException("校验签名失败!"); -// } -// double money = Double.parseDouble(payResponse.getMoney()); -// log.info("支付订单号{}",payResponse); -// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); -// paymentOrdersBo.setOrderNo(payResponse.getOut_trade_no()); -// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); -// if (CollectionUtil.isEmpty(paymentOrdersList)){ -// throw new BaseException("订单不存在!"); -// } -// // 订单状态修改为已支付 -// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); -// paymentOrdersVo.setPaymentStatus("2"); -// paymentOrdersVo.setPaymentMethod(payResponse.getType()); -// BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); -// paymentOrdersService.updateByBo(paymentOrdersBo); -// -// SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); -// sysUserVo.setUserBalance(sysUserVo.getUserBalance() + money); -// SysUserBo sysUserBo = new SysUserBo(); -// BeanUtil.copyProperties(sysUserVo,sysUserBo); -// // 设置为付费用户 -// sysUserBo.setUserGrade("1"); -// userService.updateUser(sysUserBo); -// return "success"; -// } -// -// /** -// * 跳转通知地址 -// * -// * @Date 2023/7/3 -// * @param -// * @return void -// **/ -// @GetMapping("/return_url") -// public void returnUrl() { -// log.info("return_url==========="); -// } -// -// -// @PostMapping("/notify/wxOrder") -// public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException { -// WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData); -// // TODO 根据自己业务场景需要构造返回对象 -// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); -// paymentOrdersBo.setOrderNo(notifyResult.getOutTradeNo()); -// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); -// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); -// paymentOrdersVo.setPaymentStatus("2"); -// paymentOrdersVo.setPaymentMethod("wx"); -// BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); -// paymentOrdersService.updateByBo(paymentOrdersBo); -// SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); -// sysUserVo.setUserBalance(sysUserVo.getUserBalance() + convertCentsToYuan(notifyResult.getTotalFee())); -// SysUserBo sysUserBo = new SysUserBo(); -// BeanUtil.copyProperties(sysUserVo,sysUserBo); -// // 设置为付费用户 -// sysUserBo.setUserGrade("1"); -// userService.updateUser(sysUserBo); -// return WxPayNotifyResponse.success("success"); -// } -// -// /** -// * 将分转换为元,并保留精度。 -// * -// * @param cents 分的金额,类型为Integer -// * @return 转换后的元金额,类型为double -// */ -// public static double convertCentsToYuan(Integer cents) { -// // 处理空输入 -// if (cents == null) { -// throw new IllegalArgumentException("输入的分金额不能为空"); -// } -// -// // 100分 = 1元 -// BigDecimal centsBigDecimal = new BigDecimal(cents); -// BigDecimal yuan = centsBigDecimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); -// // 转换为double并返回 -// return yuan.doubleValue(); -// } -// -// /** -// * 获取订单信息 -// * -// */ -// @PostMapping("/orderInfo") -// public R orderInfo(@RequestBody OrderRequest orderRequest) { -// if(StringUtils.isEmpty(orderRequest.getOrderNo())){ -// throw new BaseException("订单号不能为空!"); -// } -// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); -// paymentOrdersBo.setOrderNo(orderRequest.getOrderNo()); -// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); -// if (CollectionUtil.isEmpty(paymentOrdersList)){ -// throw new BaseException("订单不存在!"); -// } -// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); -// return R.ok(paymentOrdersVo); -// } -// -// // 获取支付链接 -//// static { -//// Stripe.apiKey = "sk_test_51PMMj2KcfX4oNioqXkoKpScTsgmR55xQki2tg8MEZJYc0gjhYV85t2FzDasE06eqZb0sqyYhOp3UXhcGGQLWI4A9008aq8SOnb"; -//// } -// -// /** -// * 去支付 -// * 1、创建产品 -// * 2、设置价格 -// * 3、创建支付信息 得到url -// * @return -// */ -// @PostMapping("/stripePay") -// public String pay(@RequestBody OrderRequest orderRequest) throws StripeException { -// -// String enabled = configService.getConfigValue("stripe", "enabled"); -// if(!Boolean.parseBoolean(enabled)){ -// String prompt = configService.getConfigValue("stripe", "prompt"); -// throw new BaseException(prompt); -// } -// -// // 获取支付链接 -// Stripe.apiKey = configService.getConfigValue("stripe", "key"); -// -// // 获取金额字符串并解析为 double -// double moneyDouble = Double.parseDouble(orderRequest.getMoney()); -// -// // 将金额转换为以分为单位的整数 -// int randMoney = (int) (moneyDouble * 100); -// -// Map params = new HashMap<>(); -// params.put("name", orderRequest.getName()); -// Product product = Product.create(params); -// -// Map recurring = new HashMap<>(); -// recurring.put("interval", "month"); -// Map params2 = new HashMap<>(); -// params2.put("unit_amount", randMoney); -// params2.put("currency", "usd"); -// params2.put("recurring", recurring); -// params2.put("product", product.getId()); -// Price price = Price.create(params2); -// -// // 创建支付订单 -// PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); -// -// //创建支付信息 得到url -// SessionCreateParams params3 = SessionCreateParams.builder() -// .setMode(SessionCreateParams.Mode.SUBSCRIPTION) -// .setSuccessUrl(configService.getConfigValue("stripe", "success")) -// .setCancelUrl(configService.getConfigValue("stripe", "cancel")) -// .addLineItem( -// SessionCreateParams.LineItem.builder() -// .setQuantity(1L) -// .setPrice(price.getId()) -// .build()).putMetadata("orderId", payOrder.getOrderNo()) -// .build(); -// Session session = Session.create(params3); -// return session.getUrl(); -// } -// -// /** -// * 支付回调 -// * -// */ -// @PostMapping("/stripe_events") -// public R stripeEvent(HttpServletRequest request) { -// try { -// String endpointSecret = configService.getConfigValue("stripe", "secret");//webhook秘钥签名 -// InputStream inputStream = request.getInputStream(); -// ByteArrayOutputStream output = new ByteArrayOutputStream(); -// byte[] buffer = new byte[1024*4]; -// int n = 0; -// while (-1 != (n = inputStream.read(buffer))) { -// output.write(buffer, 0, n); -// } -// byte[] bytes = output.toByteArray(); -// String payload = new String(bytes, "UTF-8"); -// String sigHeader = request.getHeader("Stripe-Signature"); -// Event event = Webhook.constructEvent(payload, sigHeader, endpointSecret);//验签,并获取事件 -// if("checkout.session.completed".equals(event.getType())){ -// // 解析 JSON 字符串为 JSONObject -// JSONObject jsonObject = JSONUtil.parseObj(event); -// // 获取 metadata 对象 -// JSONObject metadata = jsonObject.getJSONObject("data") -// .getJSONObject("object") -// .getJSONObject("metadata"); -// -// OrderRequest orderRequest = new OrderRequest(); -// orderRequest.setPayType("stripe"); -// orderRequest.setOrderNo(metadata.getStr("orderId")); -// paymentOrdersService.updatePayOrder(orderRequest); -// } -// } catch (Exception e) { -// System.out.println("stripe异步通知(webhook事件)"+e); -// } -// return R.ok(); -// } -// -// public String getKey(String key) { -// return configService.getConfigValue("weixin", key); -// } -// -//} -// diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java deleted file mode 100644 index eebfa8e2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; -import org.ruoyi.system.service.IPaymentOrdersService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 支付订单 - * - * @author Lion Li - * @date 2024-04-16 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/payOrder") -public class PaymentOrdersController extends BaseController { - - private final IPaymentOrdersService paymentOrdersService; - - /** - * 查询支付订单列表 - */ - @SaCheckPermission("system:order:list") - @GetMapping("/list") - public TableDataInfo list(PaymentOrdersBo bo, PageQuery pageQuery) { - pageQuery.setOrderByColumn("createTime"); - pageQuery.setIsAsc("desc"); - return paymentOrdersService.queryPageList(bo, pageQuery); - } - - /** - * 导出支付订单列表 - */ - @SaCheckPermission("system:order:export") - @Log(title = "支付订单", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(PaymentOrdersBo bo, HttpServletResponse response) { - List list = paymentOrdersService.queryList(bo); - ExcelUtil.exportExcel(list, "支付订单", PaymentOrdersVo.class, response); - } - - /** - * 获取支付订单详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:order:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(paymentOrdersService.queryById(id)); - } - - /** - * 新增支付订单 - */ - @SaCheckPermission("system:order:add") - @Log(title = "支付订单", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody PaymentOrdersBo bo) { - return toAjax(paymentOrdersService.insertByBo(bo)); - } - - /** - * 修改支付订单 - */ - @SaCheckPermission("system:order:edit") - @Log(title = "支付订单", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody PaymentOrdersBo bo) { - return toAjax(paymentOrdersService.updateByBo(bo)); - } - - /** - * 删除支付订单 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:order:remove") - @Log(title = "支付订单", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(paymentOrdersService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java deleted file mode 100644 index 9f7760e9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.stp.StpUtil; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.service.ISysModelService; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.ruoyi.system.service.ISysUserService; -import org.ruoyi.system.util.DesensitizationUtil; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 系统模型 - * - * @author Lion Li - * @date 2024-04-04 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/model") -public class SysModelController extends BaseController { - - private final ISysModelService sysModelService; - - private final ISysPackagePlanService sysPackagePlanService; - - private final ISysUserService userService; - - /** - * 查询系统模型列表 - 全部 - */ - @GetMapping("/list") - public TableDataInfo list(SysModelBo bo, PageQuery pageQuery) { - return sysModelService.queryPageList(bo, pageQuery); - } - - /** - * 查询系统模型列表 - */ - @GetMapping("/modelList") - public R> modelList(SysModelBo bo) { - bo.setModelShow("0"); - List sysModelVos = sysModelService.queryList(bo); - SysPackagePlanBo sysPackagePlanBo = new SysPackagePlanBo(); - if (StpUtil.isLogin()) { - Long userId = LoginHelper.getLoginUser().getUserId(); - SysUserVo sysUserVo = userService.selectUserById(userId); - if ("0".equals(sysUserVo.getUserGrade())){ - sysPackagePlanBo.setName("Free"); - SysPackagePlanVo sysPackagePlanVo = sysPackagePlanService.queryList(sysPackagePlanBo).get(0); - List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(","))); - sysModelVos.removeIf(model -> !array.contains(model.getModelName())); - } - }else { - sysPackagePlanBo.setName("Visitor"); - SysPackagePlanVo sysPackagePlanVo = sysPackagePlanService.queryList(sysPackagePlanBo).get(0); - List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(","))); - sysModelVos.removeIf(model -> !array.contains(model.getModelName())); - } - sysModelVos.stream().map(vo -> { - String maskedApiHost = DesensitizationUtil.maskData(vo.getApiHost()); - String maskedApiKey = DesensitizationUtil.maskData(vo.getApiKey()); - vo.setApiHost(maskedApiHost); - vo.setApiKey(maskedApiKey); - return vo; - }) - .collect(Collectors.toList()); - return R.ok(sysModelVos); - } - - /** - * 导出系统模型列表 - */ - @SaCheckPermission("system:model:export") - @Log(title = "系统模型", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysModelBo bo, HttpServletResponse response) { - List list = sysModelService.queryList(bo); - ExcelUtil.exportExcel(list, "系统模型", SysModelVo.class, response); - } - - /** - * 获取系统模型详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:model:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysModelService.queryById(id)); - } - - /** - * 新增系统模型 - */ - @SaCheckPermission("system:model:add") - @Log(title = "系统模型", businessType = BusinessType.INSERT) - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysModelBo bo) { - return toAjax(sysModelService.insertByBo(bo)); - } - - /** - * 修改系统模型 - */ - @SaCheckPermission("system:model:edit") - @Log(title = "系统模型", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysModelBo bo) { - return toAjax(sysModelService.updateByBo(bo)); - } - - /** - * 删除系统模型 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:model:remove") - @Log(title = "系统模型", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysModelService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java index 4f30a3af..a02568be 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java @@ -16,7 +16,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** - * 公告 信息操作处理 + * 公告信息操作处理 * * @author Lion Li */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java deleted file mode 100644 index 068ffd6d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.ruoyi.system.controller.system; - -import java.util.List; - -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; - -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.log.enums.BusinessType; - -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; - -/** - * 套餐管理 - * - * @author Lion Li - * @date 2024-05-05 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/packagePlan") -public class SysPackagePlanController extends BaseController { - - private final ISysPackagePlanService sysPackagePlanService; - - /** - * 查询套餐管理列表 - */ - @GetMapping("/list") - public TableDataInfo list(SysPackagePlanBo bo, PageQuery pageQuery) { - return sysPackagePlanService.queryPageList(bo, pageQuery); - } - - @GetMapping("/listPlan") - public R> listPlan() { - return R.ok(sysPackagePlanService.queryList(new SysPackagePlanBo())); - } - - /** - * 导出套餐管理列表 - */ - @SaCheckPermission("system:packagePlan:export") - @Log(title = "套餐管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysPackagePlanBo bo, HttpServletResponse response) { - List list = sysPackagePlanService.queryList(bo); - ExcelUtil.exportExcel(list, "套餐管理", SysPackagePlanVo.class, response); - } - - /** - * 获取套餐管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:packagePlan:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysPackagePlanService.queryById(id)); - } - - - - - /** - * 新增套餐管理 - */ - @SaCheckPermission("system:packagePlan:add") - @Log(title = "套餐管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysPackagePlanBo bo) { - return toAjax(sysPackagePlanService.insertByBo(bo)); - } - - /** - * 修改套餐管理 - */ - @SaCheckPermission("system:packagePlan:edit") - @Log(title = "套餐管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysPackagePlanBo bo) { - return toAjax(sysPackagePlanService.updateByBo(bo)); - } - - /** - * 删除套餐管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:packagePlan:remove") - @Log(title = "套餐管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysPackagePlanService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java deleted file mode 100644 index abff4335..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.SysUserGroupBo; -import org.ruoyi.system.domain.vo.SysUserGroupVo; -import org.ruoyi.system.service.ISysUserGroupService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 【请填写功能名称】 - * - * @author Lion Li - * @date 2024-08-03 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/userGroup") -public class SysUserGroupController extends BaseController { - - private final ISysUserGroupService sysUserGroupService; - - /** - * 查询【请填写功能名称】列表 - */ - @SaCheckPermission("system:userGroup:list") - @GetMapping("/list") - public TableDataInfo list(SysUserGroupBo bo, PageQuery pageQuery) { - return sysUserGroupService.queryPageList(bo, pageQuery); - } - - /** - * 导出【请填写功能名称】列表 - */ - @SaCheckPermission("system:userGroup:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysUserGroupBo bo, HttpServletResponse response) { - List list = sysUserGroupService.queryList(bo); - ExcelUtil.exportExcel(list, "【请填写功能名称】", SysUserGroupVo.class, response); - } - - /** - * 获取【请填写功能名称】详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:userGroup:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysUserGroupService.queryById(id)); - } - - /** - * 新增【请填写功能名称】 - */ - @SaCheckPermission("system:userGroup:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysUserGroupBo bo) { - return toAjax(sysUserGroupService.insertByBo(bo)); - } - - /** - * 修改【请填写功能名称】 - */ - @SaCheckPermission("system:userGroup:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysUserGroupBo bo) { - return toAjax(sysUserGroupService.updateByBo(bo)); - } - - /** - * 删除【请填写功能名称】 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:userGroup:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysUserGroupService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java deleted file mode 100644 index 3e97801c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.ruoyi.system.controller.system; - -import java.util.List; - -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.system.domain.vo.SysUserModelVo; -import org.ruoyi.system.domain.bo.SysUserModelBo; -import org.ruoyi.system.service.ISysUserModelService; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; - -/** - * 【请填写功能名称】 - * - * @author Lion Li - * @date 2024-08-03 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/userModel") -public class SysUserModelController extends BaseController { - - private final ISysUserModelService sysUserModelService; - - /** - * 查询【请填写功能名称】列表 - */ - @SaCheckPermission("system:userModel:list") - @GetMapping("/list") - public TableDataInfo list(SysUserModelBo bo, PageQuery pageQuery) { - return sysUserModelService.queryPageList(bo, pageQuery); - } - - /** - * 导出【请填写功能名称】列表 - */ - @SaCheckPermission("system:userModel:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysUserModelBo bo, HttpServletResponse response) { - List list = sysUserModelService.queryList(bo); - ExcelUtil.exportExcel(list, "【请填写功能名称】", SysUserModelVo.class, response); - } - - /** - * 获取【请填写功能名称】详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:userModel:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysUserModelService.queryById(id)); - } - - /** - * 新增【请填写功能名称】 - */ - @SaCheckPermission("system:userModel:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysUserModelBo bo) { - return toAjax(sysUserModelService.insertByBo(bo)); - } - - /** - * 修改【请填写功能名称】 - */ - @SaCheckPermission("system:userModel:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysUserModelBo bo) { - return toAjax(sysUserModelService.updateByBo(bo)); - } - - /** - * 删除【请填写功能名称】 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:userModel:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysUserModelService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java deleted file mode 100644 index eeaeb908..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java +++ /dev/null @@ -1,81 +0,0 @@ -//package org.ruoyi.system.controller.system; -// -//import cn.dev33.satoken.annotation.SaIgnore; -//import lombok.RequiredArgsConstructor; -//import lombok.extern.slf4j.Slf4j; -//import org.ruoyi.common.core.exception.ServiceException; -//import org.ruoyi.common.wechat.itchat4j.api.WechatTools; -//import org.ruoyi.common.wechat.itchat4j.controller.LoginController; -//import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; -//import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; -//import org.ruoyi.common.wechat.web.base.BaseException; -//import org.ruoyi.system.domain.bo.WxRobConfigBo; -//import org.ruoyi.system.domain.vo.WxRobConfigVo; -//import org.ruoyi.system.handler.MyMsgHandler; -//import org.ruoyi.system.service.ISseService; -//import org.ruoyi.system.service.IWxRobConfigService; -//import org.springframework.validation.annotation.Validated; -//import org.springframework.web.bind.annotation.PostMapping; -//import org.springframework.web.bind.annotation.RequestParam; -//import org.springframework.web.bind.annotation.RestController; -// -//import java.util.List; -// -///** -// * 个人微信扩展控制器 -// * -// * @author WangLe -// */ -//@SaIgnore -//@Slf4j -//@Validated -//@RequiredArgsConstructor -//@RestController -//public class WeChatController { -// -// private final ISseService sseService; -// -// private final IWxRobConfigService wxRobConfigService; -// -// /** -// * 登录第一步,获取二维码链接 -// * @throws BaseException -// */ -// @PostMapping("/getQr") -// public String getQr(@RequestParam String uniqueKey) { -// LoginController login = new LoginController(uniqueKey); -// try { -// return login.login_1(); -// } catch (BaseException e) { -// throw new ServiceException("获取二维码失败:"+ e.getMessage()); -// } -// } -// -// @PostMapping("/wxLogin") -// public Boolean wxLogin(@RequestParam String uniqueKey) { -// LoginController login = new LoginController(uniqueKey); -// return login.login_2(); -// } -// -// @PostMapping("/wxInit") -// public Boolean wxInit(@RequestParam String uniqueKey) { -// LoginController login = new LoginController(uniqueKey); -// // 开启消息处理线程 -// WxRobConfigBo wxRobConfigBo = new WxRobConfigBo(); -// wxRobConfigBo.setUniqueKey(uniqueKey); -// List wxRobConfigVos = wxRobConfigService.queryList(wxRobConfigBo); -// //查询机器人对应的用户 -// start(uniqueKey,new MyMsgHandler(uniqueKey,sseService,wxRobConfigVos.get(0))); -// return login.login_3(); -// } -// -// @PostMapping("/wxLogout") -// public void wxLogout(@RequestParam String uniqueKey) { -// WechatTools.logout(uniqueKey); -// } -// -// public void start(String uniqueKey,IMsgHandlerFace msgHandler) { -// log.info("7.+++开启消息处理线程["+uniqueKey+"]+++"); -// new Thread(() -> MsgCenter.handleMsg(uniqueKey,msgHandler)).start(); -// } -//} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java deleted file mode 100644 index f0ac84f2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.controller.system; - - -import jakarta.servlet.http.HttpServletRequest; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.system.service.WeixinUserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@RestController -public class WeixinServerController { - - @Autowired - private WeixinUserService weixinUserService; - - @GetMapping(value = "/weixin/check") - public String weixinCheck(HttpServletRequest request) { - String signature = request.getParameter("signature"); - String timestamp = request.getParameter("timestamp"); - String nonce = request.getParameter("nonce"); - String echostr = request.getParameter("echostr"); - - if (StringUtils.isEmpty(signature) || StringUtils.isEmpty(timestamp) || StringUtils.isEmpty(nonce)) { - return ""; - } - weixinUserService.checkSignature(signature, timestamp, nonce); - return echostr; - } - - @PostMapping(value = "/weixin/check") - public String weixinMsg(@RequestBody String requestBody, @RequestParam("signature") String signature, - @RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce) { - - log.debug("requestBody:{}", requestBody); - log.debug("signature:{}", signature); - log.debug("timestamp:{}", timestamp); - log.debug("nonce:{}", nonce); - - weixinUserService.checkSignature(signature, timestamp, nonce); - return weixinUserService.handleWeixinMsg(requestBody); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java deleted file mode 100644 index d006ba56..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.ruoyi.system.controller.system; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.system.domain.model.WeixinQrCode; -import org.ruoyi.system.domain.vo.LoginVo; -import org.ruoyi.system.service.SysLoginService; -import org.ruoyi.system.util.WeixinApiUtil; -import org.ruoyi.system.util.WeixinQrCodeCacheUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@RestController -public class WeixinUserController { - - @Autowired - private WeixinApiUtil weixinApiUtil; - - @Autowired - private SysLoginService loginService; - - @GetMapping(value = "/user/qrcode") - public R getQrCode() { - WeixinQrCode qrCode = weixinApiUtil.getQrCode(); - qrCode.setUrl(null); - qrCode.setExpireSeconds(null); - return R.ok(qrCode); - } - - /** - * 校验是否扫描完成 - * 完成,返回 JWT - * 未完成,返回 check faild - * - * @param ticket - * @return - */ - @GetMapping(value = "/user/login/qrcode") - public R userLogin(String ticket) { - String openId = WeixinQrCodeCacheUtil.get(ticket); - if (StringUtils.isNotEmpty(openId)) { - log.info("login success,open id:{}", openId); - LoginVo loginVo = loginService.mpLogin(openId); - return R.ok(loginVo); - } - log.info("login error,ticket:{}", ticket); - return R.fail("check faild"); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java deleted file mode 100644 index c5346834..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.ruoyi.system.controller.system; - -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.service.IWxRobConfigService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 机器人 - * - * @author Lion Li - * @date 2024-05-01 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/robConfig") -public class WxRobConfigController extends BaseController { - - private final IWxRobConfigService wxRobConfigService; - - /** - * 查询机器人列表 - */ - @GetMapping("/list") - public TableDataInfo list(WxRobConfigBo bo, PageQuery pageQuery) { - return wxRobConfigService.queryPageList(bo, pageQuery); - } - - /** - * 查询当前用户绑定的机器人信息 - * @param bo 查询参数 - * @return 机器人信息 - */ - @GetMapping("/getRobConfig") - public R> botList(WxRobConfigBo bo) { - bo.setUserId(LoginHelper.getUserId()); - return R.ok(wxRobConfigService.queryList(bo)); - } - - /** - * 导出机器人列表 - */ - @Log(title = "机器人", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WxRobConfigBo bo, HttpServletResponse response) { - List list = wxRobConfigService.queryList(bo); - ExcelUtil.exportExcel(list, "机器人", WxRobConfigVo.class, response); - } - - /** - * 获取机器人详细信息 - * - * @param id 主键 - */ - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(wxRobConfigService.queryById(id)); - } - - /** - * 新增机器人 - */ - @Log(title = "机器人", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WxRobConfigBo bo) { - String uniKey = UUIDShortUtil.generateShortUuid(); - bo.setUniqueKey(uniKey); - return toAjax(wxRobConfigService.insertByBo(bo)); - } - - /** - * 修改机器人 - */ - @Log(title = "机器人", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WxRobConfigBo bo) { - return toAjax(wxRobConfigService.updateByBo(bo)); - } - - /** - * 删除机器人 - * - * @param ids 主键串 - */ - @Log(title = "删除机器人", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(wxRobConfigService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java deleted file mode 100644 index 755c2dce..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.WxRobKeywordBo; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; -import org.ruoyi.system.service.IWxRobKeywordService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 【请填写功能名称】 - * - * @author Lion Li - * @date 2024-05-01 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/robKeyword") -public class WxRobKeywordController extends BaseController { - - private final IWxRobKeywordService wxRobKeywordService; - - /** - * 查询【请填写功能名称】列表 - */ - @SaCheckPermission("system:robKeyword:list") - @GetMapping("/list") - public TableDataInfo list(WxRobKeywordBo bo, PageQuery pageQuery) { - return wxRobKeywordService.queryPageList(bo, pageQuery); - } - - /** - * 导出【请填写功能名称】列表 - */ - @SaCheckPermission("system:robKeyword:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WxRobKeywordBo bo, HttpServletResponse response) { - List list = wxRobKeywordService.queryList(bo); - ExcelUtil.exportExcel(list, "【请填写功能名称】", WxRobKeywordVo.class, response); - } - - /** - * 获取【请填写功能名称】详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:robKeyword:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(wxRobKeywordService.queryById(id)); - } - - /** - * 新增【请填写功能名称】 - */ - @SaCheckPermission("system:robKeyword:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WxRobKeywordBo bo) { - return toAjax(wxRobKeywordService.insertByBo(bo)); - } - - /** - * 修改【请填写功能名称】 - */ - @SaCheckPermission("system:robKeyword:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WxRobKeywordBo bo) { - return toAjax(wxRobKeywordService.updateByBo(bo)); - } - - /** - * 删除【请填写功能名称】 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:robKeyword:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(wxRobKeywordService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java deleted file mode 100644 index a6ff01f2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.controller.wxsingle; - - -import me.chanjar.weixin.common.bean.WxJsapiSignature; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.cp.api.WxCpService; -import org.ruoyi.system.cofing.WxCpConfiguration; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; - -import java.nio.charset.StandardCharsets; -import java.util.Formatter; -import java.util.HashMap; -import java.util.Map; - -/** - * @author Wang_Wong - */ -//@RestController -//@RequiredArgsConstructor -//@RequestMapping("/wx/cp/js/{corpId}/{agentId}/getJsConf") -public class WxJsController { - @PostMapping("/getJsConf") - public Map getJsConf( - @PathVariable String corpId, - @PathVariable Integer agentId, - String uri) throws WxErrorException { - - final WxCpService wxCpService = WxCpConfiguration.getCpService(agentId); - if (wxCpService == null) { - throw new IllegalArgumentException(String.format("未找到对应agentId=[%d]的配置,请核实!", agentId)); - } - - WxJsapiSignature wxJsapiSignature = wxCpService.createJsapiSignature(uri); - String signature = wxJsapiSignature.getSignature(); - String nonceStr = wxJsapiSignature.getNonceStr(); - long timestamp = wxJsapiSignature.getTimestamp(); - - Map res = new HashMap(); - res.put("appId", corpId); // 必填,企业微信的corpID - res.put("timestamp", timestamp); // 必填,生成签名的时间戳 - res.put("nonceStr", nonceStr); // 必填,生成签名的随机串 - res.put("signature", signature); // 必填,签名,见 附录-JS-SDK使用权限签名算法 - return res; - } - - - public static String genNonce() { - return bytesToHex(Long.toString(System.nanoTime()).getBytes(StandardCharsets.UTF_8)); - } - - public static String bytesToHex(final byte[] hash) { - Formatter formatter = new Formatter(); - for (byte b : hash) { - formatter.format("%02x", b); - } - String result = formatter.toString(); - formatter.close(); - return result; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java deleted file mode 100644 index 1ca67d1f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.ruoyi.system.controller.wxsingle; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.core.utils.JsonUtils; -import org.ruoyi.system.cofing.WxCpConfiguration; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.*; - -/** - * @author Binary Wang - */ -@RestController -@RequestMapping("/wx/cp") -@Slf4j -public class WxPortalController { - - @Value("${wechat.cp.appConfigs[0].agentId}") - private Integer agentId; - - - @GetMapping(produces = "text/plain;charset=utf-8") - public String authGet( - @RequestParam(name = "msg_signature", required = false) String signature, - @RequestParam(name = "timestamp", required = false) String timestamp, - @RequestParam(name = "nonce", required = false) String nonce, - @RequestParam(name = "echostr", required = false) String echostr) { - log.info("\n接收到来自微信服务器的认证消息:signature = [{}], timestamp = [{}], nonce = [{}], echostr = [{}]", - signature, timestamp, nonce, echostr); - - if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) { - throw new IllegalArgumentException("请求参数非法,请核实!"); - } - - final WxCpService wxCpService = WxCpConfiguration.getCpService(agentId); - if (wxCpService == null) { - throw new IllegalArgumentException(String.format("未找到对应agentId=[%d]的配置,请核实!", agentId)); - } - - if (wxCpService.checkSignature(signature, timestamp, nonce, echostr)) { - return new WxCpCryptUtil(wxCpService.getWxCpConfigStorage()).decrypt(echostr); - } - - return "非法请求"; - } - - @PostMapping(produces = "application/xml; charset=UTF-8") - public String post( - @RequestBody String requestBody, - @RequestParam("msg_signature") String signature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce) { - log.info("\n接收微信请求:[signature=[{}], timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ", - signature, timestamp, nonce, requestBody); - - final WxCpService wxCpService = WxCpConfiguration.getCpService(1000002); - WxCpXmlMessage inMessage = WxCpXmlMessage.fromEncryptedXml(requestBody, wxCpService.getWxCpConfigStorage(), - timestamp, nonce, signature); - log.debug("\n消息解密后内容为:\n{} ", JsonUtils.toJson(inMessage)); - WxCpXmlOutMessage outMessage = this.route(1000002, inMessage); - if (outMessage == null) { - return ""; - } - - String out = outMessage.toEncryptedXml(wxCpService.getWxCpConfigStorage()); - log.debug("\n组装回复信息:{}", out); - return out; - } - - private WxCpXmlOutMessage route(Integer agentId, WxCpXmlMessage message) { - try { - return WxCpConfiguration.getRouters().get(agentId).route(message); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return null; - } - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java deleted file mode 100644 index 4ce348dd..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 翻唱对象 - * - * @author NSL - * @date 2024-12-25 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_cover") -public class Cover extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; - - @TableId(value = "id") - private Long id; - /** - * 歌曲名称 - */ - private String coverMusicName; - /** - * 歌曲地址 - */ - private String coverMusicUrl; - /** - * 歌手性别 枚举 FEMALE 女性 MALE 男性 - */ - private String coverSingerGender; - /** - * 歌手姓名 - */ - private String coverSingerName; - /** - * 用户性别 FEMALE MALE - */ - private String userGender; - /** - * 用户id - */ - private Long userId; - /** - * 本次消费金额 - */ - private String cost; - /** - * 翻唱后的URL - */ - private String coverUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java deleted file mode 100644 index b44b9381..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 翻唱用户参考音频对象 - * - * @author NSL - * @since 2024-12-25 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_cover_prompt_audio") -public class CoverPromptAudio extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; - - @TableId(value = "id") - private Long id; - /** - * 翻唱主表id - */ - private Long coverId; - /** - * 用户id - */ - private Long userId; - /** - * 参考音频 - */ - private String promptAudioUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java deleted file mode 100644 index 3897e86d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.domain; - -import lombok.Data; - -/** - * 描述:文生视频请求对象 - * - * @author ageerle@163.com - * date 2024/6/27 - */ -@Data -public class GenerateLuma { - - private String aspect_ratio; - - private boolean expand_prompt; - - private String image_url; - - private String user_prompt; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java deleted file mode 100644 index 9a3f67d6..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ruoyi.system.domain; - -import lombok.Data; - -/** - * 描述:生成歌词 - * - * @author ageerle@163.com - * date 2024/6/27 - */ -@Data -public class GenerateLyric { - - /** - * 歌词提示词 - */ - private String prompt; - - /** - * 回调地址 - */ - private String notify_hook; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java deleted file mode 100644 index 83940106..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.ruoyi.system.domain; - - -import lombok.Data; - -import java.io.Serializable; - -/** - * @author WangLe - */ -@Data -public class GenerateSuno implements Serializable { - - /** - * 歌词 (自定义模式专用) - */ - private String prompt; - - /** - * mv模型,chirp-v3-0、chirp-v3-5。不写默认 chirp-v3-0 - */ - private String mv; - - /** - * 标题(自定义模式专用) - */ - private String title; - - /** - * 风格标签(自定义模式专用) - */ - private String tags; - - /** - * 是否生成纯音乐,true 为生成纯音乐 - */ - private boolean make_instrumental; - - /** - * 任务id,用于对之前的任务再操作 - */ - private String task_id; - - /** - * float,歌曲延长时间,单位秒 - */ - private int continue_at; - - /** - * 歌曲id,需要续写哪首歌 - */ - private String continue_clip_id; - - /** - * 灵感模式提示词(灵感模式专用) - */ - private String gpt_description_prompt; - - /** - * 回调地址 - */ - private String notify_hook; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java deleted file mode 100644 index 6f50b36e..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - -import java.io.Serial; - -/** - * 支付订单对象 payment_orders - * - * @author Lion Li - * @date 2024-04-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_pay_order") -public class PaymentOrder extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 订单编号 - */ - private String orderNo; - - /** - * 订单名称 - */ - private String orderName; - - /** - * 金额 - */ - private BigDecimal amount; - - /** - * 支付状态 - */ - private String paymentStatus; - - /** - * 支付方式 - */ - private String paymentMethod; - - /** - * 用户ID - */ - private Long userId; - - /** - * 备注 - */ - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java deleted file mode 100644 index 789bca26..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.ruoyi.system.domain; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 系统模型对象 sys_model - * - * @author Lion Li - * @date 2024-04-04 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_model") -public class SysModel extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 模型分类 - */ - @ExcelProperty(value = "模型分类") - private String category; - - /** - * 模型名称 - */ - private String modelName; - - /** - * 模型描述 - */ - private String modelDescribe; - - /** - * 模型价格 - */ - private double modelPrice; - - /** - * 计费类型 - */ - private String modelType; - - /** - * 是否显示 - */ - private String modelShow; - - - /** - * 系统提示词 - */ - private String systemPrompt; - - /** - * 请求地址 - */ - private String apiHost; - - /** - * 密钥 - */ - private String apiKey; - - /** - * 备注 - */ - private String remark; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java deleted file mode 100644 index 5bfbe80f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; -import java.math.BigDecimal; - -/** - * 套餐管理对象 sys_package_plan - * - * @author Lion Li - * @date 2024-05-05 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_package_plan") -public class SysPackagePlan extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 套餐名称 - */ - private String name; - - /** - * 套餐价格 - */ - private BigDecimal price; - - /** - * 有效时间 - */ - private Long duration; - - /** - * 计划详情 - */ - private String planDetail; - - /** - * 备注 - */ - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java deleted file mode 100644 index b75abf8f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.tenant.core.TenantEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 sys_user_group - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("sys_user_group") -public class SysUserGroup extends TenantEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 用户组名称 - */ - private String groupName; - - /** - * 备注 - */ - private String remark; - - /** - * 版本 - */ - @Version - private Long version; - - /** - * 删除标志(0代表存在 1代表删除) - */ - @TableLogic - private String delFlag; - - /** - * 更新IP - */ - private String updateIp; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java deleted file mode 100644 index 751a1e62..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 sys_user_model - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("sys_user_model") -public class SysUserModel extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(value = "id") - private Long id; - - /** - * 模型id - */ - private Long mid; - - /** - * 用户组id - */ - private Long gid; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java deleted file mode 100644 index 5a4dbe6f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 wx_rob_keyword - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wx_rob_keyword") -public class WxRobKeyword extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @TableId(value = "id") - private Long id; - - /** - * 机器唯一码 - */ - private String uniqueKey; - - /** - * 关键词 - */ - private String keyData; - - /** - * 回复内容 - */ - private String valueData; - - /** - * 回复类型 - */ - private String typeData; - - /** - * 目标昵称 - */ - private String nickName; - - /** - * 群1好友0 - */ - private Integer toGroup; - - /** - * 启用1禁用0 - */ - private Integer enable; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java deleted file mode 100644 index e67c40c9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 wx_rob_relation - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wx_rob_relation") -public class WxRobRelation extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @TableId(value = "id") - private Long id; - - /** - * 外接唯一码 - */ - private String outKey; - - /** - * 机器唯一码 - */ - private String uniqueKey; - - /** - * 目标昵称 - */ - private String nickName; - - /** - * 群1好友0 - */ - private Integer toGroup; - - /** - * 启用1禁用0 - */ - private Integer enable; - - /** - * IP白名单 - */ - private String whiteList; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java deleted file mode 100644 index e49de79a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.PaymentOrder; - -import java.math.BigDecimal; - -/** - * 支付订单业务对象 payment_orders - * - * @author Lion Li - * @date 2024-04-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = PaymentOrder.class, reverseConvertGenerate = false) -public class PaymentOrdersBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 订单编号 - */ - @NotBlank(message = "订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) - private String orderNo; - - /** - * 订单名称 - */ - @NotBlank(message = "订单名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String orderName; - - /** - * 金额 - */ - @NotNull(message = "金额不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal amount; - - /** - * 支付状态 - */ - @NotBlank(message = "支付状态不能为空", groups = { AddGroup.class, EditGroup.class }) - private String paymentStatus; - - /** - * 支付方式 - */ - @NotBlank(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class }) - private String paymentMethod; - - /** - * 用户ID - */ - @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long userId; - - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java deleted file mode 100644 index 6b0a160c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.SysModel; - -/** - * 系统模型业务对象 sys_model - * - * @author Lion Li - * @date 2024-04-04 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysModel.class, reverseConvertGenerate = false) -public class SysModelBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 模型分类 - */ - @ExcelProperty(value = "模型分类") - private String category; - - /** - * 模型名称 - */ - @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String modelName; - - - /** - * 模型描述 - */ - @NotBlank(message = "模型描述不能为空", groups = { AddGroup.class, EditGroup.class }) - private String modelDescribe; - - /** - * 模型价格 - */ - @NotNull(message = "模型价格不能为空", groups = { AddGroup.class, EditGroup.class }) - private double modelPrice; - - /** - * 计费类型 (1 token扣费; 2 次数扣费 ) - */ - @NotBlank(message = "计费类型不能为空", groups = { AddGroup.class, EditGroup.class }) - private String modelType; - - /** - * 模型状态 (0 显示; 1 隐藏 ) - */ - private String modelShow; - - - /** - * 系统提示词 - */ - private String systemPrompt; - - /** - * 请求地址 - */ - private String apiHost; - - /** - * 请求密钥 - */ - private String apiKey; - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java deleted file mode 100644 index 44f182b2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.SysPackagePlan; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; -import java.math.BigDecimal; - -/** - * 套餐管理业务对象 sys_package_plan - * - * @author Lion Li - * @date 2024-05-05 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysPackagePlan.class, reverseConvertGenerate = false) -public class SysPackagePlanBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 套餐名称 - */ - @NotBlank(message = "套餐名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String name; - - /** - * 套餐价格 - */ - @NotNull(message = "套餐价格不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal price; - - /** - * 有效时间 - */ - @NotNull(message = "有效时间不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long duration; - - /** - * 计划详情 - */ - @NotBlank(message = "计划详情不能为空", groups = { AddGroup.class, EditGroup.class }) - private String planDetail; - - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java deleted file mode 100644 index 4d773559..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.SysUserGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; - -/** - * 【请填写功能名称】业务对象 sys_user_group - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysUserGroup.class, reverseConvertGenerate = false) -public class SysUserGroupBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 用户组名称 - */ - @NotBlank(message = "用户组名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String groupName; - - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - /** - * 更新IP - */ - @NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class }) - private String updateIp; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java deleted file mode 100644 index 5c77edb2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.SysUserModel; - -/** - * 【请填写功能名称】业务对象 sys_user_model - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysUserModel.class, reverseConvertGenerate = false) -public class SysUserModelBo extends BaseEntity { - - /** - * id - */ - @NotNull(message = "id不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 模型id - */ - @NotNull(message = "模型id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long mid; - - /** - * 用户组id - */ - @NotNull(message = "用户组id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long gid; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java deleted file mode 100644 index ea8018a6..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.WxRobConfig; - -/** - * 微信机器人业务对象 wx_rob_config - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = WxRobConfig.class, reverseConvertGenerate = false) -public class WxRobConfigBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 用户id - */ - private Long userId; - - /** - * 机器人名称 - */ - private String botName; - - /** - * 机器唯一码 - */ - private String uniqueKey; - - /** - * 默认好友回复开关 - */ - private String defaultFriend; - - /** - * 默认群回复开关 - */ - private String defaultGroup; - - /** - * 机器启用1禁用0 - */ - private String enable; - - /** - * 备注 - */ - private String remark; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java deleted file mode 100644 index 262bb8d0..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.WxRobKeyword; - -/** - * 【请填写功能名称】业务对象 wx_rob_keyword - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = WxRobKeyword.class, reverseConvertGenerate = false) -public class WxRobKeywordBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 机器唯一码 - */ - @NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String uniqueKey; - - /** - * 关键词 - */ - @NotBlank(message = "关键词不能为空", groups = { AddGroup.class, EditGroup.class }) - private String keyData; - - /** - * 回复内容 - */ - @NotBlank(message = "回复内容不能为空", groups = { AddGroup.class, EditGroup.class }) - private String valueData; - - /** - * 回复类型 - */ - @NotBlank(message = "回复类型不能为空", groups = { AddGroup.class, EditGroup.class }) - private String typeData; - - /** - * 目标昵称 - */ - @NotBlank(message = "目标昵称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String nickName; - - /** - * 群1好友0 - */ - @NotNull(message = "群1好友0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @NotNull(message = "启用1禁用0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer enable; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java deleted file mode 100644 index 56e95693..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.WxRobRelation; - -/** - * 【请填写功能名称】业务对象 wx_rob_relation - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = WxRobRelation.class, reverseConvertGenerate = false) -public class WxRobRelationBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 外接唯一码 - */ - @NotBlank(message = "外接唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String outKey; - - /** - * 机器唯一码 - */ - @NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String uniqueKey; - - /** - * 目标昵称 - */ - @NotBlank(message = "目标昵称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String nickName; - - /** - * 群1好友0 - */ - @NotNull(message = "群1好友0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @NotNull(message = "启用1禁用0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer enable; - - /** - * IP白名单 - */ - @NotBlank(message = "IP白名单不能为空", groups = { AddGroup.class, EditGroup.class }) - private String whiteList; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java deleted file mode 100644 index 1dc6bf6d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.ruoyi.system.domain.model; - -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@Getter -@Setter -public class ApiResult { - private Integer code; - private String message; - private Object data; - - public ApiResult() { - } - - public ApiResult(Integer code, String message) { - this.code = code; - this.message = message; - } - - public ApiResult(Integer code, String message, Object data) { - this.code = code; - this.message = message; - this.data = data; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java deleted file mode 100644 index 3cd2b896..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain.model; - -import lombok.Data; - -@Data -public class ReceiveMessage { - /** - * 开发者微信号 - */ - private String toUserName; - /** - * 发送方账号(一个openid) - */ - private String fromUserName; - /** - * 消息创建时间(整形) - */ - private String createTime; - /** - * 消息类型 - */ - private String msgType; - /** - * 文本消息内容 - */ - private String content; - /** - * 消息ID 64位 - */ - String msgId; - /** - * 消息的数据ID 消息来自文章才有 - */ - private String msgDataId; - /** - * 多图文时第几篇文章,从1开始 消息如果来自文章才有 - */ - private String idx; - /** - * 订阅事件 subscribe 订阅 unsbscribe 取消订阅 - */ - private String event; - /** - * 扫码 - ticket - */ - private String ticket; - - public String getReplyTextMsg(String msg) { - String xml = "\n" - + " \n" - + " \n" - + " " + System.currentTimeMillis() + "\n" - + " \n" - + " \n" - + " "; - return xml; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java deleted file mode 100644 index 2ce61621..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ruoyi.system.domain.model; - -import lombok.Data; - -/** - * @author https://www.wdbyte.com - */ -@Data -public class WeixinQrCode { - - private String ticket; - private Long expireSeconds; - private String url; - private String qrCodeUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java deleted file mode 100644 index ae4a4beb..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.PaymentOrder; - -import java.io.Serial; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - - -/** - * 支付订单视图对象 payment_orders - * - * @author Lion Li - * @date 2024-04-16 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = PaymentOrder.class) -public class PaymentOrdersVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 订单编号 - */ - @ExcelProperty(value = "订单编号") - private String orderNo; - - /** - * 订单名称 - */ - @ExcelProperty(value = "订单名称") - private String orderName; - - /** - * 金额 - */ - @ExcelProperty(value = "金额") - private BigDecimal amount; - - /** - * 支付状态 - */ - @ExcelProperty(value = "支付状态") - private String paymentStatus; - - /** - * 支付方式 - */ - @ExcelProperty(value = "支付方式") - private String paymentMethod; - - /** - * 用户ID - */ - @ExcelProperty(value = "用户ID") - private Long userId; - - /** - * 用户ID - */ - @ExcelProperty(value = "用户名称") - private String userName; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 二维码网络地址 - */ - private String url; - - /** - * 创建时间 - */ - private Date createTime; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java deleted file mode 100644 index 630fce08..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.common.sensitive.annotation.Sensitive; -import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.system.domain.SysModel; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 系统模型视图对象 sys_model - * - * @author Lion Li - * @date 2024-04-04 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysModel.class) -public class SysModelVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 模型分类 - */ - @ExcelProperty(value = "模型分类") - private String category; - - /** - * 模型名称 - */ - @ExcelProperty(value = "模型名称") - private String modelName; - - - /** - * 模型描述 - */ - @ExcelProperty(value = "模型描述") - private String modelDescribe; - - /** - * 模型价格 - */ - @ExcelProperty(value = "模型价格") - private double modelPrice; - - /** - * 计费类型 - */ - @ExcelProperty(value = "计费类型") - private String modelType; - - /** - * 是否显示 - */ - private String modelShow; - - - /** - * 系统提示词 - */ - private String systemPrompt; - - /** - * 请求地址 - */ - private String apiHost; - - /** - * 模型名称 - */ - @Sensitive(strategy = SensitiveStrategy.ID_CARD) - private String apiKey; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java deleted file mode 100644 index 5ae53f6b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import java.math.BigDecimal; -import org.ruoyi.system.domain.SysPackagePlan; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 套餐管理视图对象 sys_package_plan - * - * @author Lion Li - * @date 2024-05-05 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysPackagePlan.class) -public class SysPackagePlanVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 套餐名称 - */ - @ExcelProperty(value = "套餐名称") - private String name; - - /** - * 套餐价格 - */ - @ExcelProperty(value = "套餐价格") - private BigDecimal price; - - /** - * 有效时间 - */ - @ExcelProperty(value = "有效时间") - private Long duration; - - /** - * 计划详情 - */ - @ExcelProperty(value = "计划详情") - private String planDetail; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java deleted file mode 100644 index 5dd8dd2f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import org.ruoyi.system.domain.SysUserGroup; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 【请填写功能名称】视图对象 sys_user_group - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysUserGroup.class) -public class SysUserGroupVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 用户组名称 - */ - @ExcelProperty(value = "用户组名称") - private String groupName; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 更新IP - */ - @ExcelProperty(value = "更新IP") - private String updateIp; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java deleted file mode 100644 index 58d1b429..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.WxRobKeyword; - -import java.io.Serial; -import java.io.Serializable; - - - -/** - * 【请填写功能名称】视图对象 wx_rob_keyword - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = WxRobKeyword.class) -public class WxRobKeywordVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @ExcelProperty(value = "") - private Long id; - - /** - * 机器唯一码 - */ - @ExcelProperty(value = "机器唯一码") - private String uniqueKey; - - /** - * 关键词 - */ - @ExcelProperty(value = "关键词") - private String keyData; - - /** - * 回复内容 - */ - @ExcelProperty(value = "回复内容") - private String valueData; - - /** - * 回复类型 - */ - @ExcelProperty(value = "回复类型") - private String typeData; - - /** - * 目标昵称 - */ - @ExcelProperty(value = "目标昵称") - private String nickName; - - /** - * 群1好友0 - */ - @ExcelProperty(value = "群1好友0") - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @ExcelProperty(value = "启用1禁用0") - private Integer enable; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java deleted file mode 100644 index c71a0e6c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.WxRobRelation; - -import java.io.Serial; -import java.io.Serializable; - - - -/** - * 【请填写功能名称】视图对象 wx_rob_relation - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = WxRobRelation.class) -public class WxRobRelationVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @ExcelProperty(value = "") - private Long id; - - /** - * 外接唯一码 - */ - @ExcelProperty(value = "外接唯一码") - private String outKey; - - /** - * 机器唯一码 - */ - @ExcelProperty(value = "机器唯一码") - private String uniqueKey; - - /** - * 目标昵称 - */ - @ExcelProperty(value = "目标昵称") - private String nickName; - - /** - * 群1好友0 - */ - @ExcelProperty(value = "群1好友0") - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @ExcelProperty(value = "启用1禁用0") - private Integer enable; - - /** - * IP白名单 - */ - @ExcelProperty(value = "IP白名单") - private String whiteList; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java deleted file mode 100644 index fe0cc46d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import lombok.Data; - -/** - * 翻唱回调VO - * - * @author NSL - * @since 2024-12-26 - */ -@Data -public class CoverCallbackVo { - /** 本次请求的订单号 */ - private String orderId; - - /** 用户ID */ - private String userId; - - /** 本次消费金额 */ - private String cost; - - /** 翻唱后的URL */ - private String coverUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java deleted file mode 100644 index b07909ea..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import com.alibaba.excel.annotation.ExcelProperty; -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -/** - * 翻唱歌曲入参 - * - * @author NSL - * @since 2024-12-25 - */ -@Data -public class CoverParamVo implements Serializable { - - /** - * 歌曲名称 - */ - @ExcelProperty(value = "歌曲名称") - private String coverMusicName; - /** - * 歌曲地址 - */ - @ExcelProperty(value = "歌曲地址") - private String coverMusicUrl; - /** - * 歌手性别 枚举 FEMALE 女性 MALE 男性 - */ - @ExcelProperty(value = "歌手性别") - private String coverSingerGender; - /** - * 歌手姓名 - */ - @ExcelProperty(value = "歌手姓名") - private String coverSingerName; - /** - * 参考音频:用户首次翻唱,必填;第二次及之后翻唱:若为空则沿用最近一次参考音频训练模型,若不为空则使用该参考音频训练模型。 - * 可多传 - */ - @ExcelProperty(value = "参考音频") - private List promptAudioUrl; - /** - * 用户性别 FEMALE MALE - */ - @ExcelProperty(value = "用户性别") - private String userGender; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private String userId; - - /** - * 业务主键id - */ - @ExcelProperty(value = "业务主键id") - private String orderId; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java deleted file mode 100644 index c6d554ef..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.Cover; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 翻唱用户参考音频视图对象 - * - * @author NSL - * @since 2024-12-25 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = Cover.class) -public class CoverPromptAudioVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ExcelProperty(value = "id") - private Long id; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - /** - * 翻唱主表id - */ - @ExcelProperty(value = "翻唱主表id") - private Long coverId; - /** - * 翻唱后的URL - */ - @ExcelProperty(value = "参考音频") - private String promptAudioUrl; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java deleted file mode 100644 index cffb757c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.Cover; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 翻唱视图对象 - * - * @author NSL - * @date 2024-12-25 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = Cover.class) -public class CoverVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ExcelProperty(value = "id") - private Long id; - /** - * 歌曲名称 - */ - @ExcelProperty(value = "歌曲名称") - private String coverMusicName; - /** - * 歌曲地址 - */ - @ExcelProperty(value = "歌曲地址") - private String coverMusicUrl; - /** - * 歌手性别 枚举 FEMALE 女性 MALE 男性 - */ - @ExcelProperty(value = "歌手性别") - private String coverSingerGender; - /** - * 歌手姓名 - */ - @ExcelProperty(value = "歌手姓名") - private String coverSingerName; - /** - * 用户性别 FEMALE MALE - */ - @ExcelProperty(value = "用户性别") - private String userGender; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - /** - * 本次消费金额 - */ - @ExcelProperty(value = "本次消费金额") - private String cost; - /** - * 翻唱后的URL - */ - @ExcelProperty(value = "翻唱后的URL") - private String coverUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java deleted file mode 100644 index 5d960949..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import lombok.Data; - -/** - * @author NSL - * @since 2024-12-25 - */ -@Data -public class MusicVo { - /** - * 歌曲名称 - */ - private String musicName; - - /** - * 音乐地址 - */ - private String mp3Url; - - /** - * 歌曲图片 - */ - private String pic; - - /** - * 歌手或乐队名 - */ - private String singerName; - - /** - * 歌手性别 - */ - private String singerGender; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java deleted file mode 100644 index cda01155..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 查询所有PPT列表查询参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptAllQueryDto { - // 分页 - private Integer page; - // 每页大小(最大不超过100) - private Integer size; - // ppt id(非必填) - private String id; - // 第三方用户ID(非必填) - private String uid; - // 模板ID(非必填) - private String templateId; - // 创建开始时间(非必填) - private String startDate; - // 创建结束时间(非必填) - private String endDate; - // 按时间倒序返回(非必填) - private boolean desc; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java deleted file mode 100644 index 82bc517b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 生成大纲内容参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptGenerateContentDto { - // 模板ID(非必填) - private String templateId; - - // 大纲 markdown 文本 - private String outlineMarkdown; - - // 异步生成PPT(这里必须为 true 才会流式生成) - private boolean asyncGenPptx = false; - - // 用户要求 - private String prompt; - - // 文件数据url,调用解析文件内容接口返回 - private String dataUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java deleted file mode 100644 index bb547544..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 生成PPT大纲参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptGenerateOutlineDto { - // 是否流式生成(默认流式) - private boolean stream = true; - // 篇幅长度:short/medium/long, 默认 medium, 分别对应: 10-15页/20-30页/25-35页 - private String length = "medium"; - // 语言: zh/zh-Hant/en/ja/ko/ar/de/fr/it/pt/es/ru - private String lang; - // 用户要求(小于50字) - private String prompt; - // 方式一:通过主题创建 主题(与dataUrl可同时存在) - private String subject; - // 方式二:通过文件内容创建 文件数据url,通过解析文件内容接口返回(与subject可同时存在) - private String dataUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java deleted file mode 100644 index 427e9d66..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 生成PPT参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptGeneratePptxDto { - // 模板ID(非必填) - private String templateId; - - // 是否返回PPT数据结构 - private boolean pptxProperty; - - // 大纲内容markdown - private String outlineContentMarkdown; - - // 备注(PPT页面备注,非必填,数组 ["内容页面一备注", "内容页面二备注"]) - private String notes; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java deleted file mode 100644 index 2c441462..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * PPT模板筛选查询参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptTemplateFilterDto { - // 模板类型(必传):1系统模板、4用户自定义模板 - private Integer type; - - // 类目筛选 ['年终总结', '教育培训', '医学医疗', '商业计划书', '企业介绍', '毕业答辩', '营销推广', '晚会表彰', '个人简历'] - private String category; - - // 风格筛选 ['扁平简约', '商务科技', '文艺清新', '卡通手绘', '中国风', '创意时尚', '创意趣味'] - private String style; - - // 主题颜色筛选 ['#FA920A', '#589AFD', '#7664FA', '#65E5EC', '#61D328', '#F5FD59', '#E05757', '#8F5A0B', '#FFFFFF', '#000000'] - private String themeColor; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java deleted file mode 100644 index c2199849..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 分页查询 PPT 模板查询参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptTemplateQueryDto { - // 分页 - private Integer page; - // 每页大小(最大不超过100) - private Integer size; - // 模型筛选参数 - private PptTemplateFilterDto filters; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java deleted file mode 100644 index 26936ed1..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java +++ /dev/null @@ -1,230 +0,0 @@ -package org.ruoyi.system.handler; - -import com.jfinal.kit.PropKit; -import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.entity.chat.ChatCompletion; -import org.ruoyi.common.chat.entity.images.Item; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; -import org.ruoyi.common.wechat.web.constant.ConfigKeys; -import org.ruoyi.common.wechat.web.model.WxRobConfig; -import org.ruoyi.common.wechat.web.model.WxRobKeyword; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.service.ISseService; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; -import java.util.List; -import java.util.regex.Matcher; - -/** - * 消息处理实现 默认方案 - * @author WesleyOne - * @create 2018/12/11 - */ -public class MyMsgHandler implements IMsgHandlerFace,LogInterface { - private String uniqueKey; - private final ISseService sseService; - private WxRobConfigVo robConfigVo; - - public MyMsgHandler(String uniqueKey,ISseService sseService,WxRobConfigVo robConfigVo){ - this.uniqueKey = uniqueKey; - this.sseService = sseService; - this.robConfigVo = robConfigVo; - } - - private String getDownloadPath(String fileName) { - String download_path = PropKit.get("download_path"); - return download_path+ File.separator + uniqueKey +File.separator + fileName; - } - - @Override - public void textMsgHandle(BaseMsg msg) { - String fromNickName = msg.getFromNickName(); - String fromUserName = msg.getFromUserName(); - boolean groupMsg = msg.isGroupMsg(); - String text = msg.getText().trim(); - - if (groupMsg && text.contains("@" + fromNickName)) { - handleGroupMessage(fromNickName, fromUserName, text); - } else { - respondWithChatGPT(fromUserName, text); - } - } - - private void handleGroupMessage(String fromNickName, String fromUserName, String text) { - String prompt = text.replace("@" + fromNickName + " ", ""); - if (prompt.startsWith("画")) { - generateAndSendImage(fromUserName, prompt.replaceFirst("画 ", "")); - } else { - respondWithChatGPT(fromUserName, prompt); - } - } - - private void generateAndSendImage(String fromUserName, String prompt) { - List items = sseService.wxDall(prompt,robConfigVo.getUserId().toString()); - WxRobKeyword robKeyword = new WxRobKeyword(); - robKeyword.setTypeData(SendMsgType.IMG.toValue()); - robKeyword.setValueData(items.get(0).getUrl()); - sendDataByType(fromUserName, robKeyword); - } - - - - private void respondWithChatGPT(String fromUserName, String prompt) { - ChatRequest chatBO = new ChatRequest(); - //chatBO.setPrompt(prompt); - chatBO.setModel(ChatCompletion.Model.GPT_3_5_TURBO.getName()); - String chat = sseService.chat(chatBO,robConfigVo.getUserId().toString()); - WxRobKeyword robKeyword = new WxRobKeyword(); - robKeyword.setTypeData(SendMsgType.TEXT.toValue()); - robKeyword.setValueData(chat); - sendDataByType(fromUserName, robKeyword); - } - - private boolean sendDataByType(String fromUserName, WxRobKeyword robKeyword) { - String data; - String type; - if (robKeyword != null){ - data = robKeyword.getValueData(); - type = robKeyword.getTypeData(); - CoreManage.addSendMsg4UserName(uniqueKey,fromUserName,data,SendMsgType.fromValue(type)); - return true; - } - return false; - } - - - @Override - public void sysMsgHandle(BaseMsg msg) { - String fromNickName = msg.getFromNickName(); - String fromUserName = msg.getFromUserName(); - boolean groupMsg = msg.isGroupMsg(); - - /** - * 群里的新人进群消息处理 - * 优先发专门这个群的欢迎词 - * 没有发通用的 - * 欢迎词内容实质就是在最前面加上@昵称\n - * - * 欢迎词的关键字 - * @see ConfigKeys#DEAFAULT_WELCOME - */ - - // 解析新人名字 - String text = msg.getContent(); - String newNickName = ""; - Matcher matcher = CommonTools.getMatcher("邀请\"(.+?)\"加入了群聊", text); - if (matcher.find()){ - newNickName = matcher.group(1); - }else{ - matcher = CommonTools.getMatcher("\"(.+?)\"通过扫描(.+?)分享的二维码加入群聊", text); - if (matcher.find()){ - newNickName = matcher.group(1); - } - } - - if (StringUtils.isNotEmpty(newNickName)){ - - WxRobConfig robConfig = WxRobConfig.dao.findFirst("SELECT * FROM wx_rob_config WHERE unique_key = ? LIMIT 1", uniqueKey); - if(robConfig != null && robConfig.getEnable()){ - // 判断是否要回复 - boolean isOpen = false; - // 判断是群聊的话是否允许回复 昵称关键字 - if (robConfig.getToGroup() && groupMsg){ - isOpen = true; - } - if (isOpen){ - WxRobKeyword robKeyword = WxRobKeyword.dao.findFirst("SELECT * FROM wx_rob_keyword WHERE unique_key = ? AND key_data = ? AND nick_name = ? AND enable = 1 AND to_group = ? ORDER BY id DESC LIMIT 1", uniqueKey, ConfigKeys.DEAFAULT_WELCOME,fromNickName,msg.isGroupMsg()?1:0); - if (sendSysWelcomeMsg(fromUserName, newNickName, robKeyword)){ return;} - } - - // 没有专门的关键字,则使用默认关键字 - isOpen = false; - // 判断是群聊的话是否允许回复 昵称关键字 - if (robConfig.getDefaultGroup() && groupMsg){ - isOpen = true; - } - if (isOpen){ - WxRobKeyword defaultRobKeyword = WxRobKeyword.dao.findFirst("SELECT * FROM wx_rob_keyword WHERE unique_key = ? AND key_data = ? AND nick_name = ? AND enable = 1 AND to_group = ? ORDER BY id DESC LIMIT 1", uniqueKey, ConfigKeys.DEAFAULT_WELCOME, ConfigKeys.DEAFAULT_KEYWORD,msg.isGroupMsg()?1:0); - if (sendSysWelcomeMsg(fromUserName, newNickName, defaultRobKeyword)){ return;} - } - } - } - - } - - /** - * 发送欢迎内容 - * @param fromUserName - * @param newNickName - * @param robKeyword - * @return - */ - private boolean sendSysWelcomeMsg(String fromUserName, String newNickName, WxRobKeyword robKeyword) { - if (robKeyword != null){ - if (robKeyword.getTypeData().equals(SendMsgType.TEXT.toValue())){ - robKeyword.setValueData(String.format("@%s\n%s",newNickName,robKeyword.getValueData())); - } - if (sendDataByType(fromUserName, robKeyword)) { - return true; - } - } - return false; - } - - @Override - public void picMsgHandle(BaseMsg msg) { -// // 这里使用收到图片的时间作为文件名 -// String fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".jpg"; -// // 保存图片的路径 -// String picPath = getDownloadPath(fileName); -// // 调用此方法来保存图片 -// DownloadTools.getDownloadFn(msg, MsgTypeEnum.PIC.getType(), picPath, this.uniqueKey); -// CoreManage.addSendMsg4UserName(uniqueKey,msg.getFromUserName(),"图片保存成功",SendMsgType.TEXT); - return; - } - - @Override - public void voiceMsgHandle(BaseMsg msg) { -// // 这里使用收到语音的时间作为文件名 -// String fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".mp3"; -// // 保存语音的路径 -// String voicePath = getDownloadPath(fileName); -// // 调用此方法来保存语音 -// DownloadTools.getDownloadFn(msg, MsgTypeEnum.VOICE.getType(), voicePath, this.uniqueKey); -// CoreManage.addSendMsg4UserName(uniqueKey,msg.getFromUserName(),"声音保存成功",SendMsgType.TEXT); - return; - } - - @Override - public void videoMsgHandle(BaseMsg msg) { -// // 这里使用收到小视频的时间作为文件名 -// String fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".mp4"; -// // 保存小视频的路径 -// String viedoPath = getDownloadPath(fileName); -// // 调用此方法来保存小视频 -// DownloadTools.getDownloadFn(msg, MsgTypeEnum.VIEDO.getType(), viedoPath,this.uniqueKey); -// CoreManage.addSendMsg4UserName(uniqueKey,msg.getFromUserName(),"视频保存成功",SendMsgType.TEXT); - return; - } - - @Override - public void nameCardMsgHandle(BaseMsg msg) { - return ; - } - - @Override - public void verifyAddFriendMsgHandle(BaseMsg msg) { - return ; - } - - @Override - public void mediaMsgHandle(BaseMsg msg) { - return ; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java deleted file mode 100644 index fa2ad943..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import me.chanjar.weixin.cp.message.WxCpMessageHandler; - -/** - * @author Binary Wang - */ -public abstract class AbstractHandler implements WxCpMessageHandler { -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java deleted file mode 100644 index 7beb8200..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.common.core.utils.JsonUtils; -import org.ruoyi.system.builder.TextBuilder; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 通讯录变更事件处理器. - * - * @author Binary Wang - */ -@Slf4j -@Component -public class ContactChangeHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - String content = "收到通讯录变更事件,内容:" + JsonUtils.toJson(wxMessage); - log.info(content); - - return new TextBuilder().build(content, wxMessage, cpService); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java deleted file mode 100644 index 82806aac..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; - -import java.util.Map; - -/** - *
- *
- * Created by Binary Wang on 2018/8/27.
- * 
- * - * @author Binary Wang - */ -@Slf4j -public class EnterAgentHandler extends AbstractHandler { - private static final int TEST_AGENT = 1000002; - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService wxCpService, WxSessionManager sessionManager) throws WxErrorException { - // do something - return null; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java deleted file mode 100644 index 45696171..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.system.builder.TextBuilder; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class LocationHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.LOCATION)) { - //TODO 接收处理用户发送的地理位置消息 - try { - String content = "感谢反馈,您的的地理位置已收到!"; - return new TextBuilder().build(content, wxMessage, null); - } catch (Exception e) { - log.error("位置消息接收处理失败", e); - return null; - } - } - - //上报地理位置事件 - log.info("\n上报地理位置,纬度 : {}\n经度 : {}\n精度 : {}", - wxMessage.getLatitude(), wxMessage.getLongitude(), String.valueOf(wxMessage.getPrecision())); - - //TODO 可以将用户地理位置信息保存到本地数据库,以便以后使用 - - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java deleted file mode 100644 index af32e160..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.common.core.utils.JsonUtils; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class LogHandler extends AbstractHandler { - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - log.info("\n接收到请求消息,内容:{}", JsonUtils.toJson(wxMessage)); - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java deleted file mode 100644 index fe4617de..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import me.chanjar.weixin.common.api.WxConsts.MenuButtonType; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Component -public class MenuHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - - String msg = String.format("type:%s, event:%s, key:%s", - wxMessage.getMsgType(), wxMessage.getEvent(), - wxMessage.getEventKey()); - if (MenuButtonType.VIEW.equals(wxMessage.getEvent())) { - return null; - } - - return WxCpXmlOutMessage.TEXT().content(msg) - .fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()) - .build(); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java deleted file mode 100644 index b52a628f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.RequiredArgsConstructor; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.system.builder.TextBuilder; -import org.ruoyi.system.service.ISseService; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Component -@RequiredArgsConstructor -public class MsgHandler extends AbstractHandler { - -// private final ISseService sseService; - - - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - final String msgType = wxMessage.getMsgType(); - if (msgType == null) { - // 如果msgType没有,就自己根据具体报文内容做处理 - } - - if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) { - //TODO 可以选择将消息保存到本地 - } - - //TODO 组装回复消息 - String content = ""; - //sseService.wxCpChat(wxMessage.getContent()); - - return new TextBuilder().build(content, wxMessage, cpService); - - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java deleted file mode 100644 index b755444a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Component -public class NullHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java deleted file mode 100644 index 8a797a1d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -/** - * @author Binary Wang - */ -public abstract class ScanHandler extends AbstractHandler { - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java deleted file mode 100644 index 6146c004..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.WxCpUser; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.system.builder.TextBuilder; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class SubscribeHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) throws WxErrorException { - - log.info("新关注用户 OPENID: " + wxMessage.getFromUserName()); - - // 获取微信用户基本信息 - WxCpUser userWxInfo = cpService.getUserService().getById(wxMessage.getFromUserName()); - - if (userWxInfo != null) { - // TODO 可以添加关注用户到本地 - } - - WxCpXmlOutMessage responseResult = null; - try { - responseResult = handleSpecial(wxMessage); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - if (responseResult != null) { - return responseResult; - } - - try { - return new TextBuilder().build("感谢关注", wxMessage, cpService); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return null; - } - - /** - * 处理特殊请求,比如如果是扫码进来的,可以做相应处理 - */ - private WxCpXmlOutMessage handleSpecial(WxCpXmlMessage wxMessage) { - //TODO - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java deleted file mode 100644 index b89713f2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class UnsubscribeHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - String openId = wxMessage.getFromUserName(); - log.info("取消关注用户 OPENID: " + openId); - // TODO 可以更新本地数据库为取消关注状态 - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/CustomerBigDecimalSerialize.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/CustomerBigDecimalSerialize.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/CustomerBigDecimalSerialize.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/CustomerBigDecimalSerialize.java index d6996e43..26beb91a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/CustomerBigDecimalSerialize.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/CustomerBigDecimalSerialize.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.handler; +package org.ruoyi.system.listener; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java deleted file mode 100644 index d6a85191..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.request; - -import lombok.Data; - -/** - * 描述: - * - * @author ageerle@163.com - * date 2024/4/27 - */ -@Data -public class RoleListDto { - - private String name; - - private String description; - - private String voicesId; - - private String avatar; - - private String previewAudio; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java deleted file mode 100644 index d77b1e97..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.ruoyi.system.request; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class RoleRequest { - - /** - * 角色名称 - */ - private String name; - - /** - * 角色默认风格音频样本,base64 编码的音频数据 - */ - private String prompt; - - /** - * 角色描述 - */ - private String description; - - /** - * 头像 - */ - private String avatar; - - /** - * 专业克隆样本Zip文件的分片上传ID,请先通过分片上传接口完成文件上传 - */ - private String lora; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java deleted file mode 100644 index 6a9378ee..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.request; - -import lombok.Data; - -import java.util.List; - -/** - * @author WangLe - */ -@Data -public class SimpleGenerateRequest { - - /** - * 角色ID - */ - private String voiceId; - - /** - * 要生成的文本内容 - */ - private String text; - - /** - * 要生成的文本内容 优先级高于text - */ - private List texts; - - /** - * 角色风格 ID (默认为default) - */ - private String promptId = "default"; - - /** - * 要使用的模型ID (目前统一为reecho-neural-voice-001) - */ - private String model = "reecho-neural-voice-001"; - - /** - * 多样性 (0-100,默认为97) - */ - private Integer randomness; - - /** - * 稳定性过滤 (0-100,默认为100) - */ - private Integer stability_boost; - - /** - * 概率优选(0-100,默认为99) - */ - private Integer probability_optimization; - - /** - * 是否直接返回生成音频的Base64 DataURL,而不是Url链接(默认为false) - */ - private Boolean origin_audio; - - /** - * 是否启用流式生成 - */ - private Boolean stream; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java deleted file mode 100644 index ff09e6f5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -import java.util.List; - -/** - * @author WangLe - */ -@Data -public class MetadataResponse { - - /** - * 语音角色头像 URL - */ - private String avatar; - - /** - * 语音角色描述 - */ - private String description; - - /** - * 语音角色风格列表 - */ - private List prompts; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java deleted file mode 100644 index 000f902f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * 描述:语音角色风格列表 - * - * @author ageerle@163.com - * date 2024/4/27 - */ -@Data -public class PromptResponse { - - /** - * 角色风格 ID - */ - private String id; - - /** - * 角色风格名称 - */ - private String name; - - /** - * 角色风格样本音频 URL - */ - private String promptOriginAudioStorageUrl; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java deleted file mode 100644 index 1e7c67e8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class RoleDataResponse { - /** - * 语音角色 ID - */ - private String id; - - /** - * 音角色名称 - */ - private String name; - - /** - * 语音角色状态,可以为 - * pending(瞬时克隆已完成) - * lora-pending(专业克隆训练中) - * lora-success(专业克隆已完成) - * lora-failed(专业克隆失败) - */ - private String status; - private MetadataResponse metadata; - private String from; - private String originId; - private String createdAt; - private String updatedAt; - private String deletedAt; - private String userId; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java deleted file mode 100644 index 0f4ea427..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class RoleResponse { - /** - * 状态码 - */ - private String status; - /** - * 状态信息 - */ - private String message; - /** - * 创建的语音角色详情 - */ - private RoleDataResponse data; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java deleted file mode 100644 index 79d904bb..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class SimpleGenerateDataResponse { - - /** - * 本次生成的ID - */ - private String id; - - /** - * 本次生成结果的音频文件地址 - */ - private String audio; - - /** - * 流式MP3端点 - */ - private String streamUrl; - - /** - * 本次生成所消耗的点数 - */ - private Integer credit_used; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java deleted file mode 100644 index ac4b3580..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class SimpleGenerateResponse { - - /** - * 状态码,失败时则为500 - */ - private String status; - - /** - * 状态消息 - */ - private String message; - - /** - * 生成详情 - */ - private SimpleGenerateDataResponse data; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java deleted file mode 100644 index 0d22f208..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ruoyi.system.response.rolelist; - -import lombok.Data; - -@Data -public class ChatAppStoreVO { - - - private String name; - - private String description; - - private String voicesId; - - private String avatar; - - private String appUrl; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java deleted file mode 100644 index ea7f7471..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.ruoyi.system.response.rolelist; - -import lombok.Data; - -/** - * - * 描述:获取当前用户的语音角色列表返回对象 - * - * @author ageerle@163.com - * date 2024/4/27 - */ -import java.util.List; - -@Data -public class ContentResponse { - - /** - * 语音角色 ID - */ - private String id; - - /** - * 语音角色名称 - */ - private String name; - - /** - * 语音角色状态,可以为pending(瞬时克隆已完成)、lora-pending(专业克隆训练中)、lora-success(专业克隆已完成)、lora-failed(专业克隆失败) - */ - private String status; - - - private Metadata metadata; - @Data - public static class Metadata { - - /** - * 语音角色头像 URL - */ - private String avatar; - - /** - * 语音角色描述 - */ - private String description; - - /** - * 语音角色风格列表 - */ - private List prompts; - - private String previewAudio; - - private String promptMP3StorageUrl; - - @Data - public static class prompt { - /** - * 角色风格 ID - */ - private String id; - - /** - * 角色风格名称 - */ - private String name; - - /** - * 角色风格样本音频 URL - */ - private String promptOriginAudioStorageUrl; - - } - - } - -} - diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java deleted file mode 100644 index a9857815..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.response.rolelist; - -import lombok.Data; - -import java.util.List; - -/** - * @author WangLe - */ -@Data -public class RoleListResponse { - /** - * 状态码 - */ - private String status; - /** - * 状态信息 - */ - private String message; - /** - * 创建的语音角色详情 - */ - private List data; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java deleted file mode 100644 index d610a688..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.ruoyi.system.service; - -/** - * 翻唱用户参考音频Service接口 - * - * @author NSL - * @since 2024-12-25 - */ -public interface ICoverPromptAudioService { - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java deleted file mode 100644 index f6c22bd3..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.vo.cover.CoverCallbackVo; -import org.ruoyi.system.domain.vo.cover.CoverParamVo; -import org.ruoyi.system.domain.vo.cover.CoverVo; -import org.ruoyi.system.domain.vo.cover.MusicVo; - -import java.util.List; - -/** - * 翻唱Service接口 - * - * @author NSL - * @since 2024-12-25 - */ -public interface ICoverService { - - /** - * 查找歌曲 - * - * @param musicName 歌曲名称 - * @return 匹配的歌曲信息集合 - */ - List searchMusic(String musicName); - - /** - * 翻唱回调 - * - * @param coverCallbackVo 回调信息 - */ - void callback(CoverCallbackVo coverCallbackVo); - - /** - * 翻唱歌曲 - * - * @param coverParamVo 翻唱信息 - */ - void saveCoverTask(CoverParamVo coverParamVo); - - /** - * 查询用户的翻唱记录 - * - * @return 翻唱记录 - */ - TableDataInfo searchCoverRecord(PageQuery pageQuery); - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java deleted file mode 100644 index 1ac29b4b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.request.OrderRequest; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; - -import java.util.Collection; -import java.util.List; - -/** - * 支付订单Service接口 - * - * @author Lion Li - * @date 2024-04-16 - */ -public interface IPaymentOrdersService { - - /** - * 查询支付订单 - */ - PaymentOrdersVo queryById(Long id); - - - /** - * 创建支付订单 - */ - PaymentOrdersBo createPayOrder(OrderRequest orderRequest); - - /** - * 修改订单状态为已支付 - * - */ - void updatePayOrder(OrderRequest orderRequest); - - - /** - * 查询支付订单列表 - */ - TableDataInfo queryPageList(PaymentOrdersBo bo, PageQuery pageQuery); - - /** - * 查询支付订单列表 - */ - List queryList(PaymentOrdersBo bo); - - /** - * 新增支付订单 - */ - Boolean insertByBo(PaymentOrdersBo bo); - - /** - * 修改支付订单 - */ - Boolean updateByBo(PaymentOrdersBo bo); - - /** - * 校验并批量删除支付订单信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java deleted file mode 100644 index eb284ab8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.service; - -import com.alibaba.fastjson.JSONObject; -import org.ruoyi.system.domain.vo.ppt.*; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -/** - * AI_PPT Service接口 - * - * @author NSL - * @since 2024-12-30 - */ -public interface IPptService { - /** - * 同步流式生成 PPT - * - * @param title ppt 标题 - */ - void syncStreamGeneratePpt(String title); - - /** - * 查询 PPT 列表 - * - * @param pptQueryVo 查询参数 - */ - void selectPptList(PptAllQueryDto pptQueryVo); - - /** - * 分页查询 PPT 模板 - * @param pptQueryVo 查询参数 - */ - JSONObject getPptTemplates(PptTemplateQueryDto pptQueryVo); - - /** - * 生成大纲 - * @param generateOutlineDto 生成大纲参数 - */ - SseEmitter generateOutline(PptGenerateOutlineDto generateOutlineDto); - - /** - * 生成大纲内容 - * @param generateContentDto 生成大纲内容参数 - */ - SseEmitter generateContent(PptGenerateContentDto generateContentDto); - - /** - * 生成ppt - * @param generatePptxDto 生成PPT参数 - */ - JSONObject generatePptx(PptGeneratePptxDto generatePptxDto); - - /** - * 获取API Token - * @return 文多多Token - */ - String getApiToken(); - - /** - * 生成PPT成功回调接口 - */ - void successCallback(); - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java deleted file mode 100644 index ac5182c8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; - -import java.util.Collection; -import java.util.List; - -/** - * 系统模型Service接口 - * - * @author Lion Li - * @date 2024-04-04 - */ -public interface ISysModelService { - - /** - * 查询系统模型 - */ - SysModelVo queryById(Long id); - - /** - * 查询系统模型列表 - */ - TableDataInfo queryPageList(SysModelBo bo, PageQuery pageQuery); - - /** - * 查询系统模型列表 - */ - List queryList(SysModelBo bo); - - /** - * 新增系统模型 - */ - Boolean insertByBo(SysModelBo bo); - - /** - * 修改系统模型 - */ - Boolean updateByBo(SysModelBo bo); - - /** - * 校验并批量删除系统模型信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 根据模型名称查询模型 - */ - SysModel selectModelByName(String modelName); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java deleted file mode 100644 index d8bb5814..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 套餐管理Service接口 - * - * @author Lion Li - * @date 2024-05-05 - */ -public interface ISysPackagePlanService { - - /** - * 查询套餐管理 - */ - SysPackagePlanVo queryById(Long id); - - /** - * 查询套餐管理列表 - */ - TableDataInfo queryPageList(SysPackagePlanBo bo, PageQuery pageQuery); - - /** - * 查询套餐管理列表 - */ - List queryList(SysPackagePlanBo bo); - - /** - * 新增套餐管理 - */ - Boolean insertByBo(SysPackagePlanBo bo); - - /** - * 修改套餐管理 - */ - Boolean updateByBo(SysPackagePlanBo bo); - - /** - * 校验并批量删除套餐管理信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java deleted file mode 100644 index b0186391..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.SysUserGroupBo; -import org.ruoyi.system.domain.vo.SysUserGroupVo; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-08-03 - */ -public interface ISysUserGroupService { - - /** - * 查询【请填写功能名称】 - */ - SysUserGroupVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(SysUserGroupBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(SysUserGroupBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(SysUserGroupBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(SysUserGroupBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java deleted file mode 100644 index 45e2d40d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.system.domain.vo.SysUserModelVo; -import org.ruoyi.system.domain.bo.SysUserModelBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-08-03 - */ -public interface ISysUserModelService { - - /** - * 查询【请填写功能名称】 - */ - SysUserModelVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(SysUserModelBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(SysUserModelBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(SysUserModelBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(SysUserModelBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java deleted file mode 100644 index bcfd940f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; - -import java.util.Collection; -import java.util.List; - -/** - * 机器人Service接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface IWxRobConfigService { - - /** - * 查询机器人 - */ - WxRobConfigVo queryById(Long id); - - /** - * 查询机器人列表 - */ - TableDataInfo queryPageList(WxRobConfigBo bo, PageQuery pageQuery); - - /** - * 查询当前用户绑定的机器人信息 - */ - List queryList(WxRobConfigBo bo); - - /** - * 新增机器人 - */ - Boolean insertByBo(WxRobConfigBo bo); - - /** - * 修改机器人 - */ - Boolean updateByBo(WxRobConfigBo bo); - - /** - * 校验并批量删除机器人信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java deleted file mode 100644 index 39bb5263..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.WxRobKeywordBo; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface IWxRobKeywordService { - - /** - * 查询【请填写功能名称】 - */ - WxRobKeywordVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(WxRobKeywordBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(WxRobKeywordBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(WxRobKeywordBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(WxRobKeywordBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java deleted file mode 100644 index 4344fbd9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.WxRobRelationBo; -import org.ruoyi.system.domain.vo.WxRobRelationVo; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface IWxRobRelationService { - - /** - * 查询【请填写功能名称】 - */ - WxRobRelationVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(WxRobRelationBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(WxRobRelationBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(WxRobRelationBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(WxRobRelationBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java deleted file mode 100644 index 6cf778c5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.ruoyi.system.service; - -/** - * @Author 公众号:程序猿阿朗 - */ -public interface WeixinUserService { - - void checkSignature(String signature, String timestamp, String nonce); - - String handleWeixinMsg(String body); - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java deleted file mode 100644 index 51200fc8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.service.impl; - -import jakarta.annotation.Resource; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.system.mapper.CoverPromptAudioMapper; -import org.ruoyi.system.service.ICoverPromptAudioService; -import org.springframework.stereotype.Service; - -/** - * 翻唱用户参考音频Service业务层处理 - * - * @author NSL - * @since 2024-12-25 - */ -@Service -@Slf4j -public class CoverPromptAudioServiceImpl implements ICoverPromptAudioService { - - @Resource - private CoverPromptAudioMapper coverPromptAudioMapper; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java deleted file mode 100644 index 4b6d96ef..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.dev33.satoken.exception.NotLoginException; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.TypeReference; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.Request; -import org.apache.commons.lang3.math.NumberUtils; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.wechat.itchat4j.utils.enums.ResultEnum; -import org.ruoyi.system.cofing.OkHttpConfig; -import org.ruoyi.system.domain.Cover; -import org.ruoyi.system.domain.CoverPromptAudio; -import org.ruoyi.system.domain.model.ApiResult; -import org.ruoyi.system.domain.vo.cover.*; -import org.ruoyi.system.mapper.CoverMapper; -import org.ruoyi.system.mapper.CoverPromptAudioMapper; -import org.ruoyi.system.service.ICoverService; -import org.ruoyi.system.util.WeChatScanHttpUtil; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static org.ruoyi.common.satoken.utils.LoginHelper.getLoginUser; - -/** - * 翻唱Service业务层处理 - * - * @author NSL - * @since 2024-12-25 - */ -@RequiredArgsConstructor -@Service -@Slf4j -public class CoverServiceImpl implements ICoverService { - - private final CoverMapper coverMapper; - private final CoverPromptAudioMapper coverPromptAudioMapper; - private final ConfigService configService; - private final IChatCostService chatCostService; - private final WeChatScanHttpUtil weChatScanHttpUtil; - private final OkHttpConfig okHttpConfig; - - @Override - public List searchMusic(String musicName) { - Map queryMap = new HashMap<>(); - queryMap.put("keyword", musicName); - String json = JSONUtil.toJsonStr(queryMap); - Request postRequest = weChatScanHttpUtil.createPostRequest(getKey("search_music_url"), json); - String body = weChatScanHttpUtil.executeRequest(postRequest); - ApiResult apiResult = JSONUtil.toBean(body, ApiResult.class); - Object data = apiResult.getData(); - Map> userMap = JSONUtil.toBean(JSONUtil.toJsonStr(data), new TypeReference<>() {}, true); - return userMap.get("musicList"); - } - - @Override - public void callback(CoverCallbackVo coverCallbackVo) { - Cover cover = BeanUtil.copyProperties(coverCallbackVo, Cover.class); - coverMapper.insertOrUpdate(cover); - } - - @Override - public void saveCoverTask(CoverParamVo coverParamVo) { - Long userId = null; - try { - userId = getLoginUser().getUserId(); - } catch (Exception e) { - throw new NotLoginException(NotLoginException.NOT_TOKEN_MESSAGE, NotLoginException.NOT_TOKEN, NotLoginException.NOT_TOKEN); - } - List promptAudioUrl = coverParamVo.getPromptAudioUrl(); - Cover cover = BeanUtil.copyProperties(coverParamVo, Cover.class); - cover.setUserId(userId); - coverMapper.insertOrUpdate(cover); - if (CollUtil.isEmpty(promptAudioUrl)) { - // 查询用户最近一次翻唱记录 - List coverPromptAudioVoList = coverPromptAudioMapper.selectLatestVoByUserId(userId); - if (CollUtil.isEmpty(coverPromptAudioVoList)) { - throw new BaseException("未查询到翻唱记录,请上传参考音频!"); - } - List promptAudioUrlList = coverPromptAudioVoList.stream().map(CoverPromptAudioVo::getPromptAudioUrl).collect(Collectors.toList()); - coverParamVo.setPromptAudioUrl(promptAudioUrlList); - } else { - // 保存用户翻唱记录 - for (String audioUrl : promptAudioUrl) { - CoverPromptAudio coverPromptAudio = new CoverPromptAudio(); - coverPromptAudio.setPromptAudioUrl(audioUrl); - coverPromptAudio.setUserId(userId); - coverPromptAudio.setCoverId(cover.getId()); - coverPromptAudioMapper.insertOrUpdate(coverPromptAudio); - } - } - coverParamVo.setUserId(String.valueOf(userId)); - coverParamVo.setOrderId(String.valueOf(cover.getId())); - coverParamVo.setUserGender(""); - log.info("发起翻唱任务,入参{}", JSONUtil.toJsonStr(coverParamVo)); - // 调用翻唱API - Request postRequest = weChatScanHttpUtil.createPostRequest(getKey("cover_url"), JSONUtil.toJsonStr(coverParamVo)); - String body = weChatScanHttpUtil.executeRequest(postRequest); - ApiResult apiResult = JSONUtil.toBean(body, ApiResult.class); - if (ResultEnum.SUCCESS.getCode().equals(String.valueOf(apiResult.getCode()))) { - // 扣费 - chatCostService.taskDeduct("cover", "token", NumberUtils.toDouble(okHttpConfig.getGenerate(), 2.5)); - } - log.info("调用翻唱结果,出参{}", body); - } - - @Override - public TableDataInfo searchCoverRecord(PageQuery pageQuery) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(Cover::getUserId, getLoginUser().getUserId()); - queryWrapper.orderByDesc(Cover::getCreateTime); - Page result = coverMapper.selectVoPage(pageQuery.build(), queryWrapper); - return TableDataInfo.build(result); - } - - public String getKey(String key) { - return configService.getConfigValue("cover", key); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java deleted file mode 100644 index 1415aaa1..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java +++ /dev/null @@ -1,211 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.PaymentOrder; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.domain.bo.SysUserBo; -import org.ruoyi.system.domain.request.OrderRequest; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.mapper.PaymentOrdersMapper; -import org.ruoyi.system.mapper.SysUserMapper; -import org.ruoyi.system.service.IPaymentOrdersService; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.ruoyi.system.service.ISysUserService; -import org.ruoyi.system.util.OrderNumberGenerator; -import org.springframework.stereotype.Service; - -import java.math.BigDecimal; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 支付订单Service业务层处理 - * - * @author Lion Li - * @date 2024-04-16 - */ -@RequiredArgsConstructor -@Service -public class PaymentOrdersServiceImpl implements IPaymentOrdersService { - - private final PaymentOrdersMapper baseMapper; - - private final SysUserMapper sysUserMapper; - - private final ISysUserService userService; - - private final ISysPackagePlanService planService; - - /** - * 查询支付订单 - */ - @Override - public PaymentOrdersVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 创建支付订单 - */ - @Override - public PaymentOrdersBo createPayOrder(OrderRequest orderRequest) { - LoginUser loginUser = LoginHelper.getLoginUser(); - PaymentOrdersBo paymentOrder = new PaymentOrdersBo(); - paymentOrder.setOrderName(orderRequest.getName()); - paymentOrder.setAmount(new BigDecimal(orderRequest.getMoney())); - paymentOrder.setOrderNo(OrderNumberGenerator.generate()); - paymentOrder.setUserId(loginUser.getUserId()); - // TODO 支付状态默认待支付 - 添加枚举 - paymentOrder.setPaymentStatus("1"); - // 保存支付订单 - insertByBo(paymentOrder); - return paymentOrder; - } - - /** - * 修改订单状态为已支付 - * - */ - @Override - public void updatePayOrder(OrderRequest orderRequest) { - PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); - paymentOrdersBo.setOrderNo(orderRequest.getOrderNo()); - List paymentOrdersList = queryList(paymentOrdersBo); - if (CollectionUtil.isEmpty(paymentOrdersList)){ - throw new BaseException("订单不存在!"); - } - // 根据价格查询套餐 - SysPackagePlanBo sysPackagePlanBo = new SysPackagePlanBo(); - sysPackagePlanBo.setPrice(new BigDecimal(orderRequest.getMoney())); - SysPackagePlanVo sysPackagePlanVo = planService.queryList(sysPackagePlanBo).get(0); - - - // 订单状态修改为已支付 - PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); - // 1 未支付 2未支付 - paymentOrdersVo.setPaymentStatus("2"); - paymentOrdersVo.setPaymentMethod(orderRequest.getPayType()); - BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); - updateByBo(paymentOrdersBo); - // 用户充值费用 - double money = paymentOrdersBo.getAmount().doubleValue(); - SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); - sysUserVo.setUserBalance(sysUserVo.getUserBalance() + money); - SysUserBo sysUserBo = new SysUserBo(); - BeanUtil.copyProperties(sysUserVo,sysUserBo); - // 设置为付费用户 - sysUserBo.setUserGrade("1"); - sysUserBo.setUserPlan(sysPackagePlanVo.getId().toString()); - userService.updateUser(sysUserBo); - } - - /** - * 查询支付订单列表 - */ - @Override - public TableDataInfo queryPageList(PaymentOrdersBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - if(CollectionUtil.isEmpty(result.getRecords())){ - return TableDataInfo.build(result); - } - // 获取所有userId - List userIds = result.getRecords().stream() - .map(PaymentOrdersVo::getUserId) - .collect(Collectors.toList()); - // 一次性查询所有userName - Map userIdToUserNameMap = getUserNamesByUserIds(userIds); - // 设置userName - result.getRecords().forEach(paymentOrderVo -> { - paymentOrderVo.setUserName(userIdToUserNameMap.get(paymentOrderVo.getUserId())); - }); - return TableDataInfo.build(result); - } - private Map getUserNamesByUserIds(List userIds) { - // 实现批量查询userName的逻辑,例如通过sysUserMapper查询sys_user表 - List sysUsers = sysUserMapper.selectBatchIds(userIds); - return sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); - } - - /** - * 查询支付订单列表 - */ - @Override - public List queryList(PaymentOrdersBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(PaymentOrdersBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), PaymentOrder::getOrderNo, bo.getOrderNo()); - lqw.like(StringUtils.isNotBlank(bo.getOrderName()), PaymentOrder::getOrderName, bo.getOrderName()); - lqw.eq(bo.getAmount() != null, PaymentOrder::getAmount, bo.getAmount()); - lqw.eq(StringUtils.isNotBlank(bo.getPaymentStatus()), PaymentOrder::getPaymentStatus, bo.getPaymentStatus()); - lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), PaymentOrder::getPaymentMethod, bo.getPaymentMethod()); - lqw.eq(bo.getUserId() != null, PaymentOrder::getUserId, bo.getUserId()); - return lqw; - } - - /** - * 新增支付订单 - */ - @Override - public Boolean insertByBo(PaymentOrdersBo bo) { - PaymentOrder add = MapstructUtils.convert(bo, PaymentOrder.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改支付订单 - */ - @Override - public Boolean updateByBo(PaymentOrdersBo bo) { - PaymentOrder update = MapstructUtils.convert(bo, PaymentOrder.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(PaymentOrder entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除支付订单 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java deleted file mode 100644 index a3f17e94..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.dev33.satoken.exception.NotLoginException; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.math.NumberUtils; -import org.ruoyi.common.core.constant.Constants; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.redis.utils.RedisUtils; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.cofing.OkHttpConfig; -import org.ruoyi.system.domain.vo.ppt.*; -import org.ruoyi.system.service.IPptService; -import org.ruoyi.system.util.HttpUtils; -import org.ruoyi.system.util.WddPptApi; -import org.springframework.stereotype.Service; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import javax.swing.filechooser.FileSystemView; -import java.io.File; -import java.time.Duration; - -/** - * AI-PPTService业务层处理 - * - * @author NSL - * @since 2024-12-30 - */ -@RequiredArgsConstructor -@Service -@Slf4j -public class PptServiceImpl implements IPptService { - - private final OkHttpConfig okHttpConfig; - private final ConfigService configService; - private final IChatCostService chatCostService; - - @Override - public void syncStreamGeneratePpt(String title) { - // 创建 api token (有效期2小时,同一个 uid 创建时之前的 token 会在10秒内失效) - String apiToken = getApiToken(); - // 生成大纲 - System.out.println("\n\n========== 正在生成大纲 =========="); - String outline = WddPptApi.generateOutline(apiToken, title, null, null); - - // 生成大纲内容 - System.out.println("\n\n========== 正在生成大纲内容 =========="); - String markdown = WddPptApi.generateContent(apiToken, outline, null, null); - - // 随机一个模板 - System.out.println("\n\n========== 随机选择模板 =========="); - String templateId = WddPptApi.randomOneTemplateId(apiToken); - System.out.println(templateId); - - // 生成PPT - System.out.println("\n\n========== 正在生成PPT =========="); - JSONObject pptInfo = WddPptApi.generatePptx(apiToken, templateId, markdown, false); - String pptId = pptInfo.getString("id"); - System.out.println("pptId: " + pptId); - System.out.println("ppt主题:" + pptInfo.getString("subject")); - System.out.println("ppt封面:" + pptInfo.getString("coverUrl") + "?token=" + apiToken); - - // 下载PPT到桌面 - System.out.println("\n\n========== 正在下载PPT =========="); - JSONObject result = WddPptApi.downloadPptx(apiToken, pptId); - String url = result.getString("fileUrl"); - System.out.println("ppt链接:" + url); - String savePath = FileSystemView.getFileSystemView().getHomeDirectory().getAbsolutePath() + File.separator + pptId + ".pptx"; - try { - HttpUtils.download(url, new File(savePath)); - } catch (Exception e) { - - } - System.out.println("ppt下载完成,保存路径:" + savePath); - } - - @Override - public void selectPptList(PptAllQueryDto pptQueryVo) { - String apiToken = getApiToken(); - // todo 无权限访问 - JSONObject jsonObject = WddPptApi.listAllPptx(apiToken, JSONUtil.toJsonStr(pptQueryVo)); - System.out.println(jsonObject); - } - - @Override - public JSONObject getPptTemplates(PptTemplateQueryDto pptQueryVo) { - return WddPptApi.getPptTemplates(getApiToken(), JSONUtil.toJsonStr(pptQueryVo)); - } - - @Override - public SseEmitter generateOutline(PptGenerateOutlineDto generateOutlineDto) { - return WddPptApi.sseGenerateOutline(getApiToken(), generateOutlineDto.getSubject(), generateOutlineDto.getDataUrl(), generateOutlineDto.getPrompt()); - } - - @Override - public SseEmitter generateContent(PptGenerateContentDto generateContentDto) { - return WddPptApi.sseGenerateContent(getApiToken(), generateContentDto.getOutlineMarkdown(), generateContentDto.getDataUrl(), generateContentDto.getPrompt()); - } - - @Override - public JSONObject generatePptx(PptGeneratePptxDto generatePptxDto) { - return WddPptApi.generatePptx(getApiToken(), generatePptxDto.getTemplateId(), generatePptxDto.getOutlineContentMarkdown(), generatePptxDto.isPptxProperty()); - } - - public String getKey(String key) { - return configService.getConfigValue("ppt", key); - } - - @Override - public String getApiToken() { - LoginUser loginUser = null; - try { - loginUser = LoginHelper.getLoginUser(); - } catch (Exception e) { - throw new NotLoginException(NotLoginException.NOT_TOKEN_MESSAGE, NotLoginException.NOT_TOKEN, NotLoginException.NOT_TOKEN); - } - String userId = String.valueOf(loginUser.getUserId()); - // 创建 api token (有效期2小时,同一个 uid 创建时之前的 token 会在10秒内失效) - String apiToken = RedisUtils.getCacheObject(Constants.WDD_TOKEN_KEY + userId); - if (StrUtil.isEmpty(apiToken)) { - apiToken = WddPptApi.createApiToken(getKey("apiKey"), userId, null); - RedisUtils.setCacheObject(Constants.WDD_TOKEN_KEY, apiToken, Duration.ofMinutes(Constants.WDD_TOKEN_EXPIRATION)); - } - return apiToken; - } - - @Override - public void successCallback() { - // 扣费 - chatCostService.taskDeduct("ppt", "AI-PPT", NumberUtils.toDouble(okHttpConfig.getGenerate(), 1.1)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java deleted file mode 100644 index 807650d9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java +++ /dev/null @@ -1,685 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.dev33.satoken.stp.StpUtil; -import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.zhipu.oapi.ClientV4; -import com.zhipu.oapi.service.v4.tools.*; -import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.chat.OllamaChatMessage; -import io.github.ollama4j.models.chat.OllamaChatMessageRole; -import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; -import io.github.ollama4j.models.generate.OllamaStreamHandler; -import jakarta.servlet.http.HttpServletRequest; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.*; -import org.ruoyi.common.chat.config.ChatConfig; -import org.ruoyi.common.chat.config.LocalCache; -import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.domain.request.Dall3Request; -import org.ruoyi.common.chat.entity.Tts.TextToSpeech; -import org.ruoyi.common.chat.entity.chat.*; -import org.ruoyi.common.chat.entity.files.UploadFileResponse; -import org.ruoyi.common.chat.entity.images.Image; -import org.ruoyi.common.chat.entity.images.ImageResponse; -import org.ruoyi.common.chat.entity.images.Item; -import org.ruoyi.common.chat.entity.images.ResponseFormat; -import org.ruoyi.common.chat.entity.whisper.WhisperResponse; -import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.common.chat.openai.plugin.PluginAbstract; -import org.ruoyi.common.chat.plugin.CmdPlugin; -import org.ruoyi.common.chat.plugin.CmdReq; -import org.ruoyi.common.chat.plugin.SqlPlugin; -import org.ruoyi.common.chat.plugin.SqlReq; -import org.ruoyi.common.chat.utils.TikTokensUtil; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.core.utils.file.FileUtils; -import org.ruoyi.common.core.utils.file.MimeTypeUtils; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.request.translation.TranslationRequest; -import org.ruoyi.system.listener.SSEEventSourceListener; -import org.ruoyi.system.service.*; -import org.springframework.core.io.InputStreamResource; -import org.springframework.core.io.Resource; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URLEncoder; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - - -@Service -@Slf4j -@RequiredArgsConstructor -public class SseServiceImpl implements ISseService { - - private OpenAiStreamClient openAiStreamClient; - - ChatConfig chatConfig; - - private final IChatCostService chatService; - - private final IChatMessageService chatMessageService; - - private final ISysModelService sysModelService; - - private final ConfigService configService; - - private final IChatGptsService chatGptsService; - - static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build(); - - private static final String requestIdTemplate = "mycompany-%d"; - - private static final ObjectMapper mapper = new ObjectMapper(); - - @Override - public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - SseEmitter sseEmitter = new SseEmitter(0L); - SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); - // 获取对话消息列表 - List messages = chatRequest.getMessages(); - - try { - String chatString = null; - Object content = messages.get(messages.size() - 1).getContent(); - if (content instanceof List listContent) { - if (!listContent.isEmpty() && listContent.get(0) instanceof Content) { - chatString = ((Content) listContent.get(0)).getText(); - } - } else if (content instanceof String) { - chatString = (String) content; - } - - String configValue = getKey("enabled"); - if (Boolean.parseBoolean(configValue)) { - // 判断文本是否合规 - String type = textReview(chatString); - // 审核状态 1 代表合法 - if (!"1".equals(type) && StringUtils.isNotEmpty(type)) { - throw new BaseException("文本不合规,请修改!"); - } - } - - if (StpUtil.isLogin()) { - LocalCache.CACHE.put("userId", getUserId()); - - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(chatRequest.getModel()); - chatMessageBo.setContent(chatString); - - String model = chatRequest.getModel(); - SysModel sysModel = sysModelService.selectModelByName(model); - if (sysModel == null) { - // 如果模型不存在默认使用token扣费方式 - processByToken(chatRequest.getModel(), chatString, chatMessageBo); - } else { - openAiStreamClient = chatConfig.createOpenAiStreamClient(sysModel.getApiHost(), sysModel.getApiKey()); - if (StringUtils.isNotEmpty(chatRequest.getAppId())) { // 设置应用的系统角色为描述 - ChatGptsVo chatGptsVo = chatGptsService.queryById(Long.valueOf(chatRequest.getAppId())); - Message sysMessage = Message.builder().content(chatGptsVo.getSystemPrompt()).role(Message.Role.SYSTEM).build(); - messages.add(0,sysMessage); - } else { - // 模型设置默认提示词 - if (StringUtils.isNotEmpty(sysModel.getSystemPrompt())) { - Message sysMessage = Message.builder().content(sysModel.getSystemPrompt()).role(Message.Role.SYSTEM).build(); - messages.add(0,sysMessage); - } - } - // 计费类型: 1 token扣费 2 次数扣费 - if ("2".equals(sysModel.getModelType())) { - processByModelPrice(sysModel, chatMessageBo); - } else { - processByToken(chatRequest.getModel(), chatString, chatMessageBo); - } - } - } - String zhipuValue = configService.getConfigValue("zhipu", "key"); - // 添加联网信息 - if(StringUtils.isNotEmpty(zhipuValue)){ - ClientV4 client = new ClientV4.Builder(zhipuValue) - .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS) - .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS)) - .build(); - - SearchChatMessage jsonNodes = new SearchChatMessage(); - jsonNodes.setRole(Message.Role.USER.getName()); - jsonNodes.setContent(chatString); - - String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); - WebSearchParamsRequest chatCompletionRequest = WebSearchParamsRequest.builder() - .model("web-search-pro") - .stream(Boolean.TRUE) - .messages(Collections.singletonList(jsonNodes)) - .requestId(requestId) - .build(); - WebSearchApiResponse webSearchApiResponse = client.webSearchProStreamingInvoke(chatCompletionRequest); - List choices = new ArrayList<>(); - if (webSearchApiResponse.isSuccess()) { - AtomicBoolean isFirst = new AtomicBoolean(true); - - AtomicReference lastAccumulator = new AtomicReference<>(); - - webSearchApiResponse.getFlowable().map(result -> result) - .doOnNext(accumulator -> { - { - if (isFirst.getAndSet(false)) { - log.info("Response: "); - } - ChoiceDelta delta = accumulator.getChoices().get(0).getDelta(); - if (delta != null && delta.getToolCalls() != null) { - log.info("tool_calls: {}", mapper.writeValueAsString(delta.getToolCalls())); - } - choices.add(delta); - } - }) - .doOnComplete(() -> System.out.println("Stream completed.")) - .doOnError(throwable -> System.err.println("Error: " + throwable)) - .blockingSubscribe(); - - WebSearchPro chatMessageAccumulator = lastAccumulator.get(); - - webSearchApiResponse.setFlowable(null);// 打印前置空 - webSearchApiResponse.setData(chatMessageAccumulator); - } - - - Message message = Message.builder().role(Message.Role.ASSISTANT).content(choices.get(1).getToolCalls().toString()).build(); - messages.add(message); - } - - if ("openCmd".equals(chatRequest.getModel())) { - sseEmitter.send(cmdPlugin(messages)); - sseEmitter.complete(); - } else if ("sqlPlugin".equals(chatRequest.getModel())) { - sseEmitter.send(sqlPlugin(messages)); - sseEmitter.complete(); - } else { - ChatCompletion completion = ChatCompletion - .builder() - .messages(messages) - .model(chatRequest.getModel()) - .temperature(chatRequest.getTemperature()) - .topP(chatRequest.getTop_p()) - .stream(true) - .build(); - openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); - } - } catch (Exception e) { - String message = e.getMessage(); - sendErrorEvent(sseEmitter, message); - return sseEmitter; - } - return sseEmitter; - } - - public String cmdPlugin(List messages) { - CmdPlugin plugin = new CmdPlugin(CmdReq.class); - // 插件名称 - plugin.setName("命令行工具"); - // 方法名称 - plugin.setFunction("openCmd"); - // 方法说明 - plugin.setDescription("提供一个命令行指令,比如<记事本>,指令使用中文"); - - PluginAbstract.Arg arg = new PluginAbstract.Arg(); - // 参数名称 - arg.setName("cmd"); - // 参数说明 - arg.setDescription("命令行指令"); - // 参数类型 - arg.setType("string"); - arg.setRequired(true); - plugin.setArgs(Collections.singletonList(arg)); - //有四个重载方法,都可以使用 - ChatCompletionResponse response = openAiStreamClient.chatCompletionWithPlugin(messages,"gpt-4o-mini",plugin); - return response.getChoices().get(0).getMessage().getContent().toString(); - } - - public String sqlPlugin(List messages) { - SqlPlugin plugin = new SqlPlugin(SqlReq.class); - // 插件名称 - plugin.setName("数据库查询插件"); - // 方法名称 - plugin.setFunction("sqlPlugin"); - // 方法说明 - plugin.setDescription("提供一个用户名称查询余额信息"); - - PluginAbstract.Arg arg = new PluginAbstract.Arg(); - // 参数名称 - arg.setName("username"); - // 参数说明 - arg.setDescription("用户名称"); - // 参数类型 - arg.setType("string"); - arg.setRequired(true); - plugin.setArgs(Collections.singletonList(arg)); - //有四个重载方法,都可以使用 - ChatCompletionResponse response = openAiStreamClient.chatCompletionWithPlugin(messages,"gpt-4o-mini",plugin); - return response.getChoices().get(0).getMessage().getContent().toString(); - } - - /** - * 根据次数扣除余额 - * - * @param model 模型信息 - * @param chatMessageBo 对话信息 - */ - private void processByModelPrice(SysModel model, ChatMessageBo chatMessageBo) { - double cost = model.getModelPrice(); - chatService.deductUserBalance(getUserId(), cost); - chatMessageBo.setDeductCost(cost); - chatMessageService.insertByBo(chatMessageBo); - } - - /** - * 根据token扣除余额 - * - * @param modelName 模型名称 - * @param text 消息内容 - * @param chatMessageBo 消息记录 - */ - private void processByToken(String modelName, String text, ChatMessageBo chatMessageBo) { - int tokens = TikTokensUtil.tokens(modelName, text); - chatMessageBo.setTotalTokens(tokens); - chatService.deductToken(chatMessageBo); - } - - /** - * 文字转语音 - */ - @Override - public ResponseEntity textToSpeed(TextToSpeech textToSpeech) { - ResponseBody body = openAiStreamClient.textToSpeech(textToSpeech); - if (body != null) { - // 将ResponseBody转换为InputStreamResource - InputStreamResource resource = new InputStreamResource(body.byteStream()); - - // 创建并返回ResponseEntity - return ResponseEntity.ok() - .contentType(MediaType.parseMediaType("audio/mpeg")) - .body(resource); - } else { - // 如果ResponseBody为空,返回404状态码 - return ResponseEntity.notFound().build(); - } - } - - - /** - * 语音转文字 - */ - @Override - public WhisperResponse speechToTextTranscriptionsV2(MultipartFile file) { - // 确保文件不为空 - if (file.isEmpty()) { - throw new IllegalStateException("Cannot convert an empty MultipartFile"); - } - if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.AUDIO__EXTENSION)) { - throw new IllegalStateException("File Extention not supported"); - } - // 创建一个文件对象 - File fileA = new File(System.getProperty("java.io.tmpdir") + File.separator + file.getOriginalFilename()); - try { - // 将 MultipartFile 的内容写入文件 - file.transferTo(fileA); - } catch (IOException e) { - throw new RuntimeException("Failed to convert MultipartFile to File", e); - } - return openAiStreamClient.speechToTextTranscriptions(fileA); - } - - @Override - public String chat(ChatRequest chatRequest, String userId) { - return null; - } - - /** - * dall-e-3绘画接口 - * - * @param request - * @return - */ - @Override - public List dall3(Dall3Request request) { - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - chatService.checkUserGrade(); - // DALL3 绘图模型 - Image image = Image.builder() - .responseFormat(ResponseFormat.URL.getName()) - .model(Image.Model.DALL_E_3.getName()) - .prompt(request.getPrompt()) - .n(1) - .quality(request.getQuality()) - .size(request.getSize()) - .style(request.getStyle()) - .build(); - ImageResponse imageResponse = openAiStreamClient.genImages(image); - SysModel sysModel = sysModelService.selectModelByName(request.getModel()); - //chatService.deductUserBalance(getUserId(),sysModelList.get(0).getModelPrice()); - // 保存消息记录 - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(Image.Model.DALL_E_3.getName()); - chatMessageBo.setContent(request.getPrompt()); - chatMessageBo.setDeductCost(sysModel.getModelPrice()); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - return imageResponse.getData(); - } - - @Override - public List wxDall(String prompt, String userId) { - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - // DALL3 绘图模型 - Image image = Image.builder() - .responseFormat(ResponseFormat.URL.getName()) - .model(Image.Model.DALL_E_3.getName()) - .prompt(prompt) - .n(1) - .build(); - ImageResponse imageResponse = openAiStreamClient.genImages(image); - SysModel dall3 = sysModelService.selectModelByName("dall3"); - chatService.deductUserBalance(Long.valueOf(userId), 0.3); - // 保存消息记录 - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(Image.Model.DALL_E_3.getName()); - chatMessageBo.setContent(prompt); - chatMessageBo.setDeductCost(dall3.getModelPrice()); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - return imageResponse.getData(); - } - - /** - * 获取用户Id - * - * @return - */ - public Long getUserId() { - LoginUser loginUser = LoginHelper.getLoginUser(); - if (loginUser == null) { - throw new BaseException("用户未登录!"); - } - return loginUser.getUserId(); - } - - @Override - public UploadFileResponse upload(MultipartFile file) { - if (file.isEmpty()) { - throw new IllegalStateException("Cannot upload an empty MultipartFile"); - } - if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) { - throw new IllegalStateException("File Extention not supported"); - } - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file)); - } - - private File convertMultiPartToFile(MultipartFile multipartFile) { - File file = null; - try { - // 获取原始文件名 - String originalFileName = multipartFile.getOriginalFilename(); - // 默认扩展名 - String extension = ".tmp"; - // 尝试从原始文件名中获取扩展名 - if (originalFileName != null && originalFileName.contains(".")) { - extension = originalFileName.substring(originalFileName.lastIndexOf(".")); - } - - // 使用原始文件的扩展名创建临时文件 - Path tempFile = Files.createTempFile(null, extension); - file = tempFile.toFile(); - - // 将MultipartFile的内容写入文件 - try (InputStream inputStream = multipartFile.getInputStream(); - FileOutputStream outputStream = new FileOutputStream(file)) { - int read; - byte[] bytes = new byte[1024]; - while ((read = inputStream.read(bytes)) != -1) { - outputStream.write(bytes, 0, read); - } - } catch (IOException e) { - // 处理文件写入异常 - e.printStackTrace(); - } - } catch (IOException e) { - // 处理临时文件创建异常 - e.printStackTrace(); - } - return file; - } - - // 发送SSE错误事件的封装方法 - private void sendErrorEvent(SseEmitter sseEmitter, String errorMessage) { - SseEmitter.SseEventBuilder event = SseEmitter.event() - .name("error") - .data(errorMessage); - try { - sseEmitter.send(event); - } catch (IOException e) { - log.error("发送事件失败: {}", e.getMessage()); - } - sseEmitter.complete(); - } - - /** - * 文本内容审核 - * - * @param msg - * @return String - * @Date 2023/5/27 - **/ - public String textReview(String msg) { - String conclusionType = ""; - try { - String text = URLEncoder.encode(msg); - okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/x-www-form-urlencoded"); - RequestBody body = RequestBody.create(mediaType, "text=" + text); - Request request = new Request.Builder() - .url("https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=" + getAccessToken()) - .method("POST", body) - .addHeader("Content-Type", "application/x-www-form-urlencoded") - .addHeader("Accept", "application/json") - .build(); - Response response = HTTP_CLIENT.newCall(request).execute(); - JSONObject jsonObject = JSONObject.parseObject(response.body().string()); - conclusionType = jsonObject.getString("conclusionType"); - } catch (IOException e) { - log.info("发生错误{}", e.getMessage()); - } - return conclusionType; - } - - /** - * 从用户的AK,SK生成鉴权签名(Access Token) - * - * @return 鉴权签名(Access Token) - * @throws IOException IO异常 - */ - public String getAccessToken() throws IOException { - okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/x-www-form-urlencoded"); - RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + getKey("apiKey") - + "&client_secret=" + getKey("secretKey")); - Request request = new Request.Builder() - .url("https://aip.baidubce.com/oauth/2.0/token") - .method("POST", body) - .addHeader("Content-Type", "application/x-www-form-urlencoded") - .build(); - Response response = HTTP_CLIENT.newCall(request).execute(); - return JSONObject.parseObject(response.body().string()).getString("access_token"); - } - - public String getKey(String key) { - return configService.getConfigValue("review", key); - } - - /** - * 获取客户端的 IP 地址 - * - * @param request HTTP 请求对象 - * @return 客户端的 IP 地址,如果无法获取则返回 "unknown" - */ - public static String getClientIpAddress(HttpServletRequest request) { - String ipAddress = request.getHeader("X-Forwarded-For"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress.split(",")[0].trim(); - } - - ipAddress = request.getHeader("Proxy-Client-IP"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getHeader("WL-Proxy-Client-IP"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getHeader("HTTP_CLIENT_IP"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getRemoteAddr(); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - return "unknown"; - } - - - @Override - public String translation(TranslationRequest translationRequest) { - // 翻译模型固定为gpt-4o-mini - translationRequest.setModel("gpt-4o-mini"); - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(translationRequest.getModel()); - chatMessageBo.setContent(translationRequest.getPrompt()); - chatMessageBo.setDeductCost(0.01); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - List messageList = new ArrayList<>(); - Message sysMessage = Message.builder().role(Message.Role.SYSTEM).content("你是一位精通各国语言的翻译大师\n" + - "\n" + - "请将用户输入词语翻译成{" + translationRequest.getTargetLanguage() + "}\n" + - "\n" + - "==示例输出==\n" + - "**原文** : <这里显示要翻译的原文信息>\n" + - "**翻译** : <这里显示翻译成英语的结果>\n" + - "==示例结束==\n" + - "\n" + - "注意:请严格按示例进行输出,返回markdown格式").build(); - messageList.add(sysMessage); - Message message = Message.builder().role(Message.Role.USER).content(translationRequest.getPrompt()).build(); - messageList.add(message); - ChatCompletionResponse chatCompletionResponse = null; - try { - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(messageList) - .model(translationRequest.getModel()) - .stream(false) - .build(); - chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); - }catch (Exception e) { - log.error(e.getMessage()); - } - - return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); - } - - @Override - public SseEmitter ollamaChat(ChatRequest chatRequest) { - String[] parts = chatRequest.getModel().split("ollama-"); - SysModel sysModel = sysModelService.selectModelByName(chatRequest.getModel()); - final SseEmitter emitter = new SseEmitter(); - String host = sysModel.getApiHost(); - List msgList = chatRequest.getMessages(); - List messages = new ArrayList<>(); - - for (Message message : msgList) { - OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); - ollamaChatMessage.setRole(OllamaChatMessageRole.USER); - ollamaChatMessage.setContent(message.getContent().toString()); - messages.add(ollamaChatMessage); - } - OllamaAPI api = new OllamaAPI(host); - api.setRequestTimeoutSeconds(100); - OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(parts[1]); - - OllamaChatRequestModel requestModel = builder - .withMessages(messages) - .build(); - - // 异步执行 OllAma API 调用 - CompletableFuture.runAsync(() -> { - try { - StringBuilder response = new StringBuilder(); - OllamaStreamHandler streamHandler = (s) -> { - String substr = s.substring(response.length()); - response.append(substr); - System.out.println(substr); - try { - emitter.send(substr); - } catch (IOException e) { - sendErrorEvent(emitter, e.getMessage()); - } - }; - api.chat(requestModel, streamHandler); - emitter.complete(); - } catch (Exception e) { - sendErrorEvent(emitter, e.getMessage()); - } - }); - return emitter; - } - - @Override - public String wxCpChat(String prompt) { - List messageList = new ArrayList<>(); - Message message = Message.builder().role(Message.Role.USER).content(prompt).build(); - messageList.add(message); - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(messageList) - .model("gpt-4o-mini") - .stream(false) - .build(); - ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); - return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java deleted file mode 100644 index d48ac6de..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.mapper.SysModelMapper; -import org.ruoyi.system.service.ISysModelService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; - -/** - * 系统模型Service业务层处理 - * - * @author Lion Li - * @date 2024-04-04 - */ -@RequiredArgsConstructor -@Service -public class SysModelServiceImpl implements ISysModelService { - - private final SysModelMapper baseMapper; - - /** - * 查询系统模型 - */ - @Override - public SysModelVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询系统模型列表 - */ - @Override - public TableDataInfo queryPageList(SysModelBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询系统模型列表 - */ - @Override - public List queryList(SysModelBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysModelBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getModelName()), SysModel::getModelName, bo.getModelName()); - lqw.like(StringUtils.isNotBlank(bo.getModelShow()), SysModel::getModelShow, bo.getModelShow()); - lqw.eq(StringUtils.isNotBlank(bo.getModelDescribe()), SysModel::getModelDescribe, bo.getModelDescribe()); - lqw.eq(StringUtils.isNotBlank(bo.getModelType()), SysModel::getModelType, bo.getModelType()); - lqw.eq(StringUtils.isNotBlank(bo.getCategory()), SysModel::getCategory, bo.getCategory()); - return lqw; - } - - /** - * 新增系统模型 - */ - @Override - public Boolean insertByBo(SysModelBo bo) { - SysModel add = MapstructUtils.convert(bo, SysModel.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改系统模型 - */ - @Override - public Boolean updateByBo(SysModelBo bo) { - SysModel update = MapstructUtils.convert(bo, SysModel.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysModel entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除系统模型 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } - - @Override - public SysModel selectModelByName(String modelName) { - return baseMapper.selectOne( - new LambdaQueryWrapper().eq(SysModel::getModelName, modelName) - ); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java deleted file mode 100644 index 06dc5391..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.SysPackagePlan; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.mapper.SysPackagePlanMapper; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * 套餐管理Service业务层处理 - * - * @author Lion Li - * @date 2024-05-05 - */ -@RequiredArgsConstructor -@Service -public class SysPackagePlanServiceImpl implements ISysPackagePlanService { - - private final SysPackagePlanMapper baseMapper; - - /** - * 查询套餐管理 - */ - @Override - public SysPackagePlanVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询套餐管理列表 - */ - @Override - public TableDataInfo queryPageList(SysPackagePlanBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询套餐管理列表 - */ - @Override - public List queryList(SysPackagePlanBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysPackagePlanBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getName()), SysPackagePlan::getName, bo.getName()); - lqw.eq(bo.getPrice() != null, SysPackagePlan::getPrice, bo.getPrice()); - lqw.eq(bo.getDuration() != null, SysPackagePlan::getDuration, bo.getDuration()); - lqw.eq(StringUtils.isNotBlank(bo.getPlanDetail()), SysPackagePlan::getPlanDetail, bo.getPlanDetail()); - return lqw; - } - - /** - * 新增套餐管理 - */ - @Override - public Boolean insertByBo(SysPackagePlanBo bo) { - SysPackagePlan add = MapstructUtils.convert(bo, SysPackagePlan.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改套餐管理 - */ - @Override - public Boolean updateByBo(SysPackagePlanBo bo) { - SysPackagePlan update = MapstructUtils.convert(bo, SysPackagePlan.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysPackagePlan entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除套餐管理 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java deleted file mode 100644 index 1a401c74..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.SysUserModelBo; -import org.ruoyi.system.domain.vo.SysUserModelVo; -import org.ruoyi.system.domain.SysUserModel; -import org.ruoyi.system.mapper.SysUserModelMapper; -import org.ruoyi.system.service.ISysUserModelService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-08-03 - */ -@RequiredArgsConstructor -@Service -public class SysUserModelServiceImpl implements ISysUserModelService { - - private final SysUserModelMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public SysUserModelVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(SysUserModelBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(SysUserModelBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysUserModelBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getMid() != null, SysUserModel::getMid, bo.getMid()); - lqw.eq(bo.getGid() != null, SysUserModel::getGid, bo.getGid()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(SysUserModelBo bo) { - SysUserModel add = MapstructUtils.convert(bo, SysUserModel.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(SysUserModelBo bo) { - SysUserModel update = MapstructUtils.convert(bo, SysUserModel.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysUserModel entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java deleted file mode 100644 index 9c84602f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.system.domain.model.ReceiveMessage; -import org.ruoyi.system.service.WeixinUserService; -import org.ruoyi.system.util.WeixinMsgUtil; -import org.ruoyi.system.util.WeixinQrCodeCacheUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.codec.digest.DigestUtils; -import org.springframework.stereotype.Service; - -import java.util.Arrays; - - -@Slf4j -@Service -public class WeixinUserServiceImpl implements WeixinUserService { - - private String token = "panda"; - - @Override - public void checkSignature(String signature, String timestamp, String nonce) { - String[] arr = new String[] {token, timestamp, nonce}; - Arrays.sort(arr); - StringBuilder content = new StringBuilder(); - for (String str : arr) { - content.append(str); - } - String tmpStr = DigestUtils.sha1Hex(content.toString()); - if (tmpStr.equals(signature)) { - log.info("check success"); - return; - } - log.error("check fail"); - throw new RuntimeException("check fail"); - } - - @Override - public String handleWeixinMsg(String requestBody) { - ReceiveMessage receiveMessage = WeixinMsgUtil.msgToReceiveMessage(requestBody); - // 扫码登录 - if (WeixinMsgUtil.isScanQrCode(receiveMessage)) { - return handleScanLogin(receiveMessage); - } - // 关注 - if (WeixinMsgUtil.isEventAndSubscribe(receiveMessage)) { - return receiveMessage.getReplyTextMsg("欢迎关注【熊猫办公助手】,请访问https://web.pandarobot.chat/使用AI助手"); - } - return receiveMessage.getReplyTextMsg("收到(自动回复)"); - } - - /** - * 处理扫码登录 - * - * @param receiveMessage - * @return - */ - private String handleScanLogin(ReceiveMessage receiveMessage) { - String qrCodeTicket = WeixinMsgUtil.getQrCodeTicket(receiveMessage); - if (WeixinQrCodeCacheUtil.get(qrCodeTicket) == null) { - String openId = receiveMessage.getFromUserName(); - WeixinQrCodeCacheUtil.put(qrCodeTicket, openId); - } - return receiveMessage.getReplyTextMsg("你已成功登录!"); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java deleted file mode 100644 index 18887e63..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java +++ /dev/null @@ -1,138 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.core.collection.CollectionUtil; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.mapper.SysUserMapper; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.domain.WxRobConfig; -import org.ruoyi.system.mapper.WxRobConfigMapper; -import org.ruoyi.system.service.IWxRobConfigService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; -import java.util.stream.Collectors; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-05-01 - */ -@RequiredArgsConstructor -@Service -public class WxRobConfigServiceImpl implements IWxRobConfigService { - - private final WxRobConfigMapper baseMapper; - - private final SysUserMapper sysUserMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public WxRobConfigVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(WxRobConfigBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - if(CollectionUtil.isEmpty(result.getRecords())){ - return TableDataInfo.build(result); - } - // 获取所有userId - List userIds = result.getRecords().stream() - .map(WxRobConfigVo::getUserId) - .collect(Collectors.toList()); - // 一次性查询所有userName - Map userIdToUserNameMap = getUserNamesByUserIds(userIds); - // 设置userName - result.getRecords().forEach(wxRobConfigVo -> { - wxRobConfigVo.setUserName(userIdToUserNameMap.get(wxRobConfigVo.getUserId())); - }); - return TableDataInfo.build(result); - } - - private Map getUserNamesByUserIds(List userIds) { - // 实现批量查询userName的逻辑,例如通过sysUserMapper查询sys_user表 - List sysUsers = sysUserMapper.selectBatchIds(userIds); - return sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); - } - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(WxRobConfigBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WxRobConfigBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getUserId() != null, WxRobConfig::getUserId, bo.getUserId()); - lqw.eq(StringUtils.isNotBlank(bo.getUniqueKey()), WxRobConfig::getUniqueKey, bo.getUniqueKey()); - lqw.eq(bo.getDefaultFriend() != null, WxRobConfig::getDefaultFriend, bo.getDefaultFriend()); - lqw.eq(bo.getDefaultGroup() != null, WxRobConfig::getDefaultGroup, bo.getDefaultGroup()); - lqw.eq(bo.getEnable() != null, WxRobConfig::getEnable, bo.getEnable()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(WxRobConfigBo bo) { - WxRobConfig add = MapstructUtils.convert(bo, WxRobConfig.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(WxRobConfigBo bo) { - WxRobConfig update = MapstructUtils.convert(bo, WxRobConfig.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WxRobConfig entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java deleted file mode 100644 index 461ca1a7..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.WxRobKeywordBo; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; -import org.ruoyi.system.domain.WxRobKeyword; -import org.ruoyi.system.mapper.WxRobKeywordMapper; -import org.ruoyi.system.service.IWxRobKeywordService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-05-01 - */ -@RequiredArgsConstructor -@Service -public class WxRobKeywordServiceImpl implements IWxRobKeywordService { - - private final WxRobKeywordMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public WxRobKeywordVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(WxRobKeywordBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(WxRobKeywordBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WxRobKeywordBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getUniqueKey()), WxRobKeyword::getUniqueKey, bo.getUniqueKey()); - lqw.eq(StringUtils.isNotBlank(bo.getKeyData()), WxRobKeyword::getKeyData, bo.getKeyData()); - lqw.eq(StringUtils.isNotBlank(bo.getValueData()), WxRobKeyword::getValueData, bo.getValueData()); - lqw.eq(StringUtils.isNotBlank(bo.getTypeData()), WxRobKeyword::getTypeData, bo.getTypeData()); - lqw.like(StringUtils.isNotBlank(bo.getNickName()), WxRobKeyword::getNickName, bo.getNickName()); - lqw.eq(bo.getToGroup() != null, WxRobKeyword::getToGroup, bo.getToGroup()); - lqw.eq(bo.getEnable() != null, WxRobKeyword::getEnable, bo.getEnable()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(WxRobKeywordBo bo) { - WxRobKeyword add = MapstructUtils.convert(bo, WxRobKeyword.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(WxRobKeywordBo bo) { - WxRobKeyword update = MapstructUtils.convert(bo, WxRobKeyword.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WxRobKeyword entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java deleted file mode 100644 index bfb2cb0a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.WxRobRelation; -import org.ruoyi.system.domain.bo.WxRobRelationBo; -import org.ruoyi.system.domain.vo.WxRobRelationVo; -import org.ruoyi.system.mapper.WxRobRelationMapper; -import org.ruoyi.system.service.IWxRobRelationService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-05-01 - */ -@RequiredArgsConstructor -@Service -public class WxRobRelationServiceImpl implements IWxRobRelationService { - - private final WxRobRelationMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public WxRobRelationVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(WxRobRelationBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(WxRobRelationBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WxRobRelationBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getOutKey()), WxRobRelation::getOutKey, bo.getOutKey()); - lqw.eq(StringUtils.isNotBlank(bo.getUniqueKey()), WxRobRelation::getUniqueKey, bo.getUniqueKey()); - lqw.like(StringUtils.isNotBlank(bo.getNickName()), WxRobRelation::getNickName, bo.getNickName()); - lqw.eq(bo.getToGroup() != null, WxRobRelation::getToGroup, bo.getToGroup()); - lqw.eq(bo.getEnable() != null, WxRobRelation::getEnable, bo.getEnable()); - lqw.eq(StringUtils.isNotBlank(bo.getWhiteList()), WxRobRelation::getWhiteList, bo.getWhiteList()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(WxRobRelationBo bo) { - WxRobRelation add = MapstructUtils.convert(bo, WxRobRelation.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(WxRobRelationBo bo) { - WxRobRelation update = MapstructUtils.convert(bo, WxRobRelation.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WxRobRelation entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-weixin/pom.xml b/ruoyi-modules/ruoyi-weixin/pom.xml deleted file mode 100644 index 3e067c04..00000000 --- a/ruoyi-modules/ruoyi-weixin/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - - ruoyi-weixin - - - 17 - 17 - UTF-8 - - - diff --git a/script/docker/localModels/Dockerfile b/script/docker/localModels/Dockerfile deleted file mode 100644 index 0f1e6063..00000000 --- a/script/docker/localModels/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# 使用 Python 3.8 slim 作为基础镜像(轻量稳定) -FROM python:3.10 - -# 设置工作目录 -WORKDIR /app - -# 复制所有文件到容器 -COPY . /app - -# 更新 pip 并安装 wheel(避免依赖问题) -RUN pip install --upgrade pip wheel - -# 使用阿里云 PyPI 镜像安装依赖,并添加 trusted-host -RUN pip install -i https://mirrors.aliyun.com/pypi/simple \ - --trusted-host mirrors.aliyun.com \ - --no-cache-dir -r requirements.txt - -# 暴露 Flask 端口 -EXPOSE 5000 - -# 设置环境变量 -ENV FLASK_APP=app.py -ENV FLASK_RUN_HOST=0.0.0.0 - -# 运行 Flask -CMD ["flask", "run", "--host=0.0.0.0"] diff --git a/script/docker/localModels/app.py b/script/docker/localModels/app.py deleted file mode 100644 index 645a9b43..00000000 --- a/script/docker/localModels/app.py +++ /dev/null @@ -1,116 +0,0 @@ -from flask import Flask, request, jsonify -from sentence_transformers import SentenceTransformer -from sklearn.metrics.pairwise import cosine_similarity -import json - -app = Flask(__name__) - -# 创建一个全局的模型缓存字典 -model_cache = {} - -# 分割文本块 -def split_text(text, block_size, overlap_chars, delimiter): - chunks = text.split(delimiter) - text_blocks = [] - current_block = "" - - for chunk in chunks: - if len(current_block) + len(chunk) + 1 <= block_size: - if current_block: - current_block += " " + chunk - else: - current_block = chunk - else: - text_blocks.append(current_block) - current_block = chunk - if current_block: - text_blocks.append(current_block) - - overlap_blocks = [] - for i in range(len(text_blocks)): - if i > 0: - overlap_block = text_blocks[i - 1][-overlap_chars:] + text_blocks[i] - overlap_blocks.append(overlap_block) - overlap_blocks.append(text_blocks[i]) - - return overlap_blocks - -# 文本向量化 -def vectorize_text_blocks(text_blocks, model): - return model.encode(text_blocks) - -# 文本检索 -def retrieve_top_k(query, knowledge_base, k, block_size, overlap_chars, delimiter, model): - # 将知识库拆分为文本块 - text_blocks = split_text(knowledge_base, block_size, overlap_chars, delimiter) - # 向量化文本块 - knowledge_vectors = vectorize_text_blocks(text_blocks, model) - # 向量化查询文本 - query_vector = model.encode([query]).reshape(1, -1) - # 计算相似度 - similarities = cosine_similarity(query_vector, knowledge_vectors) - # 获取相似度最高的 k 个文本块的索引 - top_k_indices = similarities[0].argsort()[-k:][::-1] - - # 返回文本块和它们的向量 - top_k_texts = [text_blocks[i] for i in top_k_indices] - top_k_embeddings = [knowledge_vectors[i] for i in top_k_indices] - - return top_k_texts, top_k_embeddings - -@app.route('/vectorize', methods=['POST']) -def vectorize_text(): - # 从请求中获取 JSON 数据 - data = request.json - print(f"Received request data: {data}") # 调试输出请求数据 - - text_list = data.get("text", []) - model_name = data.get("model_name", "msmarco-distilbert-base-tas-b") # 默认模型 - - delimiter = data.get("delimiter", "\n") # 默认分隔符 - k = int(data.get("k", 3)) # 默认检索条数 - block_size = int(data.get("block_size", 500)) # 默认文本块大小 - overlap_chars = int(data.get("overlap_chars", 50)) # 默认重叠字符数 - - if not text_list: - return jsonify({"error": "Text is required."}), 400 - - # 检查模型是否已经加载 - if model_name not in model_cache: - try: - model = SentenceTransformer(model_name) - model_cache[model_name] = model # 缓存模型 - except Exception as e: - return jsonify({"error": f"Failed to load model: {e}"}), 500 - - model = model_cache[model_name] - - top_k_texts_all = [] - top_k_embeddings_all = [] - - # 如果只有一个查询文本 - if len(text_list) == 1: - top_k_texts, top_k_embeddings = retrieve_top_k(text_list[0], text_list[0], k, block_size, overlap_chars, delimiter, model) - top_k_texts_all.append(top_k_texts) - top_k_embeddings_all.append(top_k_embeddings) - elif len(text_list) > 1: - # 如果多个查询文本,依次处理 - for query in text_list: - top_k_texts, top_k_embeddings = retrieve_top_k(query, text_list[0], k, block_size, overlap_chars, delimiter, model) - top_k_texts_all.append(top_k_texts) - top_k_embeddings_all.append(top_k_embeddings) - - # 将嵌入向量(ndarray)转换为可序列化的列表 - top_k_embeddings_all = [[embedding.tolist() for embedding in embeddings] for embeddings in top_k_embeddings_all] - - print(f"Top K texts: {top_k_texts_all}") # 打印检索到的文本 - print(f"Top K embeddings: {top_k_embeddings_all}") # 打印检索到的向量 - - # 返回 JSON 格式的数据 - return jsonify({ - - "topKEmbeddings": top_k_embeddings_all # 返回嵌入向量 - }) - -if __name__ == '__main__': - app.run(host="0.0.0.0", port=5000, debug=True) diff --git a/script/docker/localModels/remade.md b/script/docker/localModels/remade.md deleted file mode 100644 index d6af3d2b..00000000 --- a/script/docker/localModels/remade.md +++ /dev/null @@ -1,4 +0,0 @@ -1.下载镜像 -docker pull registry.cn-hangzhou.aliyuncs.com/hejh-docker/localmodel:0.1.1 -2. 启动 -docker run -p 5000:5000 \ No newline at end of file diff --git a/script/docker/localModels/requirements.txt b/script/docker/localModels/requirements.txt deleted file mode 100644 index 2d62483a..00000000 --- a/script/docker/localModels/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -Flask==3.1.0 -sentence-transformers==3.4.1 -scikit-learn==1.6.1 -werkzeug>=3.1 -