Quellcode durchsuchen

Merge branch 'dev'

weichaochao vor 5 Jahren
Ursprung
Commit
c922d7d28f
44 geänderte Dateien mit 1765 neuen und 274 gelöschten Zeilen
  1. 1
    1
      pom.xml
  2. 91
    85
      src/main/java/com/huiju/estateagents/base/BaseController.java
  3. 28
    0
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  4. 6
    1
      src/main/java/com/huiju/estateagents/controller/TaHousingResourcesController.java
  5. 268
    0
      src/main/java/com/huiju/estateagents/controller/TaLiveActivityController.java
  6. 121
    108
      src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java
  7. 41
    11
      src/main/java/com/huiju/estateagents/controller/TaSalesBatchController.java
  8. 31
    9
      src/main/java/com/huiju/estateagents/controller/TaShareController.java
  9. 24
    0
      src/main/java/com/huiju/estateagents/controller/TaSharePersonFromController.java
  10. 144
    0
      src/main/java/com/huiju/estateagents/controller/TdLiveDictController.java
  11. 6
    0
      src/main/java/com/huiju/estateagents/entity/TaBuilding.java
  12. 2
    0
      src/main/java/com/huiju/estateagents/entity/TaConsultantInfo.java
  13. 170
    0
      src/main/java/com/huiju/estateagents/entity/TaLiveActivity.java
  14. 12
    0
      src/main/java/com/huiju/estateagents/entity/TaShare.java
  15. 3
    0
      src/main/java/com/huiju/estateagents/entity/TaSharePersonFrom.java
  16. 46
    0
      src/main/java/com/huiju/estateagents/entity/TdLiveDict.java
  17. 1
    1
      src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java
  18. 43
    0
      src/main/java/com/huiju/estateagents/mapper/TaLiveActivityMapper.java
  19. 2
    1
      src/main/java/com/huiju/estateagents/mapper/TaSalesBatchMapper.java
  20. 2
    0
      src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java
  21. 24
    0
      src/main/java/com/huiju/estateagents/mapper/TaSharePersonFromMapper.java
  22. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TdLiveDictMapper.java
  23. 4
    2
      src/main/java/com/huiju/estateagents/service/IMiniAppService.java
  24. 63
    0
      src/main/java/com/huiju/estateagents/service/ITaLiveActivityService.java
  25. 2
    2
      src/main/java/com/huiju/estateagents/service/ITaSalesBatchService.java
  26. 2
    0
      src/main/java/com/huiju/estateagents/service/ITaSharePersonFromService.java
  27. 2
    0
      src/main/java/com/huiju/estateagents/service/ITaShareService.java
  28. 16
    0
      src/main/java/com/huiju/estateagents/service/ITdLiveDictService.java
  29. 55
    11
      src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java
  30. 31
    1
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java
  31. 189
    0
      src/main/java/com/huiju/estateagents/service/impl/TaLiveActivityServiceImpl.java
  32. 103
    31
      src/main/java/com/huiju/estateagents/service/impl/TaPreselectionRecordServiceImpl.java
  33. 12
    4
      src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java
  34. 16
    0
      src/main/java/com/huiju/estateagents/service/impl/TaSharePersonFromServiceImpl.java
  35. 20
    4
      src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java
  36. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TdLiveDictServiceImpl.java
  37. 9
    0
      src/main/resources/mapper/Activity.xml
  38. 51
    0
      src/main/resources/mapper/TaLiveActivityMapper.xml
  39. 23
    0
      src/main/resources/mapper/TaPersonVisitRecordMapper.xml
  40. 7
    1
      src/main/resources/mapper/TaSalesBatchMapper.xml
  41. 30
    0
      src/main/resources/mapper/TaShareMapper.xml
  42. 20
    0
      src/main/resources/mapper/TaSharePersonFromMapper.xml
  43. 1
    1
      src/main/resources/mapper/TaUserMapper.xml
  44. 5
    0
      src/main/resources/mapper/TdLiveDictMapper.xml

+ 1
- 1
pom.xml Datei anzeigen

@@ -10,7 +10,7 @@
10 10
 	</parent>
11 11
 	<groupId>com.huiju</groupId>
12 12
 	<artifactId>estateagents</artifactId>
13
-	<version>v3.5.10</version>
13
+	<version>v3.5.11</version>
14 14
 	<name>estateages</name>
15 15
 	<description>置业经纪人</description>
16 16
 

+ 91
- 85
src/main/java/com/huiju/estateagents/base/BaseController.java Datei anzeigen

@@ -18,89 +18,95 @@ import java.util.Map;
18 18
  * @date 2018-12-18
19 19
  */
20 20
 public class BaseController {
21
-	@Autowired
22
-	private ITaUserService taUserService;
23
-
24
-	@Autowired
25
-	private ITaPersonBuildingService taPersonBuildingService;
26
-
27
-	/**
28
-	 * 获取orgId
29
-	 * @param request
30
-	 * @return
31
-	 */
32
-	public Integer getOrgId(HttpServletRequest request){
33
-		
34
-		Map map = JWTUtils.getUserIdAndOrgId(request);
35
-		if (null != map && null != map.get("orgId")){
36
-			return Integer.valueOf(map.get("orgId").toString());
37
-		}
38
-		
39
-		return null;
40
-	}
41
-
42
-	public Integer getChannelId(HttpServletRequest request){
43
-
44
-		Map map = JWTUtils.getUserIdAndOrgId(request);
45
-		if (null != map && null != map.get("channelId")){
46
-			return Integer.valueOf(map.get("channelId").toString());
47
-		}
48
-
49
-		return null;
50
-	}
51
-
52
-	public String getChannelUserName(HttpServletRequest request){
53
-
54
-		Map map = JWTUtils.getUserIdAndOrgId(request);
55
-		if (null != map && null != map.get("userName")){
56
-			return map.get("userName").toString();
57
-		}
58
-
59
-		return null;
60
-	}
61
-
62
-	public String getOpenId(HttpServletRequest request){
63
-
64
-		Map map = JWTUtils.getUserIdAndOrgId(request);
65
-		if (null != map && null != map.get("openId")){
66
-			return map.get("openId").toString();
67
-		}
68
-
69
-		return null;
70
-	}
71
-
72
-	public String getPersonId(HttpServletRequest request){
73
-
74
-		Map map = JWTUtils.getUserIdAndOrgId(request);
75
-		if (null != map && null != map.get("personId")){
76
-			return map.get("personId").toString();
77
-		}
78
-
79
-		return null;
80
-	}
81
-	/**
82
-	 * 获取orgId
83
-	 * @param request
84
-	 * @return
85
-	 */
86
-	public Integer getUserId(HttpServletRequest request){
87
-		
88
-		Map map = JWTUtils.getUserIdAndOrgId(request);
89
-		if (null != map && null != map.get("userId")){
90
-			return Integer.valueOf(map.get("userId").toString());
91
-		}
92
-		
93
-		return null;
94
-	}
95
-
96
-	public List<TaPersonBuilding> getTaPersonBuildingListByUserId(HttpServletRequest request) {
97
-		TaUser taUser = taUserService.getById(getUserId(request));
98
-		QueryWrapper<TaPersonBuilding> taPersonBuildingQueryWrapper = new QueryWrapper<>();
99
-		taPersonBuildingQueryWrapper.eq("user_id",taUser.getUserId());
100
-		List<TaPersonBuilding> taPersonBuildingList = taPersonBuildingService.list(taPersonBuildingQueryWrapper);
101
-		if (null != taUser.getIsAdmin() && taUser.getIsAdmin()){
102
-			taPersonBuildingList = new ArrayList<>();
103
-		}
104
-		return taPersonBuildingList;
105
-	}
21
+    @Autowired
22
+    private ITaUserService taUserService;
23
+
24
+    @Autowired
25
+    private ITaPersonBuildingService taPersonBuildingService;
26
+
27
+    /**
28
+     * 获取orgId
29
+     *
30
+     * @param request
31
+     * @return
32
+     */
33
+    public Integer getOrgId(HttpServletRequest request) {
34
+
35
+        Map map = JWTUtils.getUserIdAndOrgId(request);
36
+        if (null != map && null != map.get("orgId")) {
37
+            return Integer.valueOf(map.get("orgId").toString());
38
+        }
39
+
40
+        return null;
41
+    }
42
+
43
+    public Integer getChannelId(HttpServletRequest request) {
44
+
45
+        Map map = JWTUtils.getUserIdAndOrgId(request);
46
+        if (null != map && null != map.get("channelId")) {
47
+            return Integer.valueOf(map.get("channelId").toString());
48
+        }
49
+
50
+        return null;
51
+    }
52
+
53
+    public String getChannelUserName(HttpServletRequest request) {
54
+
55
+        Map map = JWTUtils.getUserIdAndOrgId(request);
56
+        if (null != map && null != map.get("userName")) {
57
+            return map.get("userName").toString();
58
+        }
59
+
60
+        return null;
61
+    }
62
+
63
+    public String getOpenId(HttpServletRequest request) {
64
+
65
+        Map map = JWTUtils.getUserIdAndOrgId(request);
66
+        if (null != map && null != map.get("openId")) {
67
+            return map.get("openId").toString();
68
+        }
69
+
70
+        return null;
71
+    }
72
+
73
+    public String getPersonId(HttpServletRequest request) {
74
+
75
+        Map map = JWTUtils.getUserIdAndOrgId(request);
76
+        if (null != map && null != map.get("personId")) {
77
+            return map.get("personId").toString();
78
+        }
79
+
80
+        return null;
81
+    }
82
+
83
+    /**
84
+     * 获取orgId
85
+     *
86
+     * @param request
87
+     * @return
88
+     */
89
+    public Integer getUserId(HttpServletRequest request) {
90
+
91
+        Map map = JWTUtils.getUserIdAndOrgId(request);
92
+        if (null != map && null != map.get("userId")) {
93
+            return Integer.valueOf(map.get("userId").toString());
94
+        }
95
+
96
+        return null;
97
+    }
98
+
99
+    public List<TaPersonBuilding> getTaPersonBuildingListByUserId(HttpServletRequest request) {
100
+        TaUser taUser = taUserService.getById(getUserId(request));
101
+        if (taUser == null) {
102
+            return null;
103
+        }
104
+        QueryWrapper<TaPersonBuilding> taPersonBuildingQueryWrapper = new QueryWrapper<>();
105
+        taPersonBuildingQueryWrapper.eq("user_id", taUser.getUserId());
106
+        List<TaPersonBuilding> taPersonBuildingList = taPersonBuildingService.list(taPersonBuildingQueryWrapper);
107
+        if (null != taUser.getIsAdmin() && taUser.getIsAdmin()) {
108
+            taPersonBuildingList = new ArrayList<>();
109
+        }
110
+        return taPersonBuildingList;
111
+    }
106 112
 }

+ 28
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Datei anzeigen

