Browse Source

add event

张延森 5 years ago
parent
commit
d11b898f20

+ 36
- 7
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

@@ -67,17 +67,17 @@ public class CommConstant {
67 67
     /**
68 68
      * 签到
69 69
      */
70
-    public final static String POINTS_CHECKIN = "checkin";
70
+    public final static String POINTS_CHANGE_CHECKIN = "checkin";
71 71
     
72 72
     /**
73 73
      * 分享
74 74
      */
75
-    public final static String POINTS_SHARE = "share";
75
+    public final static String POINTS_CHANGE_SHARE_POSTER = "share-poster";
76 76
     
77 77
     /**
78
-     * 授权
78
+     * 注册经纪人
79 79
      */
80
-    public final static String POINTS_AUTHORIZE = "authorize";
80
+    public final static String POINTS_CHANGE_SIGNUP_AGENT = "signup-agent";
81 81
 
82 82
 
83 83
     /**
@@ -103,17 +103,17 @@ public class CommConstant {
103 103
     /**
104 104
      * 活动的当前状态1:进行中
105 105
      */
106
-    public static final Integer ACTIVITY_CONDITION_ONE = 1;
106
+    public static final Integer ACTIVITY_CONDITION_PROCESSING = 1;
107 107
 
108 108
     /**
109 109
      * 活动的当前状态2:未开始
110 110
      */
111
-    public static final Integer ACTIVITY_CONDITION_TWO = 2;
111
+    public static final Integer ACTIVITY_CONDITION_PREPARE = 2;
112 112
 
113 113
     /**
114 114
      * 活动的当前状态3:结束
115 115
      */
116
-    public static final Integer ACTIVITY_CONDITION_ONE_THREE = 3;
116
+    public static final Integer ACTIVITY_CONDITION_FINISH = 3;
117 117
 
118 118
     //=================  首屏广告 / 轮播图 start =======================
119 119
 
@@ -205,4 +205,33 @@ public class CommConstant {
205 205
     public static final String ENTRY_VERIFY = "verify";
206 206
     //=================  客户入口类型 end =======================
207 207
 
208
+    /**
209
+     * 积分规则开启
210
+     */
211
+    public static final Integer POINTS_RULE_ON = 1;
212
+
213
+    /**
214
+     * 积分规则关闭
215
+     */
216
+    public static final Integer POINTS_RULE_OFF = 0;
217
+
218
+    /**
219
+     * 签到积分规则
220
+     */
221
+    public static final Integer POINTS_RULE_CHECKIN = 1;
222
+
223
+    /**
224
+     * 分享海报积分规则
225
+     */
226
+    public static final Integer POINTS_RULE_SHARE_POSTER = 2;
227
+
228
+    /**
229
+     * 推荐客户积分规则
230
+     */
231
+    public static final Integer POINTS_RULE_RECOMMENDER_CUSTOMER = 3;
232
+
233
+    /**
234
+     * 注册经纪人积分规则
235
+     */
236
+    public static final Integer POINTS_RULE_SIGNUP_AGENT = 4;
208 237
 }

+ 14
- 0
src/main/java/com/huiju/estateagents/controller/TaShareController.java View File

@@ -38,4 +38,18 @@ public class TaShareController extends BaseController {
38 38
 
39 39
         return taShareService.getListOf(id, typeOf, pageNumber, pageSize);
40 40
     }
41
+
42
+    /**
43
+     * 确认分享, 送积分
44
+     * @param typeOf
45
+     * @param id
46
+     * @param request
47
+     * @return
48
+     */
49
+    @PutMapping("/wx/{typeOf}/share/{id}")
50
+    public ResponseBean makeSure(@PathVariable String typeOf, @PathVariable String id, HttpServletRequest request) {
51
+        String openid = JWTUtils.getSubject(request);
52
+        taShareService.makeSure(openid, typeOf, id);
53
+        return ResponseBean.success("");
54
+    }
41 55
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonSign.java View File

@@ -1,6 +1,7 @@
1 1
 package com.huiju.estateagents.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4 5
 import com.baomidou.mybatisplus.annotation.TableId;
5 6
 import java.time.LocalDateTime;
6 7
 import java.io.Serializable;
@@ -44,4 +45,7 @@ public class TaPersonSign implements Serializable {
44 45
      */
45 46
     private Integer durationDays;
46 47
 
48
+    @TableField(exist = false)
49
+    private TaPerson person;
50
+
47 51
 }

+ 6
- 1
src/main/java/com/huiju/estateagents/entity/TaShare.java View File

@@ -1,6 +1,7 @@
1 1
 package com.huiju.estateagents.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4 5
 import com.baomidou.mybatisplus.annotation.TableId;
5 6
 import lombok.Data;
6 7
 import lombok.EqualsAndHashCode;
@@ -60,5 +61,9 @@ public class TaShare implements Serializable {
60 61
      */
61 62
     private LocalDateTime createDate;
62 63
 
63
-
64
+    /**
65
+     * 分享打开人
66
+     */
67
+    @TableField(exist = false)
68
+    private TaPerson openUser;
64 69
 }

+ 43
- 0
src/main/java/com/huiju/estateagents/event/EventBus.java View File

@@ -0,0 +1,43 @@
1
+package com.huiju.estateagents.event;
2
+
3
+import lombok.Data;
4
+import org.springframework.context.ApplicationEvent;
5
+
6
+/**
7
+ * 积分自定义积分事件
8
+ * @author FXF
9
+ * @date 2019-07-30
10
+ */
11
+@Data
12
+public class EventBus extends ApplicationEvent {
13
+	EventType type;
14
+	
15
+	public EventBus(Object source, EventType type) {
16
+		super(source);
17
+		this.type = type;
18
+	}
19
+
20
+	public enum EventType {
21
+		// 分享海报
22
+		SharePoster(1),
23
+
24
+		// 签到
25
+		DailyCheckin(2),
26
+
27
+		// 推荐客户
28
+		RecommendCustomer(3),
29
+
30
+		// 注册经纪人
31
+		SignUpAgent(4);
32
+
33
+		private Integer type;
34
+
35
+		EventType(Integer type) {
36
+			this.type = type;
37
+		}
38
+
39
+		public Integer toInt() {
40
+			return type;
41
+		}
42
+	}
43
+}

+ 57
- 0
src/main/java/com/huiju/estateagents/event/EventLisenter.java View File

@@ -0,0 +1,57 @@
1
+package com.huiju.estateagents.event;
2
+
3
+import com.huiju.estateagents.entity.TaPerson;
4
+import com.huiju.estateagents.entity.TaPersonSign;
5
+import com.huiju.estateagents.entity.TaShare;
6
+import com.huiju.estateagents.service.ITaPointsRecordsService;
7
+import lombok.extern.slf4j.Slf4j;
8
+import org.springframework.beans.factory.annotation.Autowired;
9
+import org.springframework.context.event.EventListener;
10
+import org.springframework.stereotype.Component;
11
+
12
+/**
13
+ * @author FXF
14
+ * @date 2019-07-30
15
+ */
16
+
17
+@Component
18
+@Slf4j
19
+public class EventLisenter {
20
+	
21
+	@Autowired
22
+	private ITaPointsRecordsService taPointsRecordsService;
23
+
24
+	/**
25
+	 * 获取积分
26
+	 * @param event
27
+	 */
28
+	@EventListener
29
+	public void handler(EventBus event) {
30
+		switch (event.getType()) {
31
+			case SharePoster:
32
+				getSharePoints((TaShare) event.getSource());
33
+				break;
34
+			case DailyCheckin:
35
+				getCheckinPoints((TaPersonSign) event.getSource());
36
+				break;
37
+			case RecommendCustomer:
38
+				break;
39
+			case SignUpAgent:
40
+				getSignUpPoints((TaPerson) event.getSource());
41
+				break;
42
+			default:
43
+				break;
44
+		}
45
+	}
46
+
47
+	// 分享赚积分
48
+	private void getSharePoints(TaShare taShare) {
49
+		taPointsRecordsService.sharePoints(taShare);
50
+	}
51
+
52
+	// 签到赚积分
53
+	private void getCheckinPoints(TaPersonSign taPersonSign) { taPointsRecordsService.checkinPoints(taPersonSign); }
54
+
55
+	// 注册送积分
56
+	private void getSignUpPoints(TaPerson taPerson) { taPointsRecordsService.signUpPoints(taPerson);}
57
+}

+ 0
- 21
src/main/java/com/huiju/estateagents/event/PointsEvent.java View File

@@ -1,21 +0,0 @@
1
-package com.huiju.estateagents.event;
2
-
3
-import lombok.Data;
4
-import org.springframework.context.ApplicationEvent;
5
-
6
-/**
7
- * 积分自定义积分事件
8
- * @author FXF
9
- * @date 2019-07-30
10
- */
11
-@Data
12
-public class PointsEvent extends ApplicationEvent {
13
-	String type = "";
14
-	
15
-	public PointsEvent(Object source,String type) {
16
-		super(source);
17
-		this.type = type;
18
-	}
19
-	
20
-	
21
-}

+ 0
- 37
src/main/java/com/huiju/estateagents/lisenter/PointsLisenter.java View File

@@ -1,37 +0,0 @@
1
-package com.huiju.estateagents.lisenter;
2
-
3
-import com.huiju.estateagents.common.CommConstant;
4
-import com.huiju.estateagents.event.PointsEvent;
5
-import com.huiju.estateagents.service.ITaPointsRecordsService;
6
-import lombok.extern.slf4j.Slf4j;
7
-import org.springframework.beans.factory.annotation.Autowired;
8
-import org.springframework.context.event.EventListener;
9
-import org.springframework.stereotype.Component;
10
-
11
-/**
12
- * @author FXF
13
- * @date 2019-07-30
14
- */
15
-
16
-@Component
17
-@Slf4j
18
-public class PointsLisenter {
19
-	
20
-	@Autowired
21
-	private ITaPointsRecordsService taPointsRecordsService;
22
-	/**
23
-	 * 获取积分
24
-	 * @param event
25
-	 */
26
-	@EventListener
27
-	public void earnPoints(PointsEvent event) {
28
-		log.info("======发放积分======");
29
-		if (CommConstant.POINTS_SHARE.equals(event.getType())){
30
-				taPointsRecordsService.sharePoints(event.getSource().toString());
31
-		}else if (CommConstant.POINTS_AUTHORIZE.equals(event.getType())){
32
-			taPointsRecordsService.authPoints(event.getSource().toString());
33
-		}
34
-		
35
-		
36
-	}
37
-}

+ 10
- 5
src/main/java/com/huiju/estateagents/service/ITaPointsRecordsService.java View File

@@ -1,8 +1,10 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.TaPerson;
5
+import com.huiju.estateagents.entity.TaPersonSign;
4 6
 import com.huiju.estateagents.entity.TaPointsRecords;
5
-import com.huiju.estateagents.event.PointsEvent;
7
+import com.huiju.estateagents.entity.TaShare;
6 8
 
7 9
 /**
8 10
  * <p>
@@ -13,8 +15,11 @@ import com.huiju.estateagents.event.PointsEvent;
13 15
  * @since 2019-07-25
14 16
  */
15 17
 public interface ITaPointsRecordsService extends IService<TaPointsRecords> {
16
-	
17
-	void sharePoints(String personId);
18
-	
19
-	void authPoints(String personId);
18
+
19
+	void sharePoints(TaShare taShare);
20
+
21
+	void checkinPoints(TaPersonSign taPersonSign);
22
+
23
+	void signUpPoints(TaPerson taPerson);
24
+
20 25
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaShareService.java View File

@@ -17,4 +17,6 @@ public interface ITaShareService extends IService<TaShare> {
17 17
     ResponseBean saveData(String openid, String typeOf, String id);
18 18
 
19 19
     ResponseBean getListOf(String id, String typeOf, Integer pageNumber, Integer pageSize);
20
+
21
+    void makeSure(String openid, String typeOf, String id);
20 22
 }

+ 3
- 3
src/main/java/com/huiju/estateagents/service/impl/TaBuildingDynamicServiceImpl.java View File

@@ -266,15 +266,15 @@ public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicM
266 266
         Long enlistStart = taBuildingDynamic.getEnlistStart().toInstant(ZoneOffset.of("+8")).toEpochMilli();
267 267
         // (1:进行中)当前时间小于报名截止时间,并且报名状态为1
268 268
         if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistEnd ) {
269
-            taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_ONE);
269
+            taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_PROCESSING);
270 270
         }
271 271
         //(2:未开始)当前时间是否小于报名时间,并且报名状态为1
272 272
         if (!"1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistStart){
273
-            taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_TWO);
273
+            taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_PREPARE);
274 274
         }
275 275
         //(3:结束)当前时间大于报名结束时间,并且报名状态为1
276 276
         if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime >= enlistEnd){
277
-            taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_ONE_THREE);
277
+            taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_FINISH);
278 278
         }
279 279
         return taBuildingDynamic;
280 280
     }

+ 6
- 36
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java View File

@@ -12,12 +12,11 @@ import com.huiju.estateagents.common.DateUtils;
12 12
 import com.huiju.estateagents.common.MD5Utils;
13 13
 import com.huiju.estateagents.common.StringUtils;
14 14
 import com.huiju.estateagents.entity.*;
15
-import com.huiju.estateagents.event.PointsEvent;
15
+import com.huiju.estateagents.event.EventBus;
16 16
 import com.huiju.estateagents.mapper.*;
17 17
 import com.huiju.estateagents.service.ITaPersonService;
18 18
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
19 19
 import com.huiju.estateagents.service.ITaRecommendCustomerService;
20
-import org.apache.commons.collections.map.HashedMap;
21 20
 import org.springframework.beans.factory.annotation.Autowired;
22 21
 import org.springframework.context.ApplicationContext;
23 22
 import org.springframework.stereotype.Service;
@@ -153,8 +152,8 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
153 152
 
154 153
         iTaRecommendCustomerService.newByPerson(person);
155 154
         
156
-        //发放积分(成为经纪人ID 是4)
157
-        applicationContext.publishEvent(new PointsEvent(person.getPersonId(),CommConstant.POINTS_AUTHORIZE));
155
+        // 发放积分
156
+        applicationContext.publishEvent(new EventBus(person, EventBus.EventType.SignUpAgent));
158 157
         
159 158
         return person;
160 159
     }
@@ -350,39 +349,10 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
350 349
             return ResponseBean.error("签到失败", ResponseBean.ERROR_UNAVAILABLE);
351 350
         }
352 351
 
353
-        // 增加积分
354
-        // 1-7 天积分 1-7, 超过7天按 7 个积分算
355
-        int points = durationDays >= 7 ? 7 : durationDays;
356
-        //签到获取积分
357
-        //TdPointsRules tdPointsRules = tdPointsRulesMapper.selectById(1);
358
-        //int points = tdPointsRules.getPointsAmount();
359
-        UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
360
-        wrapper.eq("person_id", taPerson.getPersonId());
361
-        wrapper.setSql("points = IFNULL(points, 0) + " + String.valueOf(points));
362
-//        wrapper.set("points", "points + " + String.valueOf(points));
363
-        taPersonMapper.update(new TaPerson(), wrapper);
364
-        
365
-        //插入积分消费流水表
366
-        TaPointsRecords taPointsRecords = new TaPointsRecords();
367
-        taPointsRecords.setPersonId(taPerson.getPersonId());
368
-        taPointsRecords.setPersonName(StringUtils.ifNull(taPerson.getName(),taPerson.getNickname()));
369
-        taPointsRecords.setPersonType(taPerson.getPersonType());
370
-        taPointsRecords.setPointsAmount(points);
371
-        taPointsRecords.setChangeType(CommConstant.POINTS_CHECKIN);
372
-        JSONObject jsonObject = new JSONObject();
373
-        jsonObject.put("person_id",taPerson.getPersonId());
374
-        taPointsRecords.setChangeParams(jsonObject.toJSONString());
375
-        taPointsRecords.setCreateDate(LocalDateTime.now());
376
-        taPointsRecords.setStatus(CommConstant.STATUS_NORMAL);
377
-        taPointsRecordsMapper.insert(taPointsRecords);
378
-
379
-        Map<String, Object> result = new HashMap<>();
380
-
381
-        Integer oldPoints = taPerson.getPoints();
382
-        if (null == oldPoints) oldPoints = 0;
352
+        sign.setPerson(taPerson);
353
+        applicationContext.publishEvent(new EventBus(sign, EventBus.EventType.DailyCheckin));
383 354
 
384
-        result.put("integral", oldPoints + points);
385
-        return ResponseBean.success(result, "签到成功");
355
+        return ResponseBean.success("success");
386 356
     }
387 357
 
388 358
     @Override

+ 149
- 20
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java View File

@@ -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
 		//发放积分

+ 42
- 16
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java View File

@@ -1,17 +1,14 @@
1 1
 package com.huiju.estateagents.service.impl;
2 2
 
3
-import com.alibaba.fastjson.JSONObject;
4 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
6 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
7 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9
-import com.google.common.collect.Maps;
10 7
 import com.huiju.estateagents.base.ResponseBean;
11 8
 import com.huiju.estateagents.common.CommConstant;
12 9
 import com.huiju.estateagents.common.StringUtils;
13 10
 import com.huiju.estateagents.entity.*;
14
-import com.huiju.estateagents.event.PointsEvent;
11
+import com.huiju.estateagents.event.EventBus;
15 12
 import com.huiju.estateagents.mapper.*;
16 13
 import com.huiju.estateagents.service.ITaShareService;
17 14
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,9 +17,7 @@ import org.springframework.stereotype.Service;
20 17
 
21 18
 import javax.annotation.Resource;
22 19
 import java.time.LocalDateTime;
23
-import java.util.HashMap;
24 20
 import java.util.List;
25
-import java.util.Map;
26 21
 
27 22
 /**
28 23
  * <p>
@@ -39,12 +34,6 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
39 34
 
40 35
     @Autowired
41 36
     TaShareMapper taShareMapper;
42
-    
43
-    @Autowired
44
-    private TdPointsRulesMapper tdPointsRulesMapper;
45
-    
46
-    @Autowired
47
-    private TaPointsRecordsMapper taPointsRecordsMapper;
48 37
 
49 38
     @Autowired
50 39
     private TaBuildingMapper taBuildingMapper;
@@ -103,10 +92,6 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
103 92
             taBuildingMapper.setFieldNum(id, "share_num", 1);
104 93
         }
105 94
 
106
-        //发放分享积分
107
-        if (typeOf.equals(CommConstant.FAVOR_PROJECT)){
108
-            applicationContext.publishEvent(new PointsEvent(taPerson.getPersonId(),CommConstant.POINTS_SHARE));
109
-        }
110 95
         return ResponseBean.success("");
111 96
     }
112 97
 
@@ -122,6 +107,47 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
122 107
         return ResponseBean.success(result);
123 108
     }
124 109
 
110
+    @Override
111
+    public void makeSure(String openid, String typeOf, String id) {
112
+        // 查找分享记录
113
+        TaShare taShare = taShareMapper.selectById(id);
114
+        if (null == taShare) {
115
+            return;
116
+        }
117
+
118
+        // 记录分享人
119
+        TaPerson shareUsr = taPersonMapper.getById(taShare.getPersonId());
120
+        if (null == shareUsr) {
121
+            return;
122
+        }
123
+
124
+        // 如果分享人没有授权手机号
125
+        if (StringUtils.isEmpty(shareUsr.getPhone()) && StringUtils.isEmpty(shareUsr.getTel())) {
126
+            return;
127
+        }
128
+
129
+        // 查找打开人
130
+        List<TaPerson> persons = taPersonMapper.getPersonByOpenId(openid);
131
+        if (null == persons || persons.size() == 0) {
132
+            return;
133
+        }
134
+        TaPerson openUsr = persons.get(0);
135
+
136
+        // 如果打开人员与分享人员是同一个人
137
+        // 此处通过 personId 来判断,其实并不准确
138
+        // todo
139
+        if (openUsr.getPersonId().equals(shareUsr.getPersonId())) {
140
+            return;
141
+        }
142
+
143
+        taShare.setOpenUser(openUsr);
144
+
145
+        // 赠送积分
146
+        // 发放分享积分
147
+        if (typeOf.equals(CommConstant.FAVOR_PROJECT)){
148
+            applicationContext.publishEvent(new EventBus(taShare, EventBus.EventType.SharePoster));
149
+        }
150
+    }
125 151
 
126 152
     List<TaPerson> getPersonsByOpenId(String openid) {
127 153
         return taPersonMapper.getPersonByOpenId(openid);