feat(更新日志):

更新日志

1. 移除个人微信模块
2. 移除直播模块
3. 移除gpts模块
4. 移除应用商店模块
5. 移除套餐管理模块
6. 移除兑换管理模块

## 微信相关
小程序相关功能迁移至企业版
微信公众号/微信机器人迁移至企业版
微信支付迁移至企业版

## 功能模块
智能体模块迁移至企业版
插件管理改为MCP应用并迁移至企业版

知识库:
excel解析迁移至企业版
pdf图片解析迁移至企业版
milvus qdrant扩展 迁移至企业版
This commit is contained in:
ageerle
2025-05-24 16:18:18 +08:00
parent 287a0b3d70
commit 373424bd01
185 changed files with 348 additions and 9421 deletions

View File

@@ -1,86 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.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,56 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.io.Serial;
/**
* 应用商店对象 chat_app_store
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_app_store")
public class ChatAppStore extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 名称
*/
private String name;
/**
* 描述
*/
private String description;
/**
* logo
*/
private String avatar;
/**
* 地址
*/
private String appUrl;
/**
* 备注
*/
private String remark;
}

View File

@@ -1,98 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.io.Serial;
/**
* 应用管理对象 chat_gpts
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_gpts")
public class ChatGpts extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* gpts应用id
*/
private String gid;
/**
* gpts应用名称
*/
private String name;
/**
* gpts图标
*/
private String logo;
/**
* gpts描述
*/
private String info;
/**
* 作者id
*/
private String authorId;
/**
* 作者名称
*/
private String authorName;
/**
* 点赞
*/
private Long useCnt;
/**
* 差评
*/
private Long bad;
/**
* 类型
*/
private String type;
/**
* 备注
*/
private String remark;
/**
* 版本
*/
@Version
private Long version;
/**
* 删除标志0代表存在 1代表删除
*/
@TableLogic
private String delFlag;
/**
* 更新IP
*/
private String updateIp;
}

View File

@@ -1,58 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.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

@@ -1,46 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.io.Serial;
/**
* 插件管理对象 chat_plugin
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_plugin")
public class ChatPlugin extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 插件名称
*/
private String name;
/**
* 插件编码
*/
private String code;
/**
* 备注
*/
private String remark;
}

View File

@@ -1,66 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.io.Serial;
/**
* 聊天机器人配置对象 chat_rob_config
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_rob_config")
public class ChatRobConfig extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 所属用户
*/
private Long userId;
/**
* 机器人名称
*/
private String botName;
/**
* 机器唯一码
*/
private String uniqueKey;
/**
* 默认好友回复开关
*/
private String defaultFriend;
/**
* 默认群回复开关
*/
private String defaultGroup;
/**
* 机器人状态 0正常 1启用
*/
private String enable;
/**
* 备注
*/
private String remark;
}

View File

@@ -2,10 +2,9 @@ package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.io.Serial;
import java.io.Serializable;
/**
* 用户token使用详情对象 chat_usage_token
@@ -14,9 +13,8 @@ import java.io.Serial;
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_usage_token")
public class ChatUsageToken extends BaseEntity {
public class ChatUsageToken implements Serializable {
@Serial
private static final long serialVersionUID = 1L;

View File

@@ -1,73 +0,0 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.io.Serial;
import java.io.Serializable;
/**
* 访客管理对象 chat_visitor_usage
*
* @author Lion Li
* @date 2024-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_visitor_usage")
public class ChatVisitorUsage extends BaseEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 浏览器指纹
*/
private String fingerprint;
/**
* 使用次数
*/
private String usageCount;
/**
* ip地址
*/
private String ipAddress;
/**
* 备注
*/
private String remark;
/**
* 版本
*/
@Version
private Long version;
/**
* 删除标志0代表存在 1代表删除
*/
@TableLogic
private String delFlag;
/**
* 更新IP
*/
private String updateIp;
}

View File

@@ -1,68 +0,0 @@
package org.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ruoyi.core.domain.BaseEntity;
import java.math.BigDecimal;
import java.io.Serial;
/**
* 用户兑换记录对象 chat_voucher
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_voucher")
public class ChatVoucher extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 兑换码
*/
private String code;
/**
* 兑换金额
*/
private BigDecimal amount;
/**
* 用户id
*/
private Long userId;
/**
* 兑换状态
*/
private String status;
/**
* 兑换前余额
*/
private BigDecimal balanceBefore;
/**
* 兑换后余额
*/
private BigDecimal balanceAfter;
/**
* 备注
*/
private String remark;
}

