package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.*;
import com.ym.mec.biz.dal.entity.VipGroupActivity;
import com.ym.mec.biz.dal.page.ActivityStudentQueryInfo;
import com.ym.mec.biz.dal.page.DoubleEleven2021QueryInfo;
import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface VipGroupActivityService extends BaseService<Integer, VipGroupActivity> {

    /**
     * @Author: Joburgess
     * @Date: 2019/10/1
     * 新增vip课活动方案
     */
    VipGroupActivityAddDto addVipGroupActivity(VipGroupActivityAddDto vipGroupActivityAddDto);

    /**
     * @Author: Joburgess
     * @Date: 2019/10/1
     * 修改vip课活动方案
     */
    VipGroupActivityAddDto updateVipGroupActivity(VipGroupActivityAddDto vipGroupActivityAddDto, Integer operatorId);

    /**
     * @Author: Joburgess
     * @Date: 2019/10/2
     * 根据课程类型获取VIP课相关活动方案
     */
    List<VipGroupActivity> findByVipGroupCategory(ActivityQueryDto activityQueryDto);

    /**
     * 导出vip活动
     * @param queryInfo
     * @return
     */
    List<ExportVipGroupActivityDto> exportVipGroupActivity(VipGroupActivityQueryInfo queryInfo);

    /**
    * @description: 获取老师待排课的活动方案列表
     * @param
    * @return List<WaitCourseActivityDto>
    * @author zx
    * @date 2021/10/11 11:12
    */
    List<WaitCourseActivityDto> queryWaitCourseActivity(Integer teacherId,String organId);


    /**
    * @description: 获取活动待排课学员数量
     * @param userId
 * @param activityId
    * @return ActivityWaitCourseStudentNumDto
    * @author zx
    * @date 2021/10/11 14:36
    */
    ActivityWaitCourseStudentNumDto getActivityWaitCourseStudentNum(Integer userId, Integer activityId);

    /**
    * @description: 获取活动学员课排课次数
     * @param userId
     * @param activityId
    * @return com.ym.mec.biz.dal.dto.ActivityWaitCourseStudentNumDto
    * @author zx
    * @date 2021/10/11 15:00
    */
    PageInfo<ActivityWaitCourseStudentNumDto> getActivityStudentCanCourseNum(ActivityStudentQueryInfo queryInfo);

    /**
    * @description: 分部双11活动统计
     * @param
    * @return java.lang.Object
    * @author zx
    * @date 2021/10/25 12:07
    */
    List<DoubleEleven2021Dto> organDoubleEleven2021Statis(OrganDoubleEleven2021StatisDto queryInfo);

    /**
    * @description: 双11活动统计
     * @param
    * @return java.lang.Object
    * @author zx
    * @date 2021/10/25 12:07
    */
    Object doubleEleven2021Statis();

    /**
    * @description: 2021双十一学员购买详情
     * @param queryInfo
    * @return java.lang.Object
    * @author zx
    * @date 2021/10/26 11:38
    */
    PageInfo<DoubleEleven2021OrderDetailDto> doubleEleven2021OrderDetail(DoubleEleven2021QueryInfo queryInfo);
}
