[update] 根据不同ID获取应用方法修改
This commit is contained in:
parent
fb3c83bd36
commit
0654d516a2
@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -30,6 +31,8 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
@ -43,6 +46,7 @@ import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.APPLICATION_N
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class ApplicationServiceImpl implements ApplicationService {
|
||||
|
||||
@Resource
|
||||
@ -293,74 +297,86 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
.collect(Collectors.toMap(ApplicationDO::getId, ApplicationDO::getAppName));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据 标签id 获取 应用
|
||||
* 通用的根据条件查询 ApplicationDO 列表并转换为 Map 的方法
|
||||
*
|
||||
* @param labelId 标签id
|
||||
* @return 应用
|
||||
* @param condition 条件,使用 BiFunction 接收 LambdaQueryWrapper 和参数并设置条件
|
||||
* @param keyMapper ApplicationDO 对象映射为 Map 的键
|
||||
* @param valueMapper ApplicationDO 对象映射为 Map 的值
|
||||
* @param param 查询参数
|
||||
* @return 应用的 Map 集合
|
||||
*/
|
||||
private Map<Long, String> getApplicationMap (BiFunction<LambdaQueryWrapper<ApplicationDO>, Long, LambdaQueryWrapper<ApplicationDO>> condition, Function<ApplicationDO, Long> keyMapper, Function<ApplicationDO, String> valueMapper, Long param) {
|
||||
|
||||
|
||||
if (param == null) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
// 查询符合条件的应用
|
||||
LambdaQueryWrapper<ApplicationDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// 设置条件
|
||||
queryWrapper = condition.apply(queryWrapper, param);
|
||||
log.info("condition: {}", queryWrapper.getSqlSegment());
|
||||
|
||||
List<ApplicationDO> applications = applicationMapper.selectList(queryWrapper);
|
||||
if (CollectionUtils.isEmpty(applications)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
log.info("param: {}", param);
|
||||
return applications.stream().collect(Collectors.toMap(keyMapper, valueMapper));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据标签 id 获取应用
|
||||
*
|
||||
* @param labelId 标签 id
|
||||
* @return 应用的 Map 集合
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> getApplicationByLabelId (Long labelId) {
|
||||
if (labelId == null) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
List<ApplicationDO> applications = this.applicationMapper.selectList(new LambdaQueryWrapper<ApplicationDO>()
|
||||
.select(ApplicationDO::getId, ApplicationDO::getAppName)
|
||||
.eq(ApplicationDO::getAppLabel, labelId));
|
||||
|
||||
if (CollectionUtils.isEmpty(applications)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return applications.stream().collect(Collectors.toMap(ApplicationDO::getId, ApplicationDO::getAppName));
|
||||
return getApplicationMap((wrapper, id) -> wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getAppLabel, id),
|
||||
ApplicationDO::getId, ApplicationDO::getAppName, labelId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据 Prompt模版id 获取 应用
|
||||
* 根据 Prompt 模板 id 获取应用
|
||||
*
|
||||
* @param templateId Prompt模版 id
|
||||
* @return 应用
|
||||
* @param templateId Prompt 模板 id
|
||||
* @return 应用的 Map 集合
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> validatePromptTemplateUsesInApp (Long templateId) {
|
||||
if (templateId == null) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
List<ApplicationDO> applications = this.applicationMapper.selectList(new LambdaQueryWrapper<ApplicationDO>()
|
||||
.select(ApplicationDO::getId, ApplicationDO::getAppName)
|
||||
.eq(ApplicationDO::getPromptId, templateId));
|
||||
|
||||
if (CollectionUtils.isEmpty(applications)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return applications.stream().collect(Collectors.toMap(ApplicationDO::getId, ApplicationDO::getAppName));
|
||||
return getApplicationMap((wrapper, id) -> wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getPromptId, id),
|
||||
ApplicationDO::getId, ApplicationDO::getAppName, templateId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据 知识库id 获取 应用
|
||||
* 根据知识库 id 获取应用
|
||||
*
|
||||
* @param knowledgeId 知识库id
|
||||
* @return 应用
|
||||
* @param knowledgeId 知识库 id
|
||||
* @return 应用的 Map 集合
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> getApplicationByKnowledgeId (Long knowledgeId) {
|
||||
if (knowledgeId == null) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
List<ApplicationDO> applications = this.applicationMapper.selectList(new LambdaQueryWrapper<ApplicationDO>()
|
||||
.select(ApplicationDO::getId, ApplicationDO::getAppName)
|
||||
.eq(ApplicationDO::getModelServiceId, knowledgeId));
|
||||
|
||||
if (CollectionUtils.isEmpty(applications)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
return applications.stream().collect(Collectors.toMap(ApplicationDO::getId, ApplicationDO::getAppName));
|
||||
return getApplicationMap((wrapper, id) -> wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getModelServiceId, id),
|
||||
ApplicationDO::getId, ApplicationDO::getAppName, knowledgeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 基础模型id 获取 应用
|
||||
*
|
||||
* @param baseModelId 基础模型id
|
||||
* @return 应用
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> getApplicationByBaseModelId (Long baseModelId) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user