mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-03-27 19:43:42 +08:00
feat: 调整知识库模块
This commit is contained in:
@@ -46,8 +46,6 @@ public class ChatMessage extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 扣除金额
|
||||
|
||||
|
||||
*/
|
||||
private BigDecimal deductCost;
|
||||
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
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_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;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package org.ruoyi.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 用户token使用详情对象 chat_usage_token
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_usage_token")
|
||||
public class ChatUsageToken extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 待结算token
|
||||
*/
|
||||
private Integer token;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 累计使用token
|
||||
*/
|
||||
private String totalToken;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package org.ruoyi.domain.bo;
|
||||
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.domain.ChatRobConfig;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 聊天机器人配置业务对象 chat_rob_config
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatRobConfig.class, reverseConvertGenerate = false)
|
||||
public class ChatRobConfigBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 所属用户
|
||||
*/
|
||||
@NotNull(message = "所属用户不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 机器人名称
|
||||
*/
|
||||
@NotBlank(message = "机器人名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String botName;
|
||||
|
||||
/**
|
||||
* 机器唯一码
|
||||
*/
|
||||
@NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String uniqueKey;
|
||||
|
||||
/**
|
||||
* 默认好友回复开关
|
||||
*/
|
||||
@NotBlank(message = "默认好友回复开关不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String defaultFriend;
|
||||
|
||||
/**
|
||||
* 默认群回复开关
|
||||
*/
|
||||
@NotBlank(message = "默认群回复开关不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String defaultGroup;
|
||||
|
||||
/**
|
||||
* 机器人状态 0正常 1启用
|
||||
*/
|
||||
@NotBlank(message = "机器人状态 0正常 1启用不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String enable;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package org.ruoyi.domain.bo;
|
||||
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.domain.ChatUsageToken;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 用户token使用详情业务对象 chat_usage_token
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatUsageToken.class, reverseConvertGenerate = false)
|
||||
public class ChatUsageTokenBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户
|
||||
*/
|
||||
@NotNull(message = "用户不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 待结算token
|
||||
*/
|
||||
@NotNull(message = "待结算token不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer token;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 累计使用token
|
||||
*/
|
||||
@NotBlank(message = "累计使用token不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String totalToken;
|
||||
|
||||
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package org.ruoyi.domain.bo;
|
||||
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.system.domain.ChatVoucher;
|
||||
import org.ruoyi.domain.ChatVoucher;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package org.ruoyi.domain.vo;
|
||||
|
||||
import org.ruoyi.domain.ChatUsageToken;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 用户token使用详情视图对象 chat_usage_token
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatUsageToken.class)
|
||||
public class ChatUsageTokenVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户
|
||||
*/
|
||||
@ExcelProperty(value = "用户")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 待结算token
|
||||
*/
|
||||
@ExcelProperty(value = "待结算token")
|
||||
private Integer token;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@ExcelProperty(value = "模型名称")
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 累计使用token
|
||||
*/
|
||||
@ExcelProperty(value = "累计使用token")
|
||||
private String totalToken;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,12 +1,13 @@
|
||||
package org.ruoyi.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.ruoyi.system.domain.ChatVoucher;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.ruoyi.domain.ChatVoucher;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.ruoyi.mapper;
|
||||
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.domain.ChatRobConfig;
|
||||
import org.ruoyi.domain.vo.ChatRobConfigVo;
|
||||
|
||||
/**
|
||||
* 聊天机器人配置Mapper接口
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
public interface ChatRobConfigMapper extends BaseMapperPlus<ChatRobConfig, ChatRobConfigVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.ruoyi.mapper;
|
||||
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.domain.ChatUsageToken;
|
||||
import org.ruoyi.domain.vo.ChatUsageTokenVo;
|
||||
|
||||
/**
|
||||
* 用户token使用详情Mapper接口
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
public interface ChatUsageTokenMapper extends BaseMapperPlus<ChatUsageToken, ChatUsageTokenVo> {
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package org.ruoyi.service;
|
||||
|
||||
import org.ruoyi.domain.bo.ChatMessageBo;
|
||||
|
||||
public interface IChatCostService {
|
||||
|
||||
/**
|
||||
* 根据消耗的tokens扣除余额
|
||||
*
|
||||
* @param chatMessageBo
|
||||
* @return 结果
|
||||
*/
|
||||
|
||||
void deductToken(ChatMessageBo chatMessageBo);
|
||||
|
||||
/**
|
||||
* 扣除用户的余额
|
||||
*
|
||||
*/
|
||||
void deductUserBalance(Long userId, Double numberCost);
|
||||
|
||||
|
||||
/**
|
||||
* 扣除任务费用并且保存记录
|
||||
*
|
||||
* @param type 任务类型
|
||||
* @param prompt 任务描述
|
||||
* @param cost 扣除费用
|
||||
*/
|
||||
void taskDeduct(String type,String prompt, double cost);
|
||||
|
||||
|
||||
/**
|
||||
* 判断用户是否付费
|
||||
*/
|
||||
void checkUserGrade();
|
||||
}
|
||||
@@ -46,4 +46,10 @@ public interface IChatModelService {
|
||||
* 校验并批量删除聊天模型信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
|
||||
/**
|
||||
* 通过模型名称获取模型信息
|
||||
*/
|
||||
ChatModelVo selectModelByName(String modelName);
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ import org.ruoyi.domain.ChatToken;
|
||||
/**
|
||||
* 聊天消息Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-11-26
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
public interface IChatTokenService {
|
||||
|
||||
@@ -20,6 +20,9 @@ public interface IChatTokenService {
|
||||
*/
|
||||
void resetToken(Long userId,String modelName);
|
||||
|
||||
/**
|
||||
* 修改用户token
|
||||
*/
|
||||
void editToken(ChatToken chatToken);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package org.ruoyi.service;
|
||||
|
||||
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.domain.bo.ChatUsageTokenBo;
|
||||
import org.ruoyi.domain.vo.ChatUsageTokenVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户token使用详情Service接口
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
public interface IChatUsageTokenService {
|
||||
|
||||
/**
|
||||
* 查询用户token使用详情
|
||||
*/
|
||||
ChatUsageTokenVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询用户token使用详情列表
|
||||
*/
|
||||
TableDataInfo<ChatUsageTokenVo> queryPageList(ChatUsageTokenBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询用户token使用详情列表
|
||||
*/
|
||||
List<ChatUsageTokenVo> queryList(ChatUsageTokenBo bo);
|
||||
|
||||
/**
|
||||
* 新增用户token使用详情
|
||||
*/
|
||||
Boolean insertByBo(ChatUsageTokenBo bo);
|
||||
|
||||
/**
|
||||
* 修改用户token使用详情
|
||||
*/
|
||||
Boolean updateByBo(ChatUsageTokenBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除用户token使用详情信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -11,8 +11,8 @@ import java.util.List;
|
||||
/**
|
||||
* 访客管理Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-14
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
public interface IChatVisitorUsageService {
|
||||
|
||||
|
||||
@@ -115,4 +115,12 @@ public class ChatModelServiceImpl implements IChatModelService {
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过模型名称获取模型信息
|
||||
*/
|
||||
@Override
|
||||
public ChatModelVo selectModelByName(String modelName) {
|
||||
return baseMapper.selectVoOne(Wrappers.<ChatModel>lambdaQuery().eq(ChatModel::getModelName, modelName));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
package org.ruoyi.service.impl;
|
||||
|
||||
import org.ruoyi.common.core.utils.MapstructUtils;
|
||||
import org.ruoyi.common.core.utils.StringUtils;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.ruoyi.domain.ChatUsageToken;
|
||||
import org.ruoyi.domain.bo.ChatUsageTokenBo;
|
||||
import org.ruoyi.domain.vo.ChatUsageTokenVo;
|
||||
import org.ruoyi.mapper.ChatUsageTokenMapper;
|
||||
import org.ruoyi.service.IChatUsageTokenService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 用户token使用详情Service业务层处理
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-04-08
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class ChatUsageTokenServiceImpl implements IChatUsageTokenService {
|
||||
|
||||
private final ChatUsageTokenMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询用户token使用详情
|
||||
*/
|
||||
@Override
|
||||
public ChatUsageTokenVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户token使用详情列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<ChatUsageTokenVo> queryPageList(ChatUsageTokenBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<ChatUsageToken> lqw = buildQueryWrapper(bo);
|
||||
Page<ChatUsageTokenVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户token使用详情列表
|
||||
*/
|
||||
@Override
|
||||
public List<ChatUsageTokenVo> queryList(ChatUsageTokenBo bo) {
|
||||
LambdaQueryWrapper<ChatUsageToken> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<ChatUsageToken> buildQueryWrapper(ChatUsageTokenBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<ChatUsageToken> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getUserId() != null, ChatUsageToken::getUserId, bo.getUserId());
|
||||
lqw.eq(bo.getToken() != null, ChatUsageToken::getToken, bo.getToken());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatUsageToken::getModelName, bo.getModelName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTotalToken()), ChatUsageToken::getTotalToken, bo.getTotalToken());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增用户token使用详情
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(ChatUsageTokenBo bo) {
|
||||
ChatUsageToken add = MapstructUtils.convert(bo, ChatUsageToken.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户token使用详情
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(ChatUsageTokenBo bo) {
|
||||
ChatUsageToken update = MapstructUtils.convert(bo, ChatUsageToken.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(ChatUsageToken entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户token使用详情
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user