This commit is contained in:
ire 2025-01-04 10:19:23 +08:00
parent 5507813152
commit 43c2aa1c42
2 changed files with 45 additions and 7 deletions

View File

@ -58,9 +58,14 @@ public class PromptTemplatesBackupRespVO {
@Schema(description = "标签Id列表", example = "[1, 2, 3]")
private List<String> tagIds;
private List<String> tagNames;
@Schema(description = "应用Id列表", example = "[1, 2, 3]")
private List<String> applicationIds;
private List<String> applicationNames;
@Schema(description = "关联应用")
@ExcelProperty("关联应用")
private int applicationCount;
@ -74,4 +79,4 @@ public class PromptTemplatesBackupRespVO {
@Schema(description = "角色能力框架")
private SampleFramework sampleFramework;
}
}

View File

@ -5,6 +5,8 @@ import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.AbilityFr
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.BriefFramework;
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.PromptTemplatesRespVO;
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.SampleFramework;
import cn.iocoder.yudao.module.llm.dal.dataobject.application.ApplicationDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.label.LabelDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupDO;
@ -15,6 +17,8 @@ import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplications.PromptT
import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestags.PromptTemplatesTagsMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestagsbackup.PromptTemplatesTagsBackupMapper;
import cn.iocoder.yudao.module.llm.service.application.ApplicationService;
import cn.iocoder.yudao.module.llm.service.label.LabelService;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -61,6 +65,10 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe
private PromptTemplatesApplicationsBackupMapper promptTemplatesApplicationsBackupMapper;
@Resource
private DictDataApi dictDataApi;
@Resource
private LabelService labelService;
@Resource
private ApplicationService applicationService;
@Override
public Long createPromptTemplatesBackup(PromptTemplatesBackupSaveReqVO createReqVO) {
@ -76,7 +84,7 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe
for (PromptTemplatesTagsDO promptTemplatesTagsDO : promptTemplatesTagsDOS) {
PromptTemplatesTagsBackupDO tagsBackupDO = new PromptTemplatesTagsBackupDO();
tagsBackupDO.setTagId(promptTemplatesTagsDO.getTagId());
tagsBackupDO.setPromptTemplateId(srcId);
tagsBackupDO.setPromptTemplateId(promptTemplatesBackup.getId());
promptTemplatesTagsBackupMapper.insert(tagsBackupDO);
}
@ -86,7 +94,7 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe
for (PromptTemplatesApplicationsDO promptTemplatesApplicationsDO : promptTemplatesApplicationsDOS) {
PromptTemplatesApplicationsBackupDO applicationsBackupDO = new PromptTemplatesApplicationsBackupDO();
applicationsBackupDO.setApplicationId(promptTemplatesApplicationsDO.getApplicationId());
applicationsBackupDO.setPromptTemplateId(srcId);
applicationsBackupDO.setPromptTemplateId(promptTemplatesBackup.getId());
promptTemplatesApplicationsBackupMapper.insert(applicationsBackupDO);
}
// 返回
@ -176,26 +184,51 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe
PageResult<PromptTemplatesBackupDO> pageDoList = this.promptTemplatesBackupMapper.selectPage(pageReqVO);
PageResult<PromptTemplatesBackupRespVO> pageRespList = BeanUtils.toBean(pageDoList, PromptTemplatesBackupRespVO.class);
List<PromptTemplatesBackupRespVO> templatesRespList = pageRespList.getList();
List<LabelDO> labelList = labelService.getLabelList();
HashMap<Long,String> labelMap = new HashMap<>();
for (LabelDO labelDO : labelList) {
labelMap.put(labelDO.getId(),labelDO.getLabelName());
}
List<ApplicationDO> appList = applicationService.getList();
HashMap<Long,String> appMap = new HashMap<>();
for (ApplicationDO applicationDO : appList) {
appMap.put(applicationDO.getId(),applicationDO.getAppName());
}
for(PromptTemplatesBackupRespVO respVO : templatesRespList) {
// TODO 使用量查询暂时设置为0
respVO.setUsedCount(0);
try {
List<PromptTemplatesTagsDO> tagDOList = this.promptTemplatesTagsMapper
List<PromptTemplatesTagsBackupDO> tagDOList = this.promptTemplatesTagsBackupMapper
.selectList("prompt_template_id", respVO.getId());
if(tagDOList!=null && !tagDOList.isEmpty()) {
List<String> tagIds = tagDOList.stream()
.map(p->p.getTagId().toString())
.collect(Collectors.toList());
List<String> labelNameList = new ArrayList<>();
for (String tagId : tagIds) {
labelNameList.add(labelMap.get(Long.parseLong(tagId)));
}
respVO.setTagIds(tagIds);
respVO.setTagNames(labelNameList);
}
} catch(Exception e) {
e.printStackTrace();
}
try {
Long applicationCount = this.promptTemplatesApplicationsMapper.selectCount(
new QueryWrapper<PromptTemplatesApplicationsDO>()
List<PromptTemplatesApplicationsBackupDO> applicationIds = this.promptTemplatesApplicationsBackupMapper.selectList(
new QueryWrapper<PromptTemplatesApplicationsBackupDO>()
.eq("prompt_template_id", respVO.getId()));
respVO.setApplicationCount(Integer.parseInt(applicationCount.toString()));
List<String> appNames = new ArrayList<>();
for (PromptTemplatesApplicationsBackupDO applicationId : applicationIds) {
appNames.add(appMap.get(applicationId.getApplicationId()));
}
respVO.setApplicationCount(applicationIds.size());
respVO.setApplicationNames(appNames);
} catch(Exception e) {
e.printStackTrace();
}