package com.xhkjedu.sapi.mapper.notice;

import com.xhkjedu.sapi.base.TkMapper;
import com.xhkjedu.sapi.model.system.TSchool;
import com.xhkjedu.sapi.model.notice.TNotice;
import com.xhkjedu.sapi.vo.gradeclass.ClassVo;
import com.xhkjedu.sapi.vo.notice.NoticeTeacherVo;
import com.xhkjedu.sapi.vo.notice.NoticeVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface NoticeMapper extends TkMapper<TNotice> {
    //列表
    List<NoticeVo> listAll(@Param("notice") TNotice notice);

    //详情
    TNotice findById(@Param("noticeid") Integer noticeid);

    /**
     * 教师通知列表
     * @Param [notice]
     * @Author ywx
     * @Date 2020/6/13 9:57
     * @return java.util.List<com.xhkjedu.vo.notice.NoticeVo>
     **/
    List<NoticeVo> listMy(@Param("notice") TNotice notice);

    /**
     * 学生通知列表
     * @Param [notice]
     * @Author ywx
     * @Date 2020/6/22 10:01
     * @return java.util.List<com.xhkjedu.vo.notice.NoticeVo>
     **/
    List<NoticeVo> listStudent(@Param("notice") TNotice notice);

    /**
     * 教师、学生查看详情
     * @Param [noticeid]
     * @Author ywx
     * @Date 2020/6/13 11:50
     * @return com.xhkjedu.model.notice.TNotice
     **/
    TNotice findById2(@Param("noticeid") Integer noticeid);

    /**
     * 教师未看通知数量
     * @Param [teacherid]
     * @Author ywx
     * @Date 2020/7/24 10:39
     * @return java.lang.Integer
     **/
    Integer noReadNum(@Param("teacherid") Integer teacherid);


    //////////////////////////////////////////////学生WEB端//////////////////////////////////////////////
    /**
     * 通知列表
     * @Param [notice]
     * @Author ywx
     * @Date 2020/9/3 18:14
     * @return java.util.List<com.xhkjedu.vo.notice.NoticeVo>
     **/
    List<NoticeVo> listNoticeForStuWeb(@Param("notice") TNotice notice);

    //根据班级删除通知
    void deleteByClassId(@Param("classid") Integer classid);

    //通知班级列表
    List<ClassVo> listClass(Integer noticeid);

    //通知教师列表
    List<NoticeTeacherVo> listTeacher(Integer noticeid);

    //通知学校列表
    List<TSchool> listSchool(Integer noticeid);
}
