package com.iailab.module.ai.service.questiontemplate;
|
|
import com.iailab.module.ai.controller.admin.questionparamsetting.vo.QuestionParamSettingRespVO;
|
import com.iailab.module.ai.dal.dataobject.questionparamsetting.QuestionParamSettingDO;
|
import com.iailab.module.ai.dal.mysql.questionparamsetting.QuestionParamSettingMapper;
|
import jakarta.annotation.Resource;
|
import org.springframework.stereotype.Service;
|
import org.springframework.validation.annotation.Validated;
|
|
import com.iailab.module.ai.controller.admin.questiontemplate.vo.*;
|
import com.iailab.module.ai.dal.dataobject.questiontemplate.QuestionTemplateDO;
|
import com.iailab.framework.common.pojo.PageResult;
|
import com.iailab.framework.common.util.object.BeanUtils;
|
|
import com.iailab.module.ai.dal.mysql.questiontemplate.QuestionTemplateMapper;
|
|
import java.util.List;
|
import java.util.UUID;
|
|
import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.iailab.module.ai.enums.ErrorCodeConstants.*;
|
|
/**
|
* 大模型问题模板 Service 实现类
|
*
|
* @author 超级管理员
|
*/
|
@Service
|
@Validated
|
public class QuestionTemplateServiceImpl implements QuestionTemplateService {
|
|
@Resource
|
private QuestionTemplateMapper questionTemplateMapper;
|
|
@Resource
|
private QuestionParamSettingMapper questionParamSettingMapper;
|
|
@Override
|
public String createQuestionTemplate(QuestionTemplateSaveReqVO createReqVO) {
|
// 插入
|
QuestionTemplateDO questionTemplate = BeanUtils.toBean(createReqVO, QuestionTemplateDO.class);
|
String id = UUID.randomUUID().toString();
|
questionTemplate.setId(id);
|
// 插入设置列表
|
createReqVO.getSettingList().forEach(setting -> {
|
setting.setTemplateId(id);
|
questionParamSettingMapper.insert(BeanUtils.toBean(setting, QuestionParamSettingDO.class));
|
});
|
questionTemplateMapper.insert(questionTemplate);
|
// 返回
|
return questionTemplate.getId();
|
}
|
|
@Override
|
public void updateQuestionTemplate(QuestionTemplateSaveReqVO updateReqVO) {
|
// 校验存在
|
validateQuestionTemplateExists(updateReqVO.getId());
|
// 更新
|
QuestionTemplateDO updateObj = BeanUtils.toBean(updateReqVO, QuestionTemplateDO.class);
|
// 删除设置列表
|
questionParamSettingMapper.deleteByTemplateId(updateReqVO.getId());
|
// 更新设置列表
|
updateReqVO.getSettingList().forEach(setting -> {
|
setting.setTemplateId(updateReqVO.getId());
|
setting.setId(null);
|
questionParamSettingMapper.insert(BeanUtils.toBean(setting, QuestionParamSettingDO.class));
|
});
|
questionTemplateMapper.updateById(updateObj);
|
}
|
|
@Override
|
public void deleteQuestionTemplate(String id) {
|
// 校验存在
|
validateQuestionTemplateExists(id);
|
// 删除
|
questionTemplateMapper.deleteById(id);
|
// 删除设置列表
|
questionParamSettingMapper.deleteByTemplateId(id);
|
}
|
|
private void validateQuestionTemplateExists(String id) {
|
if (questionTemplateMapper.selectById(id) == null) {
|
throw exception(QUESTION_TEMPLATE_NOT_EXISTS);
|
}
|
}
|
|
@Override
|
public QuestionTemplateDO getQuestionTemplate(String id) {
|
QuestionTemplateDO questionTemplateDO = questionTemplateMapper.selectById(id);
|
questionTemplateDO.setSettingList(BeanUtils.toBean(questionParamSettingMapper.selectList("template_id",id), QuestionParamSettingRespVO.class));
|
return questionTemplateDO;
|
}
|
|
@Override
|
public PageResult<QuestionTemplateDO> getQuestionTemplatePage(QuestionTemplatePageReqVO pageReqVO) {
|
return questionTemplateMapper.selectPage(pageReqVO);
|
}
|
|
@Override
|
public List<QuestionTemplateDO> getQuestionTemplateList(Long modelId) {
|
List<QuestionTemplateDO> questionTemplateDOList = questionTemplateMapper.selectList("model_id",modelId);
|
questionTemplateDOList.forEach(DO -> {
|
BeanUtils.toBean(questionParamSettingMapper.selectList("template_id",DO.getId()), QuestionParamSettingRespVO.class);
|
});
|
return questionTemplateDOList;
|
}
|
|
}
|