数据回流--保存数据

This commit is contained in:
sunxiqing 2025-01-02 11:15:09 +08:00
parent 3f8965e885
commit 93333d885e
5 changed files with 80 additions and 12 deletions

View File

@ -129,8 +129,8 @@ public class DataRefluxConfigController {
@GetMapping("/review-the-data")
@Operation(summary = "数据回流配置查看数据")
public CommonResult<List<DataRefluxDataRespVO>> reviewTheData(@Valid DataRefluxConfigPageReqVO pageReqVO) {
List<DataRefluxDataDO> list = dataRefluxDataService.getTheDetails(pageReqVO);
public CommonResult<PageResult<DataRefluxDataRespVO>> reviewTheData(@Valid DataRefluxConfigPageReqVO pageReqVO) {
PageResult<DataRefluxDataDO> list = dataRefluxDataService.getTheDetails(pageReqVO);
return success(BeanUtils.toBean(list, DataRefluxDataRespVO.class));
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.llm.controller.admin.datarefluxdata;
import cn.iocoder.yudao.module.llm.controller.admin.datarefluxconfig.vo.DataRefluxConfigPageReqVO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -13,6 +14,8 @@ import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
@ -83,16 +86,21 @@ public class DataRefluxDataController {
@GetMapping("/review-the-data")
@Operation(summary = "数据回流配置保存数据")
public void saveTheData(@Valid DataRefluxDataReqVO pageReqVO){
if (pageReqVO.getId() != null){
pageReqVO.setIds(Collections.singletonList(pageReqVO.getId()));
if (pageReqVO.getDataid() != null){
pageReqVO.setDataids(Collections.singletonList(pageReqVO.getDataid()));
}
//TODO 数据回流配置保存数据
dataRefluxDataService.getDataRefluxDataIDs(pageReqVO);
}
@GetMapping("/save-all-the-data")
@Operation(summary = "数据回流配置保存全部数据")
public void saveAllTheData(@Valid DataRefluxDataReqVO pageReqVO){
//TODO 全部保存数据
public void saveAllTheData(@Valid DataRefluxDataReqVO pageReqVO, DataRefluxConfigPageReqVO page){
page.setPageSize(PageParam.PAGE_SIZE_NONE);
PageResult<DataRefluxDataDO> list = dataRefluxDataService.getTheDetails(page);
List<DataRefluxDataDO> doList = list.getList();
List<Long> collect = doList.stream().map(DataRefluxDataDO::getId).collect(Collectors.toList());
pageReqVO.setDataids(collect);
dataRefluxDataService.getDataRefluxDataIDs(pageReqVO);
}

View File

@ -9,8 +9,21 @@ import java.util.List;
@Data
public class DataRefluxDataReqVO {
@Schema(description = "配置ID",example = "16823")
private Long id;
private Long dataid;
@Schema(description = "多个配置ID",example = "16823")
private List<Long> ids;
private List<Long> dataids;
@Schema(description = "数据集类型",example = "16823")
private Long datasetType;
@Schema(description = "数据集名称",example = "16823")
private String datasetName;
@Schema(description = "数据集描述",example = "16823")
private String datasetIntro;
@Schema(description = "保存字段",example = "16823")
private Long saveField;
}

View File

@ -54,7 +54,10 @@ public interface DataRefluxDataService {
*/
PageResult<DataRefluxDataDO> getDataRefluxDataPage(DataRefluxDataPageReqVO pageReqVO);
List<DataRefluxDataDO> getTheDetails(DataRefluxConfigPageReqVO pageReqVO);
PageResult<DataRefluxDataDO> getTheDetails(DataRefluxConfigPageReqVO pageReqVO);
Long saveDataRefluxData(DataRefluxDataSaveReqVO createReqVO);
void getDataRefluxDataIDs(DataRefluxDataReqVO pageReqVO);
}

View File

@ -1,9 +1,17 @@
package cn.iocoder.yudao.module.llm.service.datarefluxdata;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.llm.controller.admin.datarefluxconfig.vo.DataRefluxConfigPageReqVO;
import cn.iocoder.yudao.module.llm.dal.dataobject.datarefluxconfig.DataRefluxConfigDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetAnswerDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetQuestionDO;
import cn.iocoder.yudao.module.llm.dal.mysql.datarefluxconfig.DataRefluxConfigMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetAnswerMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetQuestionMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -37,6 +45,12 @@ public class DataRefluxDataServiceImpl implements DataRefluxDataService {
private DataRefluxDataMapper dataRefluxDataMapper;
@Resource
private DataRefluxConfigMapper dataRefluxConfigMapper;
@Resource
private DatasetMapper datasetMapper;
@Resource
private DatasetQuestionMapper datasetQuestionMapper;
@Resource
private DatasetAnswerMapper datasetAnswerMapper;
@Override
public Long createDataRefluxData(DataRefluxDataSaveReqVO createReqVO) {
@ -87,7 +101,7 @@ public class DataRefluxDataServiceImpl implements DataRefluxDataService {
}
@Override
public List<DataRefluxDataDO> getTheDetails(DataRefluxConfigPageReqVO pageReqVO) {
public PageResult<DataRefluxDataDO> getTheDetails(DataRefluxConfigPageReqVO pageReqVO) {
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 解析字符串为 LocalDate
@ -105,7 +119,7 @@ public class DataRefluxDataServiceImpl implements DataRefluxDataService {
.eq(ObjectUtil.isNotNull(pageReqVO.getId()),DataRefluxDataDO::getConfigId, pageReqVO.getId())
.ge(ObjectUtil.isNotNull(startDate),DataRefluxDataDO::getCreateTime, startDate)
.le(ObjectUtil.isNotNull(endDate),DataRefluxDataDO::getCreateTime,endDate);
return dataRefluxDataMapper.selectList(eq);
return dataRefluxDataMapper.selectPage(pageReqVO, eq);
}
@Override
@ -124,4 +138,34 @@ public class DataRefluxDataServiceImpl implements DataRefluxDataService {
}
return 0L;
}
@Override
public void getDataRefluxDataIDs(DataRefluxDataReqVO pageReqVO) {
LambdaQueryWrapper<DataRefluxDataDO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(pageReqVO.getDataids().size()>0,DataRefluxDataDO::getId, pageReqVO.getDataids());
List<DataRefluxDataDO> dataRefluxDataDOS = dataRefluxDataMapper.selectList(wrapper);
DatasetDO dataRespVO = BeanUtils.toBean(pageReqVO, DatasetDO.class);
dataRespVO.setId(null);
DatasetDO datasetDO = datasetMapper.selectOne(new LambdaQueryWrapper<DatasetDO>().eq(DatasetDO::getDatasetName, dataRespVO.getDatasetName()));
if (datasetDO!=null){
throw new RuntimeException("数据集名称重复");
}
datasetMapper.insert(dataRespVO);
for (DataRefluxDataDO dataRefluxDataDO : dataRefluxDataDOS){
DatasetQuestionDO datasetQuestionDO = new DatasetQuestionDO();
datasetQuestionDO.setDatasetId(dataRespVO.getId());
datasetQuestionDO.setQuestion(dataRefluxDataDO.getPrompt());
datasetQuestionDO.setSystem(dataRefluxDataDO.getSystem());
datasetQuestionMapper.insert(datasetQuestionDO);
if (pageReqVO.getSaveField()==1) {
DatasetAnswerDO datasetAnswerDO = new DatasetAnswerDO();
datasetAnswerDO.setDatasetId(dataRespVO.getId());
datasetAnswerDO.setQuestionId(datasetQuestionDO.getId());
datasetAnswerDO.setAnswer(dataRefluxDataDO.getResponse());
datasetAnswerMapper.insert(datasetAnswerDO);
}
}
}
}