feat: ruoyi-chat-api模块调整

This commit is contained in:
ageer
2025-04-08 21:30:01 +08:00
committed by ageerle
parent d2755f00bc
commit 5a5a48e153
70 changed files with 2722 additions and 342 deletions

View File

@@ -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;
}

View File

@@ -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 org.ruoyi.common.mybatis.core.domain.BaseEntity;
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 @@ public class ChatAppStore extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键
* id
*/
@TableId(value = "id")
private Long id;
@@ -39,16 +38,15 @@ public class ChatAppStore extends BaseEntity {
private String description;
/**
* 头像
* logo
*/
private String avatar;
/**
* 应用地址
* 地址
*/
private String appUrl;
/**
* 备注
*/

View File

@@ -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 @@ public class ChatConfig extends BaseEntity {
/**
* 配置值
*/
@Sensitive(strategy = SensitiveStrategy.SKY)
private String configValue;
/**
@@ -57,6 +53,12 @@ public class ChatConfig extends BaseEntity {
*/
private String remark;
/**
* 版本
*/
@Version
private Long version;
/**
* 删除标志0代表存在 1代表删除
*/

View File

@@ -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 org.ruoyi.common.mybatis.core.domain.BaseEntity;
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 @@ public class ChatGpts extends BaseEntity {
/**
* 点赞
*/
private String useCnt;
private Long useCnt;
/**
* 差评
*/
private String bad;
private Long bad;
/**
* 类型
@@ -97,15 +94,5 @@ public class ChatGpts extends BaseEntity {
*/
private String updateIp;
/**
* 模型名称
*/
private String modelName;
/**
* 模型system
*/
private String systemPrompt;
}

View File

@@ -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 @@ public class ChatMessage extends BaseEntity {
/**
* 主键
*/
@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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 @@ import java.io.Serial;
* 插件管理对象 chat_plugin
*
* @author ageerle
* @date 2025-03-30
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@@ -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)
@@ -29,11 +29,6 @@ public class ChatVoucher extends BaseEntity {
@TableId(value = "id")
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 兑换码
*/
@@ -44,6 +39,11 @@ public class ChatVoucher extends BaseEntity {
*/
private BigDecimal amount;
/**
* 用户id
*/
private Long userId;
/**
* 兑换状态
*/

View File

@@ -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;
}

View File

@@ -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 @@ public class ChatAppStoreBo extends BaseEntity {
/**
* 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;

View File

@@ -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 @@ public class ChatConfigBo extends BaseEntity {
/**
* 配置值
*/
@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;
/**

View File

@@ -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 @@ public class ChatGptsBo extends BaseEntity {
/**
* 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;
}

View File

@@ -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,20 +28,11 @@ public class ChatMessageBo extends BaseEntity {
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 @@ public class ChatMessageBo extends BaseEntity {
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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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)
@@ -29,14 +27,10 @@ public class ChatVoucherBo extends BaseEntity {
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 兑换码
*/
@NotBlank(message = "兑换码不能为空", groups = { AddGroup.class, EditGroup.class })
private String code;
/**
@@ -45,24 +39,34 @@ public class ChatVoucherBo extends BaseEntity {
@NotNull(message = "兑换金额不能为空", groups = { AddGroup.class, EditGroup.class })
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;

View File

@@ -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;
}

View File

@@ -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 @@ public class ChatAppStoreVo implements Serializable {
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;
/**

View File

@@ -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 @@ public class ChatConfigVo implements Serializable {
* 配置值
*/
@ExcelProperty(value = "配置值")
@Sensitive(strategy = SensitiveStrategy.SKY)
private String configValue;
/**

View File

@@ -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 @@ public class ChatGptsVo implements Serializable {
* 点赞
*/
@ExcelProperty(value = "点赞")
private String useCnt;
private Long useCnt;
/**
* 差评
*/
@ExcelProperty(value = "差评")
private String bad;
private Long bad;
/**
* 类型
@@ -97,16 +99,5 @@ public class ChatGptsVo implements Serializable {
@ExcelProperty(value = "更新IP")
private String updateIp;
/**
* 模型名称
*/
@ExcelProperty(value = "模型名称")
private String modelName;
/**
* 模型system
*/
private String systemPrompt;
}

View File

@@ -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 @@ public class ChatMessageVo implements Serializable {
/**
* 主键
*/
@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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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 @@ import java.io.Serializable;
/**
* 用户兑换记录视图对象 chat_voucher
*
* @author Lion Li
* @date 2024-05-03
* @author ageerle
* @date 2025-04-08
*/
@Data
@ExcelIgnoreUnannotated
@@ -31,18 +33,6 @@ public class ChatVoucherVo implements Serializable {
@ExcelProperty(value = "主键")
private Long id;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 用户名称
*/
@ExcelProperty(value = "用户名称")
private String userName;
/**
* 兑换码
*/
@@ -53,7 +43,13 @@ public class ChatVoucherVo implements Serializable {
* 兑换金额
*/
@ExcelProperty(value = "兑换金额")
private Double amount;
private BigDecimal amount;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 兑换状态
@@ -65,13 +61,13 @@ public class ChatVoucherVo implements Serializable {
* 兑换前余额
*/
@ExcelProperty(value = "兑换前余额")
private Double balanceBefore;
private BigDecimal balanceBefore;
/**
* 兑换后余额
*/
@ExcelProperty(value = "兑换后余额")
private Double balanceAfter;
private BigDecimal balanceAfter;
/**
* 备注
@@ -79,8 +75,5 @@ public class ChatVoucherVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
@ExcelProperty(value = "创建时间")
private String createTime;
}

View File

@@ -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> {
}

View File

@@ -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> {

View File

@@ -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> {
}

View File

@@ -4,12 +4,11 @@ import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
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> {

View File

@@ -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> {

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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> {

View File

@@ -4,12 +4,11 @@ import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
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> {

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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.Collection;
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 @@ public interface IChatConfigService {
/**
* 新增配置信息
*/
Boolean insertByBo(ChatConfigBo bo);
@@ -45,9 +46,4 @@ public interface IChatConfigService {
* 校验并批量删除配置信息信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 查询系统参数
*/
List<ChatConfigVo> getSysConfigValue(String category);
}

View File

@@ -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.Collection;
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);
}

View File

@@ -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 @@ import java.util.List;
/**
* 聊天消息Service接口
*
* @author Lion Li
* @date 2023-11-26
* @author ageerle
* @date 2025-04-08
*/
public interface IChatMessageService {

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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 @@ import java.util.List;
* 插件管理Service接口
*
* @author ageerle
* @date 2025-03-30
* @date 2025-04-08
*/
public interface IChatPluginService {

View File

@@ -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 @@ import java.util.List;
/**
* 用户兑换记录Service接口
*
* @author Lion Li
* @date 2024-05-03
* @author ageerle
* @date 2025-04-08
*/
public interface IChatVoucherService {
@@ -45,9 +46,4 @@ public interface IChatVoucherService {
* 校验并批量删除用户兑换记录信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 兑换卡密
*/
Boolean redeem(ChatVoucherBo bo);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>