StammkundePoolServiceImpl.java
5.83 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
package cn.fw.valhalla.service.data.impl;
import cn.fw.valhalla.dao.mapper.StammkundePoolMapper;
import cn.fw.valhalla.domain.db.pool.StammkundePool;
import cn.fw.valhalla.domain.dto.StammkundeDto;
import cn.fw.valhalla.domain.dto.StammkundePoolDTO;
import cn.fw.valhalla.domain.dto.StammkundePoolReportDTO;
import cn.fw.valhalla.domain.dto.StammkundePoolReportQueryDTO;
import cn.fw.valhalla.domain.enums.DefeatReasonEnum;
import cn.fw.valhalla.domain.enums.StammkundeStatusEnum;
import cn.fw.valhalla.domain.query.StammkundePoolQueryVO;
import cn.fw.valhalla.service.data.StammkundePoolService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @author : kurisu
* @className : StammkundePoolServiceImpl
* @description : 保有客池
* @date: 2020-11-11 17:25
*/
@Service
public class StammkundePoolServiceImpl extends ServiceImpl<StammkundePoolMapper, StammkundePool> implements StammkundePoolService {
@Override
public boolean reject(Long customerId, Long groupId, DefeatReasonEnum reason) {
return this.update(Wrappers.<StammkundePool>lambdaUpdate()
.set(StammkundePool::getAktiv, Boolean.FALSE)
.set(StammkundePool::getRejectTime, new Date())
.set(StammkundePool::getReason, reason)
.eq(StammkundePool::getCustomerId, customerId)
.eq(StammkundePool::getGroupId, groupId)
.isNull(StammkundePool::getRejectTime)
);
}
@Override
public boolean reject(StammkundeDto dto) {
return this.update(Wrappers.<StammkundePool>lambdaUpdate()
.set(StammkundePool::getAktiv, Boolean.FALSE)
.set(StammkundePool::getRejectTime, new Date())
.set(StammkundePool::getReason, dto.getReason())
.set(StammkundePool::getNewUserId, dto.getNewUserId())
.set(StammkundePool::getNewUserName, dto.getNewUserName())
.set(StammkundePool::getNewShopId, dto.getNewShopId())
.set(StammkundePool::getNewShopName, dto.getNewShopName())
.eq(StammkundePool::getCustomerId, dto.getCustomerId())
.eq(StammkundePool::getGroupId, dto.getGroupId())
.isNull(StammkundePool::getRejectTime)
);
}
@Override
public boolean reject(Long userId, Long shopId, Long groupId, DefeatReasonEnum reason) {
return this.update(Wrappers.<StammkundePool>lambdaUpdate()
.set(StammkundePool::getAktiv, Boolean.FALSE)
.set(StammkundePool::getRejectTime, new Date())
.set(StammkundePool::getReason, reason)
.eq(StammkundePool::getAdviserId, userId)
.eq(StammkundePool::getShopId, shopId)
.eq(Objects.nonNull(groupId), StammkundePool::getGroupId, groupId)
.isNull(StammkundePool::getRejectTime)
);
}
@Override
public void aktiv(Long customerId, Long groupId, Long shopId) {
this.update(Wrappers.<StammkundePool>lambdaUpdate()
.set(StammkundePool::getAktiv, Boolean.TRUE)
.set(StammkundePool::getPoolStatus, StammkundeStatusEnum.KUNDE)
.set(StammkundePool::getActivationTime, new Date())
.eq(StammkundePool::getCustomerId, customerId)
.eq(StammkundePool::getGroupId, groupId)
.eq(StammkundePool::getShopId, shopId)
.eq(StammkundePool::getAktiv, Boolean.FALSE)
.isNull(StammkundePool::getRejectTime)
);
}
@Override
public void aktiv(Long id) {
this.update(Wrappers.<StammkundePool>lambdaUpdate()
.set(StammkundePool::getAktiv, Boolean.TRUE)
.set(StammkundePool::getPoolStatus, StammkundeStatusEnum.KUNDE)
.set(StammkundePool::getActivationTime, new Date())
.eq(StammkundePool::getId, id)
.eq(StammkundePool::getAktiv, Boolean.FALSE)
.isNull(StammkundePool::getRejectTime)
);
}
@Override
public StammkundePool queryAktivAble(Long customerId, Long groupId, Long shopId) {
return this.getOne(Wrappers.<StammkundePool>lambdaQuery()
.eq(StammkundePool::getCustomerId, customerId)
.eq(StammkundePool::getGroupId, groupId)
.eq(StammkundePool::getShopId, shopId)
.eq(StammkundePool::getAktiv, Boolean.FALSE)
.isNull(StammkundePool::getRejectTime)
.orderByDesc(StammkundePool::getId)
.last("limit 1")
);
}
@Override
public List<StammkundePoolDTO> stammkundeList(StammkundePoolQueryVO queryVO) {
Integer current = queryVO.getCurrent();
Integer pageSize = queryVO.getPageSize();
Integer startIndex = (current - 1) * pageSize;
return Optional.ofNullable(getBaseMapper().stammkundeList(startIndex, pageSize, queryVO)).orElse(new ArrayList<>());
}
@Override
public long stammkundeListCount(StammkundePoolQueryVO queryVO) {
return Optional.ofNullable(getBaseMapper().stammkundeListCount(queryVO)).orElse(0L);
}
@Override
public void removeByCustomerId(@NonNull Long customerId, @NonNull Long groupId) {
this.remove(Wrappers.<StammkundePool>lambdaQuery()
.eq(StammkundePool::getCustomerId, customerId)
.eq(StammkundePool::getGroupId, groupId)
);
}
/**
* 查询渠道到店统计
* @param dto
* @return
*/
public List<StammkundePoolReportDTO> countStammkundePoolList(StammkundePoolReportQueryDTO dto){
return Optional.ofNullable(getBaseMapper().countStammkundePoolList(dto)).orElse(Collections.emptyList());
}
}