package com.iailab.module.ai.controller.admin.schedulesuggest; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; 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 jakarta.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.schedulesuggest.vo.*; import com.iailab.module.ai.dal.dataobject.schedulesuggest.ScheduleSuggestDO; import com.iailab.module.ai.service.schedulesuggest.ScheduleSuggestService; import java.util.List; @Tag(name = "管理后台 - 大模型调度建议") @RestController @RequestMapping("/ai/schedule-suggest") @Validated public class ScheduleSuggestController { @Resource private ScheduleSuggestService scheduleSuggestService; @PostMapping("/create") @Operation(summary = "创建大模型调度建议") @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:create')") public CommonResult createScheduleSuggest(@Valid @RequestBody ScheduleSuggestSaveReqVO createReqVO) { return success(scheduleSuggestService.createScheduleSuggest(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新大模型调度建议") @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:update')") public CommonResult updateScheduleSuggest(@Valid @RequestBody ScheduleSuggestSaveReqVO updateReqVO) { scheduleSuggestService.updateScheduleSuggest(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除大模型调度建议") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:delete')") public CommonResult deleteScheduleSuggest(@RequestParam("id") Long id) { scheduleSuggestService.deleteScheduleSuggest(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得大模型调度建议") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:query')") public CommonResult getScheduleSuggest(@RequestParam("id") Long id) { ScheduleSuggestDO scheduleSuggest = scheduleSuggestService.getScheduleSuggest(id); return success(BeanUtils.toBean(scheduleSuggest, ScheduleSuggestRespVO.class)); } @PutMapping("/operate-suggest") @Operation(summary = "采纳忽略取消采纳") @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:update')") public CommonResult operateScheduleSuggest(@RequestBody ScheduleSuggestSaveReqVO updateReqVO) { ScheduleSuggestDO scheduleSuggest = scheduleSuggestService.getScheduleSuggest(updateReqVO.getId()); scheduleSuggest.setStatus(updateReqVO.getStatus()); scheduleSuggestService.operateScheduleSuggest(scheduleSuggest); return success(true); } @GetMapping("/simple-list") @Operation(summary = "获得n条大模型调度建议") @Parameter(name = "top", description = "编号", required = true, example = "5") @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:query')") public CommonResult> getTopScheduleSuggests(@RequestParam("top") Long top) { List scheduleSuggests = scheduleSuggestService.getTopScheduleSuggests(top); return success(BeanUtils.toBean(scheduleSuggests, ScheduleSuggestRespVO.class)); } @GetMapping("/page") @Operation(summary = "获得大模型调度建议分页") @PreAuthorize("@ss.hasPermission('ai:schedule-suggest:query')") public CommonResult> getScheduleSuggestPage(@Valid ScheduleSuggestPageReqVO pageReqVO) { PageResult pageResult = scheduleSuggestService.getScheduleSuggestPage(pageReqVO); return success(BeanUtils.toBean(pageResult, ScheduleSuggestRespVO.class)); } }