package com.emotion.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.emotion.entity.AiProvider; import com.emotion.mapper.AiProviderMapper; import com.emotion.service.AiProviderService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.List; import java.util.stream.Collectors; @Service public class AiProviderServiceImpl extends ServiceImpl implements AiProviderService { @Override public List listVisible() { return list(new LambdaQueryWrapper() .eq(AiProvider::getIsDeleted, 0) .orderByDesc(AiProvider::getCreateTime)) .stream() .map(this::maskSecret) .collect(Collectors.toList()); } @Override public AiProvider saveProvider(AiProvider provider) { if (provider.getIsEnabled() == null) { provider.setIsEnabled(1); } if (!StringUtils.hasText(provider.getAuthType())) { provider.setAuthType("bearer"); } if (provider.getTimeoutMs() == null) { provider.setTimeoutMs(60000); } save(provider); return maskSecret(provider); } @Override public AiProvider updateProvider(AiProvider provider) { if (!StringUtils.hasText(provider.getApiKey()) || "******".equals(provider.getApiKey())) { provider.setApiKey(null); } updateById(provider); return maskSecret(getById(provider.getId())); } @Override public AiProvider getEnabledById(String id) { AiProvider provider = getById(id); if (provider == null || provider.getIsEnabled() == null || provider.getIsEnabled() != 1) { return null; } return provider; } private AiProvider maskSecret(AiProvider provider) { if (provider == null) { return null; } AiProvider copy = new AiProvider(); BeanUtils.copyProperties(provider, copy); if (StringUtils.hasText(copy.getApiKey())) { copy.setApiKey("******"); } return copy; } }