package com.yida.data.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.CurrentUser;
import com.yida.data.common.core.entity.user.EduFaceGroupUser;
import com.yida.data.common.core.entity.user.EduStaff;
import com.yida.data.common.core.entity.user.EduStudent;
import com.yida.data.user.dto.*;
import com.yida.data.user.vo.UserFacePageVO;

/**
 * 人脸、人脸组关联信息 Service接口
 *
 * @author zhanghaijun
 * @date 2021-06-16 14:13:31
 */
public interface EduFaceGroupUserService extends IService<EduFaceGroupUser> {
    IPage<UserFacePageVO> listUserFacePage(FaceGroupUserPageDTO dto);

    IPage<EduStudent> listStudentNotImport(Page page, Long deptId, Integer type, Integer sex,
                                           String keyword, Long schoolId, Long groupId,
                                           Long dormId, Long dormRoomId,
                                           Long campusId, Long sectionId, Long gradeId, Long classId);

    IPage<EduStaff> listStaffNotImport(Page page, Integer sex,
                                       String keyword, Long schoolId, Long groupId);

    void saveAllStudent(Integer type, Integer sex, String keyword, Long schoolId,
                        Long groupId, Long dormId, Long dormRoomId,
                        Long campusId, Long sectionId, Long gradeId, Long classId);

    void saveAllStaff(Integer sex,
                      String keyword, Long schoolId, Long groupId);

    void saveFaceGroupUser(SaveFaceGroupUserDTO dto, CurrentUser currentUser);

    void delUserBatch(DelFaceGroupUserDTO dto);

    void issueBatch(BatchIssueDTO dto, CurrentUser currentUser);

    void updateStatus(UpdateFaceGroupUserStatusDTO dto);
}
