package com.bonus.canteen.core.screening.mapper;

import com.bonus.canteen.core.screening.vo.EchartsVO;
import com.bonus.canteen.core.screening.vo.SingleModelVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 19814
 */
public interface DataScreeningMapper {
    /**
     * 获取数据总览（今日营业额、订单等）
     * @param date 日期
     * @param type 11 消费机 2 预定餐 4 商超
     * @return 数据总览对象
     */
    SingleModelVO selectTurnover(@Param("date") String date,@Param("type") int type);
    /**
     * 获取订单数
     * @param date 日期
     * @param type 11 消费机 2 预定餐 4 商超
     * @return 订单对象
     */
    SingleModelVO selectOrder(@Param("date") String date,@Param("type") int type);
    /**
     * 获取人数
     * @param date 日期
     * @param type 11 消费机 2 预定餐 4 商超
     * @return 人数对象
     */
    SingleModelVO selectPerson(@Param("date") String date,@Param("type") int type);
    /**
     * 获取菜品销量
     * @param date 日期
     * @return 菜品销量对象
     */
    SingleModelVO selectDish(@Param("date")String date);
    /**
     * 获取食堂订单及销量趋势
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 订单及销量对象
     */
    List<EchartsVO> getCanteenOrdersAndSalesTrends(@Param("startDate")String startDate, @Param("endDate")String endDate);
    /**
     * 获取商超订单及销量趋势
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 订单及销量对象
     */
    List<EchartsVO> getSupermarketOrderAndSalesTrend(@Param("startDate")String startDate, @Param("endDate")String endDate);
    /**
     * 获取本月菜品销量排名
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 菜品销量对象
     */
    List<SingleModelVO> getThisMonthDishSalesRanking(@Param("startDate")String startDate, @Param("endDate")String endDate);
    /**
     * 获取订单类型占比
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param type 11 消费机 2 预定餐 4 商超
     * @return 订单类型占比对象
     */
    SingleModelVO selectOrderByDate(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("type") int type);
}
