修改bug
This commit is contained in:
@ -32,7 +32,8 @@ public class DashScopeChat {
|
||||
|
||||
private final ChatClient chatClient;
|
||||
|
||||
private static final String DEFAULT_PROMPT = "你叫煤球,是一个博学的智能聊天助手,请根据用户提问回答!";
|
||||
private static final String DEFAULT_PROMPT =
|
||||
"你是一名智能助手,代号为“煤球”。回答时不要提及自身身份或角色设定,除非用户主动询问;请直接提供清晰、准确、专业的回答。";
|
||||
|
||||
private static final String DEFAULT_FILE_DIR = System.getProperty("user.dir") + "/chat-memory";
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.ai.domain.AIChatMemory;
|
||||
import org.dromara.ai.domain.dto.AIChatMemoryQueryReq;
|
||||
import org.dromara.ai.domain.dto.AIChatMemoryUpdateReq;
|
||||
@ -13,11 +14,15 @@ import org.dromara.ai.service.IAIChatMemoryService;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.file.FileUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -27,6 +32,7 @@ import java.util.List;
|
||||
* @author lilemy
|
||||
* @date 2025-11-04
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AIChatMemoryServiceImpl extends ServiceImpl<AIChatMemoryMapper, AIChatMemory>
|
||||
implements IAIChatMemoryService {
|
||||
@ -103,9 +109,42 @@ public class AIChatMemoryServiceImpl extends ServiceImpl<AIChatMemoryMapper, AIC
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
List<AIChatMemory> aiChatMemories = this.listByIds(ids);
|
||||
if (aiChatMemories.size() != ids.size()) {
|
||||
throw new ServiceException("数据不存在");
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
// 暂存文件路径
|
||||
List<File> filesToDelete = new ArrayList<>();
|
||||
for (AIChatMemory mem : aiChatMemories) {
|
||||
if (StringUtils.isNotBlank(mem.getFileName())) {
|
||||
File file = new File(System.getProperty("user.dir")
|
||||
+ "/chat-memory/", mem.getFileName());
|
||||
|
||||
try {
|
||||
// 防止目录穿越
|
||||
if (file.getCanonicalPath().startsWith(
|
||||
new File(System.getProperty("user.dir") + "/chat-memory").getCanonicalPath())) {
|
||||
filesToDelete.add(file);
|
||||
} else {
|
||||
log.warn("危险的 filename 路径被拒绝删除: {}", mem.getFileName());
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.warn("filename 获取失败: {}", mem.getFileName());
|
||||
throw new ServiceException("文件获取失败: " + mem.getFileName());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 删除数据库
|
||||
boolean b = baseMapper.deleteByIds(ids) > 0;
|
||||
if (!b) {
|
||||
throw new ServiceException("数据库删除失败");
|
||||
}
|
||||
// 删除文件(非事务,不影响数据库逻辑)
|
||||
for (File f : filesToDelete) {
|
||||
if (f.exists() && !FileUtils.del(f)) {
|
||||
log.warn("文件删除失败: {}", f.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,34 +1,33 @@
|
||||
package org.dromara.bigscreen.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.bigscreen.domain.BusWjzx;
|
||||
import org.dromara.bigscreen.domain.dto.BusWjzxBo;
|
||||
import org.dromara.bigscreen.domain.vo.BusWjzxSjDateVo;
|
||||
import org.dromara.bigscreen.domain.vo.BusWjzxVo;
|
||||
import org.dromara.bigscreen.mapper.BusWjzxMapper;
|
||||
import org.dromara.bigscreen.service.IBusWjzxService;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.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.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
|
||||
import org.dromara.xzd.biddingManagement.biddingDocument.domain.vo.XzdBiddingFileEstimateVo;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.bigscreen.domain.vo.BusWjzxVo;
|
||||
import org.dromara.bigscreen.domain.BusWjzx;
|
||||
import org.dromara.bigscreen.mapper.BusWjzxMapper;
|
||||
import org.dromara.bigscreen.service.IBusWjzxService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 文件中心Service业务层处理
|
||||
@ -98,8 +97,7 @@ public class BusWjzxServiceImpl extends ServiceImpl<BusWjzxMapper, BusWjzx> impl
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusWjzx> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(BusWjzx::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWjm()), BusWjzx::getWjm, bo.getWjm());
|
||||
|
||||
lqw.like(StringUtils.isNotBlank(bo.getWjm()), BusWjzx::getWjm, bo.getWjm());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), BusWjzx::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(bo.getCreateBy() != null, BusWjzx::getCreateBy, bo.getCreateBy());
|
||||
return lqw;
|
||||
|
||||
Reference in New Issue
Block a user