package com.iailab.module.ai.service.model; import com.iailab.framework.common.enums.CommonStatusEnum; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.module.ai.controller.admin.model.vo.apikey.AiApiKeyPageReqVO; import com.iailab.module.ai.controller.admin.model.vo.apikey.AiApiKeySaveReqVO; import com.iailab.module.ai.dal.dataobject.model.AiApiKeyDO; import com.iailab.module.ai.dal.mysql.model.AiApiKeyMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.List; import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.iailab.module.ai.enums.ErrorCodeConstants.API_KEY_DISABLE; import static com.iailab.module.ai.enums.ErrorCodeConstants.API_KEY_NOT_EXISTS; /** * AI API 密钥 Service 实现类 * * @author Iailab */ @Service @Validated public class AiApiKeyServiceImpl implements AiApiKeyService { @Resource private AiApiKeyMapper apiKeyMapper; @Override public Long createApiKey(AiApiKeySaveReqVO createReqVO) { // 插入 AiApiKeyDO apiKey = BeanUtils.toBean(createReqVO, AiApiKeyDO.class); apiKeyMapper.insert(apiKey); // 返回 return apiKey.getId(); } @Override public void updateApiKey(AiApiKeySaveReqVO updateReqVO) { // 校验存在 validateApiKeyExists(updateReqVO.getId()); // 更新 AiApiKeyDO updateObj = BeanUtils.toBean(updateReqVO, AiApiKeyDO.class); apiKeyMapper.updateById(updateObj); } @Override public void deleteApiKey(Long id) { // 校验存在 validateApiKeyExists(id); // 删除 apiKeyMapper.deleteById(id); } private AiApiKeyDO validateApiKeyExists(Long id) { AiApiKeyDO apiKey = apiKeyMapper.selectById(id); if (apiKey == null) { throw exception(API_KEY_NOT_EXISTS); } return apiKey; } @Override public AiApiKeyDO getApiKey(Long id) { return apiKeyMapper.selectById(id); } @Override public AiApiKeyDO validateApiKey(Long id) { AiApiKeyDO apiKey = validateApiKeyExists(id); if (CommonStatusEnum.isDisable(apiKey.getStatus())) { throw exception(API_KEY_DISABLE); } return apiKey; } @Override public PageResult getApiKeyPage(AiApiKeyPageReqVO pageReqVO) { return apiKeyMapper.selectPage(pageReqVO); } @Override public List getApiKeyList() { return apiKeyMapper.selectList(); } @Override public AiApiKeyDO getRequiredDefaultApiKey(String platform, Integer status) { AiApiKeyDO apiKey = apiKeyMapper.selectFirstByPlatformAndStatus(platform, status); if (apiKey == null) { throw exception(API_KEY_NOT_EXISTS); } return apiKey; } }