package com.ssj.service.sys.usercenter.service;

import com.ssj.bean.conch.conch.domain.ConchDerver;
import com.ssj.bean.sys.usercenter.domain.*;
import com.ssj.bean.weixin.user.domain.User;
import com.ssj.framework.core.common.service.BaseService;
import com.ssj.framework.core.util.ResponseEntity;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.ui.Model;

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

/**
 * @author Mount Liu
 * @date 2018/9/11
 */
public interface UserCenterService extends BaseService<User, String> {

	/**
	 * 分页查询学生列表
	 * @param params
	 * @param sp
	 * @return
	 */
	Page<StudentCenter> findStudentListByPage(Map<String, Object> params, Pageable sp);

	/**
	 * 学生详细档案信息
	 * @param vipId
	 * @return
	 */
	Map<String, Object> studentDetail(String vipId);

	/**
	 * 分页查询校长列表
	 * @param params
	 * @param sp
	 * @return
	 */
	Page<SchoolmasterCenter> findSchoolmasterListByPage(Map<String, Object> params, Pageable sp);

    Page<ParentCenter> findParentListByPage(HashMap<String, Object> paramsMap, Pageable pageable) throws Exception;

    Page<TeacherCenter> findTeacherListByPage(HashMap<String, Object> paramsMap, Pageable pageable);

	Page<CuratorCenter> findCuratorListByPage(HashMap<String, Object> paramsMap, Pageable pageable);

	Page<ConchDerver> findConchListByPage(HashMap<String, Object> paramsMap, Pageable pageable);

	Page<Map<String, Object>> findConchListByQueryPage(Map<String, Object> paramsMap, Pageable pageable);
	Page<Map<String, Object>> findStudentListByQueryPage(Map<String, Object> paramsMap, Pageable pageable);
	/**
	 * 用户角色
	 * @param userId
	 * @return
	 */
	List<Map<String, Object>> findRoleList(String userId);

    void findSchoolmasterDetail(Model model, String schoolmasterUserId);

    void findParentDetail(Model model, String parentUserId);

	/**
	 * 老师详情
	 * @param model
	 * @param id
	 */
	void findTeacherDetail(Model model, String id);

	ResponseEntity untieRole(String userId);

	/**
	 * 添加质检员身份
	 * @param userId
	 * @return
	 */
	ResponseEntity addChecker(String userId, String name, String subject, String phone);

	/**
	 * 查找所有角色用户
	 * @param data
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	Map<String,Object> findUserRoleByPage(Map<String, Object> data, int pageNo, int pageSize);

    Page<Map<String, Object>> findVipStudentList(Map<String, Object> params, Pageable initPage);

	List<Map<String,Object>> findVipListByUserId(Map<String, Object> params);
}
