package cn.iocoder.yudao.module.ai.service.model; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.apikey.AiApiKeyPageReqVO; import cn.iocoder.yudao.module.ai.controller.admin.model.vo.apikey.AiApiKeySaveReqVO; import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiApiKeyDO; import cn.iocoder.yudao.module.ai.dal.mysql.model.AiApiKeyMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.*; @Service public class AiApiKeyServiceImpl implements AiApiKeyService { @Resource private AiApiKeyMapper mapper; @Override public Long createApiKey(AiApiKeySaveReqVO createReqVO) { AiApiKeyDO key = BeanUtils.toBean(createReqVO, AiApiKeyDO.class); mapper.insert(key); return key.getId(); } @Override public void updateApiKey(AiApiKeySaveReqVO updateReqVO) { validateApiKeyExists(updateReqVO.getId()); mapper.updateById(BeanUtils.toBean(updateReqVO, AiApiKeyDO.class)); } @Override public void deleteApiKey(Long id) { validateApiKeyExists(id); mapper.deleteById(id); } @Override public AiApiKeyDO getApiKey(Long id) { return mapper.selectById(id); } @Override public AiApiKeyDO validateApiKey(Long id) { AiApiKeyDO key = mapper.selectById(id); if (key == null) throw exception(API_KEY_NOT_EXISTS); if (CommonStatusEnum.isDisable(key.getStatus())) throw exception(API_KEY_DISABLE); return key; } @Override public AiApiKeyDO getRequiredDefaultApiKey(String platform, Integer status) { return mapper.selectFirstByPlatformAndStatus(platform, status); } @Override public PageResult getApiKeyPage(AiApiKeyPageReqVO pageReqVO) { return mapper.selectPage(pageReqVO); } private void validateApiKeyExists(Long id) { if (mapper.selectById(id) == null) throw exception(API_KEY_NOT_EXISTS); } }