package com.iailab.module.ai.controller.admin.knowledge; import com.iailab.framework.common.enums.CommonStatusEnum; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgePageReqVO; import com.iailab.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeRespVO; import com.iailab.module.ai.controller.admin.knowledge.vo.knowledge.AiKnowledgeSaveReqVO; import com.iailab.module.ai.dal.dataobject.knowledge.AiKnowledgeDO; import com.iailab.module.ai.service.knowledge.AiKnowledgeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import static com.iailab.framework.common.pojo.CommonResult.success; import static com.iailab.framework.common.util.collection.CollectionUtils.convertList; @Tag(name = "管理后台 - AI 知识库") @RestController @RequestMapping("/ai/knowledge") @Validated public class AiKnowledgeController { @Resource private AiKnowledgeService knowledgeService; @GetMapping("/page") @Operation(summary = "获取知识库分页") @PreAuthorize("@ss.hasPermission('ai:knowledge:query')") public CommonResult> getKnowledgePage(@Valid AiKnowledgePageReqVO pageReqVO) { PageResult pageResult = knowledgeService.getKnowledgePage(pageReqVO); return success(BeanUtils.toBean(pageResult, AiKnowledgeRespVO.class)); } @GetMapping("/get") @Operation(summary = "获得知识库") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ai:knowledge:query')") public CommonResult getKnowledge(@RequestParam("id") Long id) { AiKnowledgeDO knowledge = knowledgeService.getKnowledge(id); return success(BeanUtils.toBean(knowledge, AiKnowledgeRespVO.class)); } @PostMapping("/create") @Operation(summary = "创建知识库") @PreAuthorize("@ss.hasPermission('ai:knowledge:create')") public CommonResult createKnowledge(@RequestBody @Valid AiKnowledgeSaveReqVO createReqVO) { return success(knowledgeService.createKnowledge(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新知识库") @PreAuthorize("@ss.hasPermission('ai:knowledge:update')") public CommonResult updateKnowledge(@RequestBody @Valid AiKnowledgeSaveReqVO updateReqVO) { knowledgeService.updateKnowledge(updateReqVO); return success(true); } @GetMapping("/simple-list") @Operation(summary = "获得知识库的精简列表") public CommonResult> getKnowledgeSimpleList() { List list = knowledgeService.getKnowledgeSimpleListByStatus(CommonStatusEnum.ENABLE.getStatus()); return success(convertList(list, knowledge -> new AiKnowledgeRespVO() .setId(knowledge.getId()).setName(knowledge.getName()))); } }