@@ -440,6 +440,7 @@ public class CommConstant {
440 440
 	public static final Object GROUP_ACTIVITY = "groupActivity";
441 441
 	public static final String TARGET_TYPE_H5 = "H5";
442 442
     public static final String ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/checkin/index\"}";
443
+    public static final String LIVE_ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"onlineSelling/pages/live/index\"}";
443 444
     public static final String DRAINAGE_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/project/h5Page\"}";
444 445
     public static final String HOUSE_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"onlineSelling/pages/houseList/index\"}";
445 446
     
@@ -460,6 +461,12 @@ public class CommConstant {
460 461
      * 必须存在表   td_miniapp_template_type 中
461 462
      */
462 463
     public static final String MESSAGE_CONTENT_OF_GROUP = "group-result";
464
+
465
+    /**
466
+     * 审核通知  预选/认筹
467
+     * 必须存在表   td_miniapp_template_type 中
468
+     */
469
+    public static final String MESSAGE_CONTENT_OF_HOUSE = "house";
463 470
     
464 471
     /**
465 472
      * 活动以结束
@@ -523,6 +530,16 @@ public class CommConstant {
523 530
      */
524 531
     public static final String HOUSE = "house";
525 532
 
533
+    /**
534
+     * 批量销售
535
+     */
536
+    public static final String SALES_BATCH = "salesBatch";
537
+
538
+    /**
539
+     * 直播分享
540
+     */
541
+    public static final String LIVE = "live";
542
+
526 543
     /**
527 544
      * 系统参数  通知消息次时间间隔
528 545
      */
@@ -558,6 +575,12 @@ public class CommConstant {
558 575
      */
559 576
     public static final String LOGIN_TYPE_CHANNEL = "channel";
560 577
 
578
+    /**
579
+     * 登录业务端系统类型
580
+     */
581
+    public static final String LOGIN_TYPE_ADMIN = "admin";
582
+
583
+
561 584
     /**
562 585
      * 登录中心端系统类型
563 586
      */
@@ -609,4 +632,9 @@ public class CommConstant {
609 632
     public static final String SUFFIX_2003 = ".xls";
610 633
     public static final String SUFFIX_2007 = ".xlsx";
611 634
 
635
+    /**
636
+     * 小程序房源详情路径
637
+     */
638
+    public static final String HOUSE_DETAIL_PATH = "onlineSelling/pages/detail/index?id=%s";
639
+
612 640
 }

+ 6
- 1
src/main/java/com/huiju/estateagents/controller/TaHousingResourcesController.java Datei anzeigen

@@ -286,7 +286,12 @@ public class TaHousingResourcesController extends BaseController {
286 286
                                              @RequestParam(value = "personId") String personId) {
287 287
         ResponseBean responseBean = new ResponseBean();
288 288
         try {
289
-            responseBean.addSuccess(iTaHousingResourcesService.getHousingDetailById(personId, houseId));
289
+            TaHousingResourcesPO taHousingResourcesPO = iTaHousingResourcesService.getHousingDetailById(personId, houseId);
290
+            if (taHousingResourcesPO.getStatus() != null && taHousingResourcesPO.getStatus() == CommConstant.STATUS_NORMAL){
291
+                responseBean.addSuccess(taHousingResourcesPO);
292
+                return responseBean;
293
+            }
294
+            responseBean.addError("当前房源已下架");
290 295
         } catch (Exception e) {
291 296
             logger.error("getHousingDetailById -=- {}", e);
292 297
             responseBean.addError(e.getMessage());

+ 268
- 0
src/main/java/com/huiju/estateagents/controller/TaLiveActivityController.java Datei anzeigen

@@ -0,0 +1,268 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.huiju.estateagents.base.BaseController;
6
+import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.CommConstant;
8
+import com.huiju.estateagents.common.StringUtils;
9
+import com.huiju.estateagents.entity.ExtendContent;
10
+import com.huiju.estateagents.entity.TaLiveActivity;
11
+import com.huiju.estateagents.service.IExtendContentService;
12
+import com.huiju.estateagents.service.ITaLiveActivityService;
13
+import org.slf4j.Logger;
14
+import org.slf4j.LoggerFactory;
15
+import org.springframework.beans.factory.annotation.Autowired;
16
+import org.springframework.web.bind.annotation.*;
17
+
18
+import javax.net.ssl.HttpsURLConnection;
19
+import javax.servlet.http.HttpServletRequest;
20
+import java.time.LocalDateTime;
21
+import java.util.ArrayList;
22
+import java.util.List;
23
+
24
+/**
25
+ * <p>
26
+ * 前端控制器
27
+ * </p>
28
+ *
29
+ * @author jobob
30
+ * @since 2020-02-20
31
+ */
32
+@RestController
33
+@RequestMapping("/api")
34
+public class TaLiveActivityController extends BaseController {
35
+
36
+    private final Logger logger = LoggerFactory.getLogger(TaLiveActivityController.class);
37
+
38
+    @Autowired
39
+    public ITaLiveActivityService iTaLiveActivityService;
40
+
41
+    @Autowired
42
+    public IExtendContentService iExtendContentService;
43
+
44
+    /**
45
+     * 分页查询列表
46
+     *
47
+     * @param pageNum
48
+     * @param pageSize
49
+     * @param liveActivityTitle 直播活动标题
50
+     * @param cityId            所属城市
51
+     * @param buildingId        所属楼盘
52
+     * @param liveDetailType    详情类型 0是模板,1是自定义
53
+     * @param status            状态
54
+     * @param request
55
+     * @return
56
+     */
57
+    @RequestMapping(value = "/admin/taLiveActivity", method = RequestMethod.GET)
58
+    public ResponseBean taLiveActivityList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
59
+                                           @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
60
+                                           String liveActivityTitle, String cityId, String buildingId, Integer status,
61
+                                           HttpServletRequest request) {
62
+        ResponseBean responseBean = new ResponseBean();
63
+        try {
64
+            IPage<TaLiveActivity> result = iTaLiveActivityService.listLiveActivityByCondition(pageNum, pageSize, getOrgId(request),
65
+                    liveActivityTitle, cityId, buildingId, status, getTaPersonBuildingListByUserId(request));
66
+            responseBean.addSuccess(result);
67
+
68
+        } catch (Exception e) {
69
+            e.printStackTrace();
70
+            logger.error("taLiveActivityList -=- {}", e.toString());
71
+            responseBean.addError(e.getMessage());
72
+        }
73
+        return responseBean;
74
+    }
75
+
76
+    /**
77
+     * 保存对象
78
+     *
79
+     * @param taLiveActivity 实体对象
80
+     * @return
81
+     */
82
+    @RequestMapping(value = "/admin/taLiveActivity", method = RequestMethod.POST)
83
+    public ResponseBean taLiveActivityAdd(@RequestBody TaLiveActivity taLiveActivity, HttpServletRequest request) {
84
+        ResponseBean responseBean = new ResponseBean();
85
+        try {
86
+            Integer orgId = getOrgId(request);
87
+            Integer userId = getUserId(request);
88
+            taLiveActivity.setOrgId(orgId);
89
+            taLiveActivity.setCreateUser(userId.toString());
90
+            taLiveActivity.setUpdateUser(userId.toString());
91
+            responseBean = iTaLiveActivityService.taLiveActivityAdd(taLiveActivity);
92
+        } catch (Exception e) {
93
+            e.printStackTrace();
94
+            logger.error("taLiveActivityAdd -=- {}", e.toString());
95
+            responseBean.addError(e.getMessage());
96
+        }
97
+        return responseBean;
98
+    }
99
+
100
+    /**
101
+     * 根据id删除对象
102
+     *
103
+     * @param id 实体ID
104
+     */
105
+    @ResponseBody
106
+    @RequestMapping(value = "/admin/delTaLiveActivity", method = RequestMethod.PUT)
107
+    public ResponseBean taLiveActivityDelete(@RequestBody List<TaLiveActivity> taLiveActivity, HttpServletRequest request) {
108
+        ResponseBean responseBean = new ResponseBean();
109
+        try {
110
+            List<Integer> liveActivityIds = new ArrayList<>();
111
+            for (TaLiveActivity activity : taLiveActivity) {
112
+                liveActivityIds.add(activity.getLiveActivityId());
113
+            }
114
+            QueryWrapper<ExtendContent> queryWrapper = new QueryWrapper<>();
115
+            queryWrapper.eq("org_id", getOrgId(request));
116
+            queryWrapper.eq("content_type", CommConstant.LIVE);
117
+            queryWrapper.in("target_id", liveActivityIds);
118
+            List<ExtendContent> list = iExtendContentService.list(queryWrapper);
119
+            list.forEach(e -> {
120
+                e.setStatus(CommConstant.NOT_PUBLISH);
121
+            });
122
+            if (list.size() > 0) {
123
+                iExtendContentService.updateBatchById(list);
124
+            }
125
+
126
+            responseBean = iTaLiveActivityService.delLiveActivityList(getOrgId(request), taLiveActivity);
127
+        } catch (Exception e) {
128
+            e.printStackTrace();
129
+            logger.error("taLiveActivityDelete -=- {}", e.toString());
130
+            responseBean.addError(e.getMessage());
131
+        }
132
+        return responseBean;
133
+    }
134
+
135
+    /**
136
+     * 修改对象
137
+     *
138
+     * @param id             实体ID
139
+     * @param taLiveActivity 实体对象
140
+     * @return
141
+     */
142
+    @RequestMapping(value = "/admin/taLiveActivity/{id}", method = RequestMethod.PUT)
143
+    public ResponseBean taLiveActivityUpdate(@PathVariable Integer id,
144
+                                             @RequestBody TaLiveActivity taLiveActivity, HttpServletRequest request) {
145
+        ResponseBean responseBean = new ResponseBean();
146
+        try {
147
+            taLiveActivity.setLiveActivityId(id);
148
+            taLiveActivity.setUpdateUser(getUserId(request).toString());
149
+            QueryWrapper<ExtendContent> queryWrapper = new QueryWrapper<>();
150
+            queryWrapper.eq("org_id", getOrgId(request));
151
+            queryWrapper.eq("content_type", CommConstant.LIVE);
152
+            queryWrapper.eq("target_id", taLiveActivity.getLiveActivityId());
153
+            List<ExtendContent> list = iExtendContentService.list(queryWrapper);
154
+            if (CommConstant.NOT_PUBLISH.equals(taLiveActivity.getStatus())) {
155
+                list.forEach(e -> {
156
+                    e.setStatus(CommConstant.NOT_PUBLISH);
157
+                });
158
+            }
159
+            if (list.size() > 0) {
160
+                iExtendContentService.updateBatchById(list);
161
+            }
162
+
163
+            if(!StringUtils.isEmpty(taLiveActivity.getLiveRoomParam())){
164
+                taLiveActivity.setLiveAppPath(taLiveActivity.getLiveRoomParam().replace(".html",""));
165
+            }
166
+
167
+            if (iTaLiveActivityService.updateById(taLiveActivity)) {
168
+                responseBean.addSuccess(taLiveActivity);
169
+            } else {
170
+                responseBean.addError("fail");
171
+            }
172
+        } catch (Exception e) {
173
+            e.printStackTrace();
174
+            logger.error("taLiveActivityUpdate -=- {}", e.toString());
175
+            responseBean.addError(e.getMessage());
176
+        }
177
+        return responseBean;
178
+    }
179
+
180
+    /**
181
+     * 根据id查询对象
182
+     *
183
+     * @param id 实体ID
184
+     */
185
+    @RequestMapping(value = "/admin/taLiveActivity/{id}", method = RequestMethod.GET)
186
+    public ResponseBean taLiveActivityGet(@PathVariable Integer id) {
187
+        ResponseBean responseBean = new ResponseBean();
188
+        try {
189
+            responseBean.addSuccess(iTaLiveActivityService.getById(id));
190
+        } catch (Exception e) {
191
+            e.printStackTrace();
192
+            logger.error("taLiveActivityDelete -=- {}", e.toString());
193
+            responseBean.addError(e.getMessage());
194
+        }
195
+        return responseBean;
196
+    }
197
+
198
+    /**
199
+     * 访问量自增
200
+     *
201
+     * @param id
202
+     * @return
203
+     */
204
+    @RequestMapping(value = "/wx/addVisitNum", method = RequestMethod.PUT)
205
+    public ResponseBean addVisitNum(@RequestParam("id") String id) {
206
+        ResponseBean responseBean = new ResponseBean();
207
+        try {
208
+            responseBean = iTaLiveActivityService.addVisitNum(id);
209
+        } catch (Exception e) {
210
+            e.printStackTrace();
211
+            logger.error("addVisitNum -=- {}", e.toString());
212
+            responseBean.addError(e.getMessage());
213
+        }
214
+        return responseBean;
215
+    }
216
+
217
+    /**
218
+     * 获取直播详情
219
+     *
220
+     * @param id
221
+     * @return
222
+     */
223
+    @RequestMapping(value = "/wx/taLiveActivity/{id}", method = RequestMethod.GET)
224
+    public ResponseBean getLiveActivityDetailById(@PathVariable("id") String id, HttpServletRequest request) {
225
+        ResponseBean responseBean = new ResponseBean();
226
+        try {
227
+            responseBean = iTaLiveActivityService.getLiveActivityDetailById(id, getOrgId(request));
228
+        } catch (Exception e) {
229
+            e.printStackTrace();
230
+            logger.error("getLiveActivityDetailById -=- {}", e.toString());
231
+            responseBean.addError(e.getMessage());
232
+        }
233
+        return responseBean;
234
+    }
235
+
236
+    /**
237
+     * 分页查询列表
238
+     *
239
+     * @param pageNum
240
+     * @param pageSize
241
+     * @param liveActivityTitle 直播活动标题
242
+     * @param cityId            所属城市
243
+     * @param buildingId        所属楼盘
244
+     * @param status            状态
245
+     * @param request
246
+     * @return
247
+     */
248
+    @RequestMapping(value = "/wx/taLiveActivity", method = RequestMethod.GET)
249
+    public ResponseBean taLiveActivityListForMiniApp(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
250
+                                                     @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
251
+                                                     String liveActivityTitle, String cityId, String buildingId, Integer status,
252
+                                                     HttpServletRequest request) {
253
+        ResponseBean responseBean = new ResponseBean();
254
+        try {
255
+            status = status == null ? 1 : status;
256
+            Integer orgId = getOrgId(request);
257
+            IPage<TaLiveActivity> result = iTaLiveActivityService.listLiveActivityByCondition(pageNum, pageSize, orgId,
258
+                    liveActivityTitle, cityId, buildingId, status, null);
259
+            responseBean.addSuccess(result);
260
+
261
+        } catch (Exception e) {
262
+            e.printStackTrace();
263
+            logger.error("taLiveActivityListForMiniApp -=- {}", e.toString());
264
+            responseBean.addError(e.getMessage());
265
+        }
266
+        return responseBean;
267
+    }
268
+}

+ 121
- 108
src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java Datei anzeigen

@@ -28,8 +28,8 @@ import java.util.Map;
28 28
 
29 29
 /**
30 30
  * <p>
31
-    *   前端控制器
32
-    * </p>
31
+ * 前端控制器
32
+ * </p>
33 33
  *
34 34
  * @author jobob
35 35
  * @since 2019-07-23
@@ -62,34 +62,36 @@ public class TaPersonVisitRecordController extends BaseController {
62 62
 
63 63
     /**
64 64
      * 分页查询列表
65
+     *
65 66
      * @param pageNum
66 67
      * @param pageSize
67 68
      * @return
68 69
      */
69
-    @RequestMapping(value="/taPersonVisitRecord",method= RequestMethod.GET)
70
-    public ResponseBean taPersonVisitRecordList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
71
-                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
70
+    @RequestMapping(value = "/taPersonVisitRecord", method = RequestMethod.GET)
71
+    public ResponseBean taPersonVisitRecordList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
72
+                                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
72 73
         try {
73 74
             //使用分页插件
74
-		    IPage<TaPersonVisitRecord> pg = new Page<>(pageNum, pageSize);
75
+            IPage<TaPersonVisitRecord> pg = new Page<>(pageNum, pageSize);
75 76
             QueryWrapper<TaPersonVisitRecord> queryWrapper = new QueryWrapper<>();
76 77
             queryWrapper.orderByDesc("create_date");
77 78
 
78 79
             IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.page(pg, queryWrapper);
79 80
             return ResponseBean.success(result);
80
-        }catch (Exception e){
81
-            logger.error("taPersonVisitRecordList -=- {}",e.toString());
82
-            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
81
+        } catch (Exception e) {
82
+            logger.error("taPersonVisitRecordList -=- {}", e.toString());
83
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
83 84
         }
84 85
     }
85 86
 
86 87
     /**
87 88
      * 保存对象--埋点数据保存
89
+     *
88 90
      * @param taPersonVisitRecord 实体对象
89 91
      * @return
90 92
      */
91
-    @RequestMapping(value="/wx/taPersonVisitRecord",method= RequestMethod.POST)
92
-    public ResponseBean taPersonVisitRecordAdd(@RequestBody TaPersonVisitRecord taPersonVisitRecord, HttpServletRequest request){
93
+    @RequestMapping(value = "/wx/taPersonVisitRecord", method = RequestMethod.POST)
94
+    public ResponseBean taPersonVisitRecordAdd(@RequestBody TaPersonVisitRecord taPersonVisitRecord, HttpServletRequest request) {
93 95
         String openid = getOpenId(request);
94 96
         List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
95 97
         if (null == taPersons || taPersons.size() != 1) {
@@ -98,8 +100,8 @@ public class TaPersonVisitRecordController extends BaseController {
98 100
         TaPerson person = taPersons.get(0);
99 101
         taPersonVisitRecord.setActivity(taPersonVisitRecord.getPropertyName());
100 102
         taPersonVisitRecord.setOrgId(String.valueOf(getOrgId(request)));
101
-        Integer eventProperties = taEventPropertiesService.isEventExist(taPersonVisitRecord.getTargetId(),taPersonVisitRecord.getEventType(),taPersonVisitRecord.getActivity(), getOrgId(request));
102
-        if(eventProperties<=0){
103
+        Integer eventProperties = taEventPropertiesService.isEventExist(taPersonVisitRecord.getTargetId(), taPersonVisitRecord.getEventType(), taPersonVisitRecord.getActivity(), getOrgId(request));
104
+        if (eventProperties <= 0) {
103 105
             TaEventProperties taEventProperty = new TaEventProperties();
104 106
             taEventProperty.setBuildingId(taPersonVisitRecord.getTargetId());
105 107
             taEventProperty.setCreateDate(LocalDateTime.now());
@@ -109,21 +111,21 @@ public class TaPersonVisitRecordController extends BaseController {
109 111
             taEventProperty.setBuildingId(taPersonVisitRecord.getBuildingId());
110 112
             taEventProperty.setEventType(taPersonVisitRecord.getEventType());
111 113
             taEventProperty.setOrgId(getOrgId(request));
112
-            if (!taEventPropertiesService.save(taEventProperty)){
113
-                return ResponseBean.error("新增失败",ResponseBean.ERROR_UNAVAILABLE);
114
+            if (!taEventPropertiesService.save(taEventProperty)) {
115
+                return ResponseBean.error("新增失败", ResponseBean.ERROR_UNAVAILABLE);
114 116
             }
115 117
 
116 118
         }
117 119
 
118 120
         taPersonVisitRecord.setPersonId(person.getPersonId());
119 121
         taPersonVisitRecord.setVisitTime(LocalDateTime.now());
120
-        if(!StringUtils.isEmpty(taPersonVisitRecord.getBuildingId())){
122
+        if (!StringUtils.isEmpty(taPersonVisitRecord.getBuildingId())) {
121 123
             QueryWrapper<TaBuildingIntention> intentionQueryWrapper = new QueryWrapper<>();
122
-            intentionQueryWrapper.eq("building_id",taPersonVisitRecord.getBuildingId());
124
+            intentionQueryWrapper.eq("building_id", taPersonVisitRecord.getBuildingId());
123 125
             intentionQueryWrapper.eq("org_id", getOrgId(request));
124
-            intentionQueryWrapper.eq("event_code",taPersonVisitRecord.getEvent());
125
-            List<TaBuildingIntention>list = buildingIntentionService.list(intentionQueryWrapper);
126
-            if (list.size()>0){
126
+            intentionQueryWrapper.eq("event_code", taPersonVisitRecord.getEvent());
127
+            List<TaBuildingIntention> list = buildingIntentionService.list(intentionQueryWrapper);
128
+            if (list.size() > 0) {
127 129
                 TaBuildingIntention buildingIntention = list.get(0);
128 130
                 TaPersonIntentionRecord intentionRecord = new TaPersonIntentionRecord();
129 131
                 TaBuilding building = buildingService.getById(buildingIntention.getBuildingId());
@@ -138,119 +140,123 @@ public class TaPersonVisitRecordController extends BaseController {
138 140
                 intentionRecord.setPersonId(person.getPersonId());
139 141
                 intentionRecord.setPersonName(person.getNickname());
140 142
                 intentionRecord.setStatus(CommConstant.STATUS_NORMAL);
141
-                if (!personIntentionRecordService.save(intentionRecord)){
142
-                    return ResponseBean.error("新增失败",ResponseBean.ERROR_UNAVAILABLE);
143
+                if (!personIntentionRecordService.save(intentionRecord)) {
144
+                    return ResponseBean.error("新增失败", ResponseBean.ERROR_UNAVAILABLE);
143 145
                 }
144 146
             }
145 147
         }
146 148
         try {
147
-            if (iTaPersonVisitRecordService.save(taPersonVisitRecord)){
149
+            if (iTaPersonVisitRecordService.save(taPersonVisitRecord)) {
148 150
                 //清洗埋點數據到新增用戶表--只有进入小程序的时候 start才记录
149
-                if(taPersonVisitRecord.getEvent().equals(CommConstant.BIZ_EVENT_START)){
151
+                if (taPersonVisitRecord.getEvent().equals(CommConstant.BIZ_EVENT_START)) {
150 152
                     iTaPersonFromRecordService.addNewPersonRecordRecord(taPersonVisitRecord);
151 153
                 }
152 154
 
153 155
                 return ResponseBean.success(taPersonVisitRecord);
154
-            }else {
155
-                return ResponseBean.error("保存失败",ResponseBean.ERROR_UNAVAILABLE);
156
+            } else {
157
+                return ResponseBean.error("保存失败", ResponseBean.ERROR_UNAVAILABLE);
156 158
             }
157
-        }catch (Exception e){
158
-            logger.error("taPersonVisitRecordAdd -=- {}",e.toString());
159
-            return ResponseBean.error("系统异常"+e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
159
+        } catch (Exception e) {
160
+            logger.error("taPersonVisitRecordAdd -=- {}", e.toString());
161
+            return ResponseBean.error("系统异常" + e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
160 162
         }
161 163
     }
162 164
 
163 165
     /**
164 166
      * 根据id删除对象
165
-     * @param id  实体ID
167
+     *
168
+     * @param id 实体ID
166 169
      */
167 170
     @ResponseBody
168
-    @RequestMapping(value="/taPersonVisitRecord/{id}", method= RequestMethod.DELETE)
169
-    public ResponseBean taPersonVisitRecordDelete(@PathVariable Integer id){
171
+    @RequestMapping(value = "/taPersonVisitRecord/{id}", method = RequestMethod.DELETE)
172
+    public ResponseBean taPersonVisitRecordDelete(@PathVariable Integer id) {
170 173
         try {
171
-            if(iTaPersonVisitRecordService.removeById(id)){
174
+            if (iTaPersonVisitRecordService.removeById(id)) {
172 175
                 return ResponseBean.success("success");
173
-            }else {
174
-                return ResponseBean.error("删除失败",ResponseBean.ERROR_UNAVAILABLE);
176
+            } else {
177
+                return ResponseBean.error("删除失败", ResponseBean.ERROR_UNAVAILABLE);
175 178
             }
176
-        }catch (Exception e){
177
-            logger.error("taPersonVisitRecordDelete -=- {}",e.toString());
178
-            return ResponseBean.error("保存失败"+e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
179
+        } catch (Exception e) {
180
+            logger.error("taPersonVisitRecordDelete -=- {}", e.toString());
181
+            return ResponseBean.error("保存失败" + e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
179 182
         }
180 183
     }
181 184
 
182 185
     /**
183 186
      * 修改对象
184
-     * @param id  实体ID
187
+     *
188
+     * @param id 实体ID
185 189
      * @return
186 190
      */
187
-    @RequestMapping(value="/wx/taPersonVisitRecord/{id}",method= RequestMethod.PUT)
188
-    public ResponseBean taPersonVisitRecordUpdate(@PathVariable Integer id){
191
+    @RequestMapping(value = "/wx/taPersonVisitRecord/{id}", method = RequestMethod.PUT)
192
+    public ResponseBean taPersonVisitRecordUpdate(@PathVariable Integer id) {
189 193
         TaPersonVisitRecord taPersonVisitRecord = iTaPersonVisitRecordService.getById(id);
190
-        if(null == taPersonVisitRecord){
191
-            return ResponseBean.error("更新失败",ResponseBean.ERROR_UNAVAILABLE);
194
+        if (null == taPersonVisitRecord) {
195
+            return ResponseBean.error("更新失败", ResponseBean.ERROR_UNAVAILABLE);
192 196
         }
193 197
         taPersonVisitRecord.setLeaveTime(LocalDateTime.now());
194 198
         taPersonVisitRecord.setRecordId(id);
195
-        Long duation = taPersonVisitRecord.getLeaveTime().atZone(ZoneOffset.UTC).toEpochSecond()-taPersonVisitRecord.getVisitTime().atZone(ZoneOffset.UTC).toEpochSecond();
199
+        Long duation = taPersonVisitRecord.getLeaveTime().atZone(ZoneOffset.UTC).toEpochSecond() - taPersonVisitRecord.getVisitTime().atZone(ZoneOffset.UTC).toEpochSecond();
196 200
         taPersonVisitRecord.setVisitDuration(duation.intValue());
197 201
         try {
198
-            if (iTaPersonVisitRecordService.updateById(taPersonVisitRecord)){
202
+            if (iTaPersonVisitRecordService.updateById(taPersonVisitRecord)) {
199 203
                 return ResponseBean.success(taPersonVisitRecord);
200
-            }else {
201
-                return ResponseBean.error("更新失败",ResponseBean.ERROR_UNAVAILABLE);
204
+            } else {
205
+                return ResponseBean.error("更新失败", ResponseBean.ERROR_UNAVAILABLE);
202 206
             }
203
-        }catch (Exception e){
204
-            logger.error("taPersonVisitRecordUpdate -=- {}",e.toString());
205
-            return ResponseBean.error("更新失败"+e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
207
+        } catch (Exception e) {
208
+            logger.error("taPersonVisitRecordUpdate -=- {}", e.toString());
209
+            return ResponseBean.error("更新失败" + e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
206 210
         }
207 211
     }
208 212
 
209 213
     /**
210 214
      * 根据id查询对象
211
-     * @param id  实体ID
215
+     *
216
+     * @param id 实体ID
212 217
      */
213
-    @RequestMapping(value="/taPersonVisitRecord/{id}",method= RequestMethod.GET)
214
-    public ResponseBean taPersonVisitRecordGet(@PathVariable Integer id){
218
+    @RequestMapping(value = "/taPersonVisitRecord/{id}", method = RequestMethod.GET)
219
+    public ResponseBean taPersonVisitRecordGet(@PathVariable Integer id) {
215 220
         try {
216 221
             return ResponseBean.success(iTaPersonVisitRecordService.getById(id));
217
-        }catch (Exception e){
218
-            logger.error("taPersonVisitRecordDelete -=- {}",e.toString());
219
-            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
222
+        } catch (Exception e) {
223
+            logger.error("taPersonVisitRecordDelete -=- {}", e.toString());
224
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
220 225
         }
221 226
     }
222 227
 
223 228
     /**
224 229
      * 盘客工具分页获取访问记录
230
+     *
225 231
      * @param pageNumber
226 232
      * @param pageSize
227 233
      * @return
228 234
      */
229
-    @RequestMapping(value="/wx/taPersonVisitRecord",method= RequestMethod.GET)
230
-    public ResponseBean wxPersonVisitRecordList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
231
-                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
232
-                                                @RequestParam(value = "customerId") String customerId){
235
+    @RequestMapping(value = "/wx/taPersonVisitRecord", method = RequestMethod.GET)
236
+    public ResponseBean wxPersonVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
237
+                                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
238
+                                                @RequestParam(value = "customerId") String customerId) {
233 239
         try {
234 240
             //使用分页插件
235 241
             IPage<TaPersonVisitRecord> pg = new Page<>(pageNumber, pageSize);
236 242
             IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getPersonVisitRecordList(pg, customerId);
237 243
             return ResponseBean.success(result);
238
-        }catch (Exception e){
244
+        } catch (Exception e) {
239 245
             e.printStackTrace();
240
-            logger.error("taPersonVisitRecordList -=- {}",e.toString());
241
-            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
246
+            logger.error("taPersonVisitRecordList -=- {}", e.toString());
247
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
242 248
         }
243 249
     }
244 250
 
245
-    @RequestMapping(value="/admin/taDrainageVisitRecord", method = RequestMethod.GET)
246
-    public ResponseBean drainageVisitRecordList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
247
-                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
248
-                                                @RequestParam(value ="activityName",required = false) String activityName,
249
-                                                @RequestParam(value ="buildingId",required = false) String buildingId,
250
-                                                @RequestParam(value ="shareName",required = false) String shareName,
251
-                                                @RequestParam(value ="shareTel",required = false) String shareTel,
252
-                                                @RequestParam(value ="eventType",required = false) String eventType,
253
-                                                @RequestParam(value ="personType",required = false) String personType,
251
+    @RequestMapping(value = "/admin/taDrainageVisitRecord", method = RequestMethod.GET)
252
+    public ResponseBean drainageVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
253
+                                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
254
+                                                @RequestParam(value = "activityName", required = false) String activityName,
255
+                                                @RequestParam(value = "buildingId", required = false) String buildingId,
256
+                                                @RequestParam(value = "shareName", required = false) String shareName,
257
+                                                @RequestParam(value = "shareTel", required = false) String shareTel,
258
+                                                @RequestParam(value = "eventType", required = false) String eventType,
259
+                                                @RequestParam(value = "personType", required = false) String personType,
254 260
                                                 HttpServletRequest request) {
255 261
         ResponseBean responseBean = new ResponseBean();
256 262
         try {
@@ -267,88 +273,92 @@ public class TaPersonVisitRecordController extends BaseController {
267 273
 
268 274
     /**
269 275
      * 个人中心访客记录分页查询
276
+     *
270 277
      * @param pageNumber
271 278
      * @param pageSize
272 279
      * @return
273 280
      */
274
-    @RequestMapping(value="/wx/visitRecord",method= RequestMethod.GET)
275
-    public ResponseBean getWxVisitRecordList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
276
-                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
277
-                                          @RequestParam(value = "userId") Integer userId,HttpServletRequest request){
281
+    @RequestMapping(value = "/wx/visitRecord", method = RequestMethod.GET)
282
+    public ResponseBean getWxVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
283
+                                             @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
284
+                                             @RequestParam(value = "userId") Integer userId, HttpServletRequest request) {
278 285
         try {
279 286
             //使用分页插件
280 287
             IPage<TaPersonVisitRecord> pg = new Page<>(pageNumber, pageSize);
281
-            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxVisitRecordList(pg, userId,getOrgId(request));
288
+            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxVisitRecordList(pg, userId, getOrgId(request));
282 289
             return ResponseBean.success(result);
283
-        }catch (Exception e){
290
+        } catch (Exception e) {
284 291
             e.printStackTrace();
285
-            logger.error("taPersonVisitRecordList -=- {}",e.toString());
286
-            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
292
+            logger.error("taPersonVisitRecordList -=- {}", e.toString());
293
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
287 294
         }
288 295
     }
289 296
 
290 297
     /**
291 298
      * 个人中心访客记录单个人员的所有活动
299
+     *
292 300
      * @return
293 301
      */
294
-    @RequestMapping(value="/wx/visitRecord/activity",method= RequestMethod.GET)
295
-    public ResponseBean wxVisitRecordList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
296
-                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
302
+    @RequestMapping(value = "/wx/visitRecord/activity", method = RequestMethod.GET)
303
+    public ResponseBean wxVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
304
+                                          @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
297 305
                                           @RequestParam(value = "userId") Integer userId,
298 306
                                           @RequestParam(value = "personId") String personId,
299
-                                          HttpServletRequest request){
307
+                                          HttpServletRequest request) {
300 308
         try {
301 309
             //使用分页插件
302 310
             IPage<TaPersonVisitRecord> pg = new Page<>(pageNumber, pageSize);
303
-            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxVisitRecordActivityList(pg, userId,personId,getOrgId(request));
311
+            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxVisitRecordActivityList(pg, userId, personId, getOrgId(request));
304 312
             return ResponseBean.success(result);
305
-        }catch (Exception e){
313
+        } catch (Exception e) {
306 314
             e.printStackTrace();
307
-            logger.error("taPersonVisitRecordList -=- {}",e.toString());
308
-            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
315
+            logger.error("taPersonVisitRecordList -=- {}", e.toString());
316
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
309 317
         }
310 318
     }
311 319
 
312 320
     /**
313 321
      * 个人中心访客记录分页查询
322
+     *
314 323
      * @param pageNumber
315 324
      * @param pageSize
316 325
      * @return
317 326
      */
318
-    @RequestMapping(value="/wx/activityVisitRecord",method= RequestMethod.GET)
319
-    public ResponseBean wxPersonActivityVisitRecordList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
320
-                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
321
-                                                @RequestParam(value = "userId") Integer userId,
322
-                                                @RequestParam(value = "targetId")String targetId,
323
-                                                @RequestParam(value = "eventType")String eventType,
324
-                                                HttpServletRequest request){
327
+    @RequestMapping(value = "/wx/activityVisitRecord", method = RequestMethod.GET)
328
+    public ResponseBean wxPersonActivityVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
329
+                                                        @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
330
+                                                        @RequestParam(value = "userId") Integer userId,
331
+                                                        @RequestParam(value = "targetId") String targetId,
332
+                                                        @RequestParam(value = "eventType") String eventType,
333
+                                                        HttpServletRequest request) {
325 334
         try {
326 335
             //使用分页插件
327 336
             IPage<TaPersonVisitRecord> pg = new Page<>(pageNumber, pageSize);
328
-            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxActivityVisitRecordList(pg, userId,getOrgId(request),targetId, eventType);
337
+            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxActivityVisitRecordList(pg, userId, getOrgId(request), targetId, eventType);
329 338
             return ResponseBean.success(result);
330
-        }catch (Exception e){
339
+        } catch (Exception e) {
331 340
             e.printStackTrace();
332
-            logger.error("taPersonVisitRecordList -=- {}",e.toString());
333
-            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
341
+            logger.error("taPersonVisitRecordList -=- {}", e.toString());
342
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
334 343
         }
335 344
     }
336 345
 
337 346
     /**
338 347
      * 置业顾问分享项目、活动、资讯、助力、拼团信息
348
+     *
339 349
      * @param pageNumber
340 350
      * @param pageSize
341 351
      * @param userId
342 352
      * @param request
343 353
      * @return
344 354
      */
345
-    @RequestMapping(value = "/wx/shareRecords",method= RequestMethod.GET)
346
-    public ResponseBean wxShareRecordsByUserId(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
347
-                                              @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
348
-                                              @RequestParam(value = "userId") Integer userId,
349
-                                              HttpServletRequest request){
355
+    @RequestMapping(value = "/wx/shareRecords", method = RequestMethod.GET)
356
+    public ResponseBean wxShareRecordsByUserId(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
357
+                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
358
+                                               @RequestParam(value = "userId") Integer userId,
359
+                                               HttpServletRequest request) {
350 360
         ResponseBean responseBean = new ResponseBean();
351
-        if (userId == null){
361
+        if (userId == null) {
352 362
             return responseBean;
353 363
         }
354 364
         //使用分页插件
@@ -359,9 +369,9 @@ public class TaPersonVisitRecordController extends BaseController {
359 369
         IPage<TaConsultantInfo> result = iTaPersonVisitRecordService.getConsultantShareInfoList(pg, taPerson.getPersonId());
360 370
 
361 371
         List<TaConsultantInfo> taConsultantInfos = result.getRecords();
362
-        taConsultantInfos.forEach(e ->{
363
-            Integer shareNum = iTaPersonVisitRecordService.countShareNumByEventType(getOrgId(request), e.getTargetId(), userId, taPerson.getPersonId(), (CommConstant.FAVOR_PROJECT.equals(e.getEventType()) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(e.getEventType()) ? "dynamic" : e.getEventType())  + "_share");
364
-            switch (e.getEventType()){
372
+        taConsultantInfos.forEach(e -> {
373
+            Integer shareNum = iTaPersonVisitRecordService.countShareNumByEventType(getOrgId(request), e.getTargetId(), userId, taPerson.getPersonId(), (CommConstant.FAVOR_PROJECT.equals(e.getEventType()) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(e.getEventType()) ? "dynamic" : e.getEventType()) + "_share");
374
+            switch (e.getEventType()) {
365 375
                 case CommConstant.FAVOR_ACTIVITY:
366 376
                     e.setActivityShareNum(shareNum);
367 377
                     break;
@@ -383,6 +393,9 @@ public class TaPersonVisitRecordController extends BaseController {
383 393
                 case CommConstant.HOUSE:
384 394
                     e.setHouseShareNum(shareNum);
385 395
                     break;
396
+                case CommConstant.LIVE:
397
+                    e.setLiveShareNum(shareNum);
398
+                    break;
386 399
             }
387 400
         });
388 401
         result.setRecords(taConsultantInfos);

+ 41
- 11
src/main/java/com/huiju/estateagents/controller/TaSalesBatchController.java Datei anzeigen

@@ -6,13 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.huiju.estateagents.base.BaseController;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8 8
 import com.huiju.estateagents.common.CommConstant;
9
-import com.huiju.estateagents.entity.TaMiniapp;
10
-import com.huiju.estateagents.entity.TaSalesBatch;
11
-import com.huiju.estateagents.entity.TaShareContent;
12
-import com.huiju.estateagents.service.IMiniAppService;
13
-import com.huiju.estateagents.service.ITaMiniappService;
14
-import com.huiju.estateagents.service.ITaSalesBatchService;
15
-import com.huiju.estateagents.service.TaShareContentService;
9
+import com.huiju.estateagents.entity.*;
10
+import com.huiju.estateagents.service.*;
16 11
 import io.swagger.models.auth.In;
17 12
 import org.slf4j.Logger;
18 13
 import org.slf4j.LoggerFactory;
@@ -22,6 +17,7 @@ import sun.misc.Request;
22 17
 
23 18
 import javax.servlet.http.HttpServletRequest;
24 19
 import java.time.LocalDateTime;
20
+import java.util.ArrayList;
25 21
 import java.util.List;
26 22
 
27 23
 /**
@@ -50,6 +46,9 @@ public class TaSalesBatchController extends BaseController {
50 46
     @Autowired
51 47
     private TaShareContentService taShareContentService;
52 48
 
49
+    @Autowired
50
+    public IExtendContentService iExtendContentService;
51
+
53 52
     /**
54 53
      * 分页查询列表
55 54
      *
@@ -68,7 +67,7 @@ public class TaSalesBatchController extends BaseController {
68 67
             //使用分页插件
69 68
             IPage<TaSalesBatch> pg = new Page<>(pageNum, pageSize);
70 69
 
71
-            IPage<TaSalesBatch> result = iTaSalesBatchService.selectByCondition(pg, salesBatchName, buildingId, status, getOrgId(request));
70
+            IPage<TaSalesBatch> result = iTaSalesBatchService.selectByCondition(pg, salesBatchName, buildingId, status, getOrgId(request),getTaPersonBuildingListByUserId(request));
72 71
             responseBean.addSuccess(result);
73 72
         } catch (Exception e) {
74 73
             e.printStackTrace();
@@ -109,8 +108,8 @@ public class TaSalesBatchController extends BaseController {
109 108
             shareContent.setTargetId(taSalesBatch.getSalesBatchId().toString());
110 109
             shareContent.setShareContentTitle("诚挚邀您在线选房购房~");
111 110
             shareContent.setShareContentImg(taSalesBatch.getAerialViewImg());
112
-            shareContent.setShareContentType("house");
113
-            shareContent.setStatus(1);
111
+            shareContent.setShareContentType(CommConstant.HOUSE);
112
+            shareContent.setStatus(CommConstant.STATUS_NORMAL);
114 113
             shareContent.setCreateDate(LocalDateTime.now());
115 114
             taShareContentService.save(shareContent);
116 115
 
@@ -133,6 +132,22 @@ public class TaSalesBatchController extends BaseController {
133 132
     public ResponseBean taSalesBatchDel(@RequestBody List<TaSalesBatch> salesBatchs, HttpServletRequest request) {
134 133
         ResponseBean responseBean = new ResponseBean();
135 134
         try {
135
+            List<Integer> liveActivityIds = new ArrayList<>();
136
+            for(TaSalesBatch taSalesBatch : salesBatchs){
137
+                liveActivityIds.add(taSalesBatch.getSalesBatchId());
138
+            }
139
+            QueryWrapper<ExtendContent> queryWrapper = new QueryWrapper<>();
140
+            queryWrapper.eq("org_id",getOrgId(request));
141
+            queryWrapper.eq("content_type",CommConstant.SALES_BATCH);
142
+            queryWrapper.in("target_id",liveActivityIds);
143
+            List<ExtendContent> list = iExtendContentService.list(queryWrapper);
144
+            list.forEach(e -> {
145
+                e.setStatus(CommConstant.NOT_PUBLISH);
146
+            });
147
+            if (list.size() > 0){
148
+                iExtendContentService.updateBatchById(list);
149
+            }
150
+
136 151
             responseBean = iTaSalesBatchService.delSalesBatchList(getOrgId(request), salesBatchs);
137 152
         } catch (Exception e) {
138 153
             e.printStackTrace();
@@ -174,10 +189,25 @@ public class TaSalesBatchController extends BaseController {
174 189
      */
175 190
     @RequestMapping(value = "/admin/taSalesBatch/{id}", method = RequestMethod.PUT)
176 191
     public ResponseBean taSalesBatchUpdate(@PathVariable Integer id,
177
-                                           @RequestBody TaSalesBatch taSalesBatch) {
192
+                                           @RequestBody TaSalesBatch taSalesBatch, HttpServletRequest request) {
178 193
         ResponseBean responseBean = new ResponseBean();
179 194
         try {
180 195
             taSalesBatch.setSalesBatchId(id);
196
+
197
+            QueryWrapper<ExtendContent> queryWrapper = new QueryWrapper<>();
198
+            queryWrapper.eq("org_id",getOrgId(request));
199
+            queryWrapper.eq("content_type",CommConstant.SALES_BATCH);
200
+            queryWrapper.eq("target_id",taSalesBatch.getSalesBatchId());
201
+            List<ExtendContent> list = iExtendContentService.list(queryWrapper);
202
+            if (CommConstant.NOT_PUBLISH.equals(taSalesBatch.getStatus())){
203
+                list.forEach(e -> {
204
+                    e.setStatus(CommConstant.NOT_PUBLISH);
205
+                });
206
+            }
207
+            if (list.size() > 0){
208
+                iExtendContentService.updateBatchById(list);
209
+            }
210
+
181 211
             if (iTaSalesBatchService.updateById(taSalesBatch)) {
182 212
                 responseBean.addSuccess(taSalesBatch);
183 213
             } else {

+ 31
- 9
src/main/java/com/huiju/estateagents/controller/TaShareController.java Datei anzeigen

@@ -47,6 +47,7 @@ public class TaShareController extends BaseController {
47 47
 
48 48
     /**
49 49
      * 确认分享, 送积分
50
+     *
50 51
      * @param typeOf
51 52
      * @param id
52 53
      * @param request
@@ -61,21 +62,42 @@ public class TaShareController extends BaseController {
61 62
     }
62 63
 
63 64
     @RequestMapping(value = "/admin/taHouseShare", method = RequestMethod.GET)
64
-    public ResponseBean taHouseShareList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
65
-                                         @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
66
-                                         @RequestParam(value = "shareType", required = false)String shareType,
67
-                                         @RequestParam(value = "personType", required = false)String personType,
68
-                                         @RequestParam(value = "phone", required = false)String phone,
69
-                                         @RequestParam(value = "salesBatchId")Integer salesBatchId, HttpServletRequest request){
65
+    public ResponseBean taHouseShareList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
66
+                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
67
+                                         @RequestParam(value = "shareType", required = false) String shareType,
68
+                                         @RequestParam(value = "personType", required = false) String personType,
69
+                                         @RequestParam(value = "phone", required = false) String phone,
70
+                                         @RequestParam(value = "salesBatchId") Integer salesBatchId, HttpServletRequest request) {
70 71
         ResponseBean responseBean = new ResponseBean();
71 72
         try {
72
-            if (salesBatchId == null){
73
+            if (salesBatchId == null) {
73 74
                 return ResponseBean.success("");
74 75
             }
75 76
             responseBean = taShareService.selectHouseShareList(pageNum, pageSize, getOrgId(request), personType, shareType, phone, salesBatchId);
76
-        }catch (Exception e){
77
+        } catch (Exception e) {
77 78
             e.printStackTrace();
78
-            logger.error("taShareCountList -=- {}",e.toString());
79
+            logger.error("taShareCountList -=- {}", e.toString());
80
+            responseBean.addError(e.getMessage());
81
+        }
82
+        return responseBean;
83
+    }
84
+
85
+    @RequestMapping(value = "/admin/taLiveShare", method = RequestMethod.GET)
86
+    public ResponseBean listLiveShare(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
87
+                                      @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
88
+                                      @RequestParam(value = "shareType", required = false) String shareType,
89
+                                      @RequestParam(value = "personType", required = false) String personType,
90
+                                      @RequestParam(value = "phone", required = false) String phone,
91
+                                      @RequestParam(value = "liveActivityId") Integer liveActivityId, HttpServletRequest request) {
92
+        ResponseBean responseBean = new ResponseBean();
93
+        try {
94
+            if (liveActivityId == null) {
95
+                return ResponseBean.success("");
96
+            }
97
+            responseBean = taShareService.listLiveShare(pageNum, pageSize, getOrgId(request), personType, shareType, phone, liveActivityId);
98
+        } catch (Exception e) {
99
+            e.printStackTrace();
100
+            logger.error("listLiveShare -=- {}", e.toString());
79 101
             responseBean.addError(e.getMessage());
80 102
         }
81 103
         return responseBean;

+ 24
- 0
src/main/java/com/huiju/estateagents/controller/TaSharePersonFromController.java Datei anzeigen

@@ -114,6 +114,30 @@ public class TaSharePersonFromController extends BaseController {
114 114
         return responseBean;
115 115
     }
116 116
 
117
+    /**
118
+     * 根据id查询对象
119
+     */
120
+    @RequestMapping(value="api/admin/taLiveVisit",method= RequestMethod.GET)
121
+    public ResponseBean taLiveActivityVisit(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
122
+                                               @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
123
+                                               @RequestParam(value = "sceneType", required = false)String sceneType,
124
+                                               @RequestParam(value = "personType", required = false)String personType,
125
+                                               @RequestParam(value = "phone", required = false)String phone,
126
+                                               @RequestParam(value = "liveActivityId")String liveActivityId, HttpServletRequest request){
127
+        ResponseBean responseBean = new ResponseBean();
128
+        try {
129
+            if (liveActivityId == null){
130
+                return ResponseBean.success("");
131
+            }
132
+            responseBean = iTaSharePersonFromService.selectLiveActivityVisitList(pageNum, pageSize, getOrgId(request), personType, sceneType, phone, liveActivityId);
133
+        }catch (Exception e){
134
+            e.printStackTrace();
135
+            logger.error("taShareCountList -=- {}",e.toString());
136
+            responseBean.addError(e.getMessage());
137
+        }
138
+        return responseBean;
139
+    }
140
+
117 141
     /**
118 142
      * 修改对象
119 143
      * @param id  实体ID

+ 144
- 0
src/main/java/com/huiju/estateagents/controller/TdLiveDictController.java Datei anzeigen

@@ -0,0 +1,144 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.estateagents.base.BaseController;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.entity.TdLiveDict;
9
+import com.huiju.estateagents.service.ITdLiveDictService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+/**
16
+ * <p>
17
+    *   前端控制器
18
+    * </p>
19
+ *
20
+ * @author jobob
21
+ * @since 2020-02-20
22
+ */
23
+@RestController
24
+@RequestMapping("/api")
25
+public class TdLiveDictController extends BaseController {
26
+
27
+    private final Logger logger = LoggerFactory.getLogger(TdLiveDictController.class);
28
+
29
+    @Autowired
30
+    public ITdLiveDictService iTdLiveDictService;
31
+
32
+
33
+    /**
34
+     * 分页查询列表
35
+     * @param pageNum
36
+     * @param pageSize
37
+     * @return
38
+     */
39
+    @RequestMapping(value="/admin/tdLiveDict",method= RequestMethod.GET)
40
+    public ResponseBean tdLiveDictList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
41
+                                       @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
42
+        ResponseBean responseBean = new ResponseBean();
43
+        try {
44
+            //使用分页插件
45
+		    IPage<TdLiveDict> pg = new Page<>(pageNum, pageSize);
46
+            QueryWrapper<TdLiveDict> queryWrapper = new QueryWrapper<>();
47
+            queryWrapper.eq("status",1);
48
+            queryWrapper.orderByDesc("create_date");
49
+
50
+            IPage<TdLiveDict> result = iTdLiveDictService.page(pg, queryWrapper);
51
+            responseBean.addSuccess(result);
52
+        }catch (Exception e){
53
+            e.printStackTrace();
54
+            logger.error("tdLiveDictList -=- {}",e.toString());
55
+            responseBean.addError(e.getMessage());
56
+        }
57
+        return responseBean;
58
+    }
59
+
60
+    /**
61
+     * 保存对象
62
+     * @param tdLiveDict 实体对象
63
+     * @return
64
+     */
65
+    @RequestMapping(value="/tdLiveDict",method= RequestMethod.POST)
66
+    public ResponseBean tdLiveDictAdd(@RequestBody TdLiveDict tdLiveDict){
67
+        ResponseBean responseBean = new ResponseBean();
68
+        try {
69
+            if (iTdLiveDictService.save(tdLiveDict)){
70
+                responseBean.addSuccess(tdLiveDict);
71
+            }else {
72
+                responseBean.addError("fail");
73
+            }
74
+        }catch (Exception e){
75
+            e.printStackTrace();
76
+            logger.error("tdLiveDictAdd -=- {}",e.toString());
77
+            responseBean.addError(e.getMessage());
78
+        }
79
+        return responseBean;
80
+    }
81
+
82
+    /**
83
+     * 根据id删除对象
84
+     * @param id  实体ID
85
+     */
86
+    @ResponseBody
87
+    @RequestMapping(value="/tdLiveDict/{id}", method= RequestMethod.DELETE)
88
+    public ResponseBean tdLiveDictDelete(@PathVariable Integer id){
89
+        ResponseBean responseBean = new ResponseBean();
90
+        try {
91
+            if(iTdLiveDictService.removeById(id)){
92
+                responseBean.addSuccess("success");
93
+            }else {
94
+                responseBean.addError("fail");
95
+            }
96
+        }catch (Exception e){
97
+            e.printStackTrace();
98
+            logger.error("tdLiveDictDelete -=- {}",e.toString());
99
+            responseBean.addError(e.getMessage());
100
+        }
101
+        return responseBean;
102
+    }
103
+
104
+    /**
105
+     * 修改对象
106
+     * @param id  实体ID
107
+     * @param tdLiveDict 实体对象
108
+     * @return
109
+     */
110
+    @RequestMapping(value="/tdLiveDict/{id}",method= RequestMethod.PUT)
111
+    public ResponseBean tdLiveDictUpdate(@PathVariable Integer id,
112
+                                        @RequestBody TdLiveDict tdLiveDict){
113
+        ResponseBean responseBean = new ResponseBean();
114
+        try {
115
+            if (iTdLiveDictService.updateById(tdLiveDict)){
116
+                responseBean.addSuccess(tdLiveDict);
117
+            }else {
118
+                responseBean.addError("fail");
119
+            }
120
+        }catch (Exception e){
121
+            e.printStackTrace();
122
+            logger.error("tdLiveDictUpdate -=- {}",e.toString());
123
+            responseBean.addError(e.getMessage());
124
+        }
125
+        return responseBean;
126
+    }
127
+
128
+    /**
129
+     * 根据id查询对象
130
+     * @param id  实体ID
131
+     */
132
+    @RequestMapping(value="/tdLiveDict/{id}",method= RequestMethod.GET)
133
+    public ResponseBean tdLiveDictGet(@PathVariable Integer id){
134
+        ResponseBean responseBean = new ResponseBean();
135
+        try {
136
+            responseBean.addSuccess(iTdLiveDictService.getById(id));
137
+        }catch (Exception e){
138
+            e.printStackTrace();
139
+            logger.error("tdLiveDictDelete -=- {}",e.toString());
140
+            responseBean.addError(e.getMessage());
141
+        }
142
+        return responseBean;
143
+    }
144
+}

+ 6
- 0
src/main/java/com/huiju/estateagents/entity/TaBuilding.java Datei anzeigen

@@ -287,6 +287,12 @@ public class TaBuilding implements Serializable {
287 287
     @TableField(exist = false)
288 288
     private List<TaShareActivity> shareActivityList;
289 289
 
290
+    /**
291
+     * 拼团活动
292
+     */
293
+    @TableField(exist = false)
294
+    private List<TaLiveActivity> liveActivityList;
295
+
290 296
     /**
291 297
      * 列表图
292 298
      */

+ 2
- 0
src/main/java/com/huiju/estateagents/entity/TaConsultantInfo.java Datei anzeigen

@@ -37,4 +37,6 @@ public class TaConsultantInfo {
37 37
     private Integer buildingTypeId;
38 38
 
39 39
     private String priceType;
40
+
41
+    private Integer liveShareNum;
40 42
 }

+ 170
- 0
src/main/java/com/huiju/estateagents/entity/TaLiveActivity.java Datei anzeigen

@@ -0,0 +1,170 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
4
+import com.baomidou.mybatisplus.annotation.IdType;
5
+import com.baomidou.mybatisplus.annotation.TableField;
6
+import com.baomidou.mybatisplus.annotation.TableId;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.time.LocalDateTime;
13
+import java.util.List;
14
+
15
+/**
16
+ * <p>
17
+ *
18
+ * </p>
19
+ *
20
+ * @author jobob
21
+ * @since 2020-02-20
22
+ */
23
+@Data
24
+@EqualsAndHashCode(callSuper = false)
25
+@Accessors(chain = true)
26
+public class TaLiveActivity implements Serializable {
27
+
28
+    private static final long serialVersionUID = 1L;
29
+
30
+    /**
31
+     * 直播活动id
32
+     */
33
+    @TableId(value = "live_activity_id", type = IdType.AUTO)
34
+    private Integer liveActivityId;
35
+
36
+    /**
37
+     * 直播活动标题
38
+     */
39
+    private String liveActivityTitle;
40
+
41
+    /**
42
+     * 公司id
43
+     */
44
+    private Integer orgId;
45
+
46
+    /**
47
+     * 所属城市
48
+     */
49
+    @TableField(strategy = FieldStrategy.IGNORED)
50
+    private Integer cityId;
51
+
52
+    /**
53
+     * 所属楼盘
54
+     */
55
+    @TableField(strategy = FieldStrategy.IGNORED)
56
+    private String buildingId;
57
+
58
+    /**
59
+     * 直播小程序
60
+     */
61
+    private String liveApp;
62
+
63
+    /**
64
+     * 房间参数
65
+     */
66
+    private String liveRoomParam;
67
+
68
+    /**
69
+     * 封面图1
70
+     */
71
+    private String listImg;
72
+
73
+    /**
74
+     * 封面图2
75
+     */
76
+    private String detailImg;
77
+
78
+    /**
79
+     * 详情类型 0是模板,1是自定义
80
+     */
81
+    private String liveDetailType;
82
+
83
+    /**
84
+     * 详情图
85
+     */
86
+    private String detailTypeImg;
87
+
88
+    /**
89
+     * 访问人数
90
+     */
91
+    private Integer visitNum;
92
+
93
+    /**
94
+     * 状态
95
+     */
96
+
97
+    private Integer status;
98
+
99
+    /**
100
+     * 二维码
101
+     */
102
+    private String qrCode;
103
+
104
+    /**
105
+     * 直播开始时间
106
+     */
107
+    private String liveStartDate;
108
+
109
+    /**
110
+     * 直播结束时间
111
+     */
112
+    private String liveEndDate;
113
+
114
+    /**
115
+     * 创建时间
116
+     */
117
+    private LocalDateTime createDate;
118
+
119
+    /**
120
+     * 创建人
121
+     */
122
+    private String createUser;
123
+
124
+    /**
125
+     * 修改时间
126
+     */
127
+    private LocalDateTime updateDate;
128
+
129
+    /**
130
+     * 修改人
131
+     */
132
+    private String updateUser;
133
+
134
+    /**
135
+     * 权重
136
+     */
137
+    private Integer weight;
138
+
139
+    @TableField(exist = false)
140
+    private List<TaPoster> posters;
141
+
142
+    @TableField(exist = false)
143
+    private List<TaShareContent> shareContents;
144
+
145
+    @TableField(exist = false)
146
+    private String buildingName;
147
+
148
+    @TableField(exist = false)
149
+    private String cityName;
150
+
151
+    /**
152
+     * 直播app名称
153
+     */
154
+    @TableField(exist = false)
155
+    private String liveAppName;
156
+
157
+    /**
158
+     * 直播app小程序appid
159
+     */
160
+    @TableField(exist = false)
161
+    private String liveAppAppId;
162
+
163
+    private String liveAppPath;
164
+
165
+    @TableField(exist = false)
166
+    private String createName;
167
+
168
+    @TableField(exist = false)
169
+    private String updateName;
170
+}

+ 12
- 0
src/main/java/com/huiju/estateagents/entity/TaShare.java Datei anzeigen

@@ -96,4 +96,16 @@ public class TaShare implements Serializable {
96 96
      */
97 97
     @TableField(exist = false)
98 98
     private String salesBatchName;
99
+
100
+    /**
101
+     * 分享内容
102
+     */
103
+    @TableField(exist = false)
104
+    private String shareContent;
105
+
106
+    /**
107
+     * 直播活动名称
108
+     */
109
+    @TableField(exist = false)
110
+    private String liveActivityTitle;
99 111
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/entity/TaSharePersonFrom.java Datei anzeigen

@@ -92,4 +92,7 @@ public class TaSharePersonFrom implements Serializable {
92 92
 
93 93
     @TableField(exist = false)
94 94
     private String salesBatchName;
95
+
96
+    @TableField(exist = false)
97
+    private String liveActivityTitle;
95 98
 }

+ 46
- 0
src/main/java/com/huiju/estateagents/entity/TdLiveDict.java Datei anzeigen

@@ -0,0 +1,46 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import lombok.Data;
4
+import lombok.EqualsAndHashCode;
5
+import lombok.experimental.Accessors;
6
+
7
+import java.io.Serializable;
8
+import java.time.LocalDateTime;
9
+
10
+/**
11
+ * <p>
12
+ *  
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2020-02-20
17
+ */
18
+@Data
19
+@EqualsAndHashCode(callSuper = false)
20
+@Accessors(chain = true)
21
+public class TdLiveDict implements Serializable {
22
+
23
+    private static final long serialVersionUID = 1L;
24
+
25
+    /**
26
+     * 直播平台名称
27
+     */
28
+    private String livePlatName;
29
+
30
+    /**
31
+     * 直播平台id
32
+     */
33
+    private String livePlatValue;
34
+
35
+    /**
36
+     * 状态
37
+     */
38
+    private Integer status;
39
+
40
+    /**
41
+     * 创建时间
42
+     */
43
+    private LocalDateTime createDate;
44
+
45
+
46
+}

+ 1
- 1
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java Datei anzeigen

@@ -50,7 +50,7 @@ public class AccessInterceptor implements HandlerInterceptor {
50 50
     
51 51
     private String[] whiteList = {
52 52
             "/wx/chat", // 聊天暂时不鉴权
53
-            "/api/wx/",
53
+            "/api/wx/login",
54 54
             "/api/wx/tdCity",
55 55
             "/api/wx/preload",
56 56
             "/api/admin/signin",

+ 43
- 0
src/main/java/com/huiju/estateagents/mapper/TaLiveActivityMapper.java Datei anzeigen

@@ -0,0 +1,43 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.huiju.estateagents.entity.TaLiveActivity;
6
+import com.huiju.estateagents.entity.TaPersonBuilding;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+import org.springframework.stereotype.Component;
10
+
11
+import java.util.List;
12
+
13
+/**
14
+ * <p>
15
+ * Mapper 接口
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2020-02-20
20
+ */
21
+@Mapper
22
+@Component
23
+public interface TaLiveActivityMapper extends BaseMapper<TaLiveActivity> {
24
+
25
+    /**
26
+     * 访问人数自增
27
+     *
28
+     * @param id
29
+     * @return
30
+     */
31
+    Boolean addVisitNum(@Param("id") String id);
32
+
33
+    IPage<TaLiveActivity> selectLiveListByCondition(IPage<TaLiveActivity> pg, @Param("liveActivityTitle") String liveActivityTitle, @Param("cityId") String cityId, @Param("buildingId") String buildingId, @Param("status") Integer status, @Param("orgId") Integer orgId,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
34
+    /**
35
+     * 批量更新直播活动状态
36
+     *
37
+     * @param orgId
38
+     * @param taLiveActivityList
39
+     */
40
+    void updateLiveActivityStatus(@Param("orgId") Integer orgId, @Param("taLiveActivityList") List<TaLiveActivity> taLiveActivityList);
41
+
42
+
43
+}

+ 2
- 1
src/main/java/com/huiju/estateagents/mapper/TaSalesBatchMapper.java Datei anzeigen

@@ -2,6 +2,7 @@ package com.huiju.estateagents.mapper;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.huiju.estateagents.entity.TaPersonBuilding;
5 6
 import com.huiju.estateagents.entity.TaSalesBatch;
6 7
 import org.apache.ibatis.annotations.Mapper;
7 8
 import org.apache.ibatis.annotations.Param;
@@ -19,7 +20,7 @@ import java.util.Map;
19 20
  */
20 21
 @Mapper
21 22
 public interface TaSalesBatchMapper extends BaseMapper<TaSalesBatch> {
22
-    IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, @Param("salesBatchName") String salesBatchName, @Param("buildingId") String buildingId, @Param("status") Integer status, @Param("orgId") Integer orgId);
23
+    IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, @Param("salesBatchName") String salesBatchName, @Param("buildingId") String buildingId, @Param("status") Integer status, @Param("orgId") Integer orgId,@Param("personBuildingList")  List<TaPersonBuilding> personBuildingList);
23 24
 
24 25
     /**
25 26
      * 根据批次号统计预选数据

+ 2
- 0
src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java Datei anzeigen

@@ -19,4 +19,6 @@ import java.util.List;
19 19
 @Mapper
20 20
 public interface TaShareMapper extends BaseMapper<TaShare> {
21 21
     List<TaShare> selectHouseShareList(Page page, @Param("orgId") Integer orgId, @Param("personType") String personType, @Param("shareType")String shareType, @Param("phone")String phone, @Param("saleBatchId")Integer saleBatchId);
22
+
23
+    List<TaShare> listLiveShare(Page page, @Param("orgId") Integer orgId, @Param("personType") String personType, @Param("shareType")String shareType, @Param("phone")String phone, @Param("liveActivityId")Integer liveActivityId);
22 24
 }

+ 24
- 0
src/main/java/com/huiju/estateagents/mapper/TaSharePersonFromMapper.java Datei anzeigen

@@ -19,5 +19,29 @@ import java.util.List;
19 19
 @Mapper
20 20
 public interface TaSharePersonFromMapper extends BaseMapper<TaSharePersonFrom> {
21 21
     Integer countViewNum(@Param("userId") Integer userId, @Param("orgId")Integer orgId, @Param("personId")String personId, @Param("startCreateDate") String startCreateDate, @Param("endCreateDate") String endCreateDate);
22
+
23
+    /**
24
+     * 查询房源访问记录
25
+     * @param page
26
+     * @param orgId
27
+     * @param personType
28
+     * @param sceneType
29
+     * @param phone
30
+     * @param saleBatchId
31
+     * @return
32
+     */
22 33
     List<TaSharePersonFrom> selectHouseVisitList(Page page, @Param("orgId") Integer orgId, @Param("personType") String personType, @Param("sceneType")String sceneType, @Param("phone")String phone, @Param("saleBatchId")String saleBatchId);
34
+
35
+    /**
36
+     * 查询直播活动访问记录
37
+     * @param page
38
+     * @param orgId
39
+     * @param personType
40
+     * @param sceneType
41
+     * @param phone
42
+     * @param liveActivityId
43
+     * @return
44
+     */
45
+    List<TaSharePersonFrom> selectLiveActivityVisitList(Page page, @Param("orgId") Integer orgId, @Param("personType") String personType, @Param("sceneType")String sceneType, @Param("phone")String phone, @Param("liveActivityId")String liveActivityId);
46
+
23 47
 }

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TdLiveDictMapper.java Datei anzeigen

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TdLiveDict;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *   Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2020-02-20
14
+ */
15
+@Mapper
16
+public interface TdLiveDictMapper extends BaseMapper<TdLiveDict> {
17
+
18
+}

+ 4
- 2
src/main/java/com/huiju/estateagents/service/IMiniAppService.java Datei anzeigen

@@ -25,11 +25,13 @@ public interface IMiniAppService {
25 25
     WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv, String appid);
26 26
 
27 27
     void sendNoticeMessage(TaPerson toUser, String link, String name, String phone, String content, LocalDateTime dt);
28
-    
28
+
29 29
     void sendHelpMessage(TaPerson toUser, String link, String result, String activityName, LocalDateTime dt);
30
-    
30
+
31 31
     void sendGroupMessage(TaPerson toUser, String link, String result, String activityName, LocalDateTime dt);
32 32
 
33
+    void sendCheckMessage(TaPerson toUser, String link, String name, String result, String programName, String failReason, String remark, LocalDateTime dt, Boolean isSuccess);
34
+
33 35
     ResponseBean getQrCode(String paramsStr, String appid);
34 36
 
35 37
     String createQrCode(WxMaService service, String path) throws Exception;

+ 63
- 0
src/main/java/com/huiju/estateagents/service/ITaLiveActivityService.java Datei anzeigen

@@ -0,0 +1,63 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.entity.TaLiveActivity;
7
+import com.huiju.estateagents.entity.TaPersonBuilding;
8
+
9
+import java.util.List;
10
+
11
+/**
12
+ * <p>
13
+ * 服务类
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2020-02-20
18
+ */
19
+public interface ITaLiveActivityService extends IService<TaLiveActivity> {
20
+
21
+    /**
22
+     * 保存数据
23
+     *
24
+     * @param taLiveActivity
25
+     * @return
26
+     */
27
+    ResponseBean taLiveActivityAdd(TaLiveActivity taLiveActivity);
28
+
29
+    /**
30
+     * 条件查询直播活动列表
31
+     *
32
+     * @param liveDetailType
33
+     * @param pageNum
34
+     * @param pageSize
35
+     * @param orgId
36
+     * @param liveActivityTitle
37
+     * @param cityId
38
+     * @param buildingId
39
+     * @param status
40
+     * @param taPersonBuildingListByUserId
41
+     * @return
42
+     */
43
+    IPage<TaLiveActivity> listLiveActivityByCondition(Integer pageNum, Integer pageSize, Integer orgId, String liveActivityTitle,
44
+                                                      String cityId, String buildingId, Integer status, List<TaPersonBuilding> taPersonBuildingListByUserId);
45
+
46
+    /**
47
+     * 访问量自增
48
+     *
49
+     * @param id
50
+     * @return
51
+     */
52
+    ResponseBean addVisitNum(String id);
53
+
54
+    /**
55
+     * 获取直播活动详情
56
+     *
57
+     * @param id
58
+     * @return
59
+     */
60
+    ResponseBean getLiveActivityDetailById(String id,Integer orgId);
61
+
62
+    ResponseBean delLiveActivityList(Integer orgId, List<TaLiveActivity> liveActivityList);
63
+}

+ 2
- 2
src/main/java/com/huiju/estateagents/service/ITaSalesBatchService.java Datei anzeigen

@@ -1,9 +1,9 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 4
 import com.baomidou.mybatisplus.extension.service.IService;
6 5
 import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.entity.TaPersonBuilding;
7 7
 import com.huiju.estateagents.entity.TaSalesBatch;
8 8
 
9 9
 import java.util.List;
@@ -17,7 +17,7 @@ import java.util.List;
17 17
  * @since 2020-02-10
18 18
  */
19 19
 public interface ITaSalesBatchService extends IService<TaSalesBatch> {
20
-    IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId);
20
+    IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId, List<TaPersonBuilding> taPersonBuildingListByUserId);
21 21
 
22 22
     ResponseBean delSalesBatchList(Integer orgId, List<TaSalesBatch> taSalesBatchList);
23 23
 

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaSharePersonFromService.java Datei anzeigen

@@ -26,4 +26,6 @@ public interface ITaSharePersonFromService extends IService<TaSharePersonFrom> {
26 26
     TaSharePersonFrom addSharePersonRecord(String personId, Integer orgId, String from, String recommender, String targetId);
27 27
 
28 28
     ResponseBean selectHouseVisitList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String sceneType, String phone, String saleBatchId);
29
+
30
+    ResponseBean selectLiveActivityVisitList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String sceneType, String phone, String liveActivityId);
29 31
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaShareService.java Datei anzeigen

@@ -21,4 +21,6 @@ public interface ITaShareService extends IService<TaShare> {
21 21
     void makeSure(String openid, String typeOf, String id, Integer orgId);
22 22
 
23 23
     ResponseBean selectHouseShareList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer saleBatchId);
24
+
25
+    ResponseBean listLiveShare(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer liveActivityId);
24 26
 }

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITdLiveDictService.java Datei anzeigen

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.TdLiveDict;
5
+
6
+/**
7
+ * <p>
8
+ *   服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2020-02-20
13
+ */
14
+public interface ITdLiveDictService extends IService<TdLiveDict> {
15
+
16
+}

+ 55
- 11
src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java Datei anzeigen

@@ -88,7 +88,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
88 88
         TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
89 89
         if (null == miniapp) {
90 90
             log.error("小程序 {} 不存在", toUser.getMiniappId());
91
-            return ;
91
+            return;
92 92
         }
93 93
 
94 94
         // 消息内容类型
@@ -132,7 +132,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
132 132
             }
133 133
         }
134 134
 
135
-        String[] smsParams = { name, miniapp.getName() + "小程序" };
135
+        String[] smsParams = {name, miniapp.getName() + "小程序"};
136 136
         if (null == tpl) {
137 137
             log.error("小程序 {} 不存在 或者 无通知消息模板 {}", toUser.getMiniappId(), contentType);
138 138
 
@@ -141,7 +141,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
141 141
         } else {
142 142
 
143 143
             if (isSubscribe) {
144
-                String[] data = new String[] { name, phone, content, DateUtils.cutSecond(dt) };
144
+                String[] data = new String[]{name, phone, content, DateUtils.cutSecond(dt)};
145 145
                 ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
146 146
                 if (res.getCode() != ResponseBean.CODE_SUCCESS) {
147 147
                     // 使用短信发送
@@ -161,13 +161,13 @@ public class MiniAppServiceImpl implements IMiniAppService {
161 161
         // 更新消息发送时间
162 162
         iTaPersonMessageRuleService.saveOrUpdateByPersonAndMessage(toUser.getPersonId(), messageType, contentType, toUser.getOrgId());
163 163
     }
164
-    
164
+
165 165
     @Override
166 166
     public void sendHelpMessage(TaPerson toUser, String link, String result, String activityName, LocalDateTime dt) {
167 167
         TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
168 168
         if (null == miniapp) {
169 169
             log.error("小程序 {} 不存在", toUser.getMiniappId());
170
-            return ;
170
+            return;
171 171
         }
172 172
 
173 173
         // 消息内容类型
@@ -181,7 +181,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
181 181
         String messageType = null == tpl ? CommConstant.MESSAGE_TYPE_OF_SMS :
182 182
                 isSubscribe ? CommConstant.MESSAGE_TYPE_OF_MINIAPP_SUBSCRIBE : CommConstant.MESSAGE_TYPE_OF_MINIAPP_TEMPLATE;
183 183
 
184
-        String[] smsParams = { miniapp.getName() + "小程序-" + activityName };
184
+        String[] smsParams = {miniapp.getName() + "小程序-" + activityName};
185 185
 
186 186
         if (null == tpl) {
187 187
             log.error("小程序 {} 无通知消息模板 {}", toUser.getMiniappId(), contentType);
@@ -191,7 +191,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
191 191
         } else {
192 192
 
193 193
             if (isSubscribe) {
194
-                String[] data = new String[] { activityName, result, DateUtils.cutSecond(dt)};
194
+                String[] data = new String[]{activityName, result, DateUtils.cutSecond(dt)};
195 195
                 ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
196 196
                 if (res.getCode() != ResponseBean.CODE_SUCCESS) {
197 197
                     // 使用短信发送
@@ -219,7 +219,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
219 219
         TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
220 220
         if (null == miniapp) {
221 221
             log.error("小程序 {} 不存在", toUser.getMiniappId());
222
-            return ;
222
+            return;
223 223
         }
224 224
 
225 225
         // 消息内容类型
@@ -233,7 +233,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
233 233
         String messageType = null == tpl ? CommConstant.MESSAGE_TYPE_OF_SMS :
234 234
                 isSubscribe ? CommConstant.MESSAGE_TYPE_OF_MINIAPP_SUBSCRIBE : CommConstant.MESSAGE_TYPE_OF_MINIAPP_TEMPLATE;
235 235
 
236
-        String[] smsParams = { miniapp.getName() + "小程序-" + activityName };
236
+        String[] smsParams = {miniapp.getName() + "小程序-" + activityName};
237 237
 
238 238
         if (null == tpl) {
239 239
             log.error("小程序 {} 无通知消息模板 {}", toUser.getMiniappId(), contentType);
@@ -243,7 +243,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
243 243
         } else {
244 244
 
245 245
             if (isSubscribe) {
246
-                String[] data = new String[] { activityName, result, DateUtils.cutSecond(dt) };
246
+                String[] data = new String[]{activityName, result, DateUtils.cutSecond(dt)};
247 247
                 ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
248 248
                 if (res.getCode() != ResponseBean.CODE_SUCCESS) {
249 249
                     // 使用短信发送
@@ -266,6 +266,50 @@ public class MiniAppServiceImpl implements IMiniAppService {
266 266
         iTaPersonMessageRuleService.saveOrUpdateByPersonAndMessage(toUser.getPersonId(), messageType, contentType, toUser.getOrgId());
267 267
     }
268 268
 
269
+    @Override
270
+    public void sendCheckMessage(TaPerson toUser, String link, String name, String result, String programName,
271
+                                 String failReason, String remark, LocalDateTime dt, Boolean isSuccess) {
272
+        TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
273
+        if (null == miniapp) {
274
+            log.error("小程序 {} 不存在", toUser.getMiniappId());
275
+            return;
276
+        }
277
+
278
+        // 消息内容类型
279
+        String contentType = CommConstant.MESSAGE_CONTENT_OF_HOUSE;
280
+        TaMiniappTemplate tpl = getTplByType(contentType, toUser.getMiniappId());
281
+        boolean isSubscribe = null != tpl && (null == tpl.getIsSubscribe() ? false : tpl.getIsSubscribe());
282
+        // 消息发送类型
283
+        String messageType = null == tpl ? CommConstant.MESSAGE_TYPE_OF_SMS :
284
+                isSubscribe ? CommConstant.MESSAGE_TYPE_OF_MINIAPP_SUBSCRIBE : CommConstant.MESSAGE_TYPE_OF_MINIAPP_TEMPLATE;
285
+
286
+        String[] smsParams = {miniapp.getName() + "小程序-" + programName + name};
287
+
288
+        if (null == tpl) {
289
+            if (isSuccess) {
290
+                log.error("小程序 {} 无通知消息模板 {}", toUser.getMiniappId(), contentType);
291
+                // 短信发送
292
+                sendSmsMessage(StringUtils.ifNull(toUser.getTel(), toUser.getPhone()), contentType, smsParams);
293
+            }
294
+        } else {
295
+            if (isSubscribe) {
296
+                String[] data = new String[]{name, result, programName, remark, failReason, DateUtils.cutSecond(dt)};
297
+                ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
298
+                if (res.getCode() != ResponseBean.CODE_SUCCESS && isSuccess) {
299
+                    // 使用短信发送
300
+                    sendSmsMessage(StringUtils.ifNull(toUser.getTel(), toUser.getPhone()), contentType, smsParams);
301
+                    messageType = CommConstant.MESSAGE_TYPE_OF_SMS;
302
+                }
303
+            } else {
304
+                log.info("发送模板消息");
305
+            }
306
+        }
307
+        // TODO 写消息发送日志
308
+        // 更新消息发送时间
309
+        iTaPersonMessageRuleService.saveOrUpdateByPersonAndMessage(toUser.getPersonId(), messageType, contentType, toUser.getOrgId());
310
+    }
311
+
312
+
269 313
     @Override
270 314
     public ResponseBean getQrCode(String paramsStr, String appid) {
271 315
         if (null == paramsStr) return ResponseBean.error("请指定二维码生成参数", ResponseBean.ERROR_MISSING_PARAMS);
@@ -365,7 +409,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
365 409
         }
366 410
 
367 411
         TaMiniappTemplate tpl = getTplByType(tplName, toUser.getMiniappId());
368
-        if (null == tpl) return ;
412
+        if (null == tpl) return;
369 413
 
370 414
         String formid = taMiniFormidsService.getFormidBy(toUser.getMiniOpenid(), true);
371 415
         if (StringUtils.isEmpty(formid)) {

+ 31
- 1
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java Datei anzeigen

@@ -81,6 +81,9 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
81 81
     @Autowired
82 82
     private TaShareActivityMapper taShareActivityMapper;
83 83
 
84
+    @Autowired
85
+    private TaLiveActivityMapper taLiveActivityMapper;
86
+
84 87
     @Autowired
85 88
     private TaExtendContentMapper taExtendContentMapper;
86 89
 
@@ -148,7 +151,7 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
148 151
 //        Page<TaBuilding> page = new Page<>();
149 152
 //        page.setSize(pageSize == null ? 10 : pageSize);
150 153
 //        page.setCurrent(pageNum == null ? 1 : pageNum);
151
-        List<TaBuilding> building = taBuildingMapper.buildingListSelect(name, code,startDate,buildingStatus,marketStatus,cityId,isMain,orgId,taPersonBuildingList);
154
+        List<TaBuilding> building = taBuildingMapper.buildingListSelect(name, code, startDate, buildingStatus, marketStatus, cityId, isMain, orgId, taPersonBuildingList);
152 155
 //        page.setRecords(building);
153 156
         return ResponseBean.success(building);
154 157
     }
@@ -222,6 +225,11 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
222 225
         if (null == building) {
223 226
             return ResponseBean.error("项目不存在", ResponseBean.ERROR_UNAVAILABLE);
224 227
         }
228
+
229
+        if (1 != building.getStatus()) {
230
+            return ResponseBean.error("项目未发布", ResponseBean.ERROR_UNAVAILABLE);
231
+        }
232
+
225 233
         //查询当前图片
226 234
         building.setBuildingImg(getBuildingImg(id, CommConstant.BUILDING_IMG_BANNER));
227 235
 
@@ -293,6 +301,13 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
293 301
         List<TaShareActivity> shareActivityList = taShareActivityMapper.selectList(shareActivityQueryWrapper);
294 302
         building.setShareActivityList(shareActivityList);
295 303
 
304
+        // TODO 直播活动
305
+        QueryWrapper<TaLiveActivity> liveActivityQueryWrapper = new QueryWrapper<>();
306
+        liveActivityQueryWrapper.eq("building_id", id);
307
+        liveActivityQueryWrapper.eq("status", 1);
308
+        List<TaLiveActivity> liveActivityList = taLiveActivityMapper.selectList(liveActivityQueryWrapper);
309
+        building.setLiveActivityList(liveActivityList);
310
+
296 311
         // 查询 周边数据
297 312
         QueryWrapper<TaBuildingMapRelation> mapRelationQueryWrapper = new QueryWrapper<>();
298 313
         mapRelationQueryWrapper.eq("building_id", building.getBuildingId());
@@ -427,6 +442,14 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
427 442
             taShareActivityQueryWrapper.eq("building_id", building.getBuildingId());
428 443
             taShareActivityMapper.update(taShareActivity, taShareActivityQueryWrapper);
429 444
 
445
+            //更新直播城市
446
+            TaLiveActivity taLiveActivity = new TaLiveActivity();
447
+            taLiveActivity.setCityId(building.getCityId());
448
+            taLiveActivity.setBuildingId(building.getBuildingId());
449
+            QueryWrapper<TaLiveActivity> taLiveActivityQueryWrapper = new QueryWrapper<>();
450
+            taLiveActivityQueryWrapper.eq("building_id", building.getBuildingId());
451
+            taLiveActivityMapper.update(taLiveActivity, taLiveActivityQueryWrapper);
452
+
430 453
             //更新首页轮播、开屏广告、宣传位
431 454
             TaExtendContent taExtendContent = new TaExtendContent();
432 455
             taExtendContent.setCityId(building.getCityId());
@@ -608,6 +631,13 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
608 631
         building.setStatus(-1);
609 632
         taBuildingMapper.update(building, buildingIdQueryWrapper);
610 633
 
634
+        TaLiveActivity taLiveActivity = new TaLiveActivity();
635
+        QueryWrapper<TaLiveActivity> queryWrapper = new QueryWrapper<>();
636
+        queryWrapper.eq("building_id", id);
637
+        taLiveActivity.setStatus(0);
638
+        taLiveActivity.setCityId(null);
639
+        taLiveActivity.setBuildingId(null);
640
+        taLiveActivityMapper.update(taLiveActivity, queryWrapper);
611 641
         return ResponseBean.success("");
612 642
     }
613 643
 

+ 189
- 0
src/main/java/com/huiju/estateagents/service/impl/TaLiveActivityServiceImpl.java Datei anzeigen

@@ -0,0 +1,189 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONObject;
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.entity.*;
11
+import com.huiju.estateagents.mapper.TaLiveActivityMapper;
12
+import com.huiju.estateagents.mapper.TdLiveDictMapper;
13
+import com.huiju.estateagents.service.*;
14
+import org.apache.commons.collections.CollectionUtils;
15
+import org.apache.commons.lang3.StringUtils;
16
+import org.slf4j.Logger;
17
+import org.slf4j.LoggerFactory;
18
+import org.springframework.beans.factory.annotation.Autowired;
19
+import org.springframework.stereotype.Service;
20
+
21
+import java.time.LocalDateTime;
22
+import java.util.ArrayList;
23
+import java.util.List;
24
+
25
+/**
26
+ * <p>
27
+ * 服务实现类
28
+ * </p>
29
+ *
30
+ * @author jobob
31
+ * @since 2020-02-20
32
+ */
33
+@Service
34
+public class TaLiveActivityServiceImpl extends ServiceImpl<TaLiveActivityMapper, TaLiveActivity> implements ITaLiveActivityService {
35
+
36
+    private Logger logger = LoggerFactory.getLogger(TaLiveActivityServiceImpl.class);
37
+
38
+    @Autowired
39
+    private TaShareContentService taShareContentService;
40
+
41
+    @Autowired
42
+    private ITaMiniappService taMiniappService;
43
+
44
+    @Autowired
45
+    private IMiniAppService miniAppService;
46
+
47
+    @Autowired
48
+    private TaLiveActivityMapper taLiveActivityMapper;
49
+
50
+    @Autowired
51
+    private TaPosterServiceImpl taPosterService;
52
+
53
+    @Autowired
54
+    private ShareContentServiceImpl shareContentService;
55
+
56
+    @Autowired
57
+    private TdPosterTemplateServiceImpl posterTemplateService;
58
+
59
+    @Autowired
60
+    private TdLiveDictMapper tdLiveDictMapper;
61
+
62
+
63
+    @Override
64
+    public ResponseBean taLiveActivityAdd(TaLiveActivity taLiveActivity) {
65
+        logger.info("TaLiveActivityServiceImpl.taLiveActivityAdd 接收参数:" + JSONObject.toJSONString(taLiveActivity));
66
+
67
+        ResponseBean responseBean = new ResponseBean();
68
+
69
+        taLiveActivity.setVisitNum(0);
70
+        taLiveActivity.setCreateDate(LocalDateTime.now());
71
+        taLiveActivity.setUpdateDate(LocalDateTime.now());
72
+        if (StringUtils.isNotBlank(taLiveActivity.getLiveRoomParam())) {
73
+            taLiveActivity.setLiveAppPath(taLiveActivity.getLiveRoomParam().replace(".html", ""));
74
+        }
75
+
76
+        Boolean result = save(taLiveActivity);
77
+        if (!result) {
78
+            responseBean.addError("fail");
79
+            return responseBean;
80
+        }
81
+        QueryWrapper<TaMiniapp> taMiniappQuery = new QueryWrapper<>();
82
+        taMiniappQuery.eq("org_id", taLiveActivity.getOrgId());
83
+        TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQuery);
84
+        ResponseBean taMiniappQrcode = miniAppService.getQrCode
85
+                (CommConstant.LIVE_ACTIVITY_QRCODE.replace("#0", taLiveActivity.getLiveActivityId().toString())
86
+                        .replace("#1", "live"), taMiniapp.getMiniappId());
87
+        taLiveActivity.setQrCode(String.valueOf(taMiniappQrcode.getData()));
88
+        updateById(taLiveActivity);
89
+
90
+        // 设置默认海报数据
91
+        TaShareContent shareContent = new TaShareContent();
92
+        shareContent.setOrgId(taLiveActivity.getOrgId());
93
+        shareContent.setTargetId(taLiveActivity.getLiveActivityId().toString());
94
+        shareContent.setShareContentTitle("直播看房,在线答疑,快上车~");
95
+//        shareContent.setShareContentImg(taLiveActivity.getDetailImg());
96
+        shareContent.setShareContentType(CommConstant.LIVE);
97
+        shareContent.setStatus(CommConstant.STATUS_NORMAL);
98
+        shareContent.setCreateDate(LocalDateTime.now());
99
+        taShareContentService.save(shareContent);
100
+
101
+        responseBean.addSuccess(taLiveActivity);
102
+        return responseBean;
103
+    }
104
+
105
+    @Override
106
+    public IPage<TaLiveActivity> listLiveActivityByCondition(Integer pageNum, Integer pageSize, Integer orgId, String liveActivityTitle,
107
+                                                             String cityId, String buildingId, Integer status, List<TaPersonBuilding> taPersonBuildingListByUserId) {
108
+        logger.info("TaLiveActivityServiceImpl.listLiveActivityByCondition 接收参数:pageNum:{},pageSize:{},orgId:{}," +
109
+                    "liveActivityTitle:{},cityId:{},buildingId:{},liveDetailType:{},status:{}", pageNum, pageSize,
110
+                liveActivityTitle, cityId, buildingId, status);
111
+
112
+        IPage<TaLiveActivity> pg = new Page<>(pageNum, pageSize);
113
+        return taLiveActivityMapper.selectLiveListByCondition(pg, liveActivityTitle, cityId, buildingId, status, orgId,taPersonBuildingListByUserId);
114
+    }
115
+
116
+    @Override
117
+    public ResponseBean addVisitNum(String id) {
118
+        ResponseBean responseBean = new ResponseBean();
119
+        Boolean result = taLiveActivityMapper.addVisitNum(id);
120
+        if (result) {
121
+            responseBean.addSuccess("成功");
122
+            return responseBean;
123
+        }
124
+        responseBean.addError("fail");
125
+        return responseBean;
126
+    }
127
+
128
+    @Override
129
+    public ResponseBean getLiveActivityDetailById(String id, Integer orgId) {
130
+        logger.info("getLiveActivityDetailById 接收参数:id:{},orgId:{}", id, orgId);
131
+
132
+        ResponseBean responseBean = new ResponseBean();
133
+        QueryWrapper<TaLiveActivity> liveActivityQueryWrapper = new QueryWrapper<>();
134
+        liveActivityQueryWrapper.eq("live_activity_id", id);
135
+        liveActivityQueryWrapper.eq("org_id", orgId);
136
+        TaLiveActivity result = taLiveActivityMapper.selectOne(liveActivityQueryWrapper);
137
+        if (result == null) {
138
+            responseBean.addSuccess(null);
139
+            return responseBean;
140
+        }
141
+
142
+        // 获取直播小程序信息
143
+        QueryWrapper<TdLiveDict> tdLiveDictQueryWrapper = new QueryWrapper<>();
144
+        tdLiveDictQueryWrapper.eq("id", result.getLiveApp());
145
+        tdLiveDictQueryWrapper.eq("status", "1");
146
+        TdLiveDict tdLiveDict = tdLiveDictMapper.selectOne(tdLiveDictQueryWrapper);
147
+        if (tdLiveDict == null) {
148
+            responseBean.addSuccess(null);
149
+            return responseBean;
150
+        }
151
+        result.setLiveAppName(tdLiveDict.getLivePlatName());
152
+        result.setLiveAppAppId(tdLiveDict.getLivePlatValue());
153
+
154
+        // 获取海报信息
155
+        QueryWrapper<TaPoster> queryWrapper = new QueryWrapper<>();
156
+        queryWrapper.eq("target_id", id + "");
157
+        queryWrapper.eq("target_type", CommConstant.LIVE);
158
+        queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
159
+        List<TaPoster> posterList = taPosterService.list(queryWrapper);
160
+
161
+        List<TaPoster> resultPosterList = new ArrayList<>();
162
+        if (CollectionUtils.isNotEmpty(posterList)) {
163
+            for (TaPoster poster : posterList) {
164
+                QueryWrapper<TdPosterTemplate> templateQueryWrapper = new QueryWrapper<>();
165
+                templateQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
166
+                templateQueryWrapper.eq("type ", "liveActivity");
167
+                List<TdPosterTemplate> posterTemplate = posterTemplateService.list(templateQueryWrapper);
168
+
169
+                poster.setTemplates(posterTemplate);
170
+                resultPosterList.add(poster);
171
+            }
172
+        }
173
+
174
+        // 获取分享内容信息
175
+        List<TaShareContent> shareContentList = shareContentService.getPostersForTarget(id + "", CommConstant.LIVE);
176
+
177
+        result.setPosters(resultPosterList);
178
+        result.setShareContents(shareContentList);
179
+        responseBean.addSuccess(result);
180
+        return responseBean;
181
+    }
182
+
183
+    @Override
184
+    public ResponseBean delLiveActivityList(Integer orgId, List<TaLiveActivity> liveActivityList) {
185
+        ResponseBean responseBean = new ResponseBean();
186
+        taLiveActivityMapper.updateLiveActivityStatus(orgId, liveActivityList);
187
+        return responseBean;
188
+    }
189
+}

+ 103
- 31
src/main/java/com/huiju/estateagents/service/impl/TaPreselectionRecordServiceImpl.java Datei anzeigen

@@ -8,11 +8,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8 8
 import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.common.CommConstant;
10 10
 import com.huiju.estateagents.common.DateUtils;
11
-import com.huiju.estateagents.common.StringUtils;
12 11
 import com.huiju.estateagents.entity.TaApartmentImg;
13 12
 import com.huiju.estateagents.entity.TaBuildingImg;
13
+import com.huiju.estateagents.entity.TaPerson;
14 14
 import com.huiju.estateagents.entity.TaPreselectionRecord;
15
-import com.huiju.estateagents.entity.TaSharePersonFrom;
16 15
 import com.huiju.estateagents.mapper.TaApartmentImgMapper;
17 16
 import com.huiju.estateagents.mapper.TaBuildingImgMapper;
18 17
 import com.huiju.estateagents.mapper.TaHousingResourcesMapper;
@@ -21,6 +20,7 @@ import com.huiju.estateagents.po.TaHousingResourcesPO;
21 20
 import com.huiju.estateagents.po.TaPreselectionRecordPO;
22 21
 import com.huiju.estateagents.service.ITaPreselectionRecordService;
23 22
 import org.apache.commons.collections.CollectionUtils;
23
+import org.apache.commons.lang3.StringUtils;
24 24
 import org.slf4j.Logger;
25 25
 import org.slf4j.LoggerFactory;
26 26
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +30,8 @@ import org.springframework.transaction.annotation.Transactional;
30 30
 import java.time.LocalDateTime;
31 31
 import java.util.ArrayList;
32 32
 import java.util.List;
33
+import java.util.concurrent.ExecutorService;
34
+import java.util.concurrent.Executors;
33 35
 
34 36
 /**
35 37
  * <p>
@@ -56,6 +58,12 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
56 58
     @Autowired
57 59
     TaApartmentImgMapper taApartmentImgMapper;
58 60
 
61
+    @Autowired
62
+    private MiniAppServiceImpl miniAppService;
63
+
64
+    @Autowired
65
+    private TaPersonServiceImpl taPersonService;
66
+
59 67
     @Override
60 68
     public IPage<TaPreselectionRecordPO> listPreselectionRecord(Integer pageNum, Integer pageSize, Integer orgId, String personId) {
61 69
         logger.info("listPreselectionRecord 接收参数:pageNum:{},pageSize:{},orgId:{},personId:{}", pageNum, pageSize, orgId, personId);
@@ -64,28 +72,30 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
64 72
         iPage = taPreselectionRecordMapper.listPreselectionRecord(iPage, orgId, personId);
65 73
 
66 74
         List<TaPreselectionRecordPO> poList = iPage.getRecords();
67
-        if (CollectionUtils.isNotEmpty(poList)) {
68
-            List<TaPreselectionRecordPO> resultList = new ArrayList<>();
69
-            List<TaBuildingImg> taBuildingImgList;
70
-            List<TaApartmentImg> buildingImg;
71
-            QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper;
72
-            QueryWrapper<TaBuildingImg> buildingImgQueryWrapper;
73
-            for (TaPreselectionRecordPO po : poList) {
74
-                apartmentImgQueryWrapper = new QueryWrapper<>();
75
-                apartmentImgQueryWrapper.eq("apartment_id", po.getApartmentId());
76
-                buildingImg = taApartmentImgMapper.selectList(apartmentImgQueryWrapper);
77
-                for (TaApartmentImg apartmentImg : buildingImg) {
78
-                    buildingImgQueryWrapper = new QueryWrapper<>();
79
-                    buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
80
-                    buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
81
-                    buildingImgQueryWrapper.orderByAsc("order_no");
82
-                    taBuildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
83
-                    po.setBuildingImgList(taBuildingImgList);
84
-                }
85
-                resultList.add(po);
75
+        if (CollectionUtils.isEmpty(poList)) {
76
+            return iPage;
77
+        }
78
+
79
+        List<TaPreselectionRecordPO> resultList = new ArrayList<>();
80
+        List<TaBuildingImg> taBuildingImgList;
81
+        List<TaApartmentImg> buildingImg;
82
+        QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper;
83
+        QueryWrapper<TaBuildingImg> buildingImgQueryWrapper;
84
+        for (TaPreselectionRecordPO po : poList) {
85
+            apartmentImgQueryWrapper = new QueryWrapper<>();
86
+            apartmentImgQueryWrapper.eq("apartment_id", po.getApartmentId());
87
+            buildingImg = taApartmentImgMapper.selectList(apartmentImgQueryWrapper);
88
+            for (TaApartmentImg apartmentImg : buildingImg) {
89
+                buildingImgQueryWrapper = new QueryWrapper<>();
90
+                buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
91
+                buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
92
+                buildingImgQueryWrapper.orderByAsc("order_no");
93
+                taBuildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
94
+                po.setBuildingImgList(taBuildingImgList);
86 95
             }
87
-            iPage.setRecords(resultList);
96
+            resultList.add(po);
88 97
         }
98
+        iPage.setRecords(resultList);
89 99
         return iPage;
90 100
     }
91 101
 
@@ -95,36 +105,50 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
95 105
         logger.info("listPreselectionRecord 接收参数:taPreselectionRecord:{}", JSONObject.toJSONString(taPreselectionRecord));
96 106
 
97 107
         ResponseBean responseBean = new ResponseBean();
108
+        String tip;
109
+        String checkType = "预选";
110
+
111
+        String houseId = taPreselectionRecord.getHouseId();
112
+        String personId = taPreselectionRecord.getPersonId();
98 113
 
99 114
         // 校验用户是否已经预选房源
100
-        TaPreselectionRecord record = taPreselectionRecordMapper
101
-                .getRecordByPersonIdAndHouseId(taPreselectionRecord.getPersonId(), taPreselectionRecord.getHouseId());
115
+        TaPreselectionRecord record = taPreselectionRecordMapper.getRecordByPersonIdAndHouseId(personId, houseId);
102 116
         if (record != null) {
103
-            responseBean.addError("已预选过此房源,请到选房记录中查看。");
117
+            tip = "已预选过此房源。";
118
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip, false);
119
+            responseBean.addError(tip);
104 120
             return responseBean;
105 121
         }
106 122
 
107 123
         TaHousingResourcesPO resourcesPO = taHousingResourcesMapper.getHousingDetailById(taPreselectionRecord.getHouseId(), "0");
108 124
         if (resourcesPO == null) {
109
-            responseBean.addError("fail");
125
+            tip = "当前房源已临时取消发布。";
126
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip, false);
127
+            responseBean.addError(tip);
110 128
             return responseBean;
111 129
         }
112 130
 
113 131
         // 校验当前批次状态是否为已发布
114 132
         if (resourcesPO.getSaleBatchStatus() != 1) {
115
-            responseBean.addError("当前销售批次已临时取消发布,请稍后再试或联系置业顾问了解详情。");
133
+            tip = "当前销售批次已临时取消发布。";
134
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip, false);
135
+            responseBean.addError(tip);
116 136
             return responseBean;
117 137
         }
118 138
 
119 139
         // 校验当前房源状态是否为已发布
120 140
         if (1 != resourcesPO.getStatus()) {
121
-            responseBean.addError("当前房源已临时取消发布,请稍后再试或联系置业顾问了解详情。");
141
+            tip = "当前房源已临时取消发布。";
142
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip, false);
143
+            responseBean.addError(tip);
122 144
             return responseBean;
123 145
         }
124 146
 
125 147
         // 校验预选操作时间是否在规定范围内
126 148
         if (!DateUtils.checkTimeRange(resourcesPO.getPreselectionStartTime(), resourcesPO.getPreselectionEndTime(), null)) {
127
-            responseBean.addError("当前时间不在预选时间范围内,请联系置业顾问了解详情。");
149
+            tip = "当前时间不在预选时间范围内。";
150
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip, false);
151
+            responseBean.addError(tip);
128 152
             return responseBean;
129 153
         }
130 154
 
@@ -137,10 +161,13 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
137 161
         // 更新房源表热度
138 162
         Boolean result = taHousingResourcesMapper.updateForAddHeat(taPreselectionRecord.getHouseId());
139 163
         if (result) {
164
+            sendSubscribeMsg(houseId, personId, checkType, "成功", "无", true);
140 165
             responseBean.addSuccess(taPreselectionRecord);
141 166
             return responseBean;
142 167
         }
143
-        responseBean.addError("fail");
168
+        tip = "未知原因失败,请联系置业顾问。";
169
+        sendSubscribeMsg(houseId, personId, checkType, "失败", tip, false);
170
+        responseBean.addError(tip);
144 171
         return responseBean;
145 172
     }
146 173
 
@@ -150,6 +177,7 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
150 177
         logger.info("taPreselectionRecordCancel 接收参数:personId:{},houseId:{}", personId, houseId);
151 178
 
152 179
         ResponseBean responseBean = new ResponseBean<>();
180
+
153 181
         // 校验是否已经取消
154 182
         TaPreselectionRecord preselectionRecord = taPreselectionRecordMapper.getRecordByPersonIdAndHouseId(personId, houseId);
155 183
         if (preselectionRecord == null) {
@@ -177,7 +205,12 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
177 205
         updateById(record);
178 206
 
179 207
         // 更新房源表热度
180
-        responseBean.addSuccess(taHousingResourcesMapper.updateForSubtractHeat(houseId));
208
+        Boolean result = taHousingResourcesMapper.updateForSubtractHeat(houseId);
209
+        if (result) {
210
+            responseBean.addSuccess(result);
211
+            return responseBean;
212
+        }
213
+        responseBean.addError("未知原因失败,请联系置业顾问。");
181 214
         return responseBean;
182 215
     }
183 216
 
@@ -189,4 +222,43 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
189 222
         page.setRecords(list);
190 223
         return ResponseBean.success(page);
191 224
     }
225
+
226
+    /**
227
+     * 发送订阅消息
228
+     *
229
+     * @param houseId    房源ID
230
+     * @param personId   用户ID
231
+     * @param checkType  审核类型
232
+     * @param result     审核结果
233
+     * @param failReason 失败原因
234
+     * @param isSuccess  是否成功 true是(只有成功才发送短信)
235
+     */
236
+    public void sendSubscribeMsg(String houseId, String personId, String checkType, String result, String failReason, Boolean isSuccess) {
237
+        logger.info("sendSubscribeMsg 接收参数:houseId:{},checkType:{},result:{},failReason:{}",
238
+                houseId, checkType, result, failReason);
239
+
240
+        ExecutorService threadPool = Executors.newCachedThreadPool();
241
+        threadPool.execute(() -> {
242
+            logger.info("sendSubscribeMsg 开始");
243
+
244
+            // 获取房源详情
245
+            TaHousingResourcesPO po = taHousingResourcesMapper.getHousingDetailById(houseId, "1");
246
+            if (po == null) {
247
+                logger.info("sendSubscribeMsg 未找到房源信息。");
248
+                return;
249
+            }
250
+
251
+            // 获取用户信息
252
+            TaPerson toUser = taPersonService.getById(personId);
253
+            if (toUser == null) {
254
+                return;
255
+            }
256
+
257
+            String link = String.format(CommConstant.HOUSE_DETAIL_PATH, houseId);
258
+            String progranName = StringUtils.isBlank(po.getBuildingName()) ? "无" : po.getBuildingName();
259
+            String remark = progranName;
260
+            miniAppService.sendCheckMessage(toUser, link, checkType, result, progranName, failReason, remark, LocalDateTime.now(), isSuccess);
261
+            logger.info("sendSubscribeMsg 结束");
262
+        });
263
+    }
192 264
 }

+ 12
- 4
src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java Datei anzeigen

@@ -6,16 +6,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
6 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8 8
 import com.huiju.estateagents.common.CommConstant;
9
-import com.huiju.estateagents.common.StringUtils;
10 9
 import com.huiju.estateagents.entity.*;
11 10
 import com.huiju.estateagents.mapper.TaHousingResourcesMapper;
12 11
 import com.huiju.estateagents.mapper.TaPosterMapper;
13 12
 import com.huiju.estateagents.mapper.TaSalesBatchMapper;
14 13
 import com.huiju.estateagents.service.ITaBuildingRoomService;
14
+import com.huiju.estateagents.service.ITaBuildingService;
15 15
 import com.huiju.estateagents.service.ITaHousingResourcesService;
16 16
 import com.huiju.estateagents.service.ITaSalesBatchService;
17 17
 import org.apache.commons.collections.CollectionUtils;
18
-import org.checkerframework.checker.units.qual.A;
19 18
 import org.slf4j.Logger;
20 19
 import org.slf4j.LoggerFactory;
21 20
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,9 +62,12 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
63 62
     @Autowired
64 63
     private ITaBuildingRoomService taBuildingRoomService;
65 64
 
65
+    @Autowired
66
+    private ITaBuildingService taBuildingService;
67
+
66 68
     @Override
67
-    public IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId) {
68
-        return taSalesBatchMapper.selectByCondition(page, salesBatchName, buildingId, status, orgId);
69
+    public IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId, List<TaPersonBuilding> taPersonBuildingListByUserId) {
70
+        return taSalesBatchMapper.selectByCondition(page, salesBatchName, buildingId, status, orgId,taPersonBuildingListByUserId);
69 71
     }
70 72
 
71 73
     @Override
@@ -158,6 +160,12 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
158 160
             return responseBean;
159 161
         }
160 162
 
163
+        // 获取楼盘名称
164
+        TaBuilding taBuilding = taBuildingService.getById(result.getBuildingId());
165
+        if(taBuilding != null){
166
+            result.setBuildingName(taBuilding.getBuildingName());
167
+        }
168
+
161 169
         // 获取海报信息
162 170
         QueryWrapper<TaPoster> queryWrapper = new QueryWrapper<>();
163 171
         queryWrapper.eq("target_id", salesBatchId + "");

+ 16
- 0
src/main/java/com/huiju/estateagents/service/impl/TaSharePersonFromServiceImpl.java Datei anzeigen

@@ -43,6 +43,9 @@ public class TaSharePersonFromServiceImpl extends ServiceImpl<TaSharePersonFromM
43 43
     @Autowired
44 44
     private  TaSalesBatchMapper taSalesBatchMapper;
45 45
 
46
+    @Autowired
47
+    private TaLiveActivityMapper taLiveActivityMapper;
48
+
46 49
     /**
47 50
      * 添加客户分享记录
48 51
      *
@@ -118,4 +121,17 @@ public class TaSharePersonFromServiceImpl extends ServiceImpl<TaSharePersonFromM
118 121
         page.setRecords(list);
119 122
         return ResponseBean.success(page);
120 123
     }
124
+
125
+    @Override
126
+    public ResponseBean selectLiveActivityVisitList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String sceneType, String phone, String liveActivityId) {
127
+        Page page = new Page(pageNum,pageSize);
128
+        // 分页查询
129
+        List<TaSharePersonFrom> list = taSharePersonFromMapper.selectLiveActivityVisitList(page, orgId, personType, sceneType, phone, liveActivityId);
130
+        TaLiveActivity taLiveActivity = taLiveActivityMapper.selectById(liveActivityId);
131
+        list.forEach(e -> {
132
+            e.setLiveActivityTitle(taLiveActivity.getLiveActivityTitle());
133
+        });
134
+        page.setRecords(list);
135
+        return ResponseBean.success(page);
136
+    }
121 137
 }

+ 20
- 4
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java Datei anzeigen

@@ -51,6 +51,9 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
51 51
     @Autowired
52 52
     private TaSalesBatchMapper taSalesBatchMapper;
53 53
 
54
+    @Autowired
55
+    private TaLiveActivityMapper taLiveActivityMapper;
56
+
54 57
     @Resource
55 58
     private ApplicationContext applicationContext;
56 59
 
@@ -143,6 +146,19 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
143 146
         return ResponseBean.success(result);
144 147
     }
145 148
 
149
+    @Override
150
+    public ResponseBean selectHouseShareList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer saleBatchId) {
151
+        Page page = new Page(pageNum,pageSize);
152
+        // 分页查询
153
+        List<TaShare> list = taShareMapper.selectHouseShareList(page, orgId, personType, shareType, phone, saleBatchId);
154
+        TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(saleBatchId);
155
+        list.forEach(e -> {
156
+            e.setSalesBatchName(taSalesBatch.getSalesBatchName());
157
+        });
158
+        page.setRecords(list);
159
+        return ResponseBean.success(page);
160
+    }
161
+
146 162
     @Override
147 163
     public void makeSure(String openid, String typeOf, String id, Integer orgId) {
148 164
         // 查找分享记录
@@ -186,13 +202,13 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
186 202
     }
187 203
 
188 204
     @Override
189
-    public ResponseBean selectHouseShareList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer saleBatchId) {
205
+    public ResponseBean listLiveShare(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer liveActivityId) {
190 206
         Page page = new Page(pageNum,pageSize);
191 207
         // 分页查询
192
-        List<TaShare> list = taShareMapper.selectHouseShareList(page, orgId, personType, shareType, phone, saleBatchId);
193
-        TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(saleBatchId);
208
+        List<TaShare> list = taShareMapper.listLiveShare(page, orgId, personType, shareType, phone, liveActivityId);
209
+        TaLiveActivity taLiveActivity = taLiveActivityMapper.selectById(liveActivityId);
194 210
         list.forEach(e -> {
195
-            e.setSalesBatchName(taSalesBatch.getSalesBatchName());
211
+            e.setLiveActivityTitle(taLiveActivity.getLiveActivityTitle());
196 212
         });
197 213
         page.setRecords(list);
198 214
         return ResponseBean.success(page);

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TdLiveDictServiceImpl.java Datei anzeigen

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.entity.TdLiveDict;
5
+import com.huiju.estateagents.mapper.TdLiveDictMapper;
6
+import com.huiju.estateagents.service.ITdLiveDictService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ *   服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-02-20
16
+ */
17
+@Service
18
+public class TdLiveDictServiceImpl extends ServiceImpl<TdLiveDictMapper, TdLiveDict> implements ITdLiveDictService {
19
+
20
+}

+ 9
- 0
src/main/resources/mapper/Activity.xml Datei anzeigen

@@ -23,6 +23,15 @@
23 23
         <if test="cityId != null and cityId != ''">
24 24
             and city_id = #{cityId}
25 25
         </if>
26
+        UNION ALL
27
+        SELECT
28
+        live_activity_id AS id,list_img AS main_img,live_activity_title,live_start_date,live_end_date, weight as heavy, 0 weight,status activity_status,          'live' AS type
29
+        FROM
30
+        ta_live_activity
31
+        WHERE org_id = #{orgId} and `status` = #{status}
32
+        <if test="cityId != null and cityId != ''">
33
+            and city_id = #{cityId}
34
+        </if>
26 35
         ORDER BY heavy desc,activity_status,start_date
27 36
     </select>
28 37
     <select id="getCustomerActivityList" resultType="java.util.Map">

+ 51
- 0
src/main/resources/mapper/TaLiveActivityMapper.xml Datei anzeigen

@@ -0,0 +1,51 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.estateagents.mapper.TaLiveActivityMapper">
4
+
5
+    <update id="addVisitNum" parameterType="java.lang.String">
6
+        UPDATE ta_live_activity t
7
+        SET t.visit_num = IFNULL( t.visit_num, 0 ) + 1
8
+        WHERE
9
+            t.live_activity_id = #{id}
10
+    </update>
11
+
12
+    <update id ="updateLiveActivityStatus" >
13
+        UPDATE ta_live_activity t
14
+            SET t.`status` = -1,
15
+        t.update_date = CURRENT_TIME
16
+        WHERE
17
+        t.org_id = #{orgId}
18
+	    AND t.live_activity_id in
19
+        <foreach collection="taLiveActivityList" item="taLiveActivity" open="(" close=")" separator=",">
20
+            #{taLiveActivity.liveActivityId}
21
+        </foreach>
22
+    </update>
23
+
24
+    <select id="selectLiveListByCondition" resultType="com.huiju.estateagents.entity.TaLiveActivity">
25
+     select a.building_name,b.name as city_name,c.user_name as createName,d.user_name as updateName, t.* From ta_live_activity t
26
+     left join ta_building a on t.building_id = a.building_id
27
+     LEFT JOIN td_city b on t.city_id = b.id
28
+     left join ta_user c on t.create_user = c.user_id
29
+     left join ta_user d on t.update_user = d.user_id
30
+     where t.org_id = #{orgId} and t.status != -1
31
+     <if test="status != null">
32
+         and t.status = #{status}
33
+     </if>
34
+     <if test="liveActivityTitle != null and liveActivityTitle != ''">
35
+         and t.live_Activity_Title like CONCAT('%', #{liveActivityTitle}, '%')
36
+     </if>
37
+     <if test="cityId != null and cityId != ''">
38
+         and t.city_id = #{cityId}
39
+     </if><if test="buildingId != null and buildingId != ''">
40
+         and t.building_id = #{buildingId}
41
+    </if>
42
+    <if test="personBuildingList != null and personBuildingList.size > 0">
43
+        AND t.building_id in
44
+        <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
45
+            #{personBuilding.buildingId}
46
+        </foreach>
47
+    </if>
48
+        order by t.weight desc
49
+    </select>
50
+
51
+</mapper>

+ 23
- 0
src/main/resources/mapper/TaPersonVisitRecordMapper.xml Datei anzeigen

@@ -356,6 +356,29 @@
356 356
             ) t
357 357
             group by t.target_id
358 358
 
359
+			union all
360
+				select * from (
361
+					SELECT
362
+						t.be_share AS target_id,
363
+						g.list_img AS activity_img,
364
+						g.live_activity_title AS activity_name,
365
+						'1' AS price,
366
+						'2' AS building_name,
367
+						'3' AS address,
368
+						1 AS building_type_id,
369
+						LEFT ( t.tagert_type, 4 ) AS eventType,
370
+						t.create_date AS visit_time
371
+					FROM
372
+						ta_share t
373
+						LEFT JOIN ta_live_activity g ON t.be_share = g.live_activity_id
374
+					WHERE
375
+						t.tagert_type LIKE CONCAT( 'live', '%' )
376
+							AND t.person_id = #{personId}
377
+						ORDER BY
378
+							t.create_date DESC
379
+							LIMIT 9999
380
+					) t
381
+				group by t.target_id
359 382
         ) t
360 383
         order by t.visit_time desc
361 384
     </select>

+ 7
- 1
src/main/resources/mapper/TaSalesBatchMapper.xml Datei anzeigen

@@ -18,11 +18,17 @@
18 18
             and t.building_id = #{buildingId}
19 19
         </if>
20 20
         <if test="salesBatchName != null and salesBatchName != ''">
21
-            and t.sales_batch_name = #{salesBatchName}
21
+            and t.sales_batch_name like CONCAT('%',#{salesBatchName}, '%')
22 22
         </if>
23 23
         <if test="status != null">
24 24
             and t.status = #{status}
25 25
         </if>
26
+        <if test="personBuildingList != null and personBuildingList.size > 0">
27
+            AND t.building_id in
28
+            <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
29
+                #{personBuilding.buildingId}
30
+            </foreach>
31
+        </if>
26 32
     </select>
27 33
 
28 34
     <select id="countPreSelectRecord" resultType="java.lang.Integer">

+ 30
- 0
src/main/resources/mapper/TaShareMapper.xml Datei anzeigen

@@ -20,4 +20,34 @@
20 20
       </if>
21 21
         order by t.create_date desc
22 22
     </select>
23
+
24
+    <select id="listLiveShare" resultType="com.huiju.estateagents.entity.TaShare">
25
+        SELECT
26
+            a.avatarurl AS photoOravatar,
27
+            a.nickname AS nameOrnick,
28
+            a.NAME,
29
+            a.phone,
30
+            a.person_type,
31
+            t.tagert_type,
32
+            t.create_date
33
+        FROM
34
+          ta_share_count t
35
+          LEFT JOIN ta_person a ON t.person_id = a.person_id
36
+          LEFT JOIN ta_live_activity b ON t.be_share = b.live_activity_id
37
+        WHERE
38
+          a.org_id = #{orgId}
39
+        AND t.tagert_type IN ( 'livePost', 'liveApp' )
40
+        AND b.live_activity_id = #{liveActivityId}
41
+        <if test = "personType != null and personType != ''" >
42
+            AND a.person_Type = #{personType}
43
+        </if>
44
+        <if test = "shareType != null and shareType != ''" >
45
+            AND t.tagert_type = #{shareType}
46
+        </if>
47
+        <if test = "phone != null and phone != ''" >
48
+            AND a.phone = #{phone}
49
+        </if>
50
+        ORDER BY
51
+        t.create_date DESC
52
+    </select>
23 53
 </mapper>

+ 20
- 0
src/main/resources/mapper/TaSharePersonFromMapper.xml Datei anzeigen

@@ -54,4 +54,24 @@
54 54
         GROUP BY t.target_id,t.target_type,t.person_id,t.share_person
55 55
         order by t.create_date desc
56 56
     </select>
57
+
58
+    <select id="selectLiveActivityVisitList" resultType="com.huiju.estateagents.entity.TaSharePersonFrom">
59
+        select c.avatarurl as photoOravatar, c.nickname as nameOrnick, c.name, c.phone, c.person_type as sharePersonType, t.create_date
60
+        From ta_share_person_from t
61
+        LEFT JOIN ta_person_from_record a on t.person_id = a.person_id
62
+        left join ta_person c on t.person_id = c.person_id
63
+        left join ta_live_activity d on d.live_activity_id = t.target_id
64
+        where a.org_id = #{orgId}
65
+        and t.target_type = 'live_share'
66
+        and t.target_id = #{liveActivityId}
67
+        <if test="personType != null and personType != ''">
68
+            and c.person_Type = #{personType}
69
+        </if>
70
+        <if test="phone != null and phone != ''">
71
+            and c.phone = #{phone}
72
+        </if>
73
+        and t.share_person != t.person_id
74
+        GROUP BY t.target_id,t.target_type,t.person_id,t.share_person
75
+        order by t.create_date desc
76
+    </select>
57 77
 </mapper>

+ 1
- 1
src/main/resources/mapper/TaUserMapper.xml Datei anzeigen

@@ -67,7 +67,7 @@
67 67
             ta_user t
68 68
             LEFT JOIN ta_person_building b ON t.user_id = b.user_id
69 69
         WHERE
70
-            t.org_id = #{taUser.orgId}
70
+            t.org_id = #{taUser.orgId} AND (t.is_admin != 1 or t.is_admin is null)
71 71
             <if test="taUser.userName != null and taUser.userName != ''">
72 72
                 and t.user_name like CONCAT('%', #{taUser.userName}, '%')
73 73
             </if>

+ 5
- 0
src/main/resources/mapper/TdLiveDictMapper.xml Datei anzeigen

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.estateagents.mapper.TdLiveDictMapper">
4
+
5
+</mapper>