胡轶钦 5 år sedan
förälder
incheckning
b2edf31fe1

+ 10
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Visa fil

114
      */
114
      */
115
     public final static String POINTS_CHANGE_DOCUMENT_VERIFY = "document_verify";
115
     public final static String POINTS_CHANGE_DOCUMENT_VERIFY = "document_verify";
116
 
116
 
117
+    /**
118
+     * 资料审核
119
+     */
120
+    public final static String POINTS_CHANGE_ACTIVITY_CHECKIN = "activity_checkin";
121
+
117
 
122
 
118
     /**
123
     /**
119
      * 小程序默认首页
124
      * 小程序默认首页
285
      */
290
      */
286
     public static final Integer POINTS_RULE_DOCUMENT_VERIFY = 7;
291
     public static final Integer POINTS_RULE_DOCUMENT_VERIFY = 7;
287
 
292
 
293
+    /**
294
+     * 普通活动签到送积分规则
295
+     */
296
+    public static final Integer POINTS_RULE_ACTIVITY_CHECKIN = 8;
297
+
288
     /**
298
     /**
289
      * 平台积分
299
      * 平台积分
290
      */
300
      */

+ 17
- 7
src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java Visa fil

14
 import com.huiju.estateagents.common.JWTUtils;
14
 import com.huiju.estateagents.common.JWTUtils;
15
 import com.huiju.estateagents.common.StringUtils;
15
 import com.huiju.estateagents.common.StringUtils;
16
 import com.huiju.estateagents.entity.*;
16
 import com.huiju.estateagents.entity.*;
17
+import com.huiju.estateagents.event.EventBus;
17
 import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
18
 import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
18
 import com.huiju.estateagents.excel.TaActivityDynamicEnlistExport;
19
 import com.huiju.estateagents.excel.TaActivityDynamicEnlistExport;
19
 import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
20
 import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
20
 import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
21
 import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
21
 import com.huiju.estateagents.mapper.TaBuildingMapper;
22
 import com.huiju.estateagents.mapper.TaBuildingMapper;
22
 import com.huiju.estateagents.mapper.TaSharePersonFromMapper;
23
 import com.huiju.estateagents.mapper.TaSharePersonFromMapper;
23
-import com.huiju.estateagents.service.ITaBuildingDynamicService;
24
-import com.huiju.estateagents.service.ITaBuildingService;
25
-import com.huiju.estateagents.service.ITaPersonService;
26
-import com.huiju.estateagents.service.ITaSaveService;
24
+import com.huiju.estateagents.service.*;
27
 import io.swagger.annotations.Api;
25
 import io.swagger.annotations.Api;
28
 import io.swagger.annotations.ApiImplicitParam;
26
 import io.swagger.annotations.ApiImplicitParam;
29
 import io.swagger.annotations.ApiImplicitParams;
27
 import io.swagger.annotations.ApiImplicitParams;
30
 import io.swagger.annotations.ApiOperation;
28
 import io.swagger.annotations.ApiOperation;
31
 import org.springframework.beans.factory.annotation.Autowired;
29
 import org.springframework.beans.factory.annotation.Autowired;
32
 import org.springframework.beans.propertyeditors.CustomDateEditor;
30
 import org.springframework.beans.propertyeditors.CustomDateEditor;
31
+import org.springframework.context.ApplicationContext;
33
 import org.springframework.format.annotation.DateTimeFormat;
32
 import org.springframework.format.annotation.DateTimeFormat;
34
 import org.springframework.web.bind.ServletRequestDataBinder;
33
 import org.springframework.web.bind.ServletRequestDataBinder;
35
 import org.springframework.web.bind.annotation.*;
34
 import org.springframework.web.bind.annotation.*;
48
 import java.util.List;
47
 import java.util.List;
49
 import java.util.Map;
48
 import java.util.Map;
50
 
49
 
50
+import static com.huiju.estateagents.event.EventBus.EventType.ActivityCheckin;
51
+
51
 /**
52
 /**
52
  * <p>
53
  * <p>
53
  * 项目动态表 前端控制器
54
  * 项目动态表 前端控制器
82
     @Autowired
83
     @Autowired
83
     private TaSharePersonFromMapper taSharePersonFromMapper;
84
     private TaSharePersonFromMapper taSharePersonFromMapper;
84
 
85
 
86
+    @Autowired
87
+    private ApplicationContext applicationContext;
88
+
89
+
85
     @InitBinder
90
     @InitBinder
86
     protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
91
     protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
87
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
92
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
244
         enlistQueryWrapper.eq("dynamic_id",dynamicId);
249
         enlistQueryWrapper.eq("dynamic_id",dynamicId);
245
         enlistQueryWrapper.eq("person_id",person.getPersonId());
250
         enlistQueryWrapper.eq("person_id",person.getPersonId());
246
         enlistQueryWrapper.eq("org_id",orgId);
251
         enlistQueryWrapper.eq("org_id",orgId);
247
-        TaActivityDynamicEnlist enlist = taActivityDynamicEnlistMapper.selectOne(enlistQueryWrapper);
252
+        List <TaActivityDynamicEnlist> enlists = taActivityDynamicEnlistMapper.selectList(enlistQueryWrapper);
248
         TaBuildingDynamic buildingDynamic = iBuildingDynamicService.getById(dynamicId);
253
         TaBuildingDynamic buildingDynamic = iBuildingDynamicService.getById(dynamicId);
249
         Map<String,Object>data = new HashMap<>();
254
         Map<String,Object>data = new HashMap<>();
255
+        TaActivityDynamicEnlist enlist = new TaActivityDynamicEnlist();
256
+        if(enlists.size()>0){
257
+            enlist=enlists.get(0);
258
+        }
250
         data.put("enlist",enlist);
259
         data.put("enlist",enlist);
251
         data.put("dynamic",buildingDynamic);
260
         data.put("dynamic",buildingDynamic);
252
         data.put("person",person);
261
         data.put("person",person);
262
      */
271
      */
263
     @ApiOperation(value = "微信端活动签到", notes = "微信端活动签到")
272
     @ApiOperation(value = "微信端活动签到", notes = "微信端活动签到")
264
     @ApiImplicitParams({
273
     @ApiImplicitParams({
265
-            @ApiImplicitParam(dataTypeClass = String.class, name = "enlistId", paramType = "path",value = "活动报名ID")
274
+            @ApiImplicitParam(dataTypeClass = Integer.class, name = "enlistId", paramType = "path",value = "活动报名ID")
266
     })
275
     })
267
     @RequestMapping(value = "/wx/buildingDynamicCheckin/{enlistId}", method = RequestMethod.PUT)
276
     @RequestMapping(value = "/wx/buildingDynamicCheckin/{enlistId}", method = RequestMethod.PUT)
268
     public ResponseBean iBuildingDynamicCheckin(@PathVariable(value = "enlistId") String enlistId,
277
     public ResponseBean iBuildingDynamicCheckin(@PathVariable(value = "enlistId") String enlistId,
273
            if(null != enlist){
282
            if(null != enlist){
274
                enlist.setIsCheckin(CommConstant.STATUS_NORMAL);
283
                enlist.setIsCheckin(CommConstant.STATUS_NORMAL);
275
                if(taActivityDynamicEnlistMapper.updateById(enlist)>0){
284
                if(taActivityDynamicEnlistMapper.updateById(enlist)>0){
276
-                   responseBean.addSuccess("签到成功");
285
+                   applicationContext.publishEvent(new EventBus(enlist,ActivityCheckin,getOrgId(request)));
286
+                   responseBean.addSuccess(enlist);
277
                }else {
287
                }else {
278
                    responseBean.addError("签到失败");
288
                    responseBean.addError("签到失败");
279
                }
289
                }

+ 1
- 1
src/main/java/com/huiju/estateagents/entity/TaActivityDynamicEnlist.java Visa fil

22
      * 报名ID
22
      * 报名ID
23
      */
23
      */
24
     @TableId(value = "enlist_id", type = IdType.AUTO)
24
     @TableId(value = "enlist_id", type = IdType.AUTO)
25
-    private Integer enlist_id;
25
+    private Integer enlistId;
26
 
26
 
27
     /**
27
     /**
28
      * 活动ID
28
      * 活动ID

+ 4
- 1
src/main/java/com/huiju/estateagents/event/EventBus.java Visa fil

39
 		ActivityVerificationSign(6),
39
 		ActivityVerificationSign(6),
40
 
40
 
41
 		// 资料审核成功
41
 		// 资料审核成功
42
-		DocumentVerify(6);
42
+		DocumentVerify(7),
43
+
44
+		// 普通活动扫码签到
45
+		ActivityCheckin(20);
43
 
46
 
44
 		private Integer type;
47
 		private Integer type;
45
 
48
 

+ 7
- 0
src/main/java/com/huiju/estateagents/event/EventLisenter.java Visa fil

50
 			case DocumentVerify:
50
 			case DocumentVerify:
51
 				getDocumentVerify((TaDocumentVerify) event.getSource(), event.getOrgId());
51
 				getDocumentVerify((TaDocumentVerify) event.getSource(), event.getOrgId());
52
 				break;
52
 				break;
53
+			case ActivityCheckin:
54
+				getActivityCheckin((TaActivityDynamicEnlist) event.getSource(), event.getOrgId());
53
 			default:
55
 			default:
54
 				break;
56
 				break;
55
 		}
57
 		}
56
 	}
58
 	}
57
 
59
 
60
+	// 普通活动扫码签到
61
+	private void getActivityCheckin(TaActivityDynamicEnlist source, Integer orgId) {
62
+		taPointsRecordsService.checkinActivityPoints(source,orgId);
63
+	}
64
+
58
 	// 分享赚积分
65
 	// 分享赚积分
59
 	private void getSharePoints(TaShare taShare, Integer orgId) {
66
 	private void getSharePoints(TaShare taShare, Integer orgId) {
60
 		taPointsRecordsService.sharePoints(taShare, orgId);
67
 		taPointsRecordsService.sharePoints(taShare, orgId);

+ 3
- 0
src/main/java/com/huiju/estateagents/service/ITaPointsRecordsService.java Visa fil

20
 	// 签到赚积分
20
 	// 签到赚积分
21
 	void checkinPoints(TaPersonSign taPersonSign, Integer orgId);
21
 	void checkinPoints(TaPersonSign taPersonSign, Integer orgId);
22
 
22
 
23
+	// 签到赚积分
24
+	void checkinActivityPoints(TaActivityDynamicEnlist taActivityDynamicEnlist, Integer orgId);
25
+
23
 	// 注册送积分
26
 	// 注册送积分
24
 	void signUpPoints(TaPerson taPerson, Integer orgId);
27
 	void signUpPoints(TaPerson taPerson, Integer orgId);
25
 
28
 

+ 29
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java Visa fil

158
 		}
158
 		}
159
 	}
159
 	}
160
 
160
 
161
+	@Override
162
+	public void checkinActivityPoints(TaActivityDynamicEnlist taActivityDynamicEnlist, Integer orgId){
163
+		// 是否开启积分规则
164
+		Integer pointsAmount = getRulePoints(CommConstant.POINTS_RULE_ACTIVITY_CHECKIN);
165
+		if (pointsAmount == 0) {
166
+			return;
167
+		}
168
+		String changeType =CommConstant.POINTS_CHANGE_ACTIVITY_CHECKIN;
169
+		// 已经领取过的不会再次领取
170
+		List<String> params = new ArrayList<String>() {{
171
+			add("date="+DateUtils.today());
172
+			add("user="+taActivityDynamicEnlist.getPersonId());
173
+		}};
174
+		String changeParams = String.join("&", params);
175
+		boolean hasJoined = isPointsRecordsExist(taActivityDynamicEnlist.getPersonId(), changeType, changeParams);
176
+		if (hasJoined) {
177
+			return;
178
+		}
179
+		// 添加参数
180
+		params.add("enlistId="+taActivityDynamicEnlist.getEnlistId());
181
+		changeParams = String.join("&", params);
182
+
183
+		// 发放积分
184
+		TaPerson person = taPersonMapper.selectById(taActivityDynamicEnlist.getPersonId());
185
+		if (savePoints(person, changeType, changeParams, pointsAmount, orgId)) {
186
+			taPersonMapper.setFieldIncrement(person.getPersonId(), "points", pointsAmount);
187
+		}
188
+	}
189
+
161
 	@Override
190
 	@Override
162
 	public void signUpPoints(TaPerson taPerson, Integer orgId) {
191
 	public void signUpPoints(TaPerson taPerson, Integer orgId) {
163
 		// 是否开启积分规则
192
 		// 是否开启积分规则