package com.xjrsoft.module.student.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseService;
import com.xjrsoft.module.student.dto.BaseStudentPunishmentInfoMobilePageDto;
import com.xjrsoft.module.student.dto.BaseStudentPunishmentInfoPageDto;
import com.xjrsoft.module.student.entity.BaseStudentPunishmentInfo;
import com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoDetailVo;
import com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoMobileDetailVo;
import com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoMobilePageVo;
import com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoPageVo;

import java.util.List;

/**
* @title: 学生处分信息管理
* @Author dzx
* @Date: 2023-11-15
* @Version 1.0
*/

public interface IBaseStudentPunishmentInfoService extends MPJBaseService<BaseStudentPunishmentInfo> {
    /**
     * 学生处分信息管理列表(分页)
     * @param dto 处分管理信息前端请求实体对象
     * @return
     */
    IPage<BaseStudentPunishmentInfoPageVo> selectJoinListPagePc(BaseStudentPunishmentInfoPageDto dto);

    /**
     * 学生处分信息详情
     * @param id 处分管理信息id
     * @return
     */
    BaseStudentPunishmentInfoDetailVo getDetailById(Long id);

    /**
     * 学生处分信息详情
     * @return
     */
    BaseStudentPunishmentInfoMobileDetailVo getMobileInfo(Long id);

    /**
     * 学生处分信息管理列表(分页)(移动端）
     * @param dto 处分管理信息前端请求实体对象(移动端）
     * @return
     */
    IPage<BaseStudentPunishmentInfoMobilePageVo> getMobilePage(BaseStudentPunishmentInfoMobilePageDto dto);


    /**
    * 新增
    *
    * @param baseStudentPunishmentInfo
    * @return
    */
    Boolean add(BaseStudentPunishmentInfo baseStudentPunishmentInfo);

    /**
    * 更新
    *
    * @param baseStudentPunishmentInfo
    * @return
    */
    Boolean update(BaseStudentPunishmentInfo baseStudentPunishmentInfo);

    /**
    * 删除
    *
    * @param ids
    * @return
    */
    Boolean delete(List<Long> ids);

    /**
     * app分页查询
     * @param page
     * @param dto
     * @return
     */
    Page<BaseStudentPunishmentInfoMobilePageVo> getMobilePage(Page<BaseStudentPunishmentInfoMobilePageDto> page, BaseStudentPunishmentInfoMobilePageDto dto);

}
