|
@@ -5,19 +5,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
5
|
5
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
6
|
6
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
7
|
7
|
import com.huiju.estateagents.common.CommConstant;
|
8
|
|
-import com.huiju.estateagents.entity.TaPerson;
|
9
|
|
-import com.huiju.estateagents.entity.TaPointsRecords;
|
10
|
|
-import com.huiju.estateagents.entity.TdPointsRules;
|
11
|
|
-import com.huiju.estateagents.event.PointsEvent;
|
|
8
|
+import com.huiju.estateagents.common.DateUtils;
|
|
9
|
+import com.huiju.estateagents.common.StringUtils;
|
|
10
|
+import com.huiju.estateagents.entity.*;
|
12
|
11
|
import com.huiju.estateagents.mapper.TaPersonMapper;
|
13
|
12
|
import com.huiju.estateagents.mapper.TaPointsRecordsMapper;
|
14
|
13
|
import com.huiju.estateagents.mapper.TdPointsRulesMapper;
|
15
|
14
|
import com.huiju.estateagents.service.ITaPointsRecordsService;
|
16
|
|
-import org.apache.commons.collections.map.HashedMap;
|
17
|
15
|
import org.springframework.beans.factory.annotation.Autowired;
|
18
|
16
|
import org.springframework.stereotype.Service;
|
19
|
17
|
|
20
|
18
|
import java.time.LocalDateTime;
|
|
19
|
+import java.util.ArrayList;
|
|
20
|
+import java.util.HashMap;
|
21
|
21
|
import java.util.List;
|
22
|
22
|
import java.util.Map;
|
23
|
23
|
|
|
@@ -39,26 +39,155 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
|
39
|
39
|
|
40
|
40
|
@Autowired
|
41
|
41
|
private TaPointsRecordsMapper taPointsRecordsMapper;
|
42
|
|
-
|
|
42
|
+
|
|
43
|
+ /**
|
|
44
|
+ * 获取规则积分, 0 代表未启用
|
|
45
|
+ * @param ruleId
|
|
46
|
+ * @return
|
|
47
|
+ */
|
|
48
|
+ private Integer getRulePoints(Integer ruleId) {
|
|
49
|
+ TdPointsRules rule = tdPointsRulesMapper.selectById(ruleId);
|
|
50
|
+ if (null == rule) {
|
|
51
|
+ return 0;
|
|
52
|
+ }
|
|
53
|
+
|
|
54
|
+ Integer status = rule.getStatus();
|
|
55
|
+ return null != status && status.equals(CommConstant.POINTS_RULE_ON) ? rule.getPointsAmount() : 0;
|
|
56
|
+ }
|
|
57
|
+
|
|
58
|
+ private boolean isPointsRecordsExist(String personId, String changeType, String changeParams) {
|
|
59
|
+ QueryWrapper<TaPointsRecords> query = new QueryWrapper<>();
|
|
60
|
+ query.eq("person_id", personId)
|
|
61
|
+ .eq("change_type", changeType)
|
|
62
|
+ .like(!StringUtils.isEmpty(changeParams), "change_params", changeParams)
|
|
63
|
+ .eq("status", CommConstant.STATUS_NORMAL);
|
|
64
|
+
|
|
65
|
+ Integer count = taPointsRecordsMapper.selectCount(query);
|
|
66
|
+ return null != count && count > 0;
|
|
67
|
+ }
|
|
68
|
+
|
43
|
69
|
@Override
|
44
|
|
- public void sharePoints(String personId) {
|
45
|
|
- TaPerson person = taPersonMapper.selectById(personId);
|
46
|
|
- sendPoints(person,2,CommConstant.POINTS_SHARE);
|
|
70
|
+ public void sharePoints(TaShare taShare) {
|
|
71
|
+ // 是否开启积分规则
|
|
72
|
+ Integer pointsAmount = getRulePoints(CommConstant.POINTS_RULE_SHARE_POSTER);
|
|
73
|
+ if (pointsAmount == 0) {
|
|
74
|
+ return;
|
|
75
|
+ }
|
|
76
|
+
|
|
77
|
+ //
|
|
78
|
+ String changeType = CommConstant.POINTS_CHANGE_SHARE_POSTER;
|
|
79
|
+
|
|
80
|
+ // 已经领取过的不会再次领取
|
|
81
|
+ String[] params = {
|
|
82
|
+ "shareId="+String.valueOf(taShare.getShareId()),
|
|
83
|
+ "openUser="+taShare.getOpenUser().getPersonId()
|
|
84
|
+ };
|
|
85
|
+ String changeParams = String.join("&", params);
|
|
86
|
+ boolean hasJoined = isPointsRecordsExist(taShare.getPersonId(), changeType, changeParams);
|
|
87
|
+ if (hasJoined) {
|
|
88
|
+ return;
|
|
89
|
+ }
|
|
90
|
+
|
|
91
|
+ // 发放积分
|
|
92
|
+ TaPerson person = taPersonMapper.selectById(taShare.getPersonId());
|
|
93
|
+ if (savePoints(person, changeType, changeParams, pointsAmount)) {
|
|
94
|
+ taPersonMapper.setFieldIncrement(person.getPersonId(), "points", pointsAmount);
|
|
95
|
+ }
|
47
|
96
|
}
|
48
|
|
-
|
|
97
|
+
|
|
98
|
+ @Override
|
|
99
|
+ public void checkinPoints(TaPersonSign taPersonSign) {
|
|
100
|
+ // 是否开启积分规则
|
|
101
|
+ Integer pointsAmount = getRulePoints(CommConstant.POINTS_RULE_CHECKIN);
|
|
102
|
+ if (pointsAmount == 0) {
|
|
103
|
+ return;
|
|
104
|
+ }
|
|
105
|
+
|
|
106
|
+ //
|
|
107
|
+ String changeType = CommConstant.POINTS_CHANGE_CHECKIN;
|
|
108
|
+
|
|
109
|
+ // 已经领取过的不会再次领取
|
|
110
|
+ List<String> params = new ArrayList<String>() {{
|
|
111
|
+ add("date="+DateUtils.today());
|
|
112
|
+ add("user="+taPersonSign.getPerson().getPersonId());
|
|
113
|
+ }};
|
|
114
|
+ String changeParams = String.join("&", params);
|
|
115
|
+ boolean hasJoined = isPointsRecordsExist(taPersonSign.getPerson().getPersonId(), changeType, changeParams);
|
|
116
|
+ if (hasJoined) {
|
|
117
|
+ return;
|
|
118
|
+ }
|
|
119
|
+
|
|
120
|
+ // 添加参数
|
|
121
|
+ params.add("recId="+taPersonSign.getRecId());
|
|
122
|
+ changeParams = String.join("&", params);
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+ // 增加积分
|
|
126
|
+ // 1-7 天积分 1-7, 超过7天按 7 个积分算
|
|
127
|
+// Integer durationDays = taPersonSign.getDurationDays();
|
|
128
|
+// int points = durationDays >= 7 ? 7 : durationDays;
|
|
129
|
+
|
|
130
|
+ // 发放积分
|
|
131
|
+ TaPerson person = taPersonMapper.selectById(taPersonSign.getPersonId());
|
|
132
|
+ if (savePoints(person, changeType, changeParams, pointsAmount)) {
|
|
133
|
+ taPersonMapper.setFieldIncrement(person.getPersonId(), "points", pointsAmount);
|
|
134
|
+ }
|
|
135
|
+ }
|
|
136
|
+
|
49
|
137
|
@Override
|
50
|
|
- public void authPoints(String personId) {
|
51
|
|
- //查看是否领取过授权积分
|
52
|
|
- QueryWrapper<TaPointsRecords> taPointsRecordsQueryWrapper = new QueryWrapper<>();
|
53
|
|
- taPointsRecordsQueryWrapper.eq("person_id", personId);
|
54
|
|
- taPointsRecordsQueryWrapper.eq("change_type",CommConstant.POINTS_AUTHORIZE);
|
55
|
|
-
|
56
|
|
- List<TaPointsRecords> taPointsRecordsList = taPointsRecordsMapper.selectList(taPointsRecordsQueryWrapper);
|
57
|
|
- if (taPointsRecordsList.size() < 1){
|
58
|
|
- TaPerson person = taPersonMapper.selectById(personId);
|
59
|
|
- sendPoints(person,4,CommConstant.POINTS_AUTHORIZE);
|
|
138
|
+ public void signUpPoints(TaPerson taPerson) {
|
|
139
|
+ // 是否开启积分规则
|
|
140
|
+ Integer pointsAmount = getRulePoints(CommConstant.POINTS_RULE_SIGNUP_AGENT);
|
|
141
|
+ if (pointsAmount == 0) {
|
|
142
|
+ return;
|
|
143
|
+ }
|
|
144
|
+
|
|
145
|
+ //
|
|
146
|
+ String changeType = CommConstant.POINTS_CHANGE_SIGNUP_AGENT;
|
|
147
|
+
|
|
148
|
+ // 已经领取过的不会再次领取
|
|
149
|
+ List<String> params = new ArrayList<String>() {{
|
|
150
|
+ add("user="+taPerson.getPersonId());
|
|
151
|
+ }};
|
|
152
|
+ String changeParams = String.join("&", params);
|
|
153
|
+ boolean hasJoined = isPointsRecordsExist(taPerson.getPersonId(), changeType, changeParams);
|
|
154
|
+ if (hasJoined) {
|
|
155
|
+ return;
|
|
156
|
+ }
|
|
157
|
+
|
|
158
|
+ // 发放积分
|
|
159
|
+ if (savePoints(taPerson, changeType, changeParams, pointsAmount)) {
|
|
160
|
+ taPersonMapper.setFieldIncrement(taPerson.getPersonId(), "points", pointsAmount);
|
60
|
161
|
}
|
61
|
162
|
}
|
|
163
|
+
|
|
164
|
+ private boolean savePoints(TaPerson person, String changeType, String changeParams, Integer pointsAmount) {
|
|
165
|
+ TaPointsRecords taPointsRecords = new TaPointsRecords();
|
|
166
|
+ taPointsRecords.setPersonId(person.getPersonId());
|
|
167
|
+ taPointsRecords.setPersonName(StringUtils.ifNull(person.getName(),person.getNickname()));
|
|
168
|
+ taPointsRecords.setPersonType(person.getPersonType());
|
|
169
|
+ taPointsRecords.setPointsAmount(pointsAmount);
|
|
170
|
+ taPointsRecords.setChangeType(changeType);
|
|
171
|
+ taPointsRecords.setChangeParams(changeParams);
|
|
172
|
+ taPointsRecords.setStatus(CommConstant.STATUS_NORMAL);
|
|
173
|
+ taPointsRecords.setCreateDate(LocalDateTime.now());
|
|
174
|
+
|
|
175
|
+ return taPointsRecordsMapper.insert(taPointsRecords) > 0;
|
|
176
|
+ }
|
|
177
|
+
|
|
178
|
+// @Override
|
|
179
|
+// public void authPoints(String personId) {
|
|
180
|
+// //查看是否领取过授权积分
|
|
181
|
+// QueryWrapper<TaPointsRecords> taPointsRecordsQueryWrapper = new QueryWrapper<>();
|
|
182
|
+// taPointsRecordsQueryWrapper.eq("person_id", personId);
|
|
183
|
+// taPointsRecordsQueryWrapper.eq("change_type",CommConstant.POINTS_AUTHORIZE);
|
|
184
|
+//
|
|
185
|
+// List<TaPointsRecords> taPointsRecordsList = taPointsRecordsMapper.selectList(taPointsRecordsQueryWrapper);
|
|
186
|
+// if (taPointsRecordsList.size() < 1){
|
|
187
|
+// TaPerson person = taPersonMapper.selectById(personId);
|
|
188
|
+// sendPoints(person,4,CommConstant.POINTS_AUTHORIZE);
|
|
189
|
+// }
|
|
190
|
+// }
|
62
|
191
|
|
63
|
192
|
private void sendPoints(TaPerson person,Integer rulesId,String shareType) {
|
64
|
193
|
//发放积分
|