办学质量监测教学评价系统
ageer
2025-04-08 5a5a48e153c4f161a4e01c8ec4b4b0ec8f5fa1d2
feat: ruoyi-chat-api模块调整
已重命名1个文件
已修改30个文件
已添加39个文件
3064 ■■■■ 文件已修改
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAgentManage.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPackagePlan.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPayOrder.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatModelMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPackagePlanMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPayOrderMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPackagePlanService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPayOrderService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatGptsServiceImpl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatMessageServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPackagePlanServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPayOrderServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPluginServiceImpl.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatVoucherServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAgentManageMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAppStoreMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatGptsMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatMessageMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatModelMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPackagePlanMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPayOrderMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPluginMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatVoucherMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAgentManage.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
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;
/**
 * æ™ºèƒ½ä½“管理对象 chat_agent_manage
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_agent_manage")
public class ChatAgentManage extends BaseEntity {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®id
     */
    @TableId(value = "id")
    private Long id;
    /**
     * åº”用名称
     */
    private String appName;
    /**
     * åº”用类型
     */
    private String appType;
    /**
     * åº”用头像
     */
    private String appIcon;
    /**
     * åº”用描述
     */
    private String appDescription;
    /**
     * å¼€åœºä»‹ç»
     */
    private String introduction;
    /**
     * æ¨¡åž‹
     */
    private String model;
    /**
     * å¯¹è¯å¯é€‰æ¨¡åž‹
     */
    private String conversationModel;
    /**
     * åº”用设定
     */
    private String applicationSettings;
    /**
     * æ’ä»¶id
     */
    private String pluginId;
    /**
     * çŸ¥è¯†åº“id
     */
    private Long knowledgeId;
    /**
     * å¤‡æ³¨
     */
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java
@@ -1,7 +1,6 @@
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;
@@ -9,10 +8,10 @@
import java.io.Serial;
/**
 * åº”用市场
 * åº”用商店对象 chat_app_store
 *
 * @author Lion Li
 * @date 2024-03-19
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -23,7 +22,7 @@
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®
     * id
     */
    @TableId(value = "id")
    private Long id;
@@ -39,15 +38,14 @@
    private String description;
    /**
     * å¤´åƒ
     * logo
     */
    private String avatar;
    /**
     * åº”用地址
     * åœ°å€
     */
    private String appUrl;
    /**
     * å¤‡æ³¨
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java
@@ -1,21 +1,18 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
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 org.ruoyi.common.sensitive.annotation.Sensitive;
import org.ruoyi.common.sensitive.core.SensitiveStrategy;
import java.io.Serial;
/**
 * å¯¹è¯é…ç½®ä¿¡æ¯å¯¹è±¡ chat_config
 * é…ç½®ä¿¡æ¯å¯¹è±¡ chat_config
 *
 * @author Lion Li
 * @date 2024-04-13
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -44,7 +41,6 @@
    /**
     * é…ç½®å€¼
     */
    @Sensitive(strategy = SensitiveStrategy.SKY)
    private String configValue;
    /**
@@ -58,6 +54,12 @@
    private String remark;
    /**
     * ç‰ˆæœ¬
     */
    @Version
    private Long version;
    /**
     * åˆ é™¤æ ‡å¿—(0代表存在 1代表删除)
     */
    @TableLogic
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java
@@ -1,9 +1,6 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
@@ -11,10 +8,10 @@
import java.io.Serial;
/**
 * gpts管理对象 chat_gpts
 * åº”用管理对象 chat_gpts
 *
 * @author Lion Li
 * @date 2024-07-09
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -63,12 +60,12 @@
    /**
     * ç‚¹èµž
     */
    private String useCnt;
    private Long useCnt;
    /**
     * å·®è¯„
     */
    private String bad;
    private Long bad;
    /**
     * ç±»åž‹
@@ -97,15 +94,5 @@
     */
    private String updateIp;
    /**
     * æ¨¡åž‹åç§°
     */
    private String modelName;
    /**
     * æ¨¡åž‹system
     */
    private String systemPrompt;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java
@@ -1,21 +1,19 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import com.baomidou.mybatisplus.annotation.*;
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 java.math.BigDecimal;
import java.io.Serial;
/**
 * èŠå¤©æ¶ˆæ¯å¯¹è±¡ chat_message
 *
 * @author Lion Li
 * @date 2023-11-26
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -28,49 +26,45 @@
    /**
     * ä¸»é”®
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    @TableId(value = "id")
    private Long id;
    /**
     * ç”¨æˆ·ID
     * ç”¨æˆ·id
     */
    @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
    private Long UserId;
    private Long userId;
    /**
     * æ¶ˆæ¯å†…容
     */
    private String content;
    /**
     * å¯¹è¯è§’色
     */
    private String role;
    /**
     * æ¶ˆæ¯å†…容
     */
    @NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String content;
     * æ‰£é™¤é‡‘额
    /**
     * æ‰£é™¤è´¹ç”¨
     */
    private Double deductCost;
    private BigDecimal deductCost;
    /**
     * ç´¯è®¡ Tokens
     */
    @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer totalTokens;
    private Long totalTokens;
    /**
     * æ¨¡åž‹åç§°
     */
    @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String modelName;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
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;
/**
 * èŠå¤©æ¨¡åž‹å¯¹è±¡ chat_model
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_model")
public class ChatModel extends BaseEntity {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®
     */
    @TableId(value = "id")
    private Long id;
    /**
     * æ¨¡åž‹åˆ†ç±»
     */
    private String category;
    /**
     * æ¨¡åž‹åç§°
     */
    private String modelName;
    /**
     * æ¨¡åž‹æè¿°
     */
    private String modelDescribe;
    /**
     * æ¨¡åž‹ä»·æ ¼
     */
    private Long modelPrice;
    /**
     * è®¡è´¹ç±»åž‹
     */
    private String modelType;
    /**
     * æ˜¯å¦æ˜¾ç¤º
     */
    private String modelShow;
    /**
     * ç³»ç»Ÿæç¤ºè¯
     */
    private String systemPrompt;
    /**
     * è¯·æ±‚地址
     */
    private String apiHost;
    /**
     * å¯†é’¥
     */
    private String apiKey;
    /**
     * å¤‡æ³¨
     */
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPackagePlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
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.math.BigDecimal;
import java.io.Serial;
/**
 * å¥—餐管理对象 chat_package_plan
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_package_plan")
public class ChatPackagePlan 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;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPayOrder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
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.math.BigDecimal;
import java.io.Serial;
/**
 * æ”¯ä»˜è®¢å•对象 chat_pay_order
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_pay_order")
public class ChatPayOrder 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;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java
@@ -1,7 +1,6 @@
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;
@@ -12,7 +11,7 @@
 * æ’件管理对象 chat_plugin
 *
 * @author ageerle
 * @date 2025-03-30
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java
@@ -1,19 +1,19 @@
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.math.BigDecimal;
import java.io.Serial;
/**
 * ç”¨æˆ·å…‘换记录对象 chat_voucher
 *
 * @author Lion Li
 * @date 2024-05-03
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -30,11 +30,6 @@
    private Long id;
    /**
     * ç”¨æˆ·id
     */
    private Long userId;
    /**
     * å…‘换码
     */
    private String code;
