package com.xjrsoft.module.student.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseService;
import com.xjrsoft.module.student.dto.AddBaseStudentUserDto;
import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
import com.xjrsoft.module.student.dto.UpdateBaseStudentUserDto;
import com.xjrsoft.module.student.entity.BaseStudentUser;
import com.xjrsoft.module.student.vo.BaseStudentClassVo;
import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
import com.xjrsoft.module.student.vo.PersonalPortraitPersonalInfoVo;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

public interface IStudentManagerService extends MPJBaseService<BaseStudentUser> {

    /**
     * 新增
     *
     * @param baseStudentUser
     * @return
     */
    Boolean add(AddBaseStudentUserDto baseStudentUser);

    /**
     * 更新
     *
     * @param baseStudentUser
     * @return
     */
    Boolean update(UpdateBaseStudentUserDto baseStudentUser);

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

    /**
     * 获取学生班级信息
     *
     * @param userId
     * @return
     */
    BaseStudentClassVo getStudentClass(Long userId);

    /**
     * 个人财务画像，获取学生个人信息
     * @param userId
     * @return
     */
    PersonalPortraitPersonalInfoVo getPersonalInfo(Long userId);

    Boolean importStudentData(List<Map<Integer, Object>> excelDataList) throws ParseException;


    Page<BaseStudentUserPageVo> getStudentPage(Page<BaseStudentUserPageVo> page, BaseStudentUserPageDto dto);
}
