package com.ym.mec.collectfee.service;

import com.ym.mec.collectfee.common.page.PageInfo;
import com.ym.mec.collectfee.common.service.BaseService;
import com.ym.mec.collectfee.entity.*;

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

public interface ApplyInfoService extends BaseService<Integer, ApplyInfo> {

    /**
     * 根据用户输入的手机，乐团编号查询用户信息
     * @return
     */
    ApplyInfo findUserByPhone(String phone,Integer clazzId);

    /**
     * 用户缴费成功后，到mec注册
     * @param phone
     */
    Boolean userRegister(String phone,Integer orderId);

    /**
     * 推送mec  3.2.13添加乐团学员（含缴费）（125218）
     * @return
     */
    RequestMecApplyClass getApplyClass(ApplyInfo applyInfo,Integer orderId);

    /**
     * 获取分部列表
     * @return
     */
    List<Branch> getBranches();

    /**
     * 保存学校列表
     * @return
     */
    void saveSeminary();

    /**
     * 根据学生编号获取乐团注册页面数据
     * @param stuId
     * @return
     */
    Map<String, Object> getUserRegisterViewDetail(Integer stuId);

    PageInfo<ApplyInfoPage> queryUserPage(StudentsQueryInfo queryInfo);

    /**
     *本接口用于查询指定学员报名的课程班（小课或乐团）列表
     * @param userId
     * @return
     */
    List<MecCourse> queryUserCourse(Integer userId);

    /**
     * 查询mec用户信息
     * @param userId
     * @return
     */
    MecUser findMecUser(Integer userId);

    /**
     * 推送续费成功订单到mec
     * @param orderId 订单编号
     * @param chargeMode 收费方式
     * @return
     */
    boolean pushRenew(RenewBean renewBean);

    /**
     * 批量调剂
     * @param userId
     * @param subId
     */
    void updateUserSub(String userId, Integer subId, Integer courseId);

    /**
     * 查询手机号在mec是否存在
     * @param phone
     */
    boolean mecUserIsExist(String phone);
}