张延森 5 gadus atpakaļ
vecāks
revīzija
f49d7ffe1e

+ 5
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Parādīt failu

@@ -79,6 +79,11 @@ public class CommConstant {
79 79
      */
80 80
     public final static String POINTS_CHANGE_SIGNUP_AGENT = "signup-agent";
81 81
 
82
+    /**
83
+     * 推荐客户
84
+     */
85
+    public final static String POINTS_CHANGE_RECOMMEND_CUSTOMER = "recommend-customer";
86
+
82 87
 
83 88
     /**
84 89
      * 小程序默认首页

+ 15
- 0
src/main/java/com/huiju/estateagents/controller/MiniAppController.java Parādīt failu

@@ -86,6 +86,21 @@ public class MiniAppController {
86 86
         }
87 87
     }
88 88
 
89
+    /**
90
+     * 登陆接口
91
+     */
92
+    @PostMapping("/logout")
93
+    public ResponseBean logout(HttpServletRequest request) {
94
+        String openid = JWTUtils.getSubject(request);
95
+        List<TaPerson> persons = taPersonService.getPersonsByOpenId(openid);
96
+        if (null == persons || persons.size() == 0) {
97
+            return ResponseBean.success("");
98
+        }
99
+
100
+        return ResponseBean.success("");
101
+    }
102
+
103
+
89 104
     /**
90 105
      * 获取用户信息, 并写入内部人员表
91 106
      */

+ 17
- 0
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java Parādīt failu

@@ -6,13 +6,16 @@ import com.huiju.estateagents.common.CommConstant;
6 6
 import com.huiju.estateagents.common.JWTUtils;
7 7
 import com.huiju.estateagents.entity.TaPerson;
8 8
 import com.huiju.estateagents.entity.TaRecommendCustomer;
9
+import com.huiju.estateagents.event.EventBus;
9 10
 import com.huiju.estateagents.service.ITaPersonService;
10 11
 import com.huiju.estateagents.service.ITaRecommendCustomerService;
11 12
 import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.context.ApplicationContext;
12 14
 import org.springframework.web.bind.annotation.*;
13 15
 
14 16
 import com.huiju.estateagents.base.BaseController;
15 17
 
18
+import javax.annotation.Resource;
16 19
 import javax.servlet.http.HttpServletRequest;
17 20
 import java.util.List;
18 21
 
@@ -30,9 +33,13 @@ public class TaRecommendCustomerController extends BaseController {
30 33
 
31 34
     @Autowired
32 35
     ITaRecommendCustomerService taRecommendCustomerService;
36
+
33 37
     @Autowired
34 38
     ITaPersonService taPersonService;
35 39
 
40
+    @Resource
41
+    private ApplicationContext applicationContext;
42
+
36 43
     /**
37 44
      * 我的客户列表
38 45
      * @param pageNumber
@@ -236,6 +243,10 @@ public class TaRecommendCustomerController extends BaseController {
236 243
      */
237 244
     @RequestMapping(value="/admin/customer/recommend/verify/{id}",method= RequestMethod.PUT)
238 245
     public ResponseBean taRecommendCustomerVerify(@PathVariable String id,@RequestParam Integer verifyStatus, @RequestParam String verifyRemark){
246
+        if (null == verifyStatus) {
247
+            return ResponseBean.error("审核结果非法", ResponseBean.ERROR_ILLEGAL_PARAMS);
248
+        }
249
+
239 250
         ResponseBean responseBean = new ResponseBean();
240 251
         try {
241 252
             TaRecommendCustomer taRecommendCustomer = taRecommendCustomerService.getById(id);
@@ -243,6 +254,12 @@ public class TaRecommendCustomerController extends BaseController {
243 254
                 taRecommendCustomer.setVerifyStatus(verifyStatus);
244 255
                 taRecommendCustomer.setVerifyRemark(verifyRemark);
245 256
                 if (taRecommendCustomerService.updateById(taRecommendCustomer)){
257
+
258
+                    // 审核通过增加积分
259
+                    if (CommConstant.VERIFY_AGREE == verifyStatus) {
260
+                        applicationContext.publishEvent(new EventBus(taRecommendCustomer, EventBus.EventType.RecommendCustomer));
261
+                    }
262
+
246 263
                     responseBean.addSuccess(taRecommendCustomer);
247 264
                 }else {
248 265
                     responseBean.addError("fail");

+ 6
- 1
src/main/java/com/huiju/estateagents/entity/TaGoods.java Parādīt failu

@@ -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;
@@ -106,5 +107,9 @@ public class TaGoods implements Serializable {
106 107
      */
107 108
     private String address;
108 109
 
109
-
110
+    /**
111
+     * 兑换人
112
+     */
113
+    @TableField(exist = false)
114
+    private TaPerson exchanger;
110 115
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/event/EventLisenter.java Parādīt failu

@@ -2,6 +2,7 @@ package com.huiju.estateagents.event;
2 2
 
3 3
 import com.huiju.estateagents.entity.TaPerson;
4 4
 import com.huiju.estateagents.entity.TaPersonSign;
5
+import com.huiju.estateagents.entity.TaRecommendCustomer;
5 6
 import com.huiju.estateagents.entity.TaShare;
6 7
 import com.huiju.estateagents.service.ITaPointsRecordsService;
7 8
 import lombok.extern.slf4j.Slf4j;
@@ -35,6 +36,7 @@ public class EventLisenter {
35 36
 				getCheckinPoints((TaPersonSign) event.getSource());
36 37
 				break;
37 38
 			case RecommendCustomer:
39
+				getRecommendCustPoints((TaRecommendCustomer) event.getSource());
38 40
 				break;
39 41
 			case SignUpAgent:
40 42
 				getSignUpPoints((TaPerson) event.getSource());
@@ -54,4 +56,7 @@ public class EventLisenter {
54 56
 
55 57
 	// 注册送积分
56 58
 	private void getSignUpPoints(TaPerson taPerson) { taPointsRecordsService.signUpPoints(taPerson);}
59
+
60
+	// 推荐客户送积分
61
+	private void getRecommendCustPoints(TaRecommendCustomer taRecommendCustomer) { taPointsRecordsService.recommendCustPoints(taRecommendCustomer); }
57 62
 }

+ 4
- 4
src/main/java/com/huiju/estateagents/service/ITaPointsRecordsService.java Parādīt failu

@@ -1,10 +1,7 @@
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;
6
-import com.huiju.estateagents.entity.TaPointsRecords;
7
-import com.huiju.estateagents.entity.TaShare;
4
+import com.huiju.estateagents.entity.*;
8 5
 
9 6
 /**
10 7
  * <p>
@@ -22,4 +19,7 @@ public interface ITaPointsRecordsService extends IService<TaPointsRecords> {
22 19
 
23 20
 	void signUpPoints(TaPerson taPerson);
24 21
 
22
+	void recommendCustPoints(TaRecommendCustomer taRecommendCustomer);
23
+
24
+	void consumeGoodsPoints(TaGoods taGoods);
25 25
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/service/impl/TaGoodsServiceImpl.java Parādīt failu

@@ -71,6 +71,9 @@ public class TaGoodsServiceImpl extends ServiceImpl<TaGoodsMapper, TaGoods> impl
71 71
 		if (taGoods.getTotalNum() < 1){
72 72
 			return "此商品无库存";
73 73
 		}
74
+
75
+		taGoods.setExchanger(taPerson);
76
+
74 77
 		//插入积分消费流水表
75 78
 		insertTaPointRecords(taPerson,taGoods);
76 79
 		//插入积分兑换记录

+ 0
- 6
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Parādīt failu

@@ -59,12 +59,6 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
59 59
 
60 60
     @Autowired
61 61
     TaChatMapper taChatMapper;
62
-    
63
-    @Autowired
64
-    private TdPointsRulesMapper tdPointsRulesMapper;
65
-    
66
-    @Autowired
67
-    private TaPointsRecordsMapper taPointsRecordsMapper;
68 62
 
69 63
     @Autowired
70 64
     private ITaRecommendCustomerService iTaRecommendCustomerService;

+ 63
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java Parādīt failu

@@ -161,6 +161,69 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
161 161
 		}
162 162
 	}
163 163
 
164
+	@Override
165
+	public void recommendCustPoints(TaRecommendCustomer taRecommendCustomer) {
166
+		// 是否开启积分规则
167
+		Integer pointsAmount = getRulePoints(CommConstant.POINTS_RULE_RECOMMENDER_CUSTOMER);
168
+		if (pointsAmount == 0) {
169
+			return;
170
+		}
171
+
172
+		//
173
+		String changeType = CommConstant.POINTS_CHANGE_RECOMMEND_CUSTOMER;
174
+
175
+		// 已经领取过的不会再次领取
176
+		List<String> params = new ArrayList<String>() {{
177
+			// 推荐人
178
+			add("person="+taRecommendCustomer.getPersonId());
179
+			// 推荐客户手机
180
+			add("phone="+taRecommendCustomer.getPhone());
181
+		}};
182
+		String changeParams = String.join("&", params);
183
+		boolean hasJoined = isPointsRecordsExist(taRecommendCustomer.getPersonId(), changeType, changeParams);
184
+		if (hasJoined) {
185
+			return;
186
+		}
187
+
188
+		// 发放积分
189
+		TaPerson taPerson = taPersonMapper.getById(taRecommendCustomer.getPersonId());
190
+		if (savePoints(taPerson, changeType, changeParams, pointsAmount)) {
191
+			taPersonMapper.setFieldIncrement(taPerson.getPersonId(), "points", pointsAmount);
192
+		}
193
+	}
194
+
195
+	@Override
196
+	public void consumeGoodsPoints(TaGoods taGoods) {
197
+		Integer minusPoints = taGoods.getPointPrice();
198
+		if (null == minusPoints || minusPoints <= 0) {
199
+			return;
200
+		}
201
+
202
+		TaPerson taPerson = taGoods.getExchanger();
203
+		Integer origPoints = taPerson.getPoints();
204
+		if (null == origPoints) {
205
+			origPoints = 0;
206
+		}
207
+
208
+		// 积分不足
209
+		if (minusPoints > origPoints) {
210
+			return;
211
+		}
212
+
213
+		String[] params = {
214
+				"person="+taPerson.getPersonId(),
215
+				"goods="+String.valueOf(taGoods.getGoodsId()),
216
+				"points="+String.valueOf(minusPoints)
217
+		};
218
+		String changeParams = String.join("&", params);
219
+
220
+		// 发放积分
221
+		Integer pointsAmount = 0 - minusPoints;
222
+		if (savePoints(taPerson, CommConstant.POINTS_CHANGE_GOODS, changeParams, pointsAmount)) {
223
+			taPersonMapper.setFieldIncrement(taPerson.getPersonId(), "points", pointsAmount);
224
+		}
225
+	}
226
+
164 227
 	private boolean savePoints(TaPerson person, String changeType, String changeParams, Integer pointsAmount) {
165 228
 		TaPointsRecords taPointsRecords = new TaPointsRecords();
166 229
 		taPointsRecords.setPersonId(person.getPersonId());