package com.starry.admin.modules.statistics.service;

import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import com.starry.admin.modules.personnel.module.entity.PlayPersonnelGroupInfoEntity;
import com.starry.admin.modules.statistics.module.vo.ClerkPerformanceDetailQueryVo;
import com.starry.admin.modules.statistics.module.vo.ClerkPerformanceDetailResponseVo;
import com.starry.admin.modules.statistics.module.vo.ClerkPerformanceOverviewQueryVo;
import com.starry.admin.modules.statistics.module.vo.ClerkPerformanceOverviewResponseVo;
import com.starry.admin.modules.statistics.module.vo.PlayClerkPerformanceInfoReturnVo;
import java.util.List;

/**
 * @author admin
 * @since 2024/6/15 下午3:29
 **/
public interface IPlayClerkPerformanceService {

    /**
     * 根据店员订单ID，生成店员业绩信息
     *
     * @param userInfo
     *            店员信息
     * @param orderInfoEntities
     *            店员订单列表
     * @param clerkLevelInfoEntity
     *            店员等级信息
     * @param groupInfoEntities
     *            店员分组信息
     * @return 业绩信息
     */
    PlayClerkPerformanceInfoReturnVo getClerkPerformanceInfo(PlayClerkUserInfoEntity userInfo,
            List<PlayOrderInfoEntity> orderInfoEntities, List<PlayClerkLevelInfoEntity> clerkLevelInfoEntity,
            List<PlayPersonnelGroupInfoEntity> groupInfoEntities, String startTime, String endTime);

    ClerkPerformanceOverviewResponseVo queryOverview(ClerkPerformanceOverviewQueryVo vo);

    ClerkPerformanceDetailResponseVo queryDetail(ClerkPerformanceDetailQueryVo vo);
}