View File

@@ -1,96 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatAgentManage;
import org.ruoyi.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,60 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatAppStore;
import org.ruoyi.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 应用商店业务对象 chat_app_store
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatAppStore.class, reverseConvertGenerate = false)
public class ChatAppStoreBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 名称
*/
@NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 描述
*/
@NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
private String description;
/**
* logo
*/
@NotBlank(message = "logo不能为空", groups = { AddGroup.class, EditGroup.class })
private String avatar;
/**
* 地址
*/
@NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String appUrl;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@@ -1,96 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatGpts;
import org.ruoyi.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 应用管理业务对象 chat_gpts
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatGpts.class, reverseConvertGenerate = false)
public class ChatGptsBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* gpts应用id
*/
@NotBlank(message = "gpts应用id不能为空", groups = { AddGroup.class, EditGroup.class })
private String gid;
/**
* gpts应用名称
*/
@NotBlank(message = "gpts应用名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 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;
/**
* 点赞
*/
@NotNull(message = "点赞不能为空", groups = { AddGroup.class, EditGroup.class })
private Long useCnt;
/**
* 差评
*/
@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;
}

View File

@@ -1,61 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatPackagePlan;
import org.ruoyi.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

@@ -1,48 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatPlugin;
import org.ruoyi.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 插件管理业务对象 chat_plugin
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatPlugin.class, reverseConvertGenerate = false)
public class ChatPluginBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 插件名称
*/
@NotBlank(message = "插件名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 插件编码
*/
@NotBlank(message = "插件编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String code;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@@ -1,72 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatRobConfig;
import org.ruoyi.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 聊天机器人配置业务对象 chat_rob_config
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatRobConfig.class, reverseConvertGenerate = false)
public class ChatRobConfigBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 所属用户
*/
@NotNull(message = "所属用户不能为空", groups = { AddGroup.class, EditGroup.class })
private Long userId;
/**
* 机器人名称
*/
@NotBlank(message = "机器人名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String botName;
/**
* 机器唯一码
*/
@NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class })
private String uniqueKey;
/**
* 默认好友回复开关
*/
@NotBlank(message = "默认好友回复开关不能为空", groups = { AddGroup.class, EditGroup.class })
private String defaultFriend;
/**
* 默认群回复开关
*/
@NotBlank(message = "默认群回复开关不能为空", groups = { AddGroup.class, EditGroup.class })
private String defaultGroup;
/**
* 机器人状态 0正常 1启用
*/
@NotBlank(message = "机器人状态 0正常 1启用不能为空", groups = { AddGroup.class, EditGroup.class })
private String enable;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@@ -1,62 +0,0 @@
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.core.domain.BaseEntity;
import org.ruoyi.domain.ChatVisitorUsage;
/**
* 访客管理业务对象 chat_visitor_usage
*
* @author Lion Li
* @date 2024-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatVisitorUsage.class, reverseConvertGenerate = false)
public class ChatVisitorUsageBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 浏览器指纹
*/
@NotBlank(message = "浏览器指纹不能为空", groups = { AddGroup.class, EditGroup.class })
private String fingerprint;
/**
* 使用次数
*/
@NotBlank(message = "使用次数不能为空", groups = { AddGroup.class, EditGroup.class })
private String usageCount;
/**
* ip地址
*/
@NotBlank(message = "ip地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String ipAddress;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
/**
* 更新IP
*/
@NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class })
private String updateIp;
}

View File

