package cn.iocoder.yudao.module.research.service.guideline; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.research.controller.admin.guideline.vo.ResearchGuidelinePageReqVO; import cn.iocoder.yudao.module.research.controller.admin.guideline.vo.ResearchGuidelineSaveReqVO; import cn.iocoder.yudao.module.research.dal.dataobject.guideline.ResearchGuidelineDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; public interface ResearchGuidelineService { Long createGuideline(@Valid ResearchGuidelineSaveReqVO createReqVO); void updateGuideline(@Valid ResearchGuidelineSaveReqVO updateReqVO); void deleteGuideline(Long id); ResearchGuidelineDO getGuideline(Long id); PageResult getGuidelinePage(ResearchGuidelinePageReqVO pageReqVO); /** 已发布的课题指南列表(供申报单选择指南) */ List getPublishedGuidelineList(); /** 按 id 集合批量查询指南(申报单列表回显指南名称) */ List getGuidelineList(Collection ids); /** 发布指南:草稿 → 已发布 */ void publishGuideline(Long id); /** 截止指南:已发布 → 已截止 */ void closeGuideline(Long id); /** 校验指南是否可申报(已发布 + 在申报期内),返回该指南 */ ResearchGuidelineDO validateGuidelineSubmittable(Long guidelineId); }