修改bug

This commit is contained in:
lcj
2025-12-12 17:12:04 +08:00
parent 758e49973b
commit a5cf647f2b
3 changed files with 62 additions and 24 deletions

View File

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

View File

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

View File

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