package jnpf.cultivate.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.cultivate.dto.learn.BatchCommonCountDto;
import jnpf.model.cultivate.dto.storestatistics.FtbCultivateStoreStatisticsReq;
import jnpf.model.cultivate.dto.storestatistics.dto.StoreCultivateTaskDto;
import jnpf.model.cultivate.po.learn.FtbCultivateLearnTaskAssignment;
import jnpf.model.cultivate.v2.task.vo.V2CultivateTaskFinishUserListVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: peng.hao
 * @create: 2024/9/9:11:05
 */
public interface FtbCultivateLearnTaskAssignmentMapper extends BaseMapper<FtbCultivateLearnTaskAssignment> {
    /**
     * 批量查询统计任务的学习人数
     *
     * @param taskIds 任务id
     * @param status  0-查询全部  1-查询已经完成的
     * @return
     */
    List<BatchCommonCountDto> groupCountNum(@Param("taskIds") List<String> taskIds, @Param("status") Integer status);

    /**
     * 查询任务学习人员列表
     *
     * @param taskIds 任务ID列表
     * @return
     */
    List<FtbCultivateLearnTaskAssignment> groupListAssignment(@Param("taskIds") List<String> taskIds);

    /**
     * 查询我的任务列表
     *
     * @param userId 用户ID
     * @return
     */
    List<StoreCultivateTaskDto> storeMyTaskList(@Param("userId") String userId);

    /**
     * 查询任务数量
     *
     * @param userId    用户ID
     * @param type：0-全部 1-进行中  2-已完成
     * @param req       查询参数
     * @return 任务数量
     */
    Long queryTaskNum(@Param("userId") String userId, @Param("type") Integer type, @Param("req") FtbCultivateStoreStatisticsReq req);

    /**
     * 批量插入任务分配记录
     */
    int insertBatch(@Param("list") List<FtbCultivateLearnTaskAssignment> list);


    Page<V2CultivateTaskFinishUserListVo> queryTaskUserListForManagerApp(@Param("page") Page<V2CultivateTaskFinishUserListVo> page, @Param("taskId") String taskId);
}