package com.srs.routine.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.srs.common.core.domain.AjaxResult;
import com.srs.common.core.domain.entity.SysDept;
import com.srs.comprehensive.domain.SrsClass;
import com.srs.comprehensive.domain.SrsGrade;
import com.srs.comprehensive.domain.SrsMajors;
import com.srs.routine.domain.RtClassMeetingClass;
import com.srs.routine.domain.RtClassMettingTheme;
import com.srs.routine.domain.vo.ClassMettingThemeSumitListVo;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 班会主题Service接口
 *
 * @author deng
 * @date 2024-05-18
 */
public interface IRtClassMettingThemeService extends IService<RtClassMettingTheme> {

    List<RtClassMettingTheme> listFdyNeedCm(RtClassMettingTheme rtClassMettingTheme);

    public AjaxResult listFdyNeedByCmId(RtClassMeetingClass dto);

    public AjaxResult cancelClassMeetingById(Long id) ;

    public List<RtClassMeetingClass> listChoose(RtClassMeetingClass param);

    public AjaxResult cancelClassMeetingGrade(RtClassMeetingClass param);

    public AjaxResult chooseClassMeetingGrade(RtClassMeetingClass param);

    public List<SrsGrade> listEnableGrade();

    public List<ClassMettingThemeSumitListVo> selectSubmit(String cmNo);


    public List<Map<String, Object>> listXwTreeDept(Long xyId, String cmNo);

    public List<Map<String, Object>> listTreeDept(String cmNo);

    public List<SrsClass> listClassByTNo(String tNo);

    public List<Map<String, Object>> listClassByMajorId(RtClassMettingTheme params);

    List<SrsMajors> listMajorsByDeptId(Long deptId);


    List<SysDept> listDept();


    /**
     * 查询班会主题
     *
     * @param cmId 班会主题主键
     * @return 班会主题
     */
    public RtClassMettingTheme selectRtClassMettingThemeByCmId(Long cmId);

    /**
     * 查询班会主题列表
     *
     * @param rtClassMettingTheme 班会主题
     * @return 班会主题集合
     */
    List<RtClassMettingTheme> selectRtClassMettingThemeList(RtClassMettingTheme rtClassMettingTheme);


    List<RtClassMettingTheme> completeStuList(RtClassMettingTheme rtClassMettingTheme);

    /**
     * 查询老师班会主题列表是否完成
     * @param rtClassMettingTheme
     * @return
     */
    List<RtClassMettingTheme> selectCurrentThemeComplateList(RtClassMettingTheme rtClassMettingTheme);

    /**
     * 新增班会主题
     *
     * @param rtClassMettingTheme 班会主题
     * @return 结果
     */
    int insertRtClassMettingTheme(RtClassMettingTheme rtClassMettingTheme);

    /**
     * 修改班会主题
     *
     * @param rtClassMettingTheme 班会主题
     * @return 结果
     */
    int updateRtClassMettingTheme(RtClassMettingTheme rtClassMettingTheme);

    /**
     * 批量删除班会主题
     *
     * @param cmIds 需要删除的班会主题主键集合
     * @return 结果
     */
    int deleteRtClassMettingThemeByCmIds(Long[] cmIds);

    /**
     * 删除班会主题信息
     *
     * @param cmId 班会主题主键
     * @return 结果
     */
    int deleteRtClassMettingThemeByCmId(Long cmId);
}
