iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/controller/admin/questiontemplate/vo/QuestionTemplateSaveReqVO.java
@@ -1,9 +1,11 @@ package com.iailab.module.ai.controller.admin.questiontemplate.vo; import com.iailab.module.ai.controller.admin.questionparamsetting.vo.QuestionParamSettingSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.*; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - 大模型问题模板新增/修改 Request VO") @Data @@ -35,4 +37,6 @@ @Schema(description = "备注", example = "随便") private String remark; @Schema(description = "问题模版列表") private List<QuestionParamSettingSaveReqVO> settingList; } iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/questionparamsetting/QuestionParamSettingDO.java
@@ -23,7 +23,7 @@ /** * id */ @TableId(type = IdType.INPUT) @TableId(type = IdType.ASSIGN_UUID) private String id; /** * 问题模板id iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/dataobject/questiontemplate/QuestionTemplateDO.java
@@ -1,8 +1,11 @@ package com.iailab.module.ai.dal.dataobject.questiontemplate; import com.iailab.module.ai.controller.admin.questiontemplate.vo.QuestionTemplateSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDateTime; import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.iailab.framework.mybatis.core.dataobject.BaseDO; @@ -56,4 +59,7 @@ */ private String remark; @TableField(exist = false) private List<QuestionTemplateSaveReqVO> settingList; } iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/dal/mysql/questionparamsetting/QuestionParamSettingMapper.java
@@ -1,5 +1,7 @@ package com.iailab.module.ai.dal.mysql.questionparamsetting; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; import com.iailab.framework.mybatis.core.mapper.BaseMapperX; @@ -25,4 +27,7 @@ .orderByDesc(QuestionParamSettingDO::getId)); } default int deleteByTemplateId(String templateId) { return delete("template_id",templateId); } } iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/service/questiontemplate/QuestionTemplateServiceImpl.java
@@ -1,5 +1,7 @@ package com.iailab.module.ai.service.questiontemplate; 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; @@ -10,6 +12,8 @@ import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.module.ai.dal.mysql.questiontemplate.QuestionTemplateMapper; import java.util.UUID; import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.iailab.module.ai.enums.ErrorCodeConstants.*; @@ -26,10 +30,19 @@ @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(); // 插入设置列表 createReqVO.getSettingList().forEach(setting -> { setting.setTemplateId(id); questionParamSettingMapper.insert(BeanUtils.toBean(setting, QuestionParamSettingDO.class)); }); questionTemplateMapper.insert(questionTemplate); // 返回 return questionTemplate.getId(); @@ -38,9 +51,17 @@ @Override public void updateQuestionTemplate(QuestionTemplateSaveReqVO updateReqVO) { // 校验存在 validateQuestionTemplateExists(updateReqVO.getId()); String id = UUID.randomUUID().toString(); validateQuestionTemplateExists(id); // 更新 QuestionTemplateDO updateObj = BeanUtils.toBean(updateReqVO, QuestionTemplateDO.class); // 删除设置列表 questionParamSettingMapper.deleteByTemplateId(updateReqVO.getId()); // 更新设置列表 updateReqVO.getSettingList().forEach(setting -> { setting.setTemplateId(id); questionParamSettingMapper.insert(BeanUtils.toBean(setting, QuestionParamSettingDO.class)); }); questionTemplateMapper.updateById(updateObj); } @@ -50,6 +71,8 @@ validateQuestionTemplateExists(id); // 删除 questionTemplateMapper.deleteById(id); // 删除设置列表 questionParamSettingMapper.deleteByTemplateId(id); } private void validateQuestionTemplateExists(String id) { @@ -60,7 +83,9 @@ @Override public QuestionTemplateDO getQuestionTemplate(String id) { return questionTemplateMapper.selectById(id); QuestionTemplateDO questionTemplateDO = questionTemplateMapper.selectById(id); questionTemplateDO.setSettingList(BeanUtils.toBean(questionParamSettingMapper.selectList("template_id",id), QuestionTemplateSaveReqVO.class)); return questionTemplateDO; } @Override