diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java index bc16663b8..94d638418 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxconfig/DataRefluxConfigController.java @@ -129,8 +129,8 @@ public class DataRefluxConfigController { @GetMapping("/review-the-data") @Operation(summary = "数据回流配置查看数据") - public CommonResult> reviewTheData(@Valid DataRefluxConfigPageReqVO pageReqVO) { - List list = dataRefluxDataService.getTheDetails(pageReqVO); + public CommonResult> reviewTheData(@Valid DataRefluxConfigPageReqVO pageReqVO) { + PageResult list = dataRefluxDataService.getTheDetails(pageReqVO); return success(BeanUtils.toBean(list, DataRefluxDataRespVO.class)); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java index 98b164753..e5d0dcdd8 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/DataRefluxDataController.java @@ -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 list = dataRefluxDataService.getTheDetails(page); + List doList = list.getList(); + List collect = doList.stream().map(DataRefluxDataDO::getId).collect(Collectors.toList()); + pageReqVO.setDataids(collect); + dataRefluxDataService.getDataRefluxDataIDs(pageReqVO); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataReqVO.java index 56af95bee..4223928a8 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/datarefluxdata/vo/DataRefluxDataReqVO.java @@ -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 ids; + private List 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; + } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java index f121794f2..8878b1fe8 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataService.java @@ -54,7 +54,10 @@ public interface DataRefluxDataService { */ PageResult getDataRefluxDataPage(DataRefluxDataPageReqVO pageReqVO); - List getTheDetails(DataRefluxConfigPageReqVO pageReqVO); + PageResult getTheDetails(DataRefluxConfigPageReqVO pageReqVO); Long saveDataRefluxData(DataRefluxDataSaveReqVO createReqVO); + + void getDataRefluxDataIDs(DataRefluxDataReqVO pageReqVO); + } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java index 7a25650e8..cc9c554f2 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/datarefluxdata/DataRefluxDataServiceImpl.java @@ -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 getTheDetails(DataRefluxConfigPageReqVO pageReqVO) { + public PageResult 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 wrapper = new LambdaQueryWrapper<>(); + wrapper.in(pageReqVO.getDataids().size()>0,DataRefluxDataDO::getId, pageReqVO.getDataids()); + List dataRefluxDataDOS = dataRefluxDataMapper.selectList(wrapper); + DatasetDO dataRespVO = BeanUtils.toBean(pageReqVO, DatasetDO.class); + dataRespVO.setId(null); + DatasetDO datasetDO = datasetMapper.selectOne(new LambdaQueryWrapper().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); + } + } + + } + }