@@ -1,73 +0,0 @@
package org.ruoyi.domain.bo;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.ChatVoucher;
import org.ruoyi.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
* 用户兑换记录业务对象 chat_voucher
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatVoucher.class, reverseConvertGenerate = false)
public class ChatVoucherBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 兑换码
*/
@NotBlank(message = "兑换码不能为空", groups = { AddGroup.class, EditGroup.class })
private String code;
/**
* 兑换金额
*/
@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;
/**
* 兑换前余额
*/
@NotNull(message = "兑换前余额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal balanceBefore;
/**
* 兑换后余额
*/
@NotNull(message = "兑换后余额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal balanceAfter;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@@ -1,29 +0,0 @@
package org.ruoyi.domain.request;
import lombok.Data;
/**
* 翻译请求对象
*
* @author ageerle@163.com
* date 2025/1/13
*/
@Data
public class TranslationRequest {
/**
* 提示词
*/
private String prompt;
/**
* 模型名称
*/
private String model;
/**
* 目标语言
*/
private String targetLanguage;
}

View File

@@ -1,104 +0,0 @@
package org.ruoyi.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.ruoyi.domain.ChatAgentManage;
import java.io.Serial;
import java.io.Serializable;
/**
* 智能体管理视图对象 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,68 +0,0 @@
package org.ruoyi.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.ruoyi.domain.ChatAppStore;
import java.io.Serial;
import java.io.Serializable;
/**
* 应用商店视图对象 chat_app_store
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatAppStore.class)
public class ChatAppStoreVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 名称
*/
@ExcelProperty(value = "名称")
private String name;
/**
* 描述
*/
@ExcelProperty(value = "描述")
private String description;
/**
* logo
*/
@ExcelProperty(value = "logo")
private String avatar;
/**
* 地址
*/
@ExcelProperty(value = "地址")
private String appUrl;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -1,104 +0,0 @@
package org.ruoyi.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.ruoyi.domain.ChatGpts;
import java.io.Serial;
import java.io.Serializable;
/**
* 应用管理视图对象 chat_gpts
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatGpts.class)
public class ChatGptsVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* gpts应用id
*/
@ExcelProperty(value = "gpts应用id")
private String gid;
/**
* gpts应用名称
*/
@ExcelProperty(value = "gpts应用名称")
private String name;
/**
* gpts图标
*/
@ExcelProperty(value = "gpts图标")
private String logo;
/**
* gpts描述
*/
@ExcelProperty(value = "gpts描述")
private String info;
/**
* 作者id
*/
@ExcelProperty(value = "作者id")
private String authorId;
/**
* 作者名称
*/
@ExcelProperty(value = "作者名称")
private String authorName;
/**
* 点赞
*/
@ExcelProperty(value = "点赞")
private Long useCnt;
/**
* 差评
*/
@ExcelProperty(value = "差评")
private Long bad;
/**
* 类型
*/
@ExcelProperty(value = "类型")
private String type;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 更新IP
*/
@ExcelProperty(value = "更新IP")
private String updateIp;
}

View File

@@ -6,6 +6,8 @@ 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.ChatModel;
import java.io.Serial;
@@ -85,6 +87,7 @@ public class ChatModelVo implements Serializable {
/**
* 密钥
*/
@Sensitive(strategy = SensitiveStrategy.PHONE)
@ExcelProperty(value = "密钥")
private String apiKey;

View File

@@ -1,69 +0,0 @@
package org.ruoyi.domain.vo;
import java.math.BigDecimal;
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.ChatPackagePlan;
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

@@ -1,55 +0,0 @@
package org.ruoyi.domain.vo;
import org.ruoyi.domain.ChatPlugin;
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_plugin
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatPlugin.class)
public class ChatPluginVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ExcelProperty(value = "主键")
private Long id;
/**
* 插件名称
*/
@ExcelProperty(value = "插件名称")
private String name;
/**
* 插件编码
*/
@ExcelProperty(value = "插件编码")
private String code;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -1,78 +0,0 @@
package org.ruoyi.domain.vo;
import org.ruoyi.domain.ChatRobConfig;
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_rob_config
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatRobConfig.class)
public class ChatRobConfigVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ExcelProperty(value = "主键")
private Long id;
/**
* 所属用户
*/
@ExcelProperty(value = "所属用户")
private Long userId;
/**
* 机器人名称
*/
@ExcelProperty(value = "机器人名称")
private String botName;
/**
* 机器唯一码
*/
@ExcelProperty(value = "机器唯一码")
private String uniqueKey;
/**
* 默认好友回复开关
*/
@ExcelProperty(value = "默认好友回复开关")
private String defaultFriend;
/**
* 默认群回复开关
*/
@ExcelProperty(value = "默认群回复开关")
private String defaultGroup;
/**
* 机器人状态 0正常 1启用
*/
@ExcelProperty(value = "机器人状态 0正常 1启用")
private String enable;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -1,43 +0,0 @@
package org.ruoyi.domain.vo;
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 java.io.Serializable;
/**
* 用户token chat_token
*
* @author Lion Li
* @date 2023-11-26
*/
@Data
public class ChatTokenVo implements Serializable {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 用户ID
*/
@NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
private Long UserId;
/**
* 待结算token
*/
private Integer token;
/**
* 模型名称
*/
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String modelName;
}

