CustomerService.java
3.63 KB
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package cn.fw.valhalla.service.data;
import cn.fw.valhalla.domain.db.customer.Customer;
import cn.fw.valhalla.domain.dto.CustomerDetailDto;
import cn.fw.valhalla.domain.dto.StammkundeAnalyseDTO;
import cn.fw.valhalla.domain.query.CustomCustomerQuery;
import cn.fw.valhalla.domain.query.CustomerQueryVO;
import cn.fw.valhalla.domain.query.StammkundeAnalyseQueryVO;
import cn.fw.valhalla.domain.vo.customer.CustomerListVO;
import cn.fw.valhalla.sdk.param.CusCntReq;
import cn.fw.valhalla.sdk.result.BasicsCustomerDTO;
import cn.fw.valhalla.sdk.result.CusCntResult;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author : kurisu
* @className : CustomerService
* @description : 档案
* @date: 2020-08-12 11:19
*/
public interface CustomerService extends IService<Customer> {
/**
* 分页查询查询
*
* @param startIndex
* @param pageSize
* @param queryVO
* @return
*/
List<CustomerListVO> getAppPageList(Integer startIndex, Integer pageSize, CustomerQueryVO queryVO);
/**
* 根据id查询
*
* @param id
* @return
*/
Customer queryById(Long id);
/**
* 查询档案需要无效的
*
* @param id
* @return
*/
Customer queryByIdWithInvalid(Long id);
/**
* 根据车牌号查询档案信息
*
* @param plateNo
* @param groupId
* @return
*/
Customer queryByPlateNo(String plateNo, Long groupId);
/**
* 根据车牌号查询档案信息
*
* @param frameNo
* @param groupId
* @return
*/
Customer queryByFrameNo(String frameNo, Long groupId);
/**
* 根据车牌号查询档案信息
*
* @param engineNo
* @param groupId
* @return
*/
Customer queryByEngineNo(String engineNo, Long groupId);
/**
* 根据baseId查询档案信息
*
* @param baseId
* @return
*/
List<Customer> queryByBaseId(Long baseId);
/**
* 禁用档案
*
* @param customerId
*/
void forbidden(Long customerId);
/**
* 禁用档案
*
* @param plateNo
*/
void forbiddenPlate(String plateNo);
/**
* 查询服务顾问所有档案
*
* @param adviserId
* @return
*/
@Nullable
List<Customer> queryByAdviserId(@NonNull Long adviserId);
/**
* 查询指定条件的客户信息
*
* @param queryVO
* @return
*/
List<StammkundeAnalyseDTO> analyseList(StammkundeAnalyseQueryVO queryVO);
/**
* 查询自定义参数的档案信息
*
* @param query
* @return
*/
List<CustomerDetailDto> queryCustomList(CustomCustomerQuery query);
/**
* 查询自定义参数的档案数量
*
* @param query
* @return
*/
Long queryCustomListCount(CustomCustomerQuery query);
/**
* 关键字全匹配查询
*
* @param keyword
* @param groupId
* @return
*/
List<BasicsCustomerDTO> queryByKeyword(String keyword, Long groupId);
/**
* 分配线索后重新更新档案的服务顾问
*
* @param vinList
* @param userId
* @param shopId
* @param groupId
*/
@Transactional(rollbackFor = Exception.class)
void afterDistributePubClue(List<String> vinList, Long userId, Long shopId, Long groupId);
/**
* 查询保有客数量
* @param req 查询参数
* @return 保有客数量
*/
List<CusCntResult> queryCusCnt(CusCntReq req);
}