@@ -45,6 +40,11 @@
    private BigDecimal amount;
    /**
     * ç”¨æˆ·id
     */
    private Long userId;
    /**
     * å…‘换状态
     */
    private String status;
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.system.domain.ChatAgentManage;
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_agent_manage
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatAgentManage.class, reverseConvertGenerate = false)
public class ChatAgentManageBo extends BaseEntity {
    /**
     * ä¸»é”®id
     */
    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * åº”用名称
     */
    @NotBlank(message = "应用名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appName;
    /**
     * åº”用类型
     */
    @NotBlank(message = "应用类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appType;
    /**
     * åº”用头像
     */
    @NotBlank(message = "应用头像不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appIcon;
    /**
     * åº”用描述
     */
    @NotBlank(message = "应用描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appDescription;
    /**
     * å¼€åœºä»‹ç»
     */
    @NotBlank(message = "开场介绍不能为空", groups = { AddGroup.class, EditGroup.class })
    private String introduction;
    /**
     * æ¨¡åž‹
     */
    @NotBlank(message = "模型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String model;
    /**
     * å¯¹è¯å¯é€‰æ¨¡åž‹
     */
    @NotBlank(message = "对话可选模型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String conversationModel;
    /**
     * åº”用设定
     */
    @NotBlank(message = "应用设定不能为空", groups = { AddGroup.class, EditGroup.class })
    private String applicationSettings;
    /**
     * æ’ä»¶id
     */
    @NotBlank(message = "插件id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pluginId;
    /**
     * çŸ¥è¯†åº“id
     */
    @NotNull(message = "知识库id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long knowledgeId;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java
@@ -1,19 +1,19 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.system.domain.ChatAppStore;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
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.domain.ChatAppStore;
import jakarta.validation.constraints.*;
/**
 * åº”用市场业务对象 voice_role
 * åº”用商店业务对象 chat_app_store
 *
 * @author Lion Li
 * @date 2024-03-19
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -23,37 +23,37 @@
    /**
     * id
     */
    @NotNull(message = "id不能为空")
    @NotNull(message = "id不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * è§’色名称
     * åç§°
     */
    @NotBlank(message = "名称不能为空")
    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;
    /**
     * è§’色描述
     * æè¿°
     */
    @NotBlank(message = "描述不能为空")
    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String description;
    /**
     * å¤´åƒ
     * logo
     */
    @NotBlank(message = "头像不能为空")
    @NotBlank(message = "logo不能为空", groups = { AddGroup.class, EditGroup.class })
    private String avatar;
    /**
     * éŸ³é¢‘地址
     * åœ°å€
     */
    @NotBlank(message = "应用地址不能为空")
    @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appUrl;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空")
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java
@@ -1,24 +1,19 @@
package org.ruoyi.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.system.domain.ChatConfig;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
import org.ruoyi.common.sensitive.annotation.Sensitive;
import org.ruoyi.common.sensitive.core.SensitiveStrategy;
import org.ruoyi.domain.ChatConfig;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
 * å¯¹è¯é…ç½®ä¿¡æ¯
业务对象 chat_config
 * é…ç½®ä¿¡æ¯ä¸šåŠ¡å¯¹è±¡ chat_config
 *
 * @author Lion Li
 * @date 2024-04-13
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -46,14 +41,13 @@
    /**
     * é…ç½®å€¼
     */
    @Sensitive(strategy = SensitiveStrategy.SKY)
    @NotBlank(message = "配置值不能为空", groups = { AddGroup.class, EditGroup.class })
    private String configValue;
    /**
     * è¯´æ˜Ž
     */
    @NotBlank(message = "参数说明不能为空", groups = { AddGroup.class, EditGroup.class })
    @NotBlank(message = "说明不能为空", groups = { AddGroup.class, EditGroup.class })
    private String configDict;
    /**
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java
@@ -1,20 +1,19 @@
package org.ruoyi.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.system.domain.ChatGpts;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
import org.ruoyi.domain.ChatGpts;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
 * gpts管理业务对象 chat_gpts
 * åº”用管理业务对象 chat_gpts
 *
 * @author Lion Li
 * @date 2024-07-09
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -42,56 +41,56 @@
    /**
     * gpts图标
     */
    @NotBlank(message = "gpts图标不能为空", groups = { AddGroup.class, EditGroup.class })
    private String logo;
    /**
     * gpts描述
     */
    @NotBlank(message = "gpts描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String info;
    /**
     * ä½œè€…id
     */
    @NotBlank(message = "作者id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String authorId;
    /**
     * ä½œè€…名称
     */
    @NotBlank(message = "作者名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String authorName;
    /**
     * ç‚¹èµž
     */
    private String useCnt;
    @NotNull(message = "点赞不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long useCnt;
    /**
     * å·®è¯„
     */
    private String bad;
    @NotNull(message = "差评不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long bad;
    /**
     * ç±»åž‹
     */
    @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
    /**
     * æ›´æ–°IP
     */
    @NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class })
    private String updateIp;
    /**
     * æ¨¡åž‹åç§°
     */
    private String modelName;
    /**
     * æ¨¡åž‹system
     */
    private String systemPrompt;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java
@@ -1,21 +1,20 @@
package org.ruoyi.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.system.domain.ChatMessage;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
import org.ruoyi.domain.ChatMessage;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
 * èŠå¤©æ¶ˆæ¯ä¸šåŠ¡å¯¹è±¡ chat_message
 *
 * @author Lion Li
 * @date 2023-11-26
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -29,19 +28,10 @@
    private Long id;
    /**
     * ç”¨æˆ·ID
     * ç”¨æˆ·id
     */
    @NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;
    /**
     * ç”¨æˆ·åç§°
     */
    private String userName;
    /**
     * å¯¹è¯è§’色
     */
    private String role;
    /**
     * æ¶ˆæ¯å†…容
@@ -50,23 +40,36 @@
    private String content;
    /**
     * æ‰£é™¤è´¹ç”¨
     * å¯¹è¯è§’色
     */
    private Double deductCost;
    @NotBlank(message = "对话角色不能为空", groups = { AddGroup.class, EditGroup.class })
    private String role;
    /**
     * æ‰£é™¤é‡‘额
     */
    @NotNull(message = "扣除金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal deductCost;
    /**
     * ç´¯è®¡ Tokens
     */
    private Integer totalTokens;
    @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long totalTokens;
    /**
     * æ¨¡åž‹åç§°
     */
    @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String modelName;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.system.domain.ChatModel;
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_model
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatModel.class, reverseConvertGenerate = false)
public class ChatModelBo extends BaseEntity {
    /**
     * ä¸»é”®
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;
    /**
     * æ¨¡åž‹åˆ†ç±»
     */
    @NotBlank(message = "模型分类不能为空", groups = { AddGroup.class, EditGroup.class })
    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 Long modelPrice;
    /**
     * è®¡è´¹ç±»åž‹
     */
    @NotBlank(message = "计费类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String modelType;
    /**
     * æ˜¯å¦æ˜¾ç¤º
     */
    @NotBlank(message = "是否显示不能为空", groups = { AddGroup.class, EditGroup.class })
    private String modelShow;
    /**
     * ç³»ç»Ÿæç¤ºè¯
     */
    @NotBlank(message = "系统提示词不能为空", groups = { AddGroup.class, EditGroup.class })
    private String systemPrompt;
    /**
     * è¯·æ±‚地址
     */
    @NotBlank(message = "请求地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String apiHost;
    /**
     * å¯†é’¥
     */
    @NotBlank(message = "密钥不能为空", groups = { AddGroup.class, EditGroup.class })
    private String apiKey;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.system.domain.ChatPackagePlan;
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;
/**
 * å¥—餐管理业务对象 chat_package_plan
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatPackagePlan.class, reverseConvertGenerate = false)
public class ChatPackagePlanBo 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;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.system.domain.ChatPayOrder;
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;
/**
 * æ”¯ä»˜è®¢å•业务对象 chat_pay_order
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatPayOrder.class, reverseConvertGenerate = false)
public class ChatPayOrderBo 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;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java
@@ -1,21 +1,19 @@
package org.ruoyi.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.system.domain.ChatPlugin;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
import org.ruoyi.domain.ChatPlugin;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
 * æ’件管理业务对象 chat_plugin
 *
 * @author ageerle
 * @date 2025-03-30
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java
@@ -1,22 +1,20 @@
package org.ruoyi.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.system.domain.ChatVoucher;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
import org.ruoyi.domain.ChatVoucher;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
 * ç”¨æˆ·å…‘换记录业务对象 chat_voucher
 *
 * @author Lion Li
 * @date 2024-05-03
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@@ -30,13 +28,9 @@
    private Long id;
    /**
     * ç”¨æˆ·id
     */
    private Long userId;
    /**
     * å…‘换码
     */
    @NotBlank(message = "兑换码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String code;
    /**
@@ -46,23 +40,33 @@
    private BigDecimal amount;
    /**
     * ç”¨æˆ·id
     */
    @NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;
    /**
     * å…‘换状态
     */
    @NotBlank(message = "兑换状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;
    /**
     * å…‘换前余额
     */
    private Double balanceBefore;
    @NotNull(message = "兑换前余额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal balanceBefore;
    /**
     * å…‘换后余额
     */
    private Double balanceAfter;
    @NotNull(message = "兑换后余额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal balanceAfter;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package org.ruoyi.system.domain.vo;
import org.ruoyi.system.domain.ChatAgentManage;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import annotation.excel.common.org.ruoyi.ExcelDictFormat;
import convert.excel.common.org.ruoyi.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
 * æ™ºèƒ½ä½“管理视图对象 chat_agent_manage
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatAgentManage.class)
public class ChatAgentManageVo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®id
     */
    @ExcelProperty(value = "主键id")
    private Long id;
    /**
     * åº”用名称
     */
    @ExcelProperty(value = "应用名称")
    private String appName;
    /**
     * åº”用类型
     */
    @ExcelProperty(value = "应用类型")
    private String appType;
    /**
     * åº”用头像
     */
    @ExcelProperty(value = "应用头像")
    private String appIcon;
    /**
     * åº”用描述
     */
    @ExcelProperty(value = "应用描述")
    private String appDescription;
    /**
     * å¼€åœºä»‹ç»
     */
    @ExcelProperty(value = "开场介绍")
    private String introduction;
    /**
     * æ¨¡åž‹
     */
    @ExcelProperty(value = "模型")
    private String model;
    /**
     * å¯¹è¯å¯é€‰æ¨¡åž‹
     */
    @ExcelProperty(value = "对话可选模型")
    private String conversationModel;
    /**
     * åº”用设定
     */
    @ExcelProperty(value = "应用设定")
    private String applicationSettings;
    /**
     * æ’ä»¶id
     */
    @ExcelProperty(value = "插件id")
    private String pluginId;
    /**
     * çŸ¥è¯†åº“id
     */
    @ExcelProperty(value = "知识库id")
    private Long knowledgeId;
    /**
     * å¤‡æ³¨
     */
    @ExcelProperty(value = "备注")
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java
@@ -1,23 +1,23 @@
package org.ruoyi.domain.vo;
package org.ruoyi.system.domain.vo;
import org.ruoyi.system.domain.ChatAppStore;
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.ChatAppStore;
import java.io.Serial;
import java.io.Serializable;
/**
 * åº”用市场视图对象
 * åº”用商店视图对象 chat_app_store
 *
 * @author Lion Li
 * @date 2024-03-19
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@@ -34,27 +34,27 @@
    private Long id;
    /**
     * è§’色名称
     * åç§°
     */
    @ExcelProperty(value = "名称")
    private String name;
    /**
     * è§’色描述
     * æè¿°
     */
    @ExcelProperty(value = "描述")
    private String description;
    /**
     * å¤´åƒ
     * logo
     */
    @ExcelProperty(value = "头像")
    @ExcelProperty(value = "logo")
    private String avatar;
    /**
     * éŸ³é¢‘地址
     * åœ°å€
     */
    @ExcelProperty(value = "应用地址")
    @ExcelProperty(value = "地址")
    private String appUrl;
    /**
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java
@@ -1,25 +1,23 @@
package org.ruoyi.domain.vo;
import org.ruoyi.system.domain.ChatConfig;
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.domain.ChatConfig;
import java.io.Serial;
import java.io.Serializable;
/**
 * å¯¹è¯é…ç½®ä¿¡æ¯
视图对象 chat_config
 * é…ç½®ä¿¡æ¯è§†å›¾å¯¹è±¡ chat_config
 *
 * @author Lion Li
 * @date 2024-04-13
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@@ -51,7 +49,6 @@
     * é…ç½®å€¼
     */
    @ExcelProperty(value = "配置值")
    @Sensitive(strategy = SensitiveStrategy.SKY)
    private String configValue;
    /**
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java
@@ -1,21 +1,23 @@
package org.ruoyi.domain.vo;
import org.ruoyi.system.domain.ChatGpts;
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.ChatGpts;
import java.io.Serial;
import java.io.Serializable;
/**
 * gpts管理视图对象 chat_gpts
 * åº”用管理视图对象 chat_gpts
 *
 * @author Lion Li
 * @date 2024-07-09
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@@ -71,13 +73,13 @@
     * ç‚¹èµž
     */
    @ExcelProperty(value = "点赞")
    private String useCnt;
    private Long useCnt;
    /**
     * å·®è¯„
     */
    @ExcelProperty(value = "差评")
    private String bad;
    private Long bad;
    /**
     * ç±»åž‹
@@ -96,17 +98,6 @@
     */
    @ExcelProperty(value = "更新IP")
    private String updateIp;
    /**
     * æ¨¡åž‹åç§°
     */
    @ExcelProperty(value = "模型名称")
    private String modelName;
    /**
     * æ¨¡åž‹system
     */
    private String systemPrompt;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java
@@ -1,25 +1,24 @@
package org.ruoyi.domain.vo;
import java.math.BigDecimal;
import org.ruoyi.system.domain.ChatMessage;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatMessage;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
 * èŠå¤©æ¶ˆæ¯è§†å›¾å¯¹è±¡ chat_message
 *
 * @author Lion Li
 * @date 2023-11-26
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@@ -32,60 +31,50 @@
    /**
     * ä¸»é”®
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    @ExcelProperty(value = "主键")
    private Long id;
    /**
     * ç”¨æˆ·ID
     * ç”¨æˆ·id
     */
    @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
    @ExcelProperty(value = "用户id")
    private Long userId;
    /**
     * ç”¨æˆ·åç§°
     */
    @NotBlank(message = "用户名称")
    private String userName;
    /**
     * å¯¹è¯è§’色
     */
    private String role;
    /**
     * æ¶ˆæ¯å†…容
     */
    @NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class })
    @ExcelProperty(value = "消息内容")
    private String content;
    /**
     * å¯¹è¯è§’色
     */
    @ExcelProperty(value = "对话角色")
    private String role;
    /**
     * æ‰£é™¤è´¹ç”¨
     * æ‰£é™¤é‡‘额
     */
    private Double deductCost;
    @ExcelProperty(value = "扣除金额")
    private BigDecimal deductCost;
    /**
     * ç´¯è®¡ Tokens
     */
    @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer totalTokens;
    @ExcelProperty(value = "累计 Tokens")
    private Long totalTokens;
    /**
     * æ¨¡åž‹åç§°
     */
    @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
    @ExcelProperty(value = "模型名称")
    private String modelName;
    /**
     * å¤‡æ³¨
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    @ExcelProperty(value = "备注")
    private String remark;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package org.ruoyi.domain.vo;
import org.ruoyi.system.domain.ChatModel;
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;
/**
 * èŠå¤©æ¨¡åž‹è§†å›¾å¯¹è±¡ chat_model
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatModel.class)
public class ChatModelVo 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 Long modelPrice;
    /**
     * è®¡è´¹ç±»åž‹
     */
    @ExcelProperty(value = "计费类型")
    private String modelType;
    /**
     * æ˜¯å¦æ˜¾ç¤º
     */
    @ExcelProperty(value = "是否显示")
    private String modelShow;
    /**
     * ç³»ç»Ÿæç¤ºè¯
     */
    @ExcelProperty(value = "系统提示词")
    private String systemPrompt;
    /**
     * è¯·æ±‚地址
     */
    @ExcelProperty(value = "请求地址")
    private String apiHost;
    /**
     * å¯†é’¥
     */
    @ExcelProperty(value = "密钥")
    private String apiKey;
    /**
     * å¤‡æ³¨
     */
    @ExcelProperty(value = "备注")
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package org.ruoyi.domain.vo;
import java.math.BigDecimal;
import org.ruoyi.system.domain.ChatPackagePlan;
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;
/**
 * å¥—餐管理视图对象 chat_package_plan
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatPackagePlan.class)
public class ChatPackagePlanVo 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;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package org.ruoyi.domain.vo;
import java.math.BigDecimal;
import org.ruoyi.system.domain.ChatPayOrder;
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;
/**
 * æ”¯ä»˜è®¢å•视图对象 chat_pay_order
 *
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatPayOrder.class)
public class ChatPayOrderVo 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;
    /**
     * å¤‡æ³¨
     */
    @ExcelProperty(value = "备注")
    private String remark;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java
@@ -1,20 +1,23 @@
package org.ruoyi.domain.vo;
import org.ruoyi.system.domain.ChatPlugin;
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.ChatPlugin;
import java.io.Serial;
import java.io.Serializable;
/**
 * æ’件管理视图对象 chat_plugin
 *
 * @author ageerle
 * @date 2025-03-30
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java
@@ -1,10 +1,12 @@
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;
@@ -14,8 +16,8 @@
/**
 * ç”¨æˆ·å…‘换记录视图对象 chat_voucher
 *
 * @author Lion Li
 * @date 2024-05-03
 * @author ageerle
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@@ -32,18 +34,6 @@
    private Long id;
    /**
     * ç”¨æˆ·id
     */
    @ExcelProperty(value = "用户id")
    private Long userId;
    /**
     * ç”¨æˆ·åç§°
     */
    @ExcelProperty(value = "用户名称")
    private String userName;
    /**
     * å…‘换码
     */
    @ExcelProperty(value = "兑换码")
@@ -53,7 +43,13 @@
     * å…‘换金额
     */
    @ExcelProperty(value = "兑换金额")
    private Double amount;
    private BigDecimal amount;
    /**
     * ç”¨æˆ·id
     */
    @ExcelProperty(value = "用户id")
    private Long userId;
    /**
     * å…‘换状态
@@ -65,22 +61,19 @@
     * å…‘换前余额
     */
    @ExcelProperty(value = "兑换前余额")
    private Double balanceBefore;
    private BigDecimal balanceBefore;
    /**
     * å…‘换后余额
     */
    @ExcelProperty(value = "兑换后余额")
    private Double balanceAfter;
    private BigDecimal balanceAfter;
    /**
     * å¤‡æ³¨
     */
    @ExcelProperty(value = "备注")
    private String remark;
    @ExcelProperty(value = "创建时间")
    private String createTime;
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.ruoyi.mapper;
import org.ruoyi.domain.ChatAgentManage;
import org.ruoyi.system.domain.vo.ChatAgentManageVo;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
/**
 * æ™ºèƒ½ä½“管理Mapper接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatAgentManageMapper extends BaseMapperPlus<ChatAgentManage, ChatAgentManageVo> {
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java
@@ -1,15 +1,15 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatAppStore;
import org.ruoyi.domain.vo.ChatAppStoreVo;
import org.ruoyi.domain.ChatAppStore;
import org.ruoyi.system.domain.vo.ChatAppStoreVo;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
/**
 * åº”用市场Mapper接口
 * åº”用商店Mapper接口
 *
 * @author Lion Li
 * @date 2024-03-19
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatAppStoreMapper extends BaseMapperPlus<ChatAppStore, ChatAppStoreVo> {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java
@@ -1,17 +1,16 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatConfig;
import org.ruoyi.domain.vo.ChatConfigVo;
/**
 * å¯¹è¯é…ç½®ä¿¡æ¯Mapper接口
 * é…ç½®ä¿¡æ¯Mapper接口
 *
 * @author Lion Li
 * @date 2024-04-13
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatConfigMapper extends BaseMapperPlus<ChatConfig, ChatConfigVo> {
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java
@@ -4,12 +4,11 @@
import org.ruoyi.domain.ChatGpts;
import org.ruoyi.domain.vo.ChatGptsVo;
/**
 * gpts管理Mapper接口
 * åº”用管理Mapper接口
 *
 * @author Lion Li
 * @date 2024-07-09
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatGptsMapper extends BaseMapperPlus<ChatGpts, ChatGptsVo> {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java
@@ -1,15 +1,15 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatMessage;
import org.ruoyi.domain.vo.ChatMessageVo;
/**
 * èŠå¤©æ¶ˆæ¯Mapper接口
 *
 * @author Lion Li
 * @date 2023-11-26
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatMessageMapper extends BaseMapperPlus<ChatMessage, ChatMessageVo> {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatModelMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatModel;
import org.ruoyi.domain.vo.ChatModelVo;
/**
 * èŠå¤©æ¨¡åž‹Mapper接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatModelMapper extends BaseMapperPlus<ChatModel, ChatModelVo> {
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPackagePlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatPackagePlan;
import org.ruoyi.domain.vo.ChatPackagePlanVo;
/**
 * å¥—餐管理Mapper接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatPackagePlanMapper extends BaseMapperPlus<ChatPackagePlan, ChatPackagePlanVo> {
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPayOrderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatPayOrder;
import org.ruoyi.domain.vo.ChatPayOrderVo;
/**
 * æ”¯ä»˜è®¢å•Mapper接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatPayOrderMapper extends BaseMapperPlus<ChatPayOrder, ChatPayOrderVo> {
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java
@@ -1,15 +1,15 @@
package org.ruoyi.mapper;
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatPlugin;
import org.ruoyi.domain.vo.ChatPluginVo;
/**
 * æ’件管理Mapper接口
 *
 * @author ageerle
 * @date 2025-03-30
 * @date 2025-04-08
 */
public interface ChatPluginMapper extends BaseMapperPlus<ChatPlugin, ChatPluginVo> {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java
@@ -4,12 +4,11 @@
import org.ruoyi.domain.ChatVoucher;
import org.ruoyi.domain.vo.ChatVoucherVo;
/**
 * ç”¨æˆ·å…‘换记录Mapper接口
 *
 * @author Lion Li
 * @date 2024-05-03
 * @author ageerle
 * @date 2025-04-08
 */
public interface ChatVoucherMapper extends BaseMapperPlus<ChatVoucher, ChatVoucherVo> {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package org.ruoyi.service;
import org.ruoyi.domain.bo.ChatAgentManageBo;
import org.ruoyi.system.domain.vo.ChatAgentManageVo;
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 ageerle
 * @date 2025-04-08
 */
public interface IChatAgentManageService {
    /**
     * æŸ¥è¯¢æ™ºèƒ½ä½“管理
     */
    ChatAgentManageVo queryById(Long id);
    /**
     * æŸ¥è¯¢æ™ºèƒ½ä½“管理列表
     */
    TableDataInfo<ChatAgentManageVo> queryPageList(ChatAgentManageBo bo, PageQuery pageQuery);
    /**
     * æŸ¥è¯¢æ™ºèƒ½ä½“管理列表
     */
    List<ChatAgentManageVo> queryList(ChatAgentManageBo bo);
    /**
     * æ–°å¢žæ™ºèƒ½ä½“管理
     */
    Boolean insertByBo(ChatAgentManageBo bo);
    /**
     * ä¿®æ”¹æ™ºèƒ½ä½“管理
     */
    Boolean updateByBo(ChatAgentManageBo bo);
    /**
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤æ™ºèƒ½ä½“管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java
@@ -1,47 +1,49 @@
package org.ruoyi.service;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.domain.bo.ChatAppStoreBo;
import org.ruoyi.domain.vo.ChatAppStoreVo;
import org.ruoyi.domain.bo.ChatAppStoreBo;
import org.ruoyi.system.domain.vo.ChatAppStoreVo;
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接口
 * åº”用商店Service接口
 *
 * @author Lion Li
 * @date 2024-03-19
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatAppStoreService {
    /**
     * æŸ¥è¯¢åº”用市场
     * æŸ¥è¯¢åº”用商店
     */
    ChatAppStoreVo queryById(Long id);
    /**
     * æŸ¥è¯¢åº”用市场列表
     * æŸ¥è¯¢åº”用商店列表
     */
    TableDataInfo<ChatAppStoreVo> queryPageList(ChatAppStoreBo bo, PageQuery pageQuery);
    /**
     * æŸ¥è¯¢åº”用市场列表
     * æŸ¥è¯¢åº”用商店列表
     */
    List<ChatAppStoreVo> queryList(ChatAppStoreBo bo);
    /**
     * æ–°å¢žåº”用商店
     */
    Boolean insertByBo(ChatAppStoreBo bo);
    /**
     * ä¿®æ”¹åº”用市场
     * ä¿®æ”¹åº”用商店
     */
    Boolean updateByBo(ChatAppStoreBo bo);
    /**
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤åº”用市场信息
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤åº”用商店信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java
@@ -1,7 +1,8 @@
package org.ruoyi.service;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatConfigBo;
import org.ruoyi.domain.vo.ChatConfigVo;
@@ -9,14 +10,15 @@
import java.util.List;
/**
 * å¯¹è¯é…ç½®ä¿¡æ¯Service接口
 * @date 2024-04-13
 * é…ç½®ä¿¡æ¯Service接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatConfigService {
    /**
     * æŸ¥è¯¢é…ç½®ä¿¡æ¯
     */
    ChatConfigVo queryById(Long id);
@@ -32,7 +34,6 @@
    /**
     * æ–°å¢žé…ç½®ä¿¡æ¯
     */
    Boolean insertByBo(ChatConfigBo bo);
@@ -45,9 +46,4 @@
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤é…ç½®ä¿¡æ¯ä¿¡æ¯
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    /**
     * æŸ¥è¯¢ç³»ç»Ÿå‚æ•°
     */
    List<ChatConfigVo> getSysConfigValue(String category);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java
@@ -1,7 +1,8 @@
package org.ruoyi.service;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatGptsBo;
import org.ruoyi.domain.vo.ChatGptsVo;
@@ -9,40 +10,40 @@
import java.util.List;
/**
 * gpts管理Service接口
 * åº”用管理Service接口
 *
 * @author Lion Li
 * @date 2024-07-09
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatGptsService {
    /**
     * æŸ¥è¯¢gpts管理
     * æŸ¥è¯¢åº”用管理
     */
    ChatGptsVo queryById(Long id);
    /**
     * æŸ¥è¯¢gpts管理列表
     * æŸ¥è¯¢åº”用管理列表
     */
    TableDataInfo<ChatGptsVo> queryPageList(ChatGptsBo bo, PageQuery pageQuery);
    /**
     * æŸ¥è¯¢gpts管理列表
     * æŸ¥è¯¢åº”用管理列表
     */
    List<ChatGptsVo> queryList(ChatGptsBo bo);
    /**
     * æ–°å¢žgpts管理
     * æ–°å¢žåº”用管理
     */
    Boolean insertByBo(ChatGptsBo bo);
    /**
     * ä¿®æ”¹gpts管理
     * ä¿®æ”¹åº”用管理
     */
    Boolean updateByBo(ChatGptsBo bo);
    /**
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤gpts管理信息
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤åº”用管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java
@@ -1,7 +1,8 @@
package org.ruoyi.service;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatMessageBo;
import org.ruoyi.domain.vo.ChatMessageVo;
@@ -11,8 +12,8 @@
/**
 * èŠå¤©æ¶ˆæ¯Service接口
 *
 * @author Lion Li
 * @date 2023-11-26
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatMessageService {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.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.ChatModelBo;
import org.ruoyi.domain.vo.ChatModelVo;
import java.util.Collection;
import java.util.List;
/**
 * èŠå¤©æ¨¡åž‹Service接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatModelService {
    /**
     * æŸ¥è¯¢èŠå¤©æ¨¡åž‹
     */
    ChatModelVo queryById(Long id);
    /**
     * æŸ¥è¯¢èŠå¤©æ¨¡åž‹åˆ—表
     */
    TableDataInfo<ChatModelVo> queryPageList(ChatModelBo bo, PageQuery pageQuery);
    /**
     * æŸ¥è¯¢èŠå¤©æ¨¡åž‹åˆ—表
     */
    List<ChatModelVo> queryList(ChatModelBo bo);
    /**
     * æ–°å¢žèŠå¤©æ¨¡åž‹
     */
    Boolean insertByBo(ChatModelBo bo);
    /**
     * ä¿®æ”¹èŠå¤©æ¨¡åž‹
     */
    Boolean updateByBo(ChatModelBo bo);
    /**
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤èŠå¤©æ¨¡åž‹ä¿¡æ¯
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPackagePlanService.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.ChatPackagePlanBo;
import org.ruoyi.domain.vo.ChatPackagePlanVo;
import java.util.Collection;
import java.util.List;
/**
 * å¥—餐管理Service接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatPackagePlanService {
    /**
     * æŸ¥è¯¢å¥—餐管理
     */
    ChatPackagePlanVo queryById(Long id);
    /**
     * æŸ¥è¯¢å¥—餐管理列表
     */
    TableDataInfo<ChatPackagePlanVo> queryPageList(ChatPackagePlanBo bo, PageQuery pageQuery);
    /**
     * æŸ¥è¯¢å¥—餐管理列表
     */
    List<ChatPackagePlanVo> queryList(ChatPackagePlanBo bo);
    /**
     * æ–°å¢žå¥—餐管理
     */
    Boolean insertByBo(ChatPackagePlanBo bo);
    /**
     * ä¿®æ”¹å¥—餐管理
     */
    Boolean updateByBo(ChatPackagePlanBo bo);
    /**
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤å¥—餐管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPayOrderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
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.ChatPayOrderBo;
import org.ruoyi.domain.vo.ChatPayOrderVo;
import java.util.Collection;
import java.util.List;
/**
 * æ”¯ä»˜è®¢å•Service接口
 *
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatPayOrderService {
    /**
     * æŸ¥è¯¢æ”¯ä»˜è®¢å•
     */
    ChatPayOrderVo queryById(Long id);
    /**
     * æŸ¥è¯¢æ”¯ä»˜è®¢å•列表
     */
    TableDataInfo<ChatPayOrderVo> queryPageList(ChatPayOrderBo bo, PageQuery pageQuery);
    /**
     * æŸ¥è¯¢æ”¯ä»˜è®¢å•列表
     */
    List<ChatPayOrderVo> queryList(ChatPayOrderBo bo);
    /**
     * æ–°å¢žæ”¯ä»˜è®¢å•
     */
    Boolean insertByBo(ChatPayOrderBo bo);
    /**
     * ä¿®æ”¹æ”¯ä»˜è®¢å•
     */
    Boolean updateByBo(ChatPayOrderBo bo);
    /**
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤æ”¯ä»˜è®¢å•信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java
@@ -1,7 +1,8 @@
package org.ruoyi.service;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatPluginBo;
import org.ruoyi.domain.vo.ChatPluginVo;
@@ -12,7 +13,7 @@
 * æ’件管理Service接口
 *
 * @author ageerle
 * @date 2025-03-30
 * @date 2025-04-08
 */
public interface IChatPluginService {
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java
@@ -1,7 +1,8 @@
package org.ruoyi.service;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatVoucherBo;
import org.ruoyi.domain.vo.ChatVoucherVo;
@@ -11,8 +12,8 @@
/**
 * ç”¨æˆ·å…‘换记录Service接口
 *
 * @author Lion Li
 * @date 2024-05-03
 * @author ageerle
 * @date 2025-04-08
 */
public interface IChatVoucherService {
@@ -45,9 +46,4 @@
     * æ ¡éªŒå¹¶æ‰¹é‡åˆ é™¤ç”¨æˆ·å…‘换记录信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    /**
     * å…‘换卡密
     */
    Boolean redeem(ChatVoucherBo bo);
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.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.ChatAgentManage;
import org.ruoyi.domain.bo.ChatAgentManageBo;
import org.ruoyi.mapper.ChatAgentManageMapper;
import org.ruoyi.service.IChatAgentManageService;
import org.springframework.stereotype.Service;
import org.ruoyi.system.domain.vo.ChatAgentManageVo;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * æ™ºèƒ½ä½“管理Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatAgentManageServiceImpl implements IChatAgentManageService {
    private final ChatAgentManageMapper baseMapper;
    /**
     * æŸ¥è¯¢æ™ºèƒ½ä½“管理
     */
    @Override
    public ChatAgentManageVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢æ™ºèƒ½ä½“管理列表
     */
    @Override
    public TableDataInfo<ChatAgentManageVo> queryPageList(ChatAgentManageBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatAgentManage> lqw = buildQueryWrapper(bo);
        Page<ChatAgentManageVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢æ™ºèƒ½ä½“管理列表
     */
    @Override
    public List<ChatAgentManageVo> queryList(ChatAgentManageBo bo) {
        LambdaQueryWrapper<ChatAgentManage> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatAgentManage> buildQueryWrapper(ChatAgentManageBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatAgentManage> lqw = Wrappers.lambdaQuery();
        lqw.like(StringUtils.isNotBlank(bo.getAppName()), ChatAgentManage::getAppName, bo.getAppName());
        lqw.eq(StringUtils.isNotBlank(bo.getAppType()), ChatAgentManage::getAppType, bo.getAppType());
        lqw.eq(StringUtils.isNotBlank(bo.getAppIcon()), ChatAgentManage::getAppIcon, bo.getAppIcon());
        lqw.eq(StringUtils.isNotBlank(bo.getAppDescription()), ChatAgentManage::getAppDescription, bo.getAppDescription());
        lqw.eq(StringUtils.isNotBlank(bo.getIntroduction()), ChatAgentManage::getIntroduction, bo.getIntroduction());
        lqw.eq(StringUtils.isNotBlank(bo.getModel()), ChatAgentManage::getModel, bo.getModel());
        lqw.eq(StringUtils.isNotBlank(bo.getConversationModel()), ChatAgentManage::getConversationModel, bo.getConversationModel());
        lqw.eq(StringUtils.isNotBlank(bo.getApplicationSettings()), ChatAgentManage::getApplicationSettings, bo.getApplicationSettings());
        lqw.eq(StringUtils.isNotBlank(bo.getPluginId()), ChatAgentManage::getPluginId, bo.getPluginId());
        lqw.eq(bo.getKnowledgeId() != null, ChatAgentManage::getKnowledgeId, bo.getKnowledgeId());
        return lqw;
    }
    /**
     * æ–°å¢žæ™ºèƒ½ä½“管理
     */
    @Override
    public Boolean insertByBo(ChatAgentManageBo bo) {
        ChatAgentManage add = MapstructUtils.convert(bo, ChatAgentManage.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹æ™ºèƒ½ä½“管理
     */
    @Override
    public Boolean updateByBo(ChatAgentManageBo bo) {
        ChatAgentManage update = MapstructUtils.convert(bo, ChatAgentManage.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatAgentManage entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤æ™ºèƒ½ä½“管理
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
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.ChatAppStore;
import org.ruoyi.domain.bo.ChatAppStoreBo;
import org.ruoyi.mapper.ChatAppStoreMapper;
import org.ruoyi.service.IChatAppStoreService;
import org.springframework.stereotype.Service;
import org.ruoyi.system.domain.vo.ChatAppStoreVo;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * åº”用商店Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatAppStoreServiceImpl implements IChatAppStoreService {
    private final ChatAppStoreMapper baseMapper;
    /**
     * æŸ¥è¯¢åº”用商店
     */
    @Override
    public ChatAppStoreVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢åº”用商店列表
     */
    @Override
    public TableDataInfo<ChatAppStoreVo> queryPageList(ChatAppStoreBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatAppStore> lqw = buildQueryWrapper(bo);
        Page<ChatAppStoreVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢åº”用商店列表
     */
    @Override
    public List<ChatAppStoreVo> queryList(ChatAppStoreBo bo) {
        LambdaQueryWrapper<ChatAppStore> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatAppStore> buildQueryWrapper(ChatAppStoreBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatAppStore> lqw = Wrappers.lambdaQuery();
        lqw.like(StringUtils.isNotBlank(bo.getName()), ChatAppStore::getName, bo.getName());
        lqw.eq(StringUtils.isNotBlank(bo.getDescription()), ChatAppStore::getDescription, bo.getDescription());
        lqw.eq(StringUtils.isNotBlank(bo.getAvatar()), ChatAppStore::getAvatar, bo.getAvatar());
        lqw.eq(StringUtils.isNotBlank(bo.getAppUrl()), ChatAppStore::getAppUrl, bo.getAppUrl());
        return lqw;
    }
    /**
     * æ–°å¢žåº”用商店
     */
    @Override
    public Boolean insertByBo(ChatAppStoreBo bo) {
        ChatAppStore add = MapstructUtils.convert(bo, ChatAppStore.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹åº”用商店
     */
    @Override
    public Boolean updateByBo(ChatAppStoreBo bo) {
        ChatAppStore update = MapstructUtils.convert(bo, ChatAppStore.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatAppStore entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤åº”用商店
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
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.ChatConfig;
import org.ruoyi.domain.bo.ChatConfigBo;
import org.ruoyi.domain.vo.ChatConfigVo;
import org.ruoyi.mapper.ChatConfigMapper;
import org.ruoyi.service.IChatConfigService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * é…ç½®ä¿¡æ¯Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatConfigServiceImpl implements IChatConfigService {
    private final ChatConfigMapper baseMapper;
    /**
     * æŸ¥è¯¢é…ç½®ä¿¡æ¯
     */
    @Override
    public ChatConfigVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢é…ç½®ä¿¡æ¯åˆ—表
     */
    @Override
    public TableDataInfo<ChatConfigVo> queryPageList(ChatConfigBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatConfig> lqw = buildQueryWrapper(bo);
        Page<ChatConfigVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢é…ç½®ä¿¡æ¯åˆ—表
     */
    @Override
    public List<ChatConfigVo> queryList(ChatConfigBo bo) {
        LambdaQueryWrapper<ChatConfig> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatConfig> buildQueryWrapper(ChatConfigBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatConfig> lqw = Wrappers.lambdaQuery();
        lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatConfig::getCategory, bo.getCategory());
        lqw.like(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName());
        lqw.eq(StringUtils.isNotBlank(bo.getConfigValue()), ChatConfig::getConfigValue, bo.getConfigValue());
        lqw.eq(StringUtils.isNotBlank(bo.getConfigDict()), ChatConfig::getConfigDict, bo.getConfigDict());
        lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatConfig::getUpdateIp, bo.getUpdateIp());
        return lqw;
    }
    /**
     * æ–°å¢žé…ç½®ä¿¡æ¯
     */
    @Override
    public Boolean insertByBo(ChatConfigBo bo) {
        ChatConfig add = MapstructUtils.convert(bo, ChatConfig.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹é…ç½®ä¿¡æ¯
     */
    @Override
    public Boolean updateByBo(ChatConfigBo bo) {
        ChatConfig update = MapstructUtils.convert(bo, ChatConfig.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatConfig entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤é…ç½®ä¿¡æ¯
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatGptsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
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.ChatGpts;
import org.ruoyi.domain.bo.ChatGptsBo;
import org.ruoyi.domain.vo.ChatGptsVo;
import org.ruoyi.mapper.ChatGptsMapper;
import org.ruoyi.service.IChatGptsService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * åº”用管理Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatGptsServiceImpl implements IChatGptsService {
    private final ChatGptsMapper baseMapper;
    /**
     * æŸ¥è¯¢åº”用管理
     */
    @Override
    public ChatGptsVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢åº”用管理列表
     */
    @Override
    public TableDataInfo<ChatGptsVo> queryPageList(ChatGptsBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatGpts> lqw = buildQueryWrapper(bo);
        Page<ChatGptsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢åº”用管理列表
     */
    @Override
    public List<ChatGptsVo> queryList(ChatGptsBo bo) {
        LambdaQueryWrapper<ChatGpts> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatGpts> buildQueryWrapper(ChatGptsBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatGpts> lqw = Wrappers.lambdaQuery();
        lqw.eq(StringUtils.isNotBlank(bo.getGid()), ChatGpts::getGid, bo.getGid());
        lqw.like(StringUtils.isNotBlank(bo.getName()), ChatGpts::getName, bo.getName());
        lqw.eq(StringUtils.isNotBlank(bo.getLogo()), ChatGpts::getLogo, bo.getLogo());
        lqw.eq(StringUtils.isNotBlank(bo.getInfo()), ChatGpts::getInfo, bo.getInfo());
        lqw.eq(StringUtils.isNotBlank(bo.getAuthorId()), ChatGpts::getAuthorId, bo.getAuthorId());
        lqw.like(StringUtils.isNotBlank(bo.getAuthorName()), ChatGpts::getAuthorName, bo.getAuthorName());
        lqw.eq(bo.getUseCnt() != null, ChatGpts::getUseCnt, bo.getUseCnt());
        lqw.eq(bo.getBad() != null, ChatGpts::getBad, bo.getBad());
        lqw.eq(StringUtils.isNotBlank(bo.getType()), ChatGpts::getType, bo.getType());
        lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatGpts::getUpdateIp, bo.getUpdateIp());
        return lqw;
    }
    /**
     * æ–°å¢žåº”用管理
     */
    @Override
    public Boolean insertByBo(ChatGptsBo bo) {
        ChatGpts add = MapstructUtils.convert(bo, ChatGpts.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹åº”用管理
     */
    @Override
    public Boolean updateByBo(ChatGptsBo bo) {
        ChatGpts update = MapstructUtils.convert(bo, ChatGpts.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatGpts entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤åº”用管理
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatMessageServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
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.ChatMessage;
import org.ruoyi.domain.bo.ChatMessageBo;
import org.ruoyi.domain.vo.ChatMessageVo;
import org.ruoyi.mapper.ChatMessageMapper;
import org.ruoyi.service.IChatMessageService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * èŠå¤©æ¶ˆæ¯Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatMessageServiceImpl implements IChatMessageService {
    private final ChatMessageMapper baseMapper;
    /**
     * æŸ¥è¯¢èŠå¤©æ¶ˆæ¯
     */
    @Override
    public ChatMessageVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢èŠå¤©æ¶ˆæ¯åˆ—表
     */
    @Override
    public TableDataInfo<ChatMessageVo> queryPageList(ChatMessageBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatMessage> lqw = buildQueryWrapper(bo);
        Page<ChatMessageVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢èŠå¤©æ¶ˆæ¯åˆ—表
     */
    @Override
    public List<ChatMessageVo> queryList(ChatMessageBo bo) {
        LambdaQueryWrapper<ChatMessage> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatMessage> buildQueryWrapper(ChatMessageBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatMessage> lqw = Wrappers.lambdaQuery();
        lqw.eq(bo.getUserId() != null, ChatMessage::getUserId, bo.getUserId());
        lqw.eq(StringUtils.isNotBlank(bo.getContent()), ChatMessage::getContent, bo.getContent());
        lqw.eq(StringUtils.isNotBlank(bo.getRole()), ChatMessage::getRole, bo.getRole());
        lqw.eq(bo.getDeductCost() != null, ChatMessage::getDeductCost, bo.getDeductCost());
        lqw.eq(bo.getTotalTokens() != null, ChatMessage::getTotalTokens, bo.getTotalTokens());
        lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatMessage::getModelName, bo.getModelName());
        return lqw;
    }
    /**
     * æ–°å¢žèŠå¤©æ¶ˆæ¯
     */
    @Override
    public Boolean insertByBo(ChatMessageBo bo) {
        ChatMessage add = MapstructUtils.convert(bo, ChatMessage.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹èŠå¤©æ¶ˆæ¯
     */
    @Override
    public Boolean updateByBo(ChatMessageBo bo) {
        ChatMessage update = MapstructUtils.convert(bo, ChatMessage.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatMessage entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤èŠå¤©æ¶ˆæ¯
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
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.ChatModel;
import org.ruoyi.domain.bo.ChatModelBo;
import org.ruoyi.domain.vo.ChatModelVo;
import org.ruoyi.mapper.ChatModelMapper;
import org.ruoyi.service.IChatModelService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * èŠå¤©æ¨¡åž‹Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatModelServiceImpl implements IChatModelService {
    private final ChatModelMapper baseMapper;
    /**
     * æŸ¥è¯¢èŠå¤©æ¨¡åž‹
     */
    @Override
    public ChatModelVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢èŠå¤©æ¨¡åž‹åˆ—表
     */
    @Override
    public TableDataInfo<ChatModelVo> queryPageList(ChatModelBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatModel> lqw = buildQueryWrapper(bo);
        Page<ChatModelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢èŠå¤©æ¨¡åž‹åˆ—表
     */
    @Override
    public List<ChatModelVo> queryList(ChatModelBo bo) {
        LambdaQueryWrapper<ChatModel> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatModel> buildQueryWrapper(ChatModelBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatModel> lqw = Wrappers.lambdaQuery();
        lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatModel::getCategory, bo.getCategory());
        lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatModel::getModelName, bo.getModelName());
        lqw.eq(StringUtils.isNotBlank(bo.getModelDescribe()), ChatModel::getModelDescribe, bo.getModelDescribe());
        lqw.eq(bo.getModelPrice() != null, ChatModel::getModelPrice, bo.getModelPrice());
        lqw.eq(StringUtils.isNotBlank(bo.getModelType()), ChatModel::getModelType, bo.getModelType());
        lqw.eq(StringUtils.isNotBlank(bo.getModelShow()), ChatModel::getModelShow, bo.getModelShow());
        lqw.eq(StringUtils.isNotBlank(bo.getSystemPrompt()), ChatModel::getSystemPrompt, bo.getSystemPrompt());
        lqw.eq(StringUtils.isNotBlank(bo.getApiHost()), ChatModel::getApiHost, bo.getApiHost());
        lqw.eq(StringUtils.isNotBlank(bo.getApiKey()), ChatModel::getApiKey, bo.getApiKey());
        return lqw;
    }
    /**
     * æ–°å¢žèŠå¤©æ¨¡åž‹
     */
    @Override
    public Boolean insertByBo(ChatModelBo bo) {
        ChatModel add = MapstructUtils.convert(bo, ChatModel.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹èŠå¤©æ¨¡åž‹
     */
    @Override
    public Boolean updateByBo(ChatModelBo bo) {
        ChatModel update = MapstructUtils.convert(bo, ChatModel.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatModel entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤èŠå¤©æ¨¡åž‹
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPackagePlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
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.ChatPackagePlan;
import org.ruoyi.domain.bo.ChatPackagePlanBo;
import org.ruoyi.domain.vo.ChatPackagePlanVo;
import org.ruoyi.mapper.ChatPackagePlanMapper;
import org.ruoyi.service.IChatPackagePlanService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * å¥—餐管理Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatPackagePlanServiceImpl implements IChatPackagePlanService {
    private final ChatPackagePlanMapper baseMapper;
    /**
     * æŸ¥è¯¢å¥—餐管理
     */
    @Override
    public ChatPackagePlanVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢å¥—餐管理列表
     */
    @Override
    public TableDataInfo<ChatPackagePlanVo> queryPageList(ChatPackagePlanBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatPackagePlan> lqw = buildQueryWrapper(bo);
        Page<ChatPackagePlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢å¥—餐管理列表
     */
    @Override
    public List<ChatPackagePlanVo> queryList(ChatPackagePlanBo bo) {
        LambdaQueryWrapper<ChatPackagePlan> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatPackagePlan> buildQueryWrapper(ChatPackagePlanBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatPackagePlan> lqw = Wrappers.lambdaQuery();
        lqw.like(StringUtils.isNotBlank(bo.getName()), ChatPackagePlan::getName, bo.getName());
        lqw.eq(bo.getPrice() != null, ChatPackagePlan::getPrice, bo.getPrice());
        lqw.eq(bo.getDuration() != null, ChatPackagePlan::getDuration, bo.getDuration());
        lqw.eq(StringUtils.isNotBlank(bo.getPlanDetail()), ChatPackagePlan::getPlanDetail, bo.getPlanDetail());
        return lqw;
    }
    /**
     * æ–°å¢žå¥—餐管理
     */
    @Override
    public Boolean insertByBo(ChatPackagePlanBo bo) {
        ChatPackagePlan add = MapstructUtils.convert(bo, ChatPackagePlan.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹å¥—餐管理
     */
    @Override
    public Boolean updateByBo(ChatPackagePlanBo bo) {
        ChatPackagePlan update = MapstructUtils.convert(bo, ChatPackagePlan.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatPackagePlan entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤å¥—餐管理
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPayOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
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.ChatPayOrder;
import org.ruoyi.domain.bo.ChatPayOrderBo;
import org.ruoyi.domain.vo.ChatPayOrderVo;
import org.ruoyi.mapper.ChatPayOrderMapper;
import org.ruoyi.service.IChatPayOrderService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * æ”¯ä»˜è®¢å•Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatPayOrderServiceImpl implements IChatPayOrderService {
    private final ChatPayOrderMapper baseMapper;
    /**
     * æŸ¥è¯¢æ”¯ä»˜è®¢å•
     */
    @Override
    public ChatPayOrderVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢æ”¯ä»˜è®¢å•列表
     */
    @Override
    public TableDataInfo<ChatPayOrderVo> queryPageList(ChatPayOrderBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatPayOrder> lqw = buildQueryWrapper(bo);
        Page<ChatPayOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢æ”¯ä»˜è®¢å•列表
     */
    @Override
    public List<ChatPayOrderVo> queryList(ChatPayOrderBo bo) {
        LambdaQueryWrapper<ChatPayOrder> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatPayOrder> buildQueryWrapper(ChatPayOrderBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatPayOrder> lqw = Wrappers.lambdaQuery();
        lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), ChatPayOrder::getOrderNo, bo.getOrderNo());
        lqw.like(StringUtils.isNotBlank(bo.getOrderName()), ChatPayOrder::getOrderName, bo.getOrderName());
        lqw.eq(bo.getAmount() != null, ChatPayOrder::getAmount, bo.getAmount());
        lqw.eq(StringUtils.isNotBlank(bo.getPaymentStatus()), ChatPayOrder::getPaymentStatus, bo.getPaymentStatus());
        lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), ChatPayOrder::getPaymentMethod, bo.getPaymentMethod());
        lqw.eq(bo.getUserId() != null, ChatPayOrder::getUserId, bo.getUserId());
        return lqw;
    }
    /**
     * æ–°å¢žæ”¯ä»˜è®¢å•
     */
    @Override
    public Boolean insertByBo(ChatPayOrderBo bo) {
        ChatPayOrder add = MapstructUtils.convert(bo, ChatPayOrder.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹æ”¯ä»˜è®¢å•
     */
    @Override
    public Boolean updateByBo(ChatPayOrderBo bo) {
        ChatPayOrder update = MapstructUtils.convert(bo, ChatPayOrder.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatPayOrder entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤æ”¯ä»˜è®¢å•
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPluginServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
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.ChatPlugin;
import org.ruoyi.domain.bo.ChatPluginBo;
import org.ruoyi.domain.vo.ChatPluginVo;
import org.ruoyi.mapper.ChatPluginMapper;
import org.ruoyi.service.IChatPluginService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * æ’件管理Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatPluginServiceImpl implements IChatPluginService {
    private final ChatPluginMapper baseMapper;
    /**
     * æŸ¥è¯¢æ’件管理
     */
    @Override
    public ChatPluginVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢æ’件管理列表
     */
    @Override
    public TableDataInfo<ChatPluginVo> queryPageList(ChatPluginBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatPlugin> lqw = buildQueryWrapper(bo);
        Page<ChatPluginVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢æ’件管理列表
     */
    @Override
    public List<ChatPluginVo> queryList(ChatPluginBo bo) {
        LambdaQueryWrapper<ChatPlugin> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatPlugin> buildQueryWrapper(ChatPluginBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatPlugin> lqw = Wrappers.lambdaQuery();
        lqw.like(StringUtils.isNotBlank(bo.getName()), ChatPlugin::getName, bo.getName());
        lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatPlugin::getCode, bo.getCode());
        return lqw;
    }
    /**
     * æ–°å¢žæ’件管理
     */
    @Override
    public Boolean insertByBo(ChatPluginBo bo) {
        ChatPlugin add = MapstructUtils.convert(bo, ChatPlugin.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹æ’件管理
     */
    @Override
    public Boolean updateByBo(ChatPluginBo bo) {
        ChatPlugin update = MapstructUtils.convert(bo, ChatPlugin.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatPlugin entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤æ’件管理
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatVoucherServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
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.ChatVoucher;
import org.ruoyi.domain.bo.ChatVoucherBo;
import org.ruoyi.domain.vo.ChatVoucherVo;
import org.ruoyi.mapper.ChatVoucherMapper;
import org.ruoyi.service.IChatVoucherService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
 * ç”¨æˆ·å…‘换记录Service业务层处理
 *
 * @author ageerle
 * @date 2025-04-08
 */
@RequiredArgsConstructor
@Service
public class ChatVoucherServiceImpl implements IChatVoucherService {
    private final ChatVoucherMapper baseMapper;
    /**
     * æŸ¥è¯¢ç”¨æˆ·å…‘换记录
     */
    @Override
    public ChatVoucherVo queryById(Long id){
        return baseMapper.selectVoById(id);
    }
    /**
     * æŸ¥è¯¢ç”¨æˆ·å…‘换记录列表
     */
    @Override
    public TableDataInfo<ChatVoucherVo> queryPageList(ChatVoucherBo bo, PageQuery pageQuery) {
        LambdaQueryWrapper<ChatVoucher> lqw = buildQueryWrapper(bo);
        Page<ChatVoucherVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
    /**
     * æŸ¥è¯¢ç”¨æˆ·å…‘换记录列表
     */
    @Override
    public List<ChatVoucherVo> queryList(ChatVoucherBo bo) {
        LambdaQueryWrapper<ChatVoucher> lqw = buildQueryWrapper(bo);
        return baseMapper.selectVoList(lqw);
    }
    private LambdaQueryWrapper<ChatVoucher> buildQueryWrapper(ChatVoucherBo bo) {
        Map<String, Object> params = bo.getParams();
        LambdaQueryWrapper<ChatVoucher> lqw = Wrappers.lambdaQuery();
        lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatVoucher::getCode, bo.getCode());
        lqw.eq(bo.getAmount() != null, ChatVoucher::getAmount, bo.getAmount());
        lqw.eq(bo.getUserId() != null, ChatVoucher::getUserId, bo.getUserId());
        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ChatVoucher::getStatus, bo.getStatus());
        lqw.eq(bo.getBalanceBefore() != null, ChatVoucher::getBalanceBefore, bo.getBalanceBefore());
        lqw.eq(bo.getBalanceAfter() != null, ChatVoucher::getBalanceAfter, bo.getBalanceAfter());
        return lqw;
    }
    /**
     * æ–°å¢žç”¨æˆ·å…‘换记录
     */
    @Override
    public Boolean insertByBo(ChatVoucherBo bo) {
        ChatVoucher add = MapstructUtils.convert(bo, ChatVoucher.class);
        validEntityBeforeSave(add);
        boolean flag = baseMapper.insert(add) > 0;
        if (flag) {
            bo.setId(add.getId());
        }
        return flag;
    }
    /**
     * ä¿®æ”¹ç”¨æˆ·å…‘换记录
     */
    @Override
    public Boolean updateByBo(ChatVoucherBo bo) {
        ChatVoucher update = MapstructUtils.convert(bo, ChatVoucher.class);
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;
    }
    /**
     * ä¿å­˜å‰çš„æ•°æ®æ ¡éªŒ
     */
    private void validEntityBeforeSave(ChatVoucher entity){
        //TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约束
    }
    /**
     * æ‰¹é‡åˆ é™¤ç”¨æˆ·å…‘换记录
     */
    @Override
    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
        if(isValid){
            //TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,判断是否需要校验
        }
        return baseMapper.deleteBatchIds(ids) > 0;
    }
}
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAgentManageMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatAgentManageMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAppStoreMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatAppStoreMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatGptsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatGptsMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatMessageMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatMessageMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatModelMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatModelMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPackagePlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatPackagePlanMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPayOrderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatPayOrderMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPluginMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatPluginMapper">
</mapper>
ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatVoucherMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.ruoyi.mapper.ChatVoucherMapper">
</mapper>
ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml