FollowApiBizService.kt
3.76 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
package cn.fw.valhalla.service.bus.follow;
import cn.fw.valhalla.domain.db.customer.AccidentPool
import cn.fw.valhalla.domain.db.follow.ClueTask
import cn.fw.valhalla.domain.db.follow.FollowClue
import cn.fw.valhalla.domain.enums.ClueStatusEnum
import cn.fw.valhalla.domain.enums.FollowTypeEnum
import cn.fw.valhalla.domain.enums.TaskStateEnum
import cn.fw.valhalla.domain.query.BeCompletedQuery
import cn.fw.valhalla.sdk.param.ShouldBeCompletedQuery
import cn.fw.valhalla.sdk.result.ShouldBeCompletedResult
import cn.fw.valhalla.service.data.AccidentPoolService
import cn.fw.valhalla.service.data.ClueTaskService
import cn.fw.valhalla.service.data.FollowClueService
import com.baomidou.mybatisplus.core.toolkit.Wrappers
import org.springframework.stereotype.Service
import java.util.*
/**
* 跟进api接口业务实现
*
* @author : kurisu
* @version : 1.0
* @className : FollowApiBizService
* @description : 跟进api接口业务实现
* @date : 2022-10-20 14:35
*/
@Service
class FollowApiBizService(
val clueTaskService: ClueTaskService,
val accidentPoolService: AccidentPoolService,
val followClueService: FollowClueService
) {
/**
* 查询已成交续保数据
*
* @param query
* @param followTypeEnum
* @return
*/
fun queryCompletedGuys(
query: ShouldBeCompletedQuery,
followTypeEnum: FollowTypeEnum
): List<ShouldBeCompletedResult> {
val search = BeCompletedQuery()
search.type = followTypeEnum.value
search.shopId = query.shopId
search.userId = query.userId
search.startTime = query.startTime
search.endTime = query.endTime
val dtoList = clueTaskService.queryShouldBeCompleted(search)
return dtoList
.filter { TaskStateEnum.COMPLETE.value.equals(it.state) }
.map {
ShouldBeCompletedResult(
it.vin,
it.userId,
it.userName,
it.shopId,
it.state
)
}
}
/**
* 查询应成交台数
*
* @param query
* @param followTypeEnum
* @return
*/
fun queryShouldBeCompleted(
query: ShouldBeCompletedQuery,
followTypeEnum: FollowTypeEnum
): List<ShouldBeCompletedResult> {
val search = BeCompletedQuery(
query.userId,
query.shopId,
query.startTime,
query.endTime,
followTypeEnum.value
)
val dtoList = clueTaskService.queryShouldBeCompleted(search)
return dtoList.map {
ShouldBeCompletedResult(
it.vin,
it.userId,
it.userName,
it.shopId,
it.state
)
}
}
fun queryAccidentFollowerByPlate(plateNo: String, groupId: Long): ClueTask? {
val lastOne = accidentPoolService.getOne(
Wrappers.lambdaQuery<AccidentPool>()
.eq(AccidentPool::getPlateNo, plateNo)
.eq(AccidentPool::getGroupId, groupId)
.orderByDesc(AccidentPool::getCreateTime)
.last(" limit 1 ")
)
if (Objects.isNull(lastOne)) {
return null
}
val lastOngoingClue = followClueService.getOne(
Wrappers.lambdaQuery<FollowClue>()
.eq(FollowClue::getPlateNo, plateNo)
.eq(FollowClue::getClueType, FollowTypeEnum.AC)
.eq(FollowClue::getClueState, ClueStatusEnum.ONGOING)
.eq(FollowClue::getGroupId, groupId)
.last(" limit 1 ")
);
if (Objects.isNull(lastOngoingClue)) {
return null;
}
return clueTaskService.queryOngoingTaskByClueId(lastOngoingClue.id);
}
}