View File

@@ -1,64 +0,0 @@
package org.ruoyi.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.ruoyi.domain.ChatVisitorUsage;
import java.io.Serial;
import java.io.Serializable;
/**
* 访客管理视图对象 chat_visitor_usage
*
* @author Lion Li
* @date 2024-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatVisitorUsage.class)
public class ChatVisitorUsageVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 浏览器指纹
*/
@ExcelProperty(value = "浏览器指纹")
private String fingerprint;
/**
* 使用次数
*/
@ExcelProperty(value = "使用次数")
private String usageCount;
/**
* ip地址
*/
@ExcelProperty(value = "ip地址")
private String ipAddress;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 更新IP
*/
@ExcelProperty(value = "更新IP")
private String updateIp;
}

View File

@@ -1,80 +0,0 @@
package org.ruoyi.domain.vo;
import java.math.BigDecimal;
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;
/**
* 用户兑换记录视图对象 chat_voucher
*
* @author ageerle
* @date 2025-04-08
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatVoucher.class)
public class ChatVoucherVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ExcelProperty(value = "主键")
private Long id;
/**
* 兑换码
*/
@ExcelProperty(value = "兑换码")
private String code;
/**
* 兑换金额
*/
@ExcelProperty(value = "兑换金额")
private BigDecimal amount;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 兑换状态
*/
@ExcelProperty(value = "兑换状态")
private String status;
/**
* 兑换前余额
*/
@ExcelProperty(value = "兑换前余额")
private BigDecimal balanceBefore;
/**
* 兑换后余额
*/
@ExcelProperty(value = "兑换后余额")
private BigDecimal balanceAfter;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.domain.ChatAgentManage;
import org.ruoyi.domain.vo.ChatAgentManageVo;
import org.ruoyi.core.mapper.BaseMapperPlus;
/**
* 智能体管理Mapper接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface ChatAgentManageMapper extends BaseMapperPlus<ChatAgentManage, ChatAgentManageVo> {
}

View File

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.domain.ChatAppStore;
import org.ruoyi.domain.vo.ChatAppStoreVo;
import org.ruoyi.core.mapper.BaseMapperPlus;
/**
* 应用商店Mapper接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface ChatAppStoreMapper extends BaseMapperPlus<ChatAppStore, ChatAppStoreVo> {
}

View File

@@ -1,15 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatGpts;
import org.ruoyi.domain.vo.ChatGptsVo;
/**
* 应用管理Mapper接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface ChatGptsMapper extends BaseMapperPlus<ChatGpts, ChatGptsVo> {
}

View File

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.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

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatPlugin;
import org.ruoyi.domain.vo.ChatPluginVo;
/**
* 插件管理Mapper接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface ChatPluginMapper extends BaseMapperPlus<ChatPlugin, ChatPluginVo> {
}

View File

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatRobConfig;
import org.ruoyi.domain.vo.ChatRobConfigVo;
/**
* 聊天机器人配置Mapper接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface ChatRobConfigMapper extends BaseMapperPlus<ChatRobConfig, ChatRobConfigVo> {
}

View File

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatToken;
import org.ruoyi.domain.vo.ChatTokenVo;
/**
* 聊天消息Mapper接口
*
* @author Lion Li
* @date 2023-11-26
*/
public interface ChatTokenMapper extends BaseMapperPlus<ChatToken, ChatTokenVo> {
}

View File

@@ -1,16 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatVisitorUsage;
import org.ruoyi.domain.vo.ChatVisitorUsageVo;
/**
* 访客管理Mapper接口
*
* @author Lion Li
* @date 2024-07-14
*/
public interface ChatVisitorUsageMapper extends BaseMapperPlus<ChatVisitorUsage, ChatVisitorUsageVo> {
}

View File

