package com.nova.sankuai.infra.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nova.sankuai.domain.dto.CustomerPageDto; import com.nova.sankuai.domain.entity.Customer; import com.nova.sankuai.domain.vo.InletFlowProportionVo; import com.nova.sankuai.domain.vo.customer.CustomerCountVo; import com.nova.sankuai.domain.vo.customer.CustomerVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; /** * @author weikangdi */ @Component @Mapper public interface CustomerMapper extends BaseMapper { /** * 分页查询客户信息 * * @param page * @param customerPageDto * @return */ IPage pageModel(@Param("page") Page page, @Param("customerPageDto") CustomerPageDto customerPageDto); /** * 批量根据机构ID列表查询当天内客户数据 * * @param endOfDay * @param beginOfDay * @param list * @return */ List getCustomersOfDay(@Param("list") List list, @Param("beginOfDay") Date beginOfDay, @Param("endOfDay") Date endOfDay); /** * 批量获取机构的客户历史推送数量 * * @param ids * @return */ List getCustomerCounts(@Param("ids") List ids); /** * 获取机构的客户推送数量 * * @param id * @param beginOfDay * @param endOfDay * @return */ CustomerCountVo getCustomerCount(@Param("id") Long id, @Param("beginOfDay") Date beginOfDay, @Param("endOfDay") Date endOfDay); /** * 获取用户有效记录 * * @param phone * @return */ List getUserRecord(@Param("phone") String phone); /** * 获取最近一条客户记录(名字不为空) * * @param phone * @return */ Customer getLatestCustomerRecord(@Param("phone") String phone); /** * 查询渠道占比 * @param startDate * @param endDate * @param chCode * @param startDayStr * @param endDayStr * @param hourStr * @return */ List getInletFlowProportion(@Param("startDate") Date startDate,@Param("endDate") Date endDate, @Param("chCode") Integer chCode, @Param("startDayStr") String startDayStr, @Param("endDayStr") String endDayStr, @Param("hourStr") String[] hourStr); }