胡轶钦 5 vuotta sitten
vanhempi
commit
b2edf31fe1

+ 10
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Näytä tiedosto

@@ -114,6 +114,11 @@ public class CommConstant {
114 114
      */
115 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,6 +290,11 @@ public class CommConstant {
285 290
      */
286 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 Näytä tiedosto

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

+ 1
- 1
src/main/java/com/huiju/estateagents/entity/TaActivityDynamicEnlist.java Näytä tiedosto

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

+ 4
- 1
src/main/java/com/huiju/estateagents/event/EventBus.java Näytä tiedosto

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

+ 7
- 0
src/main/java/com/huiju/estateagents/event/EventLisenter.java Näytä tiedosto

@@ -50,11 +50,18 @@ public class EventLisenter {
50 50
 			case DocumentVerify:
51 51
 				getDocumentVerify((TaDocumentVerify) event.getSource(), event.getOrgId());
52 52
 				break;
53
+			case ActivityCheckin:
54
+				getActivityCheckin((TaActivityDynamicEnlist) event.getSource(), event.getOrgId());
53 55
 			default:
54 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 66
 	private void getSharePoints(TaShare taShare, Integer orgId) {
60 67
 		taPointsRecordsService.sharePoints(taShare, orgId);

+ 3
- 0
src/main/java/com/huiju/estateagents/service/ITaPointsRecordsService.java Näytä tiedosto

@@ -20,6 +20,9 @@ public interface ITaPointsRecordsService extends IService<TaPointsRecords> {
20 20
 	// 签到赚积分
21 21
 	void checkinPoints(TaPersonSign taPersonSign, Integer orgId);
22 22
 
23
+	// 签到赚积分
24
+	void checkinActivityPoints(TaActivityDynamicEnlist taActivityDynamicEnlist, Integer orgId);
25
+
23 26
 	// 注册送积分
24 27
 	void signUpPoints(TaPerson taPerson, Integer orgId);
25 28
 

+ 29
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java Näytä tiedosto

@@ -158,6 +158,35 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
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 190
 	@Override
162 191
 	public void signUpPoints(TaPerson taPerson, Integer orgId) {
163 192
 		// 是否开启积分规则