@@ -1,15 +0,0 @@
package org.ruoyi.mapper;
import org.ruoyi.core.mapper.BaseMapperPlus;
import org.ruoyi.domain.ChatVoucher;
import org.ruoyi.domain.vo.ChatVoucherVo;
/**
* 用户兑换记录Mapper接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface ChatVoucherMapper extends BaseMapperPlus<ChatVoucher, ChatVoucherVo> {
}

View File

@@ -1,49 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.domain.bo.ChatAgentManageBo;
import org.ruoyi.domain.vo.ChatAgentManageVo;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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,49 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.domain.bo.ChatAppStoreBo;
import org.ruoyi.domain.vo.ChatAppStoreVo;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 应用商店Service接口
*
* @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,49 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatGptsBo;
import org.ruoyi.domain.vo.ChatGptsVo;
import java.util.Collection;
import java.util.List;
/**
* 应用管理Service接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface IChatGptsService {
/**
* 查询应用管理
*/
ChatGptsVo queryById(Long id);
/**
* 查询应用管理列表
*/
TableDataInfo<ChatGptsVo> queryPageList(ChatGptsBo bo, PageQuery pageQuery);
/**
* 查询应用管理列表
*/
List<ChatGptsVo> queryList(ChatGptsBo bo);
/**
* 新增应用管理
*/
Boolean insertByBo(ChatGptsBo bo);
/**
* 修改应用管理
*/
Boolean updateByBo(ChatGptsBo bo);
/**
* 校验并批量删除应用管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -1,49 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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

@@ -1,49 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatPluginBo;
import org.ruoyi.domain.vo.ChatPluginVo;
import java.util.Collection;
import java.util.List;
/**
* 插件管理Service接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface IChatPluginService {
/**
* 查询插件管理
*/
ChatPluginVo queryById(Long id);
/**
* 查询插件管理列表
*/
TableDataInfo<ChatPluginVo> queryPageList(ChatPluginBo bo, PageQuery pageQuery);
/**
* 查询插件管理列表
*/
List<ChatPluginVo> queryList(ChatPluginBo bo);
/**
* 新增插件管理
*/
Boolean insertByBo(ChatPluginBo bo);
/**
* 修改插件管理
*/
Boolean updateByBo(ChatPluginBo bo);
/**
* 校验并批量删除插件管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -1,6 +1,6 @@
package org.ruoyi.service;
import org.ruoyi.domain.ChatToken;
import org.ruoyi.domain.ChatUsageToken;
/**
* 聊天消息Service接口
@@ -13,7 +13,7 @@ public interface IChatTokenService {
/**
* 查询用户token
*/
ChatToken queryByUserId(Long userId, String modelName);
ChatUsageToken queryByUserId(Long userId, String modelName);
/**
* 清空用户token
@@ -23,6 +23,6 @@ public interface IChatTokenService {
/**
* 修改用户token
*/
void editToken(ChatToken chatToken);
void editToken(ChatUsageToken chatToken);
}

View File

@@ -1,48 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.core.page.PageQuery;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.domain.bo.ChatVisitorUsageBo;
import org.ruoyi.domain.vo.ChatVisitorUsageVo;
import java.util.Collection;
import java.util.List;
/**
* 访客管理Service接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface IChatVisitorUsageService {
/**
* 查询访客管理
*/
ChatVisitorUsageVo queryById(Long id);
/**
* 查询访客管理列表
*/
TableDataInfo<ChatVisitorUsageVo> queryPageList(ChatVisitorUsageBo bo, PageQuery pageQuery);
/**
* 查询访客管理列表
*/
List<ChatVisitorUsageVo> queryList(ChatVisitorUsageBo bo);
/**
* 新增访客管理
*/
Boolean insertByBo(ChatVisitorUsageBo bo);
/**
* 修改访客管理
*/
Boolean updateByBo(ChatVisitorUsageBo bo);
/**
* 校验并批量删除访客管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -1,49 +0,0 @@
package org.ruoyi.service;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.core.page.PageQuery;
import org.ruoyi.domain.bo.ChatVoucherBo;
import org.ruoyi.domain.vo.ChatVoucherVo;
import java.util.Collection;
import java.util.List;
/**
* 用户兑换记录Service接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface IChatVoucherService {
/**
* 查询用户兑换记录
*/
ChatVoucherVo queryById(Long id);
/**
* 查询用户兑换记录列表
*/
TableDataInfo<ChatVoucherVo> queryPageList(ChatVoucherBo bo, PageQuery pageQuery);
/**
* 查询用户兑换记录列表
*/
List<ChatVoucherVo> queryList(ChatVoucherBo bo);
/**
* 新增用户兑换记录
*/
Boolean insertByBo(ChatVoucherBo bo);
/**
* 修改用户兑换记录
*/
Boolean updateByBo(ChatVoucherBo bo);
/**
* 校验并批量删除用户兑换记录信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -1,19 +0,0 @@
package org.ruoyi.service;
/**
* 企业微信聊天管理Service接口
*
* @author ageerle
* @date 2025-04-08
*/
public interface IChatVxService {
/**
* 企业微信应用回复
* @param prompt 提示词
* @return 回复内容
*/
String chat(String prompt);
}

View File

@@ -1,120 +0,0 @@
package org.ruoyi.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.ruoyi.common.core.utils.MapstructUtils;
import org.ruoyi.common.core.utils.StringUtils;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.core.page.PageQuery;
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.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

@@ -1,111 +0,0 @@
package org.ruoyi.service.impl;
import org.ruoyi.common.core.utils.MapstructUtils;
import org.ruoyi.common.core.utils.StringUtils;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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.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

@@ -1,119 +0,0 @@
package org.ruoyi.service.impl;
import org.ruoyi.common.core.utils.MapstructUtils;
import org.ruoyi.common.core.utils.StringUtils;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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

@@ -1,113 +0,0 @@
package org.ruoyi.service.impl;
import org.ruoyi.common.core.utils.MapstructUtils;
import org.ruoyi.common.core.utils.StringUtils;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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

@@ -1,110 +0,0 @@
package org.ruoyi.service.impl;
import org.ruoyi.common.core.utils.MapstructUtils;
import org.ruoyi.common.core.utils.StringUtils;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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

@@ -4,7 +4,8 @@ package org.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.ruoyi.domain.ChatToken;
import org.ruoyi.mapper.ChatTokenMapper;
import org.ruoyi.domain.ChatUsageToken;
import org.ruoyi.mapper.ChatUsageTokenMapper;
import org.ruoyi.service.IChatTokenService;
import org.springframework.stereotype.Service;
@@ -18,14 +19,14 @@ import org.springframework.stereotype.Service;
@Service
public class ChatTokenServiceImpl implements IChatTokenService {
private final ChatTokenMapper baseMapper;
private final ChatUsageTokenMapper baseMapper;
@Override
public ChatToken queryByUserId(Long userId, String modelName) {
public ChatUsageToken queryByUserId(Long userId, String modelName) {
return baseMapper.selectOne(
new LambdaQueryWrapper<ChatToken>()
.eq(ChatToken::getUserId, userId)
.eq(ChatToken::getModelName, modelName)
new LambdaQueryWrapper<ChatUsageToken>()
.eq(ChatUsageToken::getUserId, userId)
.eq(ChatUsageToken::getModelName, modelName)
.last("limit 1")
);
}
@@ -36,7 +37,7 @@ public class ChatTokenServiceImpl implements IChatTokenService {
*/
@Override
public void resetToken(Long userId,String modelName) {
ChatToken chatToken = queryByUserId(userId, modelName);
ChatUsageToken chatToken = queryByUserId(userId, modelName);
chatToken.setToken(0);
baseMapper.updateById(chatToken);
}
@@ -46,7 +47,7 @@ public class ChatTokenServiceImpl implements IChatTokenService {
*
*/
@Override
public void editToken(ChatToken chatToken) {
public void editToken(ChatUsageToken chatToken) {
if(chatToken.getId() == null){
baseMapper.insert(chatToken);
}else {

View File

@@ -1,114 +0,0 @@
package org.ruoyi.service.impl;
import org.ruoyi.common.core.utils.MapstructUtils;
import org.ruoyi.common.core.utils.StringUtils;
import org.ruoyi.core.page.TableDataInfo;
import org.ruoyi.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

@@ -1,37 +0,0 @@
package org.ruoyi.service.impl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.ruoyi.common.chat.entity.chat.ChatCompletion;
import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse;
import org.ruoyi.common.chat.entity.chat.Message;
import org.ruoyi.common.chat.openai.OpenAiStreamClient;
import org.ruoyi.service.IChatVxService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
@RequiredArgsConstructor
public class ChatVxServiceImpl implements IChatVxService {
private final OpenAiStreamClient openAiStreamClient;
@Override
public String chat(String prompt) {
List<Message> messageList = new ArrayList<>();
Message message = Message.builder().role(Message.Role.USER).content(prompt).build();
messageList.add(message);
ChatCompletion chatCompletion = ChatCompletion
.builder()
.messages(messageList)
.model("gpt-4o-mini")
.stream(false)
.build();
ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion);
return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString();
}
}