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<AiApiKeyDO> getApiKeyPage(AiApiKeyPageReqVO pageReqVO) {
|
return apiKeyMapper.selectPage(pageReqVO);
|
}
|
|
@Override
|
public List<AiApiKeyDO> 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;
|
}
|
|
}
|