sunshine
2024-11-05 1bd51ea22b75760704843d9bed886a7262bb1cb1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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<Customer> {
    /**
     * 分页查询客户信息
     *
     * @param page
     * @param customerPageDto
     * @return
     */
    IPage<CustomerVo> pageModel(@Param("page") Page page, @Param("customerPageDto") CustomerPageDto customerPageDto);
 
    /**
     * 批量根据机构ID列表查询当天内客户数据
     *
     * @param endOfDay
     * @param beginOfDay
     * @param list
     * @return
     */
    List<CustomerCountVo> getCustomersOfDay(@Param("list") List<Long> list, @Param("beginOfDay") Date beginOfDay, @Param("endOfDay") Date endOfDay);
 
    /**
     * 批量获取机构的客户历史推送数量
     *
     * @param ids
     * @return
     */
    List<CustomerCountVo> getCustomerCounts(@Param("ids") List<Long> 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<Customer> 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<InletFlowProportionVo> 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);
 
}