package com.ym.mec.biz.dal.dao;


import com.ym.mec.biz.dal.dto.StudentGoodsSellDto;
import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
import com.ym.mec.biz.dal.entity.StudentGoodsSell;
import com.ym.mec.common.dal.BaseDAO;
import org.apache.ibatis.annotations.Param;

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

public interface StudentGoodsSellDao extends BaseDAO<Integer, StudentGoodsSell> {


    /**
     * @describe 获取教务老师关联的学员商品订单
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/23
     * @time 14:00
     * @param params:
     * @return int
     */
    int countStudentGoodsOrders(Map<String, Object> params);

    /**
     * @describe 获取教务老师关联的学员商品订单
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/23
     * @time 14:01
     * @param params:
     * @return java.util.List<com.ym.mec.biz.dal.dto.StudentGoodsSellDto>
     */
    List<StudentGoodsSellDto> queryStudentGoodsOrders(Map<String, Object> params);

    /**
     * @describe 根据订单编号获取学员商品订单
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/23
     * @time 17:04
     * @param orderNo:
     * @return com.ym.mec.biz.dal.entity.StudentGoodsSell
     */
    StudentGoodsSell findByOrderNo(@Param("orderNo") String orderNo);

    StudentGoodsSellDto getStudentGoodsSellDto(String orderNo);

    /**
     * @describe 获取到期未确认的订单
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/10/12
     * @time 10:09
     * @param autoAffirmReceiveTime:
     * @return java.util.List<java.lang.String>
     */
    String queryNoAffirmOrderNo(String autoAffirmReceiveTime);

    /**
     * @describe 自动确认收货
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/10/12
     * @time 10:15
     * @param orderNo:
     * @return void
     */
    void autoAffirmReceive(@Param("orderNo") String orderNo, @Param("status") String status);

    /**
     * @describe 获取学生端商品购买列表
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/10/14
     * @time 17:50
     * @param params:
     * @return int
     */
    int countStudentPaymentOrders(Map<String, Object> params);

    /**
     * @describe 获取学生端商品购买列表
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/10/14
     * @time 17:50
     * @param params:
     * @return java.util.List<com.ym.mec.biz.dal.dto.StudentPaymentOrderDto>
     */
    List<StudentPaymentOrderDto> queryStudentPaymentOrders(Map<String, Object> params);
}