package com.iailab.module.ai.controller.admin.questiontemplate; import com.iailab.module.ai.api.questionTemplate.dto.AiModelDTO; import com.iailab.module.ai.api.questionTemplate.dto.QuestionTemplateDTO; import com.iailab.module.ai.service.model.AiModelService; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.util.object.BeanUtils; import static com.iailab.framework.common.pojo.CommonResult.success; import com.iailab.module.ai.controller.admin.questiontemplate.vo.*; import com.iailab.module.ai.dal.dataobject.questiontemplate.QuestionTemplateDO; import com.iailab.module.ai.service.questiontemplate.QuestionTemplateService; import java.util.List; @Tag(name = "管理后台 - 大模型问题模板") @RestController @RequestMapping("/ai/question-template") @Validated public class QuestionTemplateController { @Resource private QuestionTemplateService questionTemplateService; @Resource private AiModelService aiModelService; @PostMapping("/create") @Operation(summary = "创建大模型问题模板") @PreAuthorize("@ss.hasPermission('ai:question-template:create')") public CommonResult createQuestionTemplate(@Valid @RequestBody QuestionTemplateSaveReqVO createReqVO) { return success(questionTemplateService.createQuestionTemplate(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新大模型问题模板") @PreAuthorize("@ss.hasPermission('ai:question-template:update')") public CommonResult updateQuestionTemplate(@Valid @RequestBody QuestionTemplateSaveReqVO updateReqVO) { questionTemplateService.updateQuestionTemplate(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除大模型问题模板") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('ai:question-template:delete')") public CommonResult deleteQuestionTemplate(@RequestParam("id") String id) { questionTemplateService.deleteQuestionTemplate(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得大模型问题模板") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ai:question-template:query')") public CommonResult getQuestionTemplate(@RequestParam("id") String id) { QuestionTemplateDO questionTemplate = questionTemplateService.getQuestionTemplate(id); questionTemplate.setModelName( aiModelService.getModel(Long.valueOf((questionTemplate.getModelId()))).getName()); return success(BeanUtils.toBean(questionTemplate, QuestionTemplateRespVO.class)); } @GetMapping("/page") @Operation(summary = "获得大模型问题模板分页") @PreAuthorize("@ss.hasPermission('ai:question-template:query')") public CommonResult> getQuestionTemplatePage(@Valid QuestionTemplatePageReqVO pageReqVO) { PageResult pageResult = questionTemplateService.getQuestionTemplatePage(pageReqVO); pageResult.getList().forEach(questionTemplateDO -> questionTemplateDO.setModelName( aiModelService.getModel(Long.valueOf((questionTemplateDO.getModelId()))).getName() ) ); return success(BeanUtils.toBean(pageResult, QuestionTemplateRespVO.class)); } @GetMapping( "/modelList") @Operation(summary = "Ai大模型级联问题模版") List queryModelList(){ List list = BeanUtils.toBean(aiModelService.getModelListByStatusAndType(0, 1, null), AiModelDTO.class); list.forEach(item->{ item.setChildren( BeanUtils.toBean(questionTemplateService.getQuestionTemplateList(item.getId()), QuestionTemplateDTO.class)); }); return list; } }