Browse Source

add events

张延森 5 years ago
parent
commit
f49d7ffe1e

+ 5
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

79
      */
79
      */
80
     public final static String POINTS_CHANGE_SIGNUP_AGENT = "signup-agent";
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 View File

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 View File

6
 import com.huiju.estateagents.common.JWTUtils;
6
 import com.huiju.estateagents.common.JWTUtils;
7
 import com.huiju.estateagents.entity.TaPerson;
7
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaRecommendCustomer;
8
 import com.huiju.estateagents.entity.TaRecommendCustomer;
9
+import com.huiju.estateagents.event.EventBus;
9
 import com.huiju.estateagents.service.ITaPersonService;
10
 import com.huiju.estateagents.service.ITaPersonService;
10
 import com.huiju.estateagents.service.ITaRecommendCustomerService;
11
 import com.huiju.estateagents.service.ITaRecommendCustomerService;
11
 import org.springframework.beans.factory.annotation.Autowired;
12
 import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.context.ApplicationContext;
12
 import org.springframework.web.bind.annotation.*;
14
 import org.springframework.web.bind.annotation.*;
13
 
15
 
14
 import com.huiju.estateagents.base.BaseController;
16
 import com.huiju.estateagents.base.BaseController;
15
 
17
 
18
+import javax.annotation.Resource;
16
 import javax.servlet.http.HttpServletRequest;
19
 import javax.servlet.http.HttpServletRequest;
17
 import java.util.List;
20
 import java.util.List;
18
 
21
 
30
 
33
 
31
     @Autowired
34
     @Autowired
32
     ITaRecommendCustomerService taRecommendCustomerService;
35
     ITaRecommendCustomerService taRecommendCustomerService;
36
+
33
     @Autowired
37
     @Autowired
34
     ITaPersonService taPersonService;
38
     ITaPersonService taPersonService;
35
 
39
 
40
+    @Resource
41
+    private ApplicationContext applicationContext;
42
+
36
     /**
43
     /**
37
      * 我的客户列表
44
      * 我的客户列表
38
      * @param pageNumber
45
      * @param pageNumber
236
      */
243
      */
237
     @RequestMapping(value="/admin/customer/recommend/verify/{id}",method= RequestMethod.PUT)
244
     @RequestMapping(value="/admin/customer/recommend/verify/{id}",method= RequestMethod.PUT)
238
     public ResponseBean taRecommendCustomerVerify(@PathVariable String id,@RequestParam Integer verifyStatus, @RequestParam String verifyRemark){
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
         ResponseBean responseBean = new ResponseBean();
250
         ResponseBean responseBean = new ResponseBean();
240
         try {
251
         try {
241
             TaRecommendCustomer taRecommendCustomer = taRecommendCustomerService.getById(id);
252
             TaRecommendCustomer taRecommendCustomer = taRecommendCustomerService.getById(id);
243
                 taRecommendCustomer.setVerifyStatus(verifyStatus);
254
                 taRecommendCustomer.setVerifyStatus(verifyStatus);
244
                 taRecommendCustomer.setVerifyRemark(verifyRemark);
255
                 taRecommendCustomer.setVerifyRemark(verifyRemark);
245
                 if (taRecommendCustomerService.updateById(taRecommendCustomer)){
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
                     responseBean.addSuccess(taRecommendCustomer);
263
                     responseBean.addSuccess(taRecommendCustomer);
247
                 }else {
264
                 }else {
248
                     responseBean.addError("fail");
265
                     responseBean.addError("fail");

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

1
 package com.huiju.estateagents.entity;
1
 package com.huiju.estateagents.entity;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import lombok.Data;
6
 import lombok.Data;
6
 import lombok.EqualsAndHashCode;
7
 import lombok.EqualsAndHashCode;
106
      */
107
      */
107
     private String address;
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 View File

2
 
2
 
3
 import com.huiju.estateagents.entity.TaPerson;
3
 import com.huiju.estateagents.entity.TaPerson;
4
 import com.huiju.estateagents.entity.TaPersonSign;
4
 import com.huiju.estateagents.entity.TaPersonSign;
5
+import com.huiju.estateagents.entity.TaRecommendCustomer;
5
 import com.huiju.estateagents.entity.TaShare;
6
 import com.huiju.estateagents.entity.TaShare;
6
 import com.huiju.estateagents.service.ITaPointsRecordsService;
7
 import com.huiju.estateagents.service.ITaPointsRecordsService;
7
 import lombok.extern.slf4j.Slf4j;
8
 import lombok.extern.slf4j.Slf4j;
35
 				getCheckinPoints((TaPersonSign) event.getSource());
36
 				getCheckinPoints((TaPersonSign) event.getSource());
36
 				break;
37
 				break;
37
 			case RecommendCustomer:
38
 			case RecommendCustomer:
39
+				getRecommendCustPoints((TaRecommendCustomer) event.getSource());
38
 				break;
40
 				break;
39
 			case SignUpAgent:
41
 			case SignUpAgent:
40
 				getSignUpPoints((TaPerson) event.getSource());
42
 				getSignUpPoints((TaPerson) event.getSource());
54
 
56
 
55
 	// 注册送积分
57
 	// 注册送积分
56
 	private void getSignUpPoints(TaPerson taPerson) { taPointsRecordsService.signUpPoints(taPerson);}
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 View File

1
 package com.huiju.estateagents.service;
1
 package com.huiju.estateagents.service;
2
 
2
 
3
 import com.baomidou.mybatisplus.extension.service.IService;
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
  * <p>
7
  * <p>
22
 
19
 
23
 	void signUpPoints(TaPerson taPerson);
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 View File

71
 		if (taGoods.getTotalNum() < 1){
71
 		if (taGoods.getTotalNum() < 1){
72
 			return "此商品无库存";
72
 			return "此商品无库存";
73
 		}
73
 		}
74
+
75
+		taGoods.setExchanger(taPerson);
76
+
74
 		//插入积分消费流水表
77
 		//插入积分消费流水表
75
 		insertTaPointRecords(taPerson,taGoods);
78
 		insertTaPointRecords(taPerson,taGoods);
76
 		//插入积分兑换记录
79
 		//插入积分兑换记录

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

59
 
59
 
60
     @Autowired
60
     @Autowired
61
     TaChatMapper taChatMapper;
61
     TaChatMapper taChatMapper;
62
-    
63
-    @Autowired
64
-    private TdPointsRulesMapper tdPointsRulesMapper;
65
-    
66
-    @Autowired
67
-    private TaPointsRecordsMapper taPointsRecordsMapper;
68
 
62
 
69
     @Autowired
63
     @Autowired
70
     private ITaRecommendCustomerService iTaRecommendCustomerService;
64
     private ITaRecommendCustomerService iTaRecommendCustomerService;

+ 63
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java View File

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
 	private boolean savePoints(TaPerson person, String changeType, String changeParams, Integer pointsAmount) {
227
 	private boolean savePoints(TaPerson person, String changeType, String changeParams, Integer pointsAmount) {
165
 		TaPointsRecords taPointsRecords = new TaPointsRecords();
228
 		TaPointsRecords taPointsRecords = new TaPointsRecords();
166
 		taPointsRecords.setPersonId(person.getPersonId());
229
 		taPointsRecords.setPersonId(person.getPersonId());