package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.BasicUserDto;
import com.ym.mec.biz.dal.dto.StudentGoodsSellDto;
import com.ym.mec.biz.dal.entity.StudentGoodsSell;
import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
import com.ym.mec.biz.dal.entity.StudentRepair;
import com.ym.mec.biz.dal.page.RepairStudentQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.page.QueryInfo;
import com.ym.mec.common.service.BaseService;

import java.util.Map;

public interface StudentRepairService extends BaseService<Integer, StudentRepair> {

    /**
     * 根据维修技师获取相应学生列表
     */
    PageInfo<BasicUserDto> getStudents(RepairStudentQueryInfo queryInfo);

    /**
     * 添加维修单
     * @param repairInfo
     * @return
     */
   Map addRepair(StudentRepair repairInfo) throws Exception;


    /**
     * 维修完成
     * @param id
     * @param description
     */
    void repairSuccess(Integer id, String description,Integer repairStatus);

    /**
     * 获取学生信息
     * @param studentId
     * @return
     */
    BasicUserDto getStudentInfo(Integer studentId);

    /**
     * 获取维修单详情
     * @param id
     * @return
     */
    StudentRepair getRepairInfo(Integer id);

    /**
     * 支付维修单
     * @param repairInfo
     * @return
     */
    Map payRepair(StudentRepair repairInfo) throws Exception;

    /**
     * 获取学生维修技师信息
     * @param studentId
     * @return
     */
    BasicUserDto getStudentRepairer(Integer studentId,Integer organId);

    /**
     * 支付回调
     * @param order
     */
    Boolean orderCallback(StudentPaymentOrder order);

    /**
     * @describe 添加商品销售订单
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/16
     * @time 13:47
     * @param studentGoodsSell:
     * @return java.util.Map
     */
    Map addGoodsSellOrder(StudentGoodsSell studentGoodsSell) throws Exception;

    /**
     * @describe 学员扫码支付
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/16
     * @time 13:47
     * @param goodsSellId:
     * @return java.util.Map
     */
    Map studentPaymentGoodsOrder(Integer goodsSellId) throws Exception;

    /**
     * @describe 商品销售订单回调
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/16
     * @time 16:58
     * @param order:
     * @return void
     */
    void goodsSellOrderCallback(StudentPaymentOrder order);

    /**
     * @describe 获取商品购买教务老师关联的学员列表
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/28
     * @time 11:27
     * @param queryInfo:
     * @return java.lang.Object
     */
    PageInfo<BasicUserDto> queryEduStudents(QueryInfo queryInfo);
}
