ソースを参照

助力和拼团

傅行帆 5 年 前
コミット
6040f4517c

+ 1
- 1
src/main/java/com/huiju/estateagents/activity/entity/Activity.java ファイルの表示

@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
11 11
 @Data
12 12
 public class Activity {
13 13
 
14
-	private Integer id;
14
+	private Object id;
15 15
 	
16 16
 	private String mainImg;
17 17
 	

+ 1
- 1
src/main/java/com/huiju/estateagents/activity/service/impl/ActivityServiceImpl.java ファイルの表示

@@ -62,7 +62,7 @@ public class ActivityServiceImpl implements ActivityServiceI {
62 62
 		//判断是否报名了助力活动
63 63
 		QueryWrapper<HelpRecord> helpRecordQueryWrapper = new QueryWrapper<>();
64 64
 		helpRecordQueryWrapper.eq("org_id",orgId);
65
-		helpRecordQueryWrapper.eq("person_id",person.getPersonId());
65
+		helpRecordQueryWrapper.eq("persion_id",person.getPersonId());
66 66
 		List<HelpRecord> helpRecords = helpRecordMapper.selectList(helpRecordQueryWrapper);
67 67
 		
68 68
 		//分页获取全部数据

+ 3
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java ファイルの表示

@@ -391,4 +391,7 @@ public class CommConstant {
391 391
     
392 392
     //发起者
393 393
 	public static final String HELP_STATUS_INITIATE = "Initiate";
394
+	
395
+	//助力活动
396
+	public static final Object HELP_ACTIVITY = "helpActivity";
394 397
 }

+ 27
- 1
src/main/java/com/huiju/estateagents/controller/HelpActivityController.java ファイルの表示

@@ -16,6 +16,8 @@ import com.huiju.estateagents.entity.HelpRecord;
16 16
 import com.huiju.estateagents.entity.TaBuildingDynamic;
17 17
 import com.huiju.estateagents.entity.TaChannel;
18 18
 import com.huiju.estateagents.entity.TaPerson;
19
+import com.huiju.estateagents.entity.TaPoster;
20
+import com.huiju.estateagents.entity.TaShareContent;
19 21
 import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
20 22
 import com.huiju.estateagents.excel.HelpProceedAndFinish;
21 23
 import com.huiju.estateagents.excel.HelpRecordExport;
@@ -27,6 +29,8 @@ import com.huiju.estateagents.service.IHelpInitiateRecordService;
27 29
 import com.huiju.estateagents.service.IHelpRecordService;
28 30
 import com.huiju.estateagents.service.ITaBuildingService;
29 31
 import com.huiju.estateagents.service.ITaPersonService;
32
+import com.huiju.estateagents.service.TaPosterService;
33
+import com.huiju.estateagents.service.TaShareContentService;
30 34
 import io.swagger.annotations.Api;
31 35
 import io.swagger.annotations.ApiOperation;
32 36
 import io.swagger.annotations.ApiImplicitParam;
@@ -74,6 +78,12 @@ public class HelpActivityController extends BaseController {
74 78
     
75 79
     @Autowired
76 80
     private IHelpRecordService helpRecordService;
81
+    
82
+    @Autowired
83
+    private TaPosterService taPosterService;
84
+    
85
+    @Autowired
86
+    private TaShareContentService taShareContentService;
77 87
 
78 88
     /**
79 89
      * 活动助力列表
@@ -375,7 +385,7 @@ public class HelpActivityController extends BaseController {
375 385
         Integer orgId = getOrgId(request);
376 386
         List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
377 387
         if (null == taPersons || taPersons.size() != 1) {
378
-            return responseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
388
+            return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
379 389
         }
380 390
         TaPerson person = taPersons.get(0);
381 391
         Map<String,Object> map = new HashMap<>();
@@ -404,6 +414,22 @@ public class HelpActivityController extends BaseController {
404 414
                 map.put("helpRecordList",helpRecordList);
405 415
             }
406 416
             
417
+            //获取海报信息
418
+            QueryWrapper<TaPoster> posterQueryWrapper = new QueryWrapper<>();
419
+            posterQueryWrapper.eq("target_type",CommConstant.HELP_ACTIVITY);
420
+            posterQueryWrapper.eq("target_id",helpActivityId);
421
+            posterQueryWrapper.eq("org_id",orgId);
422
+            List<TaPoster> postList = taPosterService.list(posterQueryWrapper);
423
+            map.put("postList",postList);
424
+            
425
+            //获取分享信息
426
+            QueryWrapper<TaShareContent> taShareContentQueryWrapper = new QueryWrapper<>();
427
+            taShareContentQueryWrapper.eq("share_content_type",CommConstant.HELP_ACTIVITY);
428
+            taShareContentQueryWrapper.eq("target_id",helpActivityId);
429
+            taShareContentQueryWrapper.eq("org_id",orgId);
430
+            List<TaShareContent> shareContentList = taShareContentService.list(taShareContentQueryWrapper);
431
+            map.put("shareContentList",shareContentList);
432
+    
407 433
             responseBean.addSuccess(map);
408 434
         } catch (Exception e) {
409 435
             e.printStackTrace();

+ 68
- 2
src/main/java/com/huiju/estateagents/controller/TaShareActivityController.java ファイルの表示

@@ -4,9 +4,16 @@ import com.alibaba.fastjson.JSONObject;
4 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 5
 import com.huiju.estateagents.base.BaseController;
6 6
 import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.CommConstant;
7 8
 import com.huiju.estateagents.entity.TaNews;
9
+import com.huiju.estateagents.entity.TaPerson;
8 10
 import com.huiju.estateagents.entity.TaShareActivity;
11
+import com.huiju.estateagents.entity.TaShareChildRecord;
12
+import com.huiju.estateagents.entity.TaShareRecord;
13
+import com.huiju.estateagents.service.ITaPersonService;
9 14
 import com.huiju.estateagents.service.ITaShareActivityService;
15
+import com.huiju.estateagents.service.ITaShareChildRecordService;
16
+import com.huiju.estateagents.service.ITaShareRecordService;
10 17
 import io.swagger.models.auth.In;
11 18
 import org.slf4j.Logger;
12 19
 import org.slf4j.LoggerFactory;
@@ -14,6 +21,9 @@ import org.springframework.beans.factory.annotation.Autowired;
14 21
 import org.springframework.web.bind.annotation.*;
15 22
 
16 23
 import javax.servlet.http.HttpServletRequest;
24
+import java.util.HashMap;
25
+import java.util.List;
26
+import java.util.Map;
17 27
 
18 28
 /**
19 29
  * <p>
@@ -31,7 +41,15 @@ public class TaShareActivityController extends BaseController {
31 41
 
32 42
     @Autowired
33 43
     public ITaShareActivityService iTaShareActivityService;
34
-
44
+    
45
+    @Autowired
46
+    private ITaPersonService taPersonService;
47
+    
48
+    @Autowired
49
+    private ITaShareRecordService taShareRecordService;
50
+    
51
+    @Autowired
52
+    private ITaShareChildRecordService taShareChildRecordService;
35 53
 
36 54
     /**
37 55
      * 分页查询列表
@@ -196,5 +214,53 @@ public class TaShareActivityController extends BaseController {
196 214
         }
197 215
         return responseBean;
198 216
     }
199
-
217
+    
218
+    /**
219
+     * 微信端根据id查询详情
220
+     * @param groupActicityId  实体ID
221
+     */
222
+    @RequestMapping(value="/wx/taShareActivity/{groupActicityId}",method= RequestMethod.GET)
223
+    public ResponseBean wxShareActivityGet(@PathVariable Integer groupActicityId, HttpServletRequest request){
224
+        ResponseBean responseBean = new ResponseBean();
225
+        String openid = getOpenId(request);
226
+        Integer orgId = getOrgId(request);
227
+        List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
228
+        if (null == taPersons || taPersons.size() != 1) {
229
+            return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
230
+        }
231
+        TaPerson person = taPersons.get(0);
232
+        Map<String,Object> map = new HashMap<>();
233
+        try {
234
+            //活动详情
235
+            TaShareActivity taShareActivity = iTaShareActivityService.getById(groupActicityId);
236
+            map.put("taShareActivity",taShareActivity);
237
+            
238
+            //发起者团长信息
239
+            QueryWrapper<TaShareRecord> queryWrapper = new QueryWrapper<>();
240
+            queryWrapper.eq("group_activity_id",groupActicityId);
241
+            queryWrapper.eq("person_id",person.getPersonId());
242
+            queryWrapper.eq("org_id",orgId);
243
+            TaShareRecord taShareRecord = taShareRecordService.getOne(queryWrapper);
244
+            if (null != taShareRecord){
245
+                //团长
246
+                taShareActivity.setGroupStatus(CommConstant.HELP_STATUS_INITIATE);
247
+                map.put("taShareRecord",taShareRecord);
248
+                
249
+                //团员
250
+                QueryWrapper<TaShareChildRecord> childRecordQueryWrapper = new QueryWrapper<>();
251
+                childRecordQueryWrapper.eq("org_id",orgId);
252
+                childRecordQueryWrapper.eq("group_activity_id",taShareActivity.getGroupActicityId());
253
+                childRecordQueryWrapper.eq("record_id",taShareRecord.getRecordId());
254
+                List<TaShareChildRecord> shareChildRecordList = taShareChildRecordService.list(childRecordQueryWrapper);
255
+                map.put("shareChildRecordList",shareChildRecordList);
256
+            }
257
+            responseBean.addSuccess(map);
258
+        }catch (Exception e){
259
+            e.printStackTrace();
260
+            logger.error("taShareActivityDelete -=- {}",e.toString());
261
+            responseBean.addError(e.getMessage());
262
+        }
263
+        return responseBean;
264
+    }
265
+    
200 266
 }

+ 32
- 0
src/main/java/com/huiju/estateagents/controller/TaShareChildRecordController.java ファイルの表示

@@ -2,7 +2,9 @@ package com.huiju.estateagents.controller;
2 2
 
3 3
 import com.huiju.estateagents.base.BaseController;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaPerson;
5 6
 import com.huiju.estateagents.entity.TaShareChildRecord;
7
+import com.huiju.estateagents.service.ITaPersonService;
6 8
 import com.huiju.estateagents.service.ITaShareActivityService;
7 9
 import com.huiju.estateagents.service.ITaShareChildRecordService;
8 10
 import org.slf4j.Logger;
@@ -11,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
11 13
 import org.springframework.web.bind.annotation.*;
12 14
 
13 15
 import javax.servlet.http.HttpServletRequest;
16
+import java.util.List;
14 17
 
15 18
 /**
16 19
  * <p>
@@ -28,8 +31,12 @@ public class TaShareChildRecordController extends BaseController {
28 31
 
29 32
     @Autowired
30 33
     private ITaShareChildRecordService iTaShareChildRecordService;
34
+    
31 35
     @Autowired
32 36
     private ITaShareActivityService iTaShareActivityService;
37
+    
38
+    @Autowired
39
+    private ITaPersonService taPersonService;
33 40
 
34 41
     /**
35 42
      * 分页查询列表
@@ -148,4 +155,29 @@ public class TaShareChildRecordController extends BaseController {
148 155
         }
149 156
         return responseBean;
150 157
     }
158
+    
159
+    /**
160
+     * 微信端成为团员
161
+     * @param taShareChildRecord 实体对象
162
+     * @return
163
+     */
164
+    @RequestMapping(value="/wx/taShareChildRecord",method= RequestMethod.POST)
165
+    public ResponseBean wxShareChildRecordAdd(@RequestBody TaShareChildRecord taShareChildRecord, HttpServletRequest request){
166
+        ResponseBean responseBean = new ResponseBean();
167
+        String openid = getOpenId(request);
168
+        Integer orgId = getOrgId(request);
169
+        List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
170
+        if (null == taPersons || taPersons.size() != 1) {
171
+            return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
172
+        }
173
+        TaPerson person = taPersons.get(0);
174
+        try {
175
+            responseBean = iTaShareChildRecordService.addChildRecord(taShareChildRecord,orgId,person);
176
+        }catch (Exception e){
177
+            e.printStackTrace();
178
+            logger.error("taShareChildRecordAdd -=- {}",e.toString());
179
+            responseBean.addError(e.getMessage());
180
+        }
181
+        return responseBean;
182
+    }
151 183
 }

+ 7
- 2
src/main/java/com/huiju/estateagents/entity/TaShareActivity.java ファイルの表示

@@ -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;
@@ -103,6 +104,10 @@ public class TaShareActivity implements Serializable {
103 104
      * 置顶
104 105
      */
105 106
     private Integer weight;
106
-
107
-
107
+    
108
+    /**
109
+     * Initiate 发起者  Booster 助力者
110
+     */
111
+    @TableField(exist = false)
112
+    private String groupStatus;
108 113
 }

+ 11
- 0
src/main/java/com/huiju/estateagents/service/ITaShareChildRecordService.java ファイルの表示

@@ -2,6 +2,7 @@ package com.huiju.estateagents.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaPerson;
5 6
 import com.huiju.estateagents.entity.TaShareChildRecord;
6 7
 
7 8
 /**
@@ -15,4 +16,14 @@ import com.huiju.estateagents.entity.TaShareChildRecord;
15 16
 public interface ITaShareChildRecordService extends IService<TaShareChildRecord> {
16 17
     ResponseBean getList(Integer pageNum, Integer pageSize, Integer groupActivityId, Integer status, Integer orgId);
17 18
     ResponseBean validateRule(TaShareChildRecord taShareChildRecord);
19
+	
20
+	/**
21
+	 * 微信端成为团员
22
+	 *
23
+	 * @param taShareChildRecord
24
+	 * @param orgId
25
+	 * @param person
26
+	 * @return
27
+	 */
28
+	ResponseBean addChildRecord(TaShareChildRecord taShareChildRecord, Integer orgId, TaPerson person);
18 29
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/service/impl/HelpRecordServiceImpl.java ファイルの表示

@@ -90,11 +90,11 @@ public class HelpRecordServiceImpl extends ServiceImpl<HelpRecordMapper, HelpRec
90 90
 		helpRecord.setCreateDate(LocalDateTime.now());
91 91
 		helpRecord.setPersionId(person.getPersonId());
92 92
 		helpRecordMapper.insert(helpRecord);
93
-		if (helpActivity.getEnlistNum()+1 == helpActivity.getPersionNum()){
93
+		if (helpActivity.getEnlistNum().equals(helpActivity.getPersionNum())){
94 94
 			//发送微信模板消息所有人都发送--todo
95 95
 			
96 96
 			//生成核销码
97
-			helpInitiateRecord.setVerification(helpInitiateRecord.getHelpActivityId()+System.currentTimeMillis());
97
+			helpInitiateRecord.setVerification(String.valueOf(helpInitiateRecord.getHelpRecordInitiateId()+System.currentTimeMillis()));
98 98
 		}
99 99
 		helpInitiateRecord.setEnlistNum(helpInitiateRecord.getEnlistNum()+1);
100 100
 		helpInitiateRecordMapper.updateById(helpInitiateRecord);

+ 84
- 0
src/main/java/com/huiju/estateagents/service/impl/TaShareChildRecordServiceImpl.java ファイルの表示

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6 6
 import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.CommConstant;
7 8
 import com.huiju.estateagents.entity.TaPerson;
8 9
 import com.huiju.estateagents.entity.TaShareActivity;
9 10
 import com.huiju.estateagents.entity.TaShareChildRecord;
@@ -16,6 +17,7 @@ import com.huiju.estateagents.service.ITaShareChildRecordService;
16 17
 import org.springframework.beans.factory.annotation.Autowired;
17 18
 import org.springframework.stereotype.Service;
18 19
 
20
+import java.time.LocalDateTime;
19 21
 import java.util.List;
20 22
 
21 23
 /**
@@ -84,4 +86,86 @@ public class TaShareChildRecordServiceImpl extends ServiceImpl<TaShareChildRecor
84 86
 
85 87
         return responseBean;
86 88
     }
89
+    
90
+    /**
91
+     * 微信端成为团员
92
+     *
93
+     * @param taShareChildRecord
94
+     * @param orgId
95
+     * @param person
96
+     * @return
97
+     */
98
+    @Override
99
+    public ResponseBean addChildRecord(TaShareChildRecord taShareChildRecord, Integer orgId, TaPerson person) {
100
+        //查看是否拼团成功
101
+        TaShareRecord taShareRecord = tashareRecordmapper.selectById(taShareChildRecord.getRecordId());
102
+        if (taShareRecord.getStatus().equals(CommConstant.STATUS_UNACCALIMED)){
103
+            return ResponseBean.error("已经拼团成功", ResponseBean.ERROR_UNAVAILABLE);
104
+        }
105
+        
106
+        //查看是否拼团成功
107
+        TaShareActivity taShareActivity = activityMapper.selectById(taShareChildRecord.getGroupActivityId());
108
+        if (taShareActivity.getJoinPeople() >= taShareActivity.getGroupBuyPeople()){
109
+            return ResponseBean.error("已经拼团成功", ResponseBean.ERROR_UNAVAILABLE);
110
+        }
111
+        if (taShareActivity.getEndTime().isBefore(LocalDateTime.now())){
112
+            return ResponseBean.error("活动已超时", ResponseBean.ERROR_UNAVAILABLE);
113
+        }
114
+        
115
+        //查看这个人是否是团员
116
+        QueryWrapper<TaShareChildRecord> taShareChildRecordQueryWrapper = new QueryWrapper<>();
117
+        taShareChildRecordQueryWrapper.eq("org_id",orgId);
118
+        taShareChildRecordQueryWrapper.eq("group_activity_id",taShareChildRecord.getGroupActivityId());
119
+        taShareChildRecordQueryWrapper.eq("person_id",person.getPersonId());
120
+        taShareChildRecordQueryWrapper.eq("record_id",taShareChildRecord.getRecordId());
121
+        List<TaShareChildRecord> shareChildRecordList = taShareChildRecordMapper.selectList(taShareChildRecordQueryWrapper);
122
+        if (shareChildRecordList.size() > 0){
123
+            return ResponseBean.error("您已经是团员,无需重复拼团", ResponseBean.ERROR_UNAVAILABLE);
124
+        }
125
+        
126
+        //检查这个团员积分够不够
127
+        if (person.getPoints() == null || person.getPoints() < taShareActivity.getIntegral()){
128
+            return ResponseBean.error("积分不足",ResponseBean.ERROR_UNAVAILABLE);
129
+        }
130
+        
131
+        //反更新人数
132
+        taShareActivity.setJoinPeople(taShareActivity.getJoinPeople()+1);
133
+        activityMapper.updateById(taShareActivity);
134
+    
135
+        //成为团员
136
+        taShareChildRecord.setOrgId(orgId);
137
+        taShareChildRecord.setStatus(CommConstant.STATUS_NORMAL);
138
+        taShareChildRecord.setPersonId(person.getPersonId());
139
+        taShareChildRecordMapper.insert(taShareChildRecord);
140
+        if (taShareActivity.getJoinPeople().equals(taShareActivity.getGroupBuyPeople())){
141
+            //发送微信模板消息所有人都发送--todo
142
+            
143
+            //生成团员核销码和改状态拼团成功
144
+            changeChildRecord(taShareChildRecord.getRecordId(),orgId,taShareChildRecord.getGroupActivityId());
145
+            //生成团长核销码和拼团成功
146
+            taShareRecord.setVerificationCode(String.valueOf(taShareRecord.getRecordId()+System.currentTimeMillis()));
147
+            taShareRecord.setVerificationStatus(CommConstant.STATUS_UNACCALIMED);
148
+        }
149
+        tashareRecordmapper.updateById(taShareRecord);
150
+        return ResponseBean.success(taShareRecord);
151
+    }
152
+    
153
+    /**
154
+     * 更改团员状态和生成核销码
155
+     * @param recordId
156
+     * @param orgId
157
+     * @param groupActivityId
158
+     */
159
+    private void changeChildRecord(Integer recordId, Integer orgId, Integer groupActivityId) {
160
+        QueryWrapper<TaShareChildRecord> taShareChildRecordQueryWrapper = new QueryWrapper<>();
161
+        taShareChildRecordQueryWrapper.eq("record_id",recordId);
162
+        taShareChildRecordQueryWrapper.eq("org_id",orgId);
163
+        taShareChildRecordQueryWrapper.eq("group_activity_id",groupActivityId);
164
+        List<TaShareChildRecord> shareChildRecordList = taShareChildRecordMapper.selectList(taShareChildRecordQueryWrapper);
165
+        shareChildRecordList.forEach(e -> {
166
+            e.setVerificationCode(String.valueOf(e.getChildRecordId()+System.currentTimeMillis()));
167
+            e.setVerificationStatus(CommConstant.STATUS_UNACCALIMED);
168
+        });
169
+        this.updateBatchById(shareChildRecordList);
170
+    }
87 171
 }

+ 1
- 1
src/main/resources/mapper/Activity.xml ファイルの表示

@@ -5,7 +5,7 @@
5 5
     <select id="getActivityList" resultType="com.huiju.estateagents.activity.entity.Activity">
6 6
         SELECT dynamic_id as id,img_url as main_img,title,start_date as start_date,enlist_end as end_date,weight,activity_status,'dynamic' as type FROM ta_building_dynamic WHERE org_id = #{orgId}  and `status` = #{status}
7 7
         UNION  all
8
-        SELECT group_acticity_id as id,main_img,activity_name as title,start_time as start_date,end_time as end_date,weight,activity_status,'share' as type from ta_share_activity WHERE org_id = #{orgId} and `status` = #{status}
8
+        SELECT group_acticity_id as id,main_img,activity_name as title,start_time as start_date,end_time as end_date,weight,activity_status,'group' as type from ta_share_activity WHERE org_id = #{orgId} and `status` = #{status}
9 9
         UNION  all
10 10
         SELECT help_activity_id as id,img as main_img,title,start_date,end_date,weight,activity_status,'help' as type from ta_help_activity WHERE org_id = #{orgId} and `status` = #{status}
11 11
         ORDER BY weight desc,activity_status,start_date