diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java index 8b4c3817..24bdb751 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java @@ -56,7 +56,7 @@ public class ModelConfigServiceImpl extends BaseServiceImpl() .eq("model_type", modelType) .eq("is_enabled", 1) - .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%") + .like(StringUtils.isNotBlank(modelName), "model_name", modelName) .select("id", "model_name")); return ConvertUtils.sourceToTarget(entities, ModelBasicInfoDTO.class); } @@ -67,14 +67,14 @@ public class ModelConfigServiceImpl extends BaseServiceImpl() .eq("model_type", "llm") .eq("is_enabled", 1) - .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%") + .like(StringUtils.isNotBlank(modelName), "model_name", modelName) .select("id", "model_name", "config_json")); return entities.stream().map(item -> { LlmModelBasicInfoDTO dto = new LlmModelBasicInfoDTO(); dto.setId(item.getId()); dto.setModelName(item.getModelName()); - String type = item.getConfigJson().get("type").toString(); + String type = item.getConfigJson().getOrDefault("type", "").toString(); dto.setType(type); return dto; }).toList(); @@ -91,14 +91,13 @@ public class ModelConfigServiceImpl extends BaseServiceImpl pageInfo = new Page<>(curPage, pageSize); // 添加排序规则:先按is_enabled降序,再按sort升序 - pageInfo.addOrder(OrderItem.desc("is_enabled")); - pageInfo.addOrder(OrderItem.asc("sort")); + pageInfo.addOrder(OrderItem.desc("is_enabled"), OrderItem.asc("sort")); IPage modelConfigEntityIPage = modelConfigDao.selectPage( pageInfo, new QueryWrapper() .eq("model_type", modelType) - .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%")); + .like(StringUtils.isNotBlank(modelName), "model_name", modelName)); return getPageData(modelConfigEntityIPage, ModelConfigDTO.class); } @@ -489,7 +488,7 @@ public class ModelConfigServiceImpl extends BaseServiceImpl intentConfigs = modelConfigDao.selectList( new QueryWrapper() .eq("model_type", "Intent") - .like("config_json", "%" + modelId + "%")); + .like("config_json", modelId)); if (!intentConfigs.isEmpty()) { throw new RenException(ErrorCode.LLM_REFERENCED_BY_INTENT); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java index 8b8f8672..049387c3 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java @@ -124,12 +124,6 @@ public class ModelProviderServiceImpl extends BaseServiceImpl { * @return 字典类型编码 */ String getTypeByTypeId(Long dictTypeId); + + /** + * 根据字典数据ID集合获取字典类型编码集合 + */ + List getDictTypesByIdList(@Param("dictDataIdList") List dictDataIdList); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java index a2adb150..0449061b 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysDictDataServiceImpl.java @@ -1,9 +1,6 @@ package xiaozhi.modules.sys.service.impl; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -23,6 +20,7 @@ import xiaozhi.common.redis.RedisKeys; import xiaozhi.common.redis.RedisUtils; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.utils.ConvertUtils; +import xiaozhi.common.utils.ToolUtil; import xiaozhi.modules.sys.dao.SysDictDataDao; import xiaozhi.modules.sys.dao.SysUserDao; import xiaozhi.modules.sys.dto.SysDictDataDTO; @@ -104,13 +102,19 @@ public class SysDictDataServiceImpl extends BaseServiceImpl idList = Arrays.asList(ids); + if (ToolUtil.isNotEmpty(idList)) { + //批量删除redis字典 + List redisKeyList = new ArrayList<>(); + //批量获取字典类型 + List dictTypeList = Optional.ofNullable(baseDao.getDictTypesByIdList(idList)).orElseGet(ArrayList::new); + dictTypeList.forEach(dictType -> redisKeyList.add(RedisKeys.getDictDataByTypeKey(dictType))); + if (ToolUtil.isNotEmpty(redisKeyList)) { + //清除缓存 + redisUtils.delete(redisKeyList); + } + //批量删除字典数据 + deleteBatchIds(Arrays.asList(ids)); } } diff --git a/main/manager-api/src/main/resources/mapper/sys/SysDictDataDao.xml b/main/manager-api/src/main/resources/mapper/sys/SysDictDataDao.xml index 39848831..7d685c18 100644 --- a/main/manager-api/src/main/resources/mapper/sys/SysDictDataDao.xml +++ b/main/manager-api/src/main/resources/mapper/sys/SysDictDataDao.xml @@ -15,4 +15,23 @@ FROM sys_dict_type WHERE id = #{dictTypeId} + + \ No newline at end of file