|
@@ -1,298 +1,298 @@
|
1
|
|
-package com.huiju.estateagents.service.impl;
|
2
|
|
-
|
3
|
|
-
|
4
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
5
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
6
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
7
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
8
|
|
-import com.huiju.estateagents.base.ResponseBean;
|
9
|
|
-import com.huiju.estateagents.common.CommConstant;
|
10
|
|
-import com.huiju.estateagents.common.StringUtils;
|
11
|
|
-import com.huiju.estateagents.entity.*;
|
12
|
|
-import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
|
13
|
|
-import com.huiju.estateagents.mapper.TaBuildingDynamicMapper;
|
14
|
|
-import com.huiju.estateagents.mapper.TaBuildingMapper;
|
15
|
|
-import com.huiju.estateagents.mapper.TaPersonMapper;
|
16
|
|
-import com.huiju.estateagents.service.ITaBuildingDynamicService;
|
17
|
|
-import com.huiju.estateagents.service.ITaBuildingService;
|
18
|
|
-import com.huiju.estateagents.service.ITaSaveService;
|
19
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
20
|
|
-import org.springframework.beans.propertyeditors.CustomDateEditor;
|
21
|
|
-import org.springframework.stereotype.Service;
|
22
|
|
-import org.springframework.web.bind.ServletRequestDataBinder;
|
23
|
|
-
|
24
|
|
-import javax.servlet.http.HttpServletRequest;
|
25
|
|
-import java.text.DateFormat;
|
26
|
|
-import java.text.SimpleDateFormat;
|
27
|
|
-import java.time.Instant;
|
28
|
|
-import java.time.LocalDateTime;
|
29
|
|
-import java.time.ZoneId;
|
30
|
|
-import java.time.ZoneOffset;
|
31
|
|
-import java.util.Date;
|
32
|
|
-import java.util.HashMap;
|
33
|
|
-import java.util.List;
|
34
|
|
-
|
35
|
|
-/**
|
36
|
|
- * <p>
|
37
|
|
- * 项目动态表 服务实现类
|
38
|
|
- * </p>
|
39
|
|
- *
|
40
|
|
- * @author jobob
|
41
|
|
- * @since 2019-03-21
|
42
|
|
- */
|
43
|
|
-@Service
|
44
|
|
-public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicMapper, TaBuildingDynamic> implements ITaBuildingDynamicService {
|
45
|
|
-
|
46
|
|
- @Autowired
|
47
|
|
- private TaBuildingDynamicMapper buildingDynamicMapper;
|
48
|
|
-
|
49
|
|
- @Autowired
|
50
|
|
- private TaBuildingMapper buildingMapper;
|
51
|
|
-
|
52
|
|
- @Autowired
|
53
|
|
- private TaActivityDynamicEnlistMapper taActivityDynamicEnlistMapper;
|
54
|
|
-
|
55
|
|
- @Autowired
|
56
|
|
- private TaPersonMapper taPersonMapper;
|
57
|
|
-
|
58
|
|
- @Autowired
|
59
|
|
- private ITaSaveService iTaSaveService;
|
60
|
|
-
|
61
|
|
- protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
|
62
|
|
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
63
|
|
- CustomDateEditor editor = new CustomDateEditor(df, true);//true表示允许为空,false反之
|
64
|
|
- binder.registerCustomEditor(Date.class, editor);
|
65
|
|
- }
|
66
|
|
- @Override
|
67
|
|
- public ResponseBean iBuildingDynamicList(Integer pageNum, Integer pageSize, String name, String buildingId,Integer cityId) {
|
68
|
|
- Page<TaBuildingDynamic> page = new Page<>();
|
69
|
|
- page.setSize(pageSize == null ? 10 : pageSize);
|
70
|
|
- page.setCurrent(pageNum == null ? 1 : pageNum);
|
71
|
|
-
|
72
|
|
- IPage<TaBuildingDynamic> buildingDynamic = buildingDynamicMapper.buildingDynamicList(page, name, buildingId,cityId);
|
73
|
|
- List<TaBuildingDynamic> buildingDynamicList = buildingDynamic.getRecords();
|
74
|
|
- for (TaBuildingDynamic taBuildingDynamic:buildingDynamicList){
|
75
|
|
- QueryWrapper<TaActivityDynamicEnlist> taActivityDynamicEnlist= new QueryWrapper<>();
|
76
|
|
- taActivityDynamicEnlist.eq("dynamic_id",taBuildingDynamic.getDynamicId());
|
77
|
|
- taActivityDynamicEnlist.eq("building_id",taBuildingDynamic.getBuildingId());
|
78
|
|
- int singCount= taActivityDynamicEnlistMapper.selectCount(taActivityDynamicEnlist);
|
79
|
|
- taBuildingDynamic.setCount(singCount);
|
80
|
|
- }
|
81
|
|
-
|
82
|
|
- HashMap hashMap= new HashMap<>();
|
83
|
|
- hashMap.put("list",buildingDynamicList);
|
84
|
|
- hashMap.put("total",buildingDynamic.getTotal());
|
85
|
|
- hashMap.put("pageNum",buildingDynamic.getCurrent());
|
86
|
|
- hashMap.put("pageSize",buildingDynamic.getSize());
|
87
|
|
- return ResponseBean.success(hashMap);
|
88
|
|
- }
|
89
|
|
-
|
90
|
|
- @Override
|
91
|
|
- public ResponseBean iBuildingDynamicSelectId(String id) {
|
92
|
|
- TaBuildingDynamic buildingDynamicList= buildingDynamicMapper.iBuildingDynamicSelectId(id);
|
93
|
|
- return ResponseBean.success(buildingDynamicList);
|
94
|
|
- }
|
95
|
|
-
|
96
|
|
- @Override
|
97
|
|
- public ResponseBean getWxBuildingDynamiceList(Integer pageNum, Integer pageSize,String buildingId,String openid) {
|
98
|
|
- Page<TaBuildingDynamic> page = new Page<>();
|
99
|
|
- page.setCurrent(pageNum);
|
100
|
|
- page.setSize(pageSize);
|
101
|
|
-
|
102
|
|
- TaPerson taPerson = taPersonMapper.selectByIdPerson(openid);
|
103
|
|
- if (null == taPerson){
|
104
|
|
- return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
|
105
|
|
- }
|
106
|
|
-
|
107
|
|
- QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
|
108
|
|
- buildingDynamicQueryWrapper.eq(!StringUtils.isEmpty(buildingId),"building_id", buildingId);
|
109
|
|
- buildingDynamicQueryWrapper.eq("status", "1");
|
110
|
|
- buildingDynamicQueryWrapper.orderByDesc("create_date");
|
111
|
|
- IPage<TaBuildingDynamic> buildingDynamicIPage = buildingDynamicMapper.selectPage(page, buildingDynamicQueryWrapper);
|
112
|
|
- List<TaBuildingDynamic> records = buildingDynamicIPage.getRecords();
|
113
|
|
- // 判断换当前列表活动状态—1:进行中(展示活动报名截止时间),2:未开始(展示活动报名时间),3:结束(不展示)
|
114
|
|
- for (TaBuildingDynamic taBuildingDynamic:records){
|
115
|
|
- setExtendInfo(taBuildingDynamic, taPerson);
|
116
|
|
- }
|
117
|
|
- HashMap<String, Object> map = new HashMap<>();
|
118
|
|
- map.put("list", records);
|
119
|
|
- map.put("total", buildingDynamicIPage.getTotal());
|
120
|
|
- map.put("pageNum", buildingDynamicIPage.getCurrent());
|
121
|
|
- map.put("pageSize", buildingDynamicIPage.getSize());
|
122
|
|
- return ResponseBean.success(map);
|
123
|
|
- }
|
124
|
|
-
|
125
|
|
- @Override
|
126
|
|
- public ResponseBean getWxBuildingDynamiceInfo(String dynamicId,String buildingId,String openid) {
|
127
|
|
-
|
128
|
|
- QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
|
129
|
|
- buildingDynamicQueryWrapper.eq("dynamic_id", dynamicId);
|
130
|
|
- buildingDynamicQueryWrapper.eq("status",1);
|
131
|
|
- TaBuildingDynamic tabuildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
|
132
|
|
- // 当前阅读量加1
|
133
|
|
-
|
134
|
|
- buildingDynamicMapper.updateById( tabuildingDynamic.setSaveNum(tabuildingDynamic.getSaveNum()+1));
|
135
|
|
- TaBuildingDynamic buildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
|
136
|
|
- TaPerson taPerson = taPersonMapper.selectByIdPerson(openid);
|
137
|
|
- if (null == taPerson){
|
138
|
|
- return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
|
139
|
|
- }
|
140
|
|
-
|
141
|
|
- setExtendInfo(buildingDynamic, taPerson);
|
142
|
|
-
|
143
|
|
- return ResponseBean.success(buildingDynamic);
|
144
|
|
- }
|
145
|
|
-
|
146
|
|
- @Override
|
147
|
|
- public ResponseBean buildingDynamicAdd(HashMap map) {
|
148
|
|
- TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
|
149
|
|
- Date time = (Date)map.get("publishDate");
|
150
|
|
- Instant instant = time.toInstant();
|
151
|
|
- ZoneId zoneId = ZoneId.systemDefault();
|
152
|
|
- LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
|
153
|
|
-
|
154
|
|
-// buildingDynamic.setDynamicId(idGen.nextId()+"");
|
155
|
|
- buildingDynamic.setBuildingId(map.get("buildingId")+"");
|
156
|
|
- buildingDynamic.setImgUrl((String) map.get("imgUrl"));
|
157
|
|
- buildingDynamic.setDesc(map.get("desc")+"");
|
158
|
|
- buildingDynamic.setUrl(map.get("url")+"");
|
159
|
|
- buildingDynamic.setTitle(map.get("title")+"");
|
160
|
|
- buildingDynamic.setPublishDate(localDateTime);
|
161
|
|
- buildingDynamic.setStatus(1);
|
162
|
|
- buildingDynamic.setCreateDate(LocalDateTime.now());
|
163
|
|
-
|
164
|
|
- buildingDynamicMapper.insertBuildingDynamic(buildingDynamic);
|
165
|
|
- return ResponseBean.success("成功");
|
166
|
|
- }
|
167
|
|
-
|
168
|
|
- @Override
|
169
|
|
- public ResponseBean buildingDynamicDelete(String id) {
|
170
|
|
- TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
|
171
|
|
- buildingDynamic.setDynamicId(id);
|
172
|
|
- buildingDynamic.setStatus(-1);
|
173
|
|
- QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
|
174
|
|
- buildingDynamicQueryWrapper.eq("dynamic_id", id);
|
175
|
|
- buildingDynamicMapper.update(buildingDynamic,buildingDynamicQueryWrapper);
|
176
|
|
- return ResponseBean.success("成功");
|
177
|
|
- }
|
178
|
|
-
|
179
|
|
- @Override
|
180
|
|
- public ResponseBean buildingDynamicUpdate(HashMap<Object, Object> map) {
|
181
|
|
- TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
|
182
|
|
-
|
183
|
|
- Date time = (Date)map.get("publishDate");
|
184
|
|
- Instant instant = time.toInstant();
|
185
|
|
- ZoneId zoneId = ZoneId.systemDefault();
|
186
|
|
- LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
|
187
|
|
-
|
188
|
|
- buildingDynamic.setDynamicId(map.get("dynamicId")+"");
|
189
|
|
- buildingDynamic.setBuildingId(map.get("buildingId")+"");
|
190
|
|
- buildingDynamic.setImgUrl((String) map.get("imgUrl"));
|
191
|
|
- buildingDynamic.setDesc(map.get("desc")+"");
|
192
|
|
- buildingDynamic.setUrl(map.get("url")+"");
|
193
|
|
- buildingDynamic.setTitle(map.get("title")+"");
|
194
|
|
- buildingDynamic.setPublishDate(localDateTime);
|
195
|
|
- buildingDynamic.setStatus(1);
|
196
|
|
- buildingDynamic.setCreateDate(LocalDateTime.now());
|
197
|
|
-
|
198
|
|
- buildingDynamicMapper.buildingDynamicUpdate(buildingDynamic);
|
199
|
|
- return ResponseBean.success("成功");
|
200
|
|
- }
|
201
|
|
-
|
202
|
|
- @Override
|
203
|
|
- public ResponseBean taActivityDynamicEnlistAdd(TaActivityDynamicEnlist taActivityDynamicEnlist) {
|
204
|
|
- ResponseBean responseBean= new ResponseBean<>();
|
205
|
|
- // 查询当前活动属于哪个楼盘
|
206
|
|
- TaBuildingDynamic taBuildingDynamic= buildingDynamicMapper.selectById(taActivityDynamicEnlist.getDynamicId());
|
207
|
|
- // 判断当前活动是否满
|
208
|
|
- QueryWrapper<TaActivityDynamicEnlist> taBuildingDynamicQuery= new QueryWrapper<>();
|
209
|
|
- taBuildingDynamicQuery.eq("dynamic_id",taBuildingDynamic.getDynamicId());
|
210
|
|
- int contActivity = taActivityDynamicEnlistMapper.selectCount(taBuildingDynamicQuery);
|
211
|
|
- int personNum= Integer.parseInt(null == taBuildingDynamic.getPersonNum()?"0": taBuildingDynamic.getPersonNum());
|
212
|
|
- // 当报名人数已满时,活动为已结束
|
213
|
|
- if (contActivity >= personNum){
|
214
|
|
- taBuildingDynamic.setIsEnlist("2");
|
215
|
|
- buildingDynamicMapper.updateById(taBuildingDynamic);
|
216
|
|
- responseBean.addError("当前报名人数已满");
|
217
|
|
- return responseBean;
|
218
|
|
- }
|
219
|
|
- // 判断是否报名根据电话号码校验
|
220
|
|
- taBuildingDynamicQuery.eq("phone",taActivityDynamicEnlist.getPhone());
|
221
|
|
- TaActivityDynamicEnlist activityDynamicEnlist = taActivityDynamicEnlistMapper.selectOne(taBuildingDynamicQuery);
|
222
|
|
- if (null !=activityDynamicEnlist){
|
223
|
|
- responseBean.addError("此号码已报名活动");
|
224
|
|
- return responseBean;
|
225
|
|
- }
|
226
|
|
- taActivityDynamicEnlist.setCreateDate(LocalDateTime.now())
|
227
|
|
- .setBuildingId(taBuildingDynamic.getDynamicId());
|
228
|
|
- int state = taActivityDynamicEnlistMapper.insert(taActivityDynamicEnlist);
|
229
|
|
- int joinNum = taBuildingDynamic.getEnlistNum()+1;
|
230
|
|
- taBuildingDynamic.setEnlistNum(joinNum);
|
231
|
|
- buildingDynamicMapper.updateById(taBuildingDynamic);
|
232
|
|
- return ResponseBean.success(state);
|
233
|
|
- }
|
234
|
|
-
|
235
|
|
- @Override
|
236
|
|
- public ResponseBean signList(Page<TaActivityDynamicEnlist> page, String dynamicId) {
|
237
|
|
- List<TaActivityDynamicEnlist> signList= taActivityDynamicEnlistMapper.signList(page,dynamicId);
|
238
|
|
- return ResponseBean.success(signList);
|
239
|
|
- }
|
240
|
|
-
|
241
|
|
- /**
|
242
|
|
- * 根据报名开始时间和结束时间判断当前图标状态
|
243
|
|
- */
|
244
|
|
- private TaBuildingDynamic timeCondition(TaBuildingDynamic taBuildingDynamic){
|
245
|
|
- Long currentTime = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
246
|
|
- if (null == taBuildingDynamic.getEnlistEnd () && null == taBuildingDynamic.getEnlistStart()){
|
247
|
|
- return taBuildingDynamic;
|
248
|
|
- }
|
249
|
|
- // 报名截止时间
|
250
|
|
- Long enlistEnd = taBuildingDynamic.getEnlistEnd ().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
251
|
|
- // 报名开始时间
|
252
|
|
- Long enlistStart = taBuildingDynamic.getEnlistStart().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
253
|
|
- // (1:进行中)当前时间小于报名截止时间,并且报名状态为1
|
254
|
|
- if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistEnd ) {
|
255
|
|
- taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_PROCESSING);
|
256
|
|
- }
|
257
|
|
- //(2:未开始)当前时间是否小于报名时间,并且报名状态为1
|
258
|
|
- if (!"1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistStart){
|
259
|
|
- taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_PREPARE);
|
260
|
|
- }
|
261
|
|
- //(3:结束)当前时间大于报名结束时间,并且报名状态为1
|
262
|
|
- if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime >= enlistEnd){
|
263
|
|
- taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_FINISH);
|
264
|
|
- }
|
265
|
|
- return taBuildingDynamic;
|
266
|
|
- }
|
267
|
|
-
|
268
|
|
-
|
269
|
|
- private void setExtendInfo(TaBuildingDynamic taBuildingDynamic, TaPerson taPerson) {
|
270
|
|
- // 是否已报名
|
271
|
|
- QueryWrapper<TaActivityDynamicEnlist> activityDynamicEnlist = new QueryWrapper<>();
|
272
|
|
- activityDynamicEnlist.eq("personId", taPerson.getPersonId());
|
273
|
|
- activityDynamicEnlist.eq("dynamic_id", taBuildingDynamic.getDynamicId());
|
274
|
|
- TaActivityDynamicEnlist taActivityDynamicEnlistPhone= taActivityDynamicEnlistMapper.selectOne(activityDynamicEnlist);
|
275
|
|
- if (null == taActivityDynamicEnlistPhone){
|
276
|
|
- taBuildingDynamic.setIsSign(1);
|
277
|
|
- } else {
|
278
|
|
- taBuildingDynamic.setIsSign(0);
|
279
|
|
- }
|
280
|
|
-
|
281
|
|
- // 获取报名总数
|
282
|
|
- QueryWrapper<TaActivityDynamicEnlist> taActivityDynamicEnlist = new QueryWrapper<>();
|
283
|
|
- taActivityDynamicEnlist.eq("dynamic_id", taBuildingDynamic.getDynamicId());
|
284
|
|
- taActivityDynamicEnlist.eq("building_id", taBuildingDynamic.getBuildingId());
|
285
|
|
- int applyCount= taActivityDynamicEnlistMapper.selectCount(taActivityDynamicEnlist);
|
286
|
|
- taBuildingDynamic.setCount(applyCount);
|
287
|
|
-
|
288
|
|
- // 是否收藏
|
289
|
|
- TaSave taSave = iTaSaveService.getInfoBy(taPerson.getPersonId(), CommConstant.FAVOR_ACTIVITY, taBuildingDynamic.getDynamicId());
|
290
|
|
- if (null == taSave) {
|
291
|
|
- taBuildingDynamic.setIsSaved(0);
|
292
|
|
- } else {
|
293
|
|
- taBuildingDynamic.setIsSaved(1);
|
294
|
|
- }
|
295
|
|
-
|
296
|
|
- timeCondition(taBuildingDynamic);
|
297
|
|
- }
|
298
|
|
-}
|
|
1
|
+package com.huiju.estateagents.service.impl;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
5
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
6
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
7
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
8
|
+import com.huiju.estateagents.base.ResponseBean;
|
|
9
|
+import com.huiju.estateagents.common.CommConstant;
|
|
10
|
+import com.huiju.estateagents.common.StringUtils;
|
|
11
|
+import com.huiju.estateagents.entity.*;
|
|
12
|
+import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
|
|
13
|
+import com.huiju.estateagents.mapper.TaBuildingDynamicMapper;
|
|
14
|
+import com.huiju.estateagents.mapper.TaBuildingMapper;
|
|
15
|
+import com.huiju.estateagents.mapper.TaPersonMapper;
|
|
16
|
+import com.huiju.estateagents.service.ITaBuildingDynamicService;
|
|
17
|
+import com.huiju.estateagents.service.ITaSaveService;
|
|
18
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
19
|
+import org.springframework.beans.propertyeditors.CustomDateEditor;
|
|
20
|
+import org.springframework.stereotype.Service;
|
|
21
|
+import org.springframework.web.bind.ServletRequestDataBinder;
|
|
22
|
+
|
|
23
|
+import javax.servlet.http.HttpServletRequest;
|
|
24
|
+import java.text.DateFormat;
|
|
25
|
+import java.text.SimpleDateFormat;
|
|
26
|
+import java.time.Instant;
|
|
27
|
+import java.time.LocalDateTime;
|
|
28
|
+import java.time.ZoneId;
|
|
29
|
+import java.time.ZoneOffset;
|
|
30
|
+import java.util.Date;
|
|
31
|
+import java.util.HashMap;
|
|
32
|
+import java.util.List;
|
|
33
|
+
|
|
34
|
+/**
|
|
35
|
+ * <p>
|
|
36
|
+ * 项目动态表 服务实现类
|
|
37
|
+ * </p>
|
|
38
|
+ *
|
|
39
|
+ * @author jobob
|
|
40
|
+ * @since 2019-03-21
|
|
41
|
+ */
|
|
42
|
+@Service
|
|
43
|
+public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicMapper, TaBuildingDynamic> implements ITaBuildingDynamicService {
|
|
44
|
+
|
|
45
|
+ @Autowired
|
|
46
|
+ private TaBuildingDynamicMapper buildingDynamicMapper;
|
|
47
|
+
|
|
48
|
+ @Autowired
|
|
49
|
+ private TaBuildingMapper buildingMapper;
|
|
50
|
+
|
|
51
|
+ @Autowired
|
|
52
|
+ private TaActivityDynamicEnlistMapper taActivityDynamicEnlistMapper;
|
|
53
|
+
|
|
54
|
+ @Autowired
|
|
55
|
+ private TaPersonMapper taPersonMapper;
|
|
56
|
+
|
|
57
|
+ @Autowired
|
|
58
|
+ private ITaSaveService iTaSaveService;
|
|
59
|
+
|
|
60
|
+ protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
|
|
61
|
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
62
|
+ CustomDateEditor editor = new CustomDateEditor(df, true);//true表示允许为空,false反之
|
|
63
|
+ binder.registerCustomEditor(Date.class, editor);
|
|
64
|
+ }
|
|
65
|
+ @Override
|
|
66
|
+ public ResponseBean iBuildingDynamicList(Integer pageNum, Integer pageSize, String name, String buildingId,Integer cityId) {
|
|
67
|
+ Page<TaBuildingDynamic> page = new Page<>();
|
|
68
|
+ page.setSize(pageSize == null ? 10 : pageSize);
|
|
69
|
+ page.setCurrent(pageNum == null ? 1 : pageNum);
|
|
70
|
+
|
|
71
|
+ IPage<TaBuildingDynamic> buildingDynamic = buildingDynamicMapper.buildingDynamicList(page, name, buildingId,cityId);
|
|
72
|
+ List<TaBuildingDynamic> buildingDynamicList = buildingDynamic.getRecords();
|
|
73
|
+ for (TaBuildingDynamic taBuildingDynamic:buildingDynamicList){
|
|
74
|
+ QueryWrapper<TaActivityDynamicEnlist> taActivityDynamicEnlist= new QueryWrapper<>();
|
|
75
|
+ taActivityDynamicEnlist.eq("dynamic_id",taBuildingDynamic.getDynamicId());
|
|
76
|
+ taActivityDynamicEnlist.eq("building_id",taBuildingDynamic.getBuildingId());
|
|
77
|
+ int singCount= taActivityDynamicEnlistMapper.selectCount(taActivityDynamicEnlist);
|
|
78
|
+ taBuildingDynamic.setCount(singCount);
|
|
79
|
+ }
|
|
80
|
+
|
|
81
|
+ HashMap hashMap= new HashMap<>();
|
|
82
|
+ hashMap.put("list",buildingDynamicList);
|
|
83
|
+ hashMap.put("total",buildingDynamic.getTotal());
|
|
84
|
+ hashMap.put("pageNum",buildingDynamic.getCurrent());
|
|
85
|
+ hashMap.put("pageSize",buildingDynamic.getSize());
|
|
86
|
+ return ResponseBean.success(hashMap);
|
|
87
|
+ }
|
|
88
|
+
|
|
89
|
+ @Override
|
|
90
|
+ public ResponseBean iBuildingDynamicSelectId(String id) {
|
|
91
|
+ TaBuildingDynamic buildingDynamicList= buildingDynamicMapper.iBuildingDynamicSelectId(id);
|
|
92
|
+ return ResponseBean.success(buildingDynamicList);
|
|
93
|
+ }
|
|
94
|
+
|
|
95
|
+ @Override
|
|
96
|
+ public ResponseBean getWxBuildingDynamiceList(Integer pageNum, Integer pageSize,String buildingId,String openid) {
|
|
97
|
+ Page<TaBuildingDynamic> page = new Page<>();
|
|
98
|
+ page.setCurrent(pageNum);
|
|
99
|
+ page.setSize(pageSize);
|
|
100
|
+
|
|
101
|
+ TaPerson taPerson = taPersonMapper.selectByIdPerson(openid);
|
|
102
|
+ if (null == taPerson){
|
|
103
|
+ return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
|
|
104
|
+ }
|
|
105
|
+
|
|
106
|
+ QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
|
|
107
|
+ buildingDynamicQueryWrapper.eq(!StringUtils.isEmpty(buildingId),"building_id", buildingId);
|
|
108
|
+ buildingDynamicQueryWrapper.eq("status", "1");
|
|
109
|
+ buildingDynamicQueryWrapper.orderByDesc("create_date");
|
|
110
|
+ IPage<TaBuildingDynamic> buildingDynamicIPage = buildingDynamicMapper.selectPage(page, buildingDynamicQueryWrapper);
|
|
111
|
+ List<TaBuildingDynamic> records = buildingDynamicIPage.getRecords();
|
|
112
|
+ // 判断换当前列表活动状态—1:进行中(展示活动报名截止时间),2:未开始(展示活动报名时间),3:结束(不展示)
|
|
113
|
+ for (TaBuildingDynamic taBuildingDynamic:records){
|
|
114
|
+ setExtendInfo(taBuildingDynamic, taPerson);
|
|
115
|
+ }
|
|
116
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
117
|
+ map.put("list", records);
|
|
118
|
+ map.put("total", buildingDynamicIPage.getTotal());
|
|
119
|
+ map.put("pageNum", buildingDynamicIPage.getCurrent());
|
|
120
|
+ map.put("pageSize", buildingDynamicIPage.getSize());
|
|
121
|
+ return ResponseBean.success(map);
|
|
122
|
+ }
|
|
123
|
+
|
|
124
|
+ @Override
|
|
125
|
+ public ResponseBean getWxBuildingDynamiceInfo(String dynamicId,String buildingId,String openid) {
|
|
126
|
+
|
|
127
|
+ QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
|
|
128
|
+ buildingDynamicQueryWrapper.eq("dynamic_id", dynamicId);
|
|
129
|
+ buildingDynamicQueryWrapper.eq("status",1);
|
|
130
|
+ TaBuildingDynamic tabuildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
|
|
131
|
+ // 当前阅读量加1
|
|
132
|
+ Integer saveNum = tabuildingDynamic.getSaveNum() == null ? 1:tabuildingDynamic.getSaveNum()+1;
|
|
133
|
+ tabuildingDynamic.setSaveNum(saveNum);
|
|
134
|
+ buildingDynamicMapper.updateById(tabuildingDynamic);
|
|
135
|
+ TaBuildingDynamic buildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
|
|
136
|
+ TaPerson taPerson = taPersonMapper.selectByIdPerson(openid);
|
|
137
|
+ if (null == taPerson){
|
|
138
|
+ return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
|
|
139
|
+ }
|
|
140
|
+
|
|
141
|
+ setExtendInfo(buildingDynamic, taPerson);
|
|
142
|
+
|
|
143
|
+ return ResponseBean.success(buildingDynamic);
|
|
144
|
+ }
|
|
145
|
+
|
|
146
|
+ @Override
|
|
147
|
+ public ResponseBean buildingDynamicAdd(HashMap map) {
|
|
148
|
+ TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
|
|
149
|
+ Date time = (Date)map.get("publishDate");
|
|
150
|
+ Instant instant = time.toInstant();
|
|
151
|
+ ZoneId zoneId = ZoneId.systemDefault();
|
|
152
|
+ LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
|
|
153
|
+
|
|
154
|
+// buildingDynamic.setDynamicId(idGen.nextId()+"");
|
|
155
|
+ buildingDynamic.setBuildingId(map.get("buildingId")+"");
|
|
156
|
+ buildingDynamic.setImgUrl((String) map.get("imgUrl"));
|
|
157
|
+ buildingDynamic.setDesc(map.get("desc")+"");
|
|
158
|
+ buildingDynamic.setUrl(map.get("url")+"");
|
|
159
|
+ buildingDynamic.setTitle(map.get("title")+"");
|
|
160
|
+ buildingDynamic.setPublishDate(localDateTime);
|
|
161
|
+ buildingDynamic.setStatus(1);
|
|
162
|
+ buildingDynamic.setCreateDate(LocalDateTime.now());
|
|
163
|
+
|
|
164
|
+ buildingDynamicMapper.insertBuildingDynamic(buildingDynamic);
|
|
165
|
+ return ResponseBean.success("成功");
|
|
166
|
+ }
|
|
167
|
+
|
|
168
|
+ @Override
|
|
169
|
+ public ResponseBean buildingDynamicDelete(String id) {
|
|
170
|
+ TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
|
|
171
|
+ buildingDynamic.setDynamicId(id);
|
|
172
|
+ buildingDynamic.setStatus(-1);
|
|
173
|
+ QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
|
|
174
|
+ buildingDynamicQueryWrapper.eq("dynamic_id", id);
|
|
175
|
+ buildingDynamicMapper.update(buildingDynamic,buildingDynamicQueryWrapper);
|
|
176
|
+ return ResponseBean.success("成功");
|
|
177
|
+ }
|
|
178
|
+
|
|
179
|
+ @Override
|
|
180
|
+ public ResponseBean buildingDynamicUpdate(HashMap<Object, Object> map) {
|
|
181
|
+ TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
|
|
182
|
+
|
|
183
|
+ Date time = (Date)map.get("publishDate");
|
|
184
|
+ Instant instant = time.toInstant();
|
|
185
|
+ ZoneId zoneId = ZoneId.systemDefault();
|
|
186
|
+ LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
|
|
187
|
+
|
|
188
|
+ buildingDynamic.setDynamicId(map.get("dynamicId")+"");
|
|
189
|
+ buildingDynamic.setBuildingId(map.get("buildingId")+"");
|
|
190
|
+ buildingDynamic.setImgUrl((String) map.get("imgUrl"));
|
|
191
|
+ buildingDynamic.setDesc(map.get("desc")+"");
|
|
192
|
+ buildingDynamic.setUrl(map.get("url")+"");
|
|
193
|
+ buildingDynamic.setTitle(map.get("title")+"");
|
|
194
|
+ buildingDynamic.setPublishDate(localDateTime);
|
|
195
|
+ buildingDynamic.setStatus(1);
|
|
196
|
+ buildingDynamic.setCreateDate(LocalDateTime.now());
|
|
197
|
+
|
|
198
|
+ buildingDynamicMapper.buildingDynamicUpdate(buildingDynamic);
|
|
199
|
+ return ResponseBean.success("成功");
|
|
200
|
+ }
|
|
201
|
+
|
|
202
|
+ @Override
|
|
203
|
+ public ResponseBean taActivityDynamicEnlistAdd(TaActivityDynamicEnlist taActivityDynamicEnlist) {
|
|
204
|
+ ResponseBean responseBean= new ResponseBean<>();
|
|
205
|
+ // 查询当前活动属于哪个楼盘
|
|
206
|
+ TaBuildingDynamic taBuildingDynamic= buildingDynamicMapper.selectById(taActivityDynamicEnlist.getDynamicId());
|
|
207
|
+ // 判断当前活动是否满
|
|
208
|
+ QueryWrapper<TaActivityDynamicEnlist> taBuildingDynamicQuery= new QueryWrapper<>();
|
|
209
|
+ taBuildingDynamicQuery.eq("dynamic_id",taBuildingDynamic.getDynamicId());
|
|
210
|
+ int contActivity = taActivityDynamicEnlistMapper.selectCount(taBuildingDynamicQuery);
|
|
211
|
+ int personNum= Integer.parseInt(null == taBuildingDynamic.getPersonNum()?"0": taBuildingDynamic.getPersonNum());
|
|
212
|
+ // 当报名人数已满时,活动为已结束
|
|
213
|
+ if (contActivity >= personNum){
|
|
214
|
+ taBuildingDynamic.setIsEnlist("2");
|
|
215
|
+ buildingDynamicMapper.updateById(taBuildingDynamic);
|
|
216
|
+ responseBean.addError("当前报名人数已满");
|
|
217
|
+ return responseBean;
|
|
218
|
+ }
|
|
219
|
+ // 判断是否报名根据电话号码校验
|
|
220
|
+ taBuildingDynamicQuery.eq("phone",taActivityDynamicEnlist.getPhone());
|
|
221
|
+ TaActivityDynamicEnlist activityDynamicEnlist = taActivityDynamicEnlistMapper.selectOne(taBuildingDynamicQuery);
|
|
222
|
+ if (null !=activityDynamicEnlist){
|
|
223
|
+ responseBean.addError("此号码已报名活动");
|
|
224
|
+ return responseBean;
|
|
225
|
+ }
|
|
226
|
+ taActivityDynamicEnlist.setCreateDate(LocalDateTime.now())
|
|
227
|
+ .setBuildingId(taBuildingDynamic.getDynamicId());
|
|
228
|
+ int state = taActivityDynamicEnlistMapper.insert(taActivityDynamicEnlist);
|
|
229
|
+ int joinNum = taBuildingDynamic.getEnlistNum() == null ? 1:taBuildingDynamic.getEnlistNum()+1;
|
|
230
|
+ taBuildingDynamic.setEnlistNum(joinNum);
|
|
231
|
+ buildingDynamicMapper.updateById(taBuildingDynamic);
|
|
232
|
+ return ResponseBean.success(state);
|
|
233
|
+ }
|
|
234
|
+
|
|
235
|
+ @Override
|
|
236
|
+ public ResponseBean signList(Page<TaActivityDynamicEnlist> page, String dynamicId) {
|
|
237
|
+ List<TaActivityDynamicEnlist> signList= taActivityDynamicEnlistMapper.signList(page,dynamicId);
|
|
238
|
+ return ResponseBean.success(signList);
|
|
239
|
+ }
|
|
240
|
+
|
|
241
|
+ /**
|
|
242
|
+ * 根据报名开始时间和结束时间判断当前图标状态
|
|
243
|
+ */
|
|
244
|
+ private TaBuildingDynamic timeCondition(TaBuildingDynamic taBuildingDynamic){
|
|
245
|
+ Long currentTime = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
|
246
|
+ if (null == taBuildingDynamic.getEnlistEnd () && null == taBuildingDynamic.getEnlistStart()){
|
|
247
|
+ return taBuildingDynamic;
|
|
248
|
+ }
|
|
249
|
+ // 报名截止时间
|
|
250
|
+ Long enlistEnd = taBuildingDynamic.getEnlistEnd ().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
|
251
|
+ // 报名开始时间
|
|
252
|
+ Long enlistStart = taBuildingDynamic.getEnlistStart().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
|
253
|
+ // (1:进行中)当前时间小于报名截止时间,并且报名状态为1
|
|
254
|
+ if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistEnd ) {
|
|
255
|
+ taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_PROCESSING);
|
|
256
|
+ }
|
|
257
|
+ //(2:未开始)当前时间是否小于报名时间,并且报名状态为1
|
|
258
|
+ if (!"1".equals(taBuildingDynamic.getIsEnlist()) && currentTime <= enlistStart){
|
|
259
|
+ taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_PREPARE);
|
|
260
|
+ }
|
|
261
|
+ //(3:结束)当前时间大于报名结束时间,并且报名状态为1
|
|
262
|
+ if ("1".equals(taBuildingDynamic.getIsEnlist()) && currentTime >= enlistEnd){
|
|
263
|
+ taBuildingDynamic.setActivityCondition(CommConstant.ACTIVITY_CONDITION_FINISH);
|
|
264
|
+ }
|
|
265
|
+ return taBuildingDynamic;
|
|
266
|
+ }
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+ private void setExtendInfo(TaBuildingDynamic taBuildingDynamic, TaPerson taPerson) {
|
|
270
|
+ // 是否已报名
|
|
271
|
+ QueryWrapper<TaActivityDynamicEnlist> activityDynamicEnlist = new QueryWrapper<>();
|
|
272
|
+ activityDynamicEnlist.eq("personId", taPerson.getPersonId());
|
|
273
|
+ activityDynamicEnlist.eq("dynamic_id", taBuildingDynamic.getDynamicId());
|
|
274
|
+ TaActivityDynamicEnlist taActivityDynamicEnlistPhone= taActivityDynamicEnlistMapper.selectOne(activityDynamicEnlist);
|
|
275
|
+ if (null == taActivityDynamicEnlistPhone){
|
|
276
|
+ taBuildingDynamic.setIsSign(1);
|
|
277
|
+ } else {
|
|
278
|
+ taBuildingDynamic.setIsSign(0);
|
|
279
|
+ }
|
|
280
|
+
|
|
281
|
+ // 获取报名总数
|
|
282
|
+ QueryWrapper<TaActivityDynamicEnlist> taActivityDynamicEnlist = new QueryWrapper<>();
|
|
283
|
+ taActivityDynamicEnlist.eq("dynamic_id", taBuildingDynamic.getDynamicId());
|
|
284
|
+ taActivityDynamicEnlist.eq("building_id", taBuildingDynamic.getBuildingId());
|
|
285
|
+ int applyCount= taActivityDynamicEnlistMapper.selectCount(taActivityDynamicEnlist);
|
|
286
|
+ taBuildingDynamic.setCount(applyCount);
|
|
287
|
+
|
|
288
|
+ // 是否收藏
|
|
289
|
+ TaSave taSave = iTaSaveService.getInfoBy(taPerson.getPersonId(), CommConstant.FAVOR_ACTIVITY, taBuildingDynamic.getDynamicId());
|
|
290
|
+ if (null == taSave) {
|
|
291
|
+ taBuildingDynamic.setIsSaved(0);
|
|
292
|
+ } else {
|
|
293
|
+ taBuildingDynamic.setIsSaved(1);
|
|
294
|
+ }
|
|
295
|
+
|
|
296
|
+ timeCondition(taBuildingDynamic);
|
|
297
|
+ }
|
|
298
|
+}
|