[update] 根据不同ID获取应用方法修改
This commit is contained in:
parent
250c2320cd
commit
7d3af03f3e
@ -27,10 +27,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.*;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@ -304,28 +301,31 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
* @param condition 条件,使用 BiFunction 接收 LambdaQueryWrapper 和参数并设置条件
|
||||
* @param keyMapper ApplicationDO 对象映射为 Map 的键
|
||||
* @param valueMapper ApplicationDO 对象映射为 Map 的值
|
||||
* @param param 查询参数
|
||||
* @param params 查询参数数组
|
||||
* @return 应用的 Map 集合
|
||||
*/
|
||||
private Map<Long, String> getApplicationMap (BiFunction<LambdaQueryWrapper<ApplicationDO>, Long, LambdaQueryWrapper<ApplicationDO>> condition, Function<ApplicationDO, Long> keyMapper, Function<ApplicationDO, String> valueMapper, Long param) {
|
||||
private Map<Long, String> getApplicationMap (BiFunction<LambdaQueryWrapper<ApplicationDO>, Object[], LambdaQueryWrapper<ApplicationDO>> condition,
|
||||
Function<ApplicationDO, Long> keyMapper,
|
||||
Function<ApplicationDO, String> valueMapper,
|
||||
Object[] params) {
|
||||
|
||||
|
||||
if (param == null) {
|
||||
if (params == null || params.length == 0) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
// 查询符合条件的应用
|
||||
LambdaQueryWrapper<ApplicationDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// 设置条件
|
||||
queryWrapper = condition.apply(queryWrapper, param);
|
||||
queryWrapper = condition.apply(queryWrapper, params);
|
||||
log.info("condition: {}", queryWrapper.getSqlSegment());
|
||||
|
||||
List<ApplicationDO> applications = applicationMapper.selectList(queryWrapper);
|
||||
if (CollectionUtils.isEmpty(applications)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<Object> paramsList = Arrays.asList(params);
|
||||
|
||||
log.info("param: {}", param);
|
||||
log.info("params: {}",paramsList );
|
||||
return applications.stream().collect(Collectors.toMap(keyMapper, valueMapper));
|
||||
}
|
||||
|
||||
@ -338,8 +338,11 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> getApplicationByLabelId (Long labelId) {
|
||||
return getApplicationMap((wrapper, id) -> wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getAppLabel, id),
|
||||
ApplicationDO::getId, ApplicationDO::getAppName, labelId);
|
||||
return getApplicationMap((wrapper, params) -> {
|
||||
Long id = (Long)params[0];
|
||||
return wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getAppLabel, id);
|
||||
}, ApplicationDO::getId, ApplicationDO::getAppName, new Object[] {labelId});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -351,8 +354,10 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> validatePromptTemplateUsesInApp (Long templateId) {
|
||||
return getApplicationMap((wrapper, id) -> wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getPromptId, id),
|
||||
ApplicationDO::getId, ApplicationDO::getAppName, templateId);
|
||||
return getApplicationMap((wrapper, params) -> {
|
||||
Long id = (Long)params[0];
|
||||
return wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getPromptId, id);
|
||||
}, ApplicationDO::getId, ApplicationDO::getAppName, new Object[] {templateId});
|
||||
}
|
||||
|
||||
|
||||
@ -364,8 +369,10 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> getApplicationByKnowledgeId (Long knowledgeId) {
|
||||
return getApplicationMap((wrapper, id) -> wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getModelServiceId, id),
|
||||
ApplicationDO::getId, ApplicationDO::getAppName, knowledgeId);
|
||||
return getApplicationMap((wrapper, params) -> {
|
||||
Long id = (Long)params[0];
|
||||
return wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName).eq(ApplicationDO::getModelServiceId, id);
|
||||
}, ApplicationDO::getId, ApplicationDO::getAppName, new Object[] {knowledgeId});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -376,7 +383,23 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
*/
|
||||
@Override
|
||||
public Map<Long, String> getApplicationByBaseModelId (Long baseModelId) {
|
||||
return Collections.emptyMap();
|
||||
return getApplicationByBaseModelIdAndType(baseModelId, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 模型id 和模型类型 获取 应用
|
||||
*
|
||||
* @param modelId 模型id
|
||||
* @param appModelType 应用模型类型 1:预制模型 2:我的模型
|
||||
* @return 应用
|
||||
*/
|
||||
public Map<Long, String> getApplicationByBaseModelIdAndType (Long modelId, Integer appModelType) {
|
||||
return getApplicationMap((wrapper, params) -> {
|
||||
Long id = (Long)params[0];
|
||||
Integer type = (Integer)params[1];
|
||||
return wrapper.select(ApplicationDO::getId, ApplicationDO::getAppName)
|
||||
.eq(ApplicationDO::getAppModel, id)
|
||||
.eq(ApplicationDO::getAppModelType, type);
|
||||
}, ApplicationDO::getId, ApplicationDO::getAppName, new Object[] {modelId, appModelType});
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user