Browse Source

Merge branch 'dev' of http://git.ycjcjy.com/zhiyuxing/estateagents into dev

张延森 5 years ago
parent
commit
99c33f425c
100 changed files with 3383 additions and 318 deletions
  1. 9
    33
      pom.xml
  2. 20
    0
      src/main/java/com/huiju/estateagents/base/BaseController.java
  3. 77
    23
      src/main/java/com/huiju/estateagents/center/sysUser/controller/SysUserController.java
  4. 31
    6
      src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java
  5. 12
    0
      src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java
  6. 1
    1
      src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java
  7. 2
    2
      src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java
  8. 50
    7
      src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java
  9. 289
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/controller/SysUserChannelController.java
  10. 41
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/entity/TaChannelProxy.java
  11. 12
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/mapper/TaChannelProxyMapper.java
  12. 12
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/service/ITaChannelProxyService.java
  13. 57
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/service/impl/TaChannelProxyServiceImpl.java
  14. 47
    1
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  15. 13
    7
      src/main/java/com/huiju/estateagents/controller/ExtendContentController.java
  16. 110
    11
      src/main/java/com/huiju/estateagents/controller/MiniAppController.java
  17. 21
    0
      src/main/java/com/huiju/estateagents/controller/StatisticalController.java
  18. 4
    3
      src/main/java/com/huiju/estateagents/controller/TaBuildingController.java
  19. 2
    2
      src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java
  20. 211
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingPanoramaController.java
  21. 2
    2
      src/main/java/com/huiju/estateagents/controller/TaMiniappController.java
  22. 147
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonFromRecordController.java
  23. 15
    6
      src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java
  24. 1
    1
      src/main/java/com/huiju/estateagents/controller/TaPointsRecordsController.java
  25. 27
    8
      src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java
  26. 16
    8
      src/main/java/com/huiju/estateagents/controller/TaSharePersonFromController.java
  27. 2
    1
      src/main/java/com/huiju/estateagents/controller/TdCityController.java
  28. 2
    0
      src/main/java/com/huiju/estateagents/controller/TdReportController.java
  29. 143
    0
      src/main/java/com/huiju/estateagents/controller/TdWxDictController.java
  30. 19
    1
      src/main/java/com/huiju/estateagents/drainage/controller/TaDrainageController.java
  31. 2
    1
      src/main/java/com/huiju/estateagents/drainage/entity/TaDrainage.java
  32. 34
    1
      src/main/java/com/huiju/estateagents/entity/TaBuilding.java
  33. 79
    0
      src/main/java/com/huiju/estateagents/entity/TaBuildingPanorama.java
  34. 49
    0
      src/main/java/com/huiju/estateagents/entity/TaChannelAppRelation.java
  35. 6
    0
      src/main/java/com/huiju/estateagents/entity/TaPerson.java
  36. 93
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonFromRecord.java
  37. 8
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonVisitRecord.java
  38. 5
    5
      src/main/java/com/huiju/estateagents/entity/TaShareRecord.java
  39. 4
    0
      src/main/java/com/huiju/estateagents/entity/TdBizEvent.java
  40. 62
    0
      src/main/java/com/huiju/estateagents/entity/TdWxDict.java
  41. 2
    2
      src/main/java/com/huiju/estateagents/excel/TaActivityDynamicEnlistExport.java
  42. 5
    2
      src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java
  43. 24
    10
      src/main/java/com/huiju/estateagents/job/CustomerStatisticTimeJob.java
  44. 0
    2
      src/main/java/com/huiju/estateagents/job/JudglActivityTimeJob.java
  45. 2
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingMapper.java
  46. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingPanoramaMapper.java
  47. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaChannelAppRelationMapper.java
  48. 22
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonFromRecordMapper.java
  49. 20
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java
  50. 7
    4
      src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java
  51. 2
    2
      src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java
  52. 2
    0
      src/main/java/com/huiju/estateagents/mapper/TdCityMapper.java
  53. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TdWxDictMapper.java
  54. 18
    0
      src/main/java/com/huiju/estateagents/service/IStatisticalService.java
  55. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingPanoramaService.java
  56. 1
    1
      src/main/java/com/huiju/estateagents/service/ITaBuildingService.java
  57. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaChannelAppRelationService.java
  58. 3
    1
      src/main/java/com/huiju/estateagents/service/ITaMiniappService.java
  59. 23
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonFromRecordService.java
  60. 1
    1
      src/main/java/com/huiju/estateagents/service/ITaPersonService.java
  61. 2
    2
      src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java
  62. 7
    4
      src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java
  63. 11
    0
      src/main/java/com/huiju/estateagents/service/ITaSharePersonFromService.java
  64. 2
    2
      src/main/java/com/huiju/estateagents/service/ITdCityService.java
  65. 16
    0
      src/main/java/com/huiju/estateagents/service/ITdWxDictService.java
  66. 1
    1
      src/main/java/com/huiju/estateagents/service/impl/ExtendContentServiceImpl.java
  67. 104
    6
      src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java
  68. 1
    1
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingIntentionServiceImpl.java
  69. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingPanoramaServiceImpl.java
  70. 74
    14
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java
  71. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TaChannelAppRelationServiceImpl.java
  72. 28
    1
      src/main/java/com/huiju/estateagents/service/impl/TaMiniappServiceImpl.java
  73. 80
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPersonFromRecordServiceImpl.java
  74. 3
    2
      src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java
  75. 15
    13
      src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java
  76. 105
    75
      src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java
  77. 84
    2
      src/main/java/com/huiju/estateagents/service/impl/TaSharePersonFromServiceImpl.java
  78. 5
    1
      src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java
  79. 16
    4
      src/main/java/com/huiju/estateagents/service/impl/TdCityServiceImpl.java
  80. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TdWxDictServiceImpl.java
  81. 143
    0
      src/main/java/com/huiju/estateagents/statistic/controller/TsPersonFromStatisticController.java
  82. 160
    0
      src/main/java/com/huiju/estateagents/statistic/controller/TsUserBehaviorStatisticController.java
  83. 69
    0
      src/main/java/com/huiju/estateagents/statistic/entity/TsPersonFromStatistic.java
  84. 64
    0
      src/main/java/com/huiju/estateagents/statistic/entity/TsUserBehaviorStatistic.java
  85. 30
    0
      src/main/java/com/huiju/estateagents/statistic/mapper/TsPersonFromStatisticMapper.java
  86. 28
    0
      src/main/java/com/huiju/estateagents/statistic/mapper/TsUserBehaviorStatisticMapper.java
  87. 16
    0
      src/main/java/com/huiju/estateagents/statistic/service/ITsPersonFromStatisticService.java
  88. 30
    0
      src/main/java/com/huiju/estateagents/statistic/service/ITsUserBehaviorStatisticService.java
  89. 20
    0
      src/main/java/com/huiju/estateagents/statistic/service/impl/TsPersonFromStatisticServiceImpl.java
  90. 66
    0
      src/main/java/com/huiju/estateagents/statistic/service/impl/TsUserBehaviorStatisticServiceImpl.java
  91. 7
    7
      src/main/resources/application-blue.yml
  92. 5
    5
      src/main/resources/application-dev.yml
  93. 74
    0
      src/main/resources/application-green.yml
  94. 4
    4
      src/main/resources/application-gzysd.yml
  95. 4
    4
      src/main/resources/application-hj.yml
  96. 4
    4
      src/main/resources/application-jj.yml
  97. 4
    4
      src/main/resources/application-nj.yml
  98. 7
    7
      src/main/resources/application-prod-blue.yml
  99. 79
    0
      src/main/resources/application-prod-green.yml
  100. 0
    0
      src/main/resources/application-rc.yml

+ 9
- 33
pom.xml View File

10
 	</parent>
10
 	</parent>
11
 	<groupId>com.huiju</groupId>
11
 	<groupId>com.huiju</groupId>
12
 	<artifactId>estateagents</artifactId>
12
 	<artifactId>estateagents</artifactId>
13
-	<version>v3.5.5</version>
13
+	<version>v3.5.6</version>
14
 	<name>estateages</name>
14
 	<name>estateages</name>
15
 	<description>置业经纪人</description>
15
 	<description>置业经纪人</description>
16
 
16
 
142
 			</properties>
142
 			</properties>
143
 		</profile>
143
 		</profile>
144
 		<profile>
144
 		<profile>
145
-			<id>test</id>
145
+			<id>green</id>
146
 			<properties>
146
 			<properties>
147
-				<profiles.active>test</profiles.active>
147
+				<profiles.active>green</profiles.active>
148
 			</properties>
148
 			</properties>
149
 		</profile>
149
 		</profile>
150
 		<profile>
150
 		<profile>
151
-			<id>prod</id>
151
+			<id>prod-blue</id>
152
 			<properties>
152
 			<properties>
153
-				<profiles.active>prod</profiles.active>
153
+				<profiles.active>prod-blue</profiles.active>
154
 			</properties>
154
 			</properties>
155
 		</profile>
155
 		</profile>
156
 		<profile>
156
 		<profile>
157
-			<id>xs</id>
157
+			<id>prod-green</id>
158
 			<properties>
158
 			<properties>
159
-				<profiles.active>xs</profiles.active>
159
+				<profiles.active>prod-green</profiles.active>
160
 			</properties>
160
 			</properties>
161
 		</profile>
161
 		</profile>
162
 		<profile>
162
 		<profile>
163
-			<id>rc</id>
163
+			<id>blue</id>
164
 			<properties>
164
 			<properties>
165
-				<profiles.active>rc</profiles.active>
166
-			</properties>
167
-		</profile>
168
-		<profile>
169
-			<id>nj</id>
170
-			<properties>
171
-				<profiles.active>nj</profiles.active>
172
-			</properties>
173
-		</profile>
174
-		<profile>
175
-			<id>hj</id>
176
-			<properties>
177
-				<profiles.active>hj</profiles.active>
178
-			</properties>
179
-		</profile>
180
-		<profile>
181
-			<id>gzysd</id>
182
-			<properties>
183
-				<profiles.active>gzysd</profiles.active>
184
-			</properties>
185
-		</profile>
186
-		<profile>
187
-			<id>jj</id>
188
-			<properties>
189
-				<profiles.active>jj</profiles.active>
165
+				<profiles.active>blue</profiles.active>
190
 			</properties>
166
 			</properties>
191
 		</profile>
167
 		</profile>
192
 	</profiles>
168
 	</profiles>

+ 20
- 0
src/main/java/com/huiju/estateagents/base/BaseController.java View File

39
 		return null;
39
 		return null;
40
 	}
40
 	}
41
 
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
+
42
 	public String getOpenId(HttpServletRequest request){
62
 	public String getOpenId(HttpServletRequest request){
43
 
63
 
44
 		Map map = JWTUtils.getUserIdAndOrgId(request);
64
 		Map map = JWTUtils.getUserIdAndOrgId(request);

+ 77
- 23
src/main/java/com/huiju/estateagents/center/sysUser/controller/SysUserController.java View File

10
 import com.huiju.estateagents.center.sysUser.entity.SysUser;
10
 import com.huiju.estateagents.center.sysUser.entity.SysUser;
11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
12
 import com.huiju.estateagents.center.sysUser.service.ISysUserService;
12
 import com.huiju.estateagents.center.sysUser.service.ISysUserService;
13
+import com.huiju.estateagents.center.taUser.entity.TaUser;
14
+import com.huiju.estateagents.center.taUser.service.ITaUserService;
15
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
16
+import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
13
 import com.huiju.estateagents.common.CommConstant;
17
 import com.huiju.estateagents.common.CommConstant;
14
 import com.huiju.estateagents.common.JWTUtils;
18
 import com.huiju.estateagents.common.JWTUtils;
15
 import com.huiju.estateagents.common.MD5Utils;
19
 import com.huiju.estateagents.common.MD5Utils;
44
     @Autowired
48
     @Autowired
45
     private ISysTokenService sysTokenService;
49
     private ISysTokenService sysTokenService;
46
 
50
 
51
+    @Autowired
52
+    private ITaUserService iTaUserService;
53
+
54
+    @Autowired
55
+    private ITaChannelProxyService iTaChannelProxyService;
56
+
47
     /**
57
     /**
48
      * 分页查询列表
58
      * 分页查询列表
49
      * @param pageNum
59
      * @param pageNum
162
      */
172
      */
163
     @RequestMapping(value="/center/current",method=RequestMethod.GET)
173
     @RequestMapping(value="/center/current",method=RequestMethod.GET)
164
     public ResponseBean currentUser(HttpServletRequest request){
174
     public ResponseBean currentUser(HttpServletRequest request){
165
-        String userName = JWTUtils.getSubject(request);
166
-        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
167
-        sysUserQueryWrapper.eq("user_name",userName);
168
-        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
169
-        sysUser.setPassword(null);
170
-
171
-        return ResponseBean.success(sysUser);
175
+        Map map = JWTUtils.getUserIdAndOrgId(request);
176
+        QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
177
+        taChannelProxyQueryWrapper.eq("user_name", map.get("userName")).or().eq("channel_tel", map.get("userName"));
178
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getOne(taChannelProxyQueryWrapper);
179
+        if (StringUtils.isEmpty(taChannelProxy.getUserName())){
180
+            taChannelProxy.setUserName(map.get("userName").toString());
181
+        }
182
+        return ResponseBean.success(taChannelProxy);
172
     }
183
     }
173
     
184
     
174
     @PostMapping("/center/signin")
185
     @PostMapping("/center/signin")
177
         if (params == null) {
188
         if (params == null) {
178
             return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
189
             return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
179
         }
190
         }
180
-        
191
+
192
+        QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
181
         String userName = params.getString("userName");
193
         String userName = params.getString("userName");
182
-        String userPassword = params.getString("password");
183
-        
194
+        if (StringUtils.isEmpty(userName)){
195
+            return ResponseBean.error("用户名不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
196
+        }
197
+
198
+        taChannelProxyQueryWrapper.eq("user_name", userName).or().eq("channel_tel", userName);
199
+
184
         //验证用户名密码是否正确
200
         //验证用户名密码是否正确
185
-        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
186
-        sysUserQueryWrapper.eq("user_name",userName);
187
-        sysUserQueryWrapper.eq("password", MD5Utils.md5(userPassword));
188
-        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
189
-        if (sysUser == null) {
201
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getOne(taChannelProxyQueryWrapper);
202
+        String defaultPsw = MD5Utils.md5(params.getString("password"));
203
+        if (taChannelProxy == null || !defaultPsw.equals(taChannelProxy.getPassword())) {
190
             return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
204
             return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
191
         }
205
         }
192
-        
193
-        if (sysUser.getStatus() != CommConstant.STATUS_NORMAL) {
194
-            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
206
+
207
+        //校验是否过期且是否停用
208
+        if (LocalDateTime.now().isAfter(taChannelProxy.getExpireDate()) || taChannelProxy.getStatus() == 0){
209
+            return ResponseBean.error("当前后台服务已到期,请联系管理员", ResponseBean.ERROR_ILLEGAL_PARAMS);
195
         }
210
         }
196
-        
197
-        String token = JWTUtils.newToken(sysUser.getUserName());
198
-    
211
+
212
+        Map map = new HashMap();
213
+        map.put("userName", StringUtils.isEmpty(taChannelProxy.getUserName()) ? taChannelProxy.getChannelTel() : taChannelProxy.getUserName());
214
+        map.put("channelId",taChannelProxy.getChannelId().toString());
215
+        String token = JWTUtils.newTokenByMap(map);
216
+
199
         //保存token
217
         //保存token
200
         sysTokenService.saveToken(token);
218
         sysTokenService.saveToken(token);
201
         
219
         
202
         Map<String, Object> result = new HashMap<>();
220
         Map<String, Object> result = new HashMap<>();
203
         result.put("token", token);
221
         result.put("token", token);
204
-        result.put("user", sysUser);
222
+        result.put("user", taChannelProxy);
205
         
223
         
206
         return ResponseBean.success(result);
224
         return ResponseBean.success(result);
207
     }
225
     }
208
-    
226
+
227
+    @PostMapping("/center/changePassword")
228
+    public ResponseBean changePassword(@RequestParam String originalPassword,
229
+                                       @RequestParam String newPassword,HttpServletRequest request) {
230
+
231
+        if (org.apache.commons.lang3.StringUtils.isBlank(newPassword) || newPassword.length() < 6) {
232
+            return ResponseBean.error("新密不能小于6位", ResponseBean.ERROR_UNAVAILABLE);
233
+        }
234
+
235
+        Integer channelId = getChannelId(request);
236
+
237
+        // 校验当前旧密码是否正确
238
+        String password = MD5Utils.md5(MD5Utils.md5(originalPassword));
239
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getById(channelId);
240
+        if (!password.equals(taChannelProxy.getPassword())){
241
+            return ResponseBean.error("旧密码错误,请重新输入", ResponseBean.ERROR_UNAVAILABLE);
242
+        }
243
+
244
+        try {
245
+            iTaChannelProxyService.resetPassword(channelId, newPassword);
246
+            return ResponseBean.success("操作成功!");
247
+        } catch (Exception e) {
248
+            e.printStackTrace();
249
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
250
+        }
251
+    }
252
+
209
     @PostMapping("/center/signout")
253
     @PostMapping("/center/signout")
210
     public ResponseBean signout(HttpServletRequest request) {
254
     public ResponseBean signout(HttpServletRequest request) {
211
         String token = JWTUtils.getToken(request);
255
         String token = JWTUtils.getToken(request);
214
         sysTokenService.remove(sysTokenQueryWrapper);
258
         sysTokenService.remove(sysTokenQueryWrapper);
215
         return ResponseBean.success("成功退出");
259
         return ResponseBean.success("成功退出");
216
     }
260
     }
261
+
262
+    @RequestMapping(value="/center/logo",method= RequestMethod.GET)
263
+    public ResponseBean getLogoImg(HttpServletRequest request){
264
+        ResponseBean responseBean = new ResponseBean();
265
+        Integer channelId = getChannelId(request);
266
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getById(channelId);
267
+        responseBean.addSuccess(taChannelProxy);
268
+        return responseBean;
269
+    }
270
+
217
 }
271
 }

+ 31
- 6
src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java View File

96
      */
96
      */
97
     @RequestMapping(value="/center/taUser",method= RequestMethod.GET)
97
     @RequestMapping(value="/center/taUser",method= RequestMethod.GET)
98
     public ResponseBean taUserList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
98
     public ResponseBean taUserList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
99
-									 @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
99
+									 @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize, HttpServletRequest request){
100
         ResponseBean responseBean = new ResponseBean();
100
         ResponseBean responseBean = new ResponseBean();
101
+
101
         try {
102
         try {
102
             //使用分页插件
103
             //使用分页插件
103
 		    IPage pg = new Page<>(pageNum, pageSize);
104
 		    IPage pg = new Page<>(pageNum, pageSize);
104
-            IPage<Map<String,Object>> result = iTaUserService.getPageList(pg);
105
+            IPage<Map<String,Object>> result = iTaUserService.getPageList(pg, getChannelId(request));
106
+            responseBean.addSuccess(result);
107
+        }catch (Exception e){
108
+            e.printStackTrace();
109
+            logger.error("taUserList -=- {}",e.toString());
110
+            responseBean.addError(e.getMessage());
111
+        }
112
+        return responseBean;
113
+    }
114
+
115
+    /**
116
+     * 分页查询列表
117
+     * @param pageNum
118
+     * @param pageSize
119
+     * @return
120
+     */
121
+    @RequestMapping(value="/channel/taUser",method= RequestMethod.GET)
122
+    public ResponseBean taUserChannelList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
123
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
124
+        ResponseBean responseBean = new ResponseBean();
125
+        try {
126
+            //使用分页插件
127
+            IPage pg = new Page<>(pageNum, pageSize);
128
+            IPage<Map<String,Object>> result = iTaUserService.getPageList(pg, null);
105
             responseBean.addSuccess(result);
129
             responseBean.addSuccess(result);
106
         }catch (Exception e){
130
         }catch (Exception e){
107
             e.printStackTrace();
131
             e.printStackTrace();
117
      * @return
141
      * @return
118
      */
142
      */
119
     @RequestMapping(value="/center/taUser",method= RequestMethod.POST)
143
     @RequestMapping(value="/center/taUser",method= RequestMethod.POST)
120
-    public ResponseBean taUserAdd(@RequestBody TaUser taUser){
144
+    public ResponseBean taUserAdd(@RequestBody TaUser taUser, HttpServletRequest request){
121
         ResponseBean responseBean = new ResponseBean();
145
         ResponseBean responseBean = new ResponseBean();
146
+        Integer channelId = getChannelId(request);
122
         try {
147
         try {
123
-            responseBean.addSuccess(iTaUserService.newUserAndOrg(taUser));
148
+            responseBean.addSuccess(iTaUserService.newUserAndOrg(taUser, channelId));
124
         }catch (Exception e){
149
         }catch (Exception e){
125
             e.printStackTrace();
150
             e.printStackTrace();
126
             logger.error("taUserAdd -=- {}",e.toString());
151
             logger.error("taUserAdd -=- {}",e.toString());
224
 
249
 
225
     /**
250
     /**
226
      * 业务端  修改密码
251
      * 业务端  修改密码
227
-     * @return
252
+     * @return/
228
      */
253
      */
229
     @PutMapping(value = "/admin/update/password")
254
     @PutMapping(value = "/admin/update/password")
230
     public ResponseBean updatePassword( @RequestParam String originalPassword,
255
     public ResponseBean updatePassword( @RequestParam String originalPassword,
314
         }
339
         }
315
     
340
     
316
         if (!taUser.getStatus().equals(CommConstant.STATUS_NORMAL) ) {
341
         if (!taUser.getStatus().equals(CommConstant.STATUS_NORMAL) ) {
317
-            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
342
+            return ResponseBean.error("当前后台服务已到期,请联系相关管理人员", ResponseBean.ERROR_UNAVAILABLE);
318
         }
343
         }
319
 
344
 
320
         List<TaRole> roles = iTaRoleService.getRolesByUser(taUser.getUserId());
345
         List<TaRole> roles = iTaRoleService.getRolesByUser(taUser.getUserId());

+ 12
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java View File

201
 
201
 
202
     @TableField(exist = false)
202
     @TableField(exist = false)
203
     private List<String> buildingIds = new ArrayList<String>();
203
     private List<String> buildingIds = new ArrayList<String>();
204
+
205
+    /**
206
+     * 新密码
207
+     */
208
+    @TableField(exist = false)
209
+    private String newPassword;
210
+
211
+    /**
212
+     * 确认新密码
213
+     */
214
+    @TableField(exist = false)
215
+    private String confirmPassword;
204
 }
216
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java View File

22
 @Mapper
22
 @Mapper
23
 public interface TaUserMapper extends BaseMapper<TaUser> {
23
 public interface TaUserMapper extends BaseMapper<TaUser> {
24
 	
24
 	
25
-	List<Map<String,Object>> getPageList(IPage<TaUser> pg);
25
+	List<Map<String,Object>> getPageList(IPage<TaUser> pg, @Param("channelId") Integer channelId);
26
 	
26
 	
27
 	List<TaTags> getTagsList(@Param("userId") Integer userId,@Param("orgId") Integer orgId);
27
 	List<TaTags> getTagsList(@Param("userId") Integer userId,@Param("orgId") Integer orgId);
28
 	
28
 	

+ 2
- 2
src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java View File

20
  */
20
  */
21
 public interface ITaUserService extends IService<TaUser> {
21
 public interface ITaUserService extends IService<TaUser> {
22
 	
22
 	
23
-	IPage<Map<String,Object>> getPageList(IPage<TaUser> pg);
23
+	IPage<Map<String,Object>> getPageList(IPage<TaUser> pg, Integer channelId);
24
 
24
 
25
-    TaUser newUserAndOrg(TaUser taUser) throws Exception;
25
+    TaUser newUserAndOrg(TaUser taUser, Integer channelId) throws Exception;
26
 
26
 
27
     TaUser getInfoWithOrg(Integer id);
27
     TaUser getInfoWithOrg(Integer id);
28
 
28
 

+ 50
- 7
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java View File

14
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
14
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
15
 import com.huiju.estateagents.center.taUser.mapper.TaUserRoleMapper;
15
 import com.huiju.estateagents.center.taUser.mapper.TaUserRoleMapper;
16
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
16
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
17
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
18
+import com.huiju.estateagents.channel.sysChannel.mapper.TaChannelProxyMapper;
17
 import com.huiju.estateagents.common.CommConstant;
19
 import com.huiju.estateagents.common.CommConstant;
18
 import com.huiju.estateagents.common.MD5Utils;
20
 import com.huiju.estateagents.common.MD5Utils;
19
 import com.huiju.estateagents.common.StringUtils;
21
 import com.huiju.estateagents.common.StringUtils;
21
 import com.huiju.estateagents.mapper.*;
23
 import com.huiju.estateagents.mapper.*;
22
 import com.huiju.estateagents.service.*;
24
 import com.huiju.estateagents.service.*;
23
 import org.apache.commons.collections.CollectionUtils;
25
 import org.apache.commons.collections.CollectionUtils;
26
+import org.apache.commons.collections.map.HashedMap;
24
 import org.springframework.beans.factory.annotation.Autowired;
27
 import org.springframework.beans.factory.annotation.Autowired;
25
 import org.springframework.stereotype.Service;
28
 import org.springframework.stereotype.Service;
26
 
29
 
27
 import java.time.LocalDateTime;
30
 import java.time.LocalDateTime;
28
 import java.util.ArrayList;
31
 import java.util.ArrayList;
32
+import java.util.Iterator;
29
 import java.util.List;
33
 import java.util.List;
30
 import java.util.Map;
34
 import java.util.Map;
31
 import java.util.stream.Collectors;
35
 import java.util.stream.Collectors;
88
 
92
 
89
 	@Autowired
93
 	@Autowired
90
 	private ISysOrgParamsService iSysOrgParamsService;
94
 	private ISysOrgParamsService iSysOrgParamsService;
91
-	
95
+
96
+	@Autowired
97
+	private TaChannelAppRelationMapper taChannelAppRelationMapper;
98
+
99
+	@Autowired
100
+	private TaChannelProxyMapper taChannelProxyMapper;
101
+
92
 	@Override
102
 	@Override
93
-	public IPage<Map<String,Object>> getPageList(IPage pg) {
94
-		List<Map<String,Object>> taUserList = taUserMapper.getPageList(pg);
103
+	public IPage<Map<String,Object>> getPageList(IPage pg, Integer channelId) {
104
+		List<Map<String,Object>> taUserList = taUserMapper.getPageList(pg, channelId);
105
+
106
+		for (Map map : taUserList){
107
+			if (map.get("orgId") == null){
108
+				map.put("userCount", 0);
109
+				map.put("registeredCount", 0);
110
+				continue;
111
+			}
112
+			Integer userCount = taPersonMapper.selectChannelUserCount(map.get("orgId").toString());
113
+			Integer registeredCount = taPersonMapper.selectChannelRegisteredCount(map.get("orgId").toString());
114
+			map.put("userCount", userCount);
115
+			map.put("registeredCount", registeredCount);
116
+		}
95
 		pg.setRecords(taUserList);
117
 		pg.setRecords(taUserList);
96
 		return pg;
118
 		return pg;
97
 	}
119
 	}
98
 
120
 
99
 	@Override
121
 	@Override
100
-	public TaUser newUserAndOrg(TaUser taUser) throws Exception {
122
+	public TaUser newUserAndOrg(TaUser taUser, Integer channelId) throws Exception {
101
 		if (StringUtils.isEmpty(taUser.getPhone())) {
123
 		if (StringUtils.isEmpty(taUser.getPhone())) {
102
 			throw new Exception("电话号码不能为空");
124
 			throw new Exception("电话号码不能为空");
103
 		}
125
 		}
119
 			throw new Exception("电话号码或登录名重复");
141
 			throw new Exception("电话号码或登录名重复");
120
 		}
142
 		}
121
 
143
 
144
+		//判断渠道端新增小程序最大数
145
+		QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
146
+		taChannelProxyQueryWrapper.eq("channel_id", channelId);
147
+		TaChannelProxy taChannelProxy = taChannelProxyMapper.selectOne(taChannelProxyQueryWrapper);
148
+
149
+		QueryWrapper<TaChannelAppRelation> relationQueryWrapper = new QueryWrapper<>();
150
+		relationQueryWrapper.eq("channel_id", channelId);
151
+		Integer miniAppCount = taChannelAppRelationMapper.selectCount(relationQueryWrapper);
152
+		if (miniAppCount >= taChannelProxy.getAppMaxNum()){
153
+			throw new Exception("当前系统仅供维护"+ taChannelProxy.getAppMaxNum() +"个小程序,需要维护更多项目,请联系相关管理人员");
154
+		}
155
+
122
 		// 先插入 org
156
 		// 先插入 org
123
 		TaOrg taOrg = new TaOrg();
157
 		TaOrg taOrg = new TaOrg();
124
 		taOrg.setName(taUser.getOrgName());
158
 		taOrg.setName(taUser.getOrgName());
130
 			throw new Exception("生成用户公司信息失败");
164
 			throw new Exception("生成用户公司信息失败");
131
 		}
165
 		}
132
 
166
 
167
+		//维护渠道和小程序关系
168
+		TaChannelAppRelation taChannelAppRelation = new TaChannelAppRelation();
169
+		taChannelAppRelation.setChannelId(channelId);
170
+		taChannelAppRelation.setOrgId(taOrg.getOrgId());
171
+		taChannelAppRelation.setCreateTime(LocalDateTime.now());
172
+		taChannelAppRelationMapper.insert(taChannelAppRelation);
173
+
133
 		// 维护当前城市所在城市
174
 		// 维护当前城市所在城市
134
 		addAndupdate(taUser.getSelectCityTree(),false,taOrg.getOrgId());
175
 		addAndupdate(taUser.getSelectCityTree(),false,taOrg.getOrgId());
135
 
176
 
294
 		Integer status = isOn ? CommConstant.STATUS_NORMAL : CommConstant.STATUS_CLOSED;
335
 		Integer status = isOn ? CommConstant.STATUS_NORMAL : CommConstant.STATUS_CLOSED;
295
 		TaUser user = new TaUser();
336
 		TaUser user = new TaUser();
296
 		user.setStatus(status);
337
 		user.setStatus(status);
297
-		user.setUserId(id);
298
 
338
 
299
-		if (!this.updateById(user)) {
339
+		QueryWrapper<TaUser> taUserQueryWrapper = new QueryWrapper<>();
340
+		taUserQueryWrapper.eq("org_id", taUserMapper.selectById(id).getOrgId());
341
+
342
+		if (!this.update(user, taUserQueryWrapper)) {
300
 			throw new Exception("开启或禁用用户失败");
343
 			throw new Exception("开启或禁用用户失败");
301
 		}
344
 		}
302
 	}
345
 	}
336
 			taUser.setLoginName(taUser.getPhone());
379
 			taUser.setLoginName(taUser.getPhone());
337
 		}
380
 		}
338
 		
381
 		
339
-		List<TaUser> taUserList = taUserMapper.getUserList(taUser.getPhone(),taUser.getLoginName(),taUser.getOrgId());
382
+		List<TaUser> taUserList = taUserMapper.getUserList(taUser.getPhone(),taUser.getLoginName(),null);
340
 		if (null != taUserList && taUserList.size() > 0) {
383
 		if (null != taUserList && taUserList.size() > 0) {
341
 			throw new Exception("电话号码或登录名重复");
384
 			throw new Exception("电话号码或登录名重复");
342
 		}
385
 		}

+ 289
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/controller/SysUserChannelController.java View File

1
+package com.huiju.estateagents.channel.sysUser.controller;
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.huiju.estateagents.base.BaseController;
8
+import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.center.sysUser.entity.SysToken;
10
+import com.huiju.estateagents.center.sysUser.entity.SysUser;
11
+import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
12
+import com.huiju.estateagents.center.sysUser.service.ISysUserService;
13
+import com.huiju.estateagents.center.taUser.entity.TaUser;
14
+import com.huiju.estateagents.center.taUser.service.ITaUserService;
15
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
16
+import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
17
+import com.huiju.estateagents.common.CommConstant;
18
+import com.huiju.estateagents.common.JWTUtils;
19
+import com.huiju.estateagents.common.MD5Utils;
20
+import com.huiju.estateagents.common.StringUtils;
21
+import com.huiju.estateagents.entity.TaChannelAppRelation;
22
+import com.huiju.estateagents.service.ITaChannelAppRelationService;
23
+import org.apache.commons.collections.CollectionUtils;
24
+import org.slf4j.Logger;
25
+import org.slf4j.LoggerFactory;
26
+import org.springframework.beans.factory.annotation.Autowired;
27
+import org.springframework.web.bind.annotation.*;
28
+
29
+import javax.servlet.http.HttpServletRequest;
30
+import java.time.LocalDateTime;
31
+import java.util.ArrayList;
32
+import java.util.HashMap;
33
+import java.util.List;
34
+import java.util.Map;
35
+
36
+/**
37
+ * <p>
38
+    * 系统用户 系统中心账户 前端控制器
39
+    * </p>
40
+ *
41
+ * @author jobob
42
+ * @since 2019-09-11
43
+ */
44
+@RestController
45
+@RequestMapping("/api")
46
+public class SysUserChannelController extends BaseController {
47
+
48
+    private final Logger logger = LoggerFactory.getLogger(SysUserChannelController.class);
49
+
50
+    @Autowired
51
+    public ISysUserService iSysUserService;
52
+    
53
+    @Autowired
54
+    private ISysTokenService sysTokenService;
55
+
56
+    @Autowired
57
+    private ITaUserService iTaUserService;
58
+
59
+    @Autowired
60
+    private ITaChannelProxyService iTaChannelProxyService;
61
+
62
+    @Autowired
63
+    private ITaChannelAppRelationService iTaChannelAppRelationService;
64
+
65
+    /**
66
+     * 修改对象
67
+     * @param sysUser 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/channel/sysUser",method= RequestMethod.PUT)
71
+    public ResponseBean sysUserUpdate(@RequestBody SysUser sysUser, HttpServletRequest request){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            String userName = JWTUtils.getSubject(request);
75
+            sysUser.setPassword(MD5Utils.md5(sysUser.getPassword()));
76
+            sysUser.setUserName(userName);
77
+            if (iSysUserService.updateById(sysUser)){
78
+                responseBean.addSuccess(sysUser);
79
+            }else {
80
+                responseBean.addError("fail");
81
+            }
82
+        }catch (Exception e){
83
+            e.printStackTrace();
84
+            logger.error("sysUserUpdate -=- {}",e.toString());
85
+            responseBean.addError(e.getMessage());
86
+        }
87
+        return responseBean;
88
+    }
89
+
90
+    @PostMapping("/channel/signin")
91
+    public ResponseBean signinChannel(@RequestBody String paramStr) {
92
+        JSONObject params = JSONObject.parseObject(paramStr);
93
+        if (params == null) {
94
+            return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
95
+        }
96
+
97
+        String userName = params.getString("userName");
98
+        String userPassword = params.getString("password");
99
+
100
+        //验证用户名密码是否正确
101
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
102
+        sysUserQueryWrapper.eq("user_name",userName);
103
+        sysUserQueryWrapper.eq("password", MD5Utils.md5(userPassword));
104
+        sysUserQueryWrapper.eq("type", CommConstant.LOGIN_TYPE_CHANNEL);
105
+        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
106
+        if (sysUser == null) {
107
+            return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
108
+        }
109
+
110
+        if (sysUser.getStatus() != CommConstant.STATUS_NORMAL) {
111
+            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
112
+        }
113
+
114
+        String token = JWTUtils.newToken(sysUser.getUserName());
115
+
116
+        //保存token
117
+        sysTokenService.saveToken(token);
118
+
119
+        Map<String, Object> result = new HashMap<>();
120
+        result.put("token", token);
121
+        result.put("user", sysUser);
122
+
123
+        return ResponseBean.success(result);
124
+    }
125
+
126
+    @PostMapping("/channel/signout")
127
+    public ResponseBean signoutChannel(HttpServletRequest request) {
128
+        String token = JWTUtils.getToken(request);
129
+        QueryWrapper<SysToken> sysTokenQueryWrapper = new QueryWrapper<>();
130
+        sysTokenQueryWrapper.eq("token",token);
131
+        sysTokenService.remove(sysTokenQueryWrapper);
132
+        return ResponseBean.success("成功退出");
133
+    }
134
+
135
+    /**
136
+     * 根据id查询对象
137
+     * @param id  实体ID
138
+     */
139
+    @RequestMapping(value="/channel/current",method=RequestMethod.GET)
140
+    public ResponseBean currentChannelUser(HttpServletRequest request){
141
+        String userName = JWTUtils.getSubject(request);
142
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
143
+        sysUserQueryWrapper.eq("user_name",userName);
144
+        sysUserQueryWrapper.eq("type",CommConstant.LOGIN_TYPE_CHANNEL);
145
+        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
146
+        sysUser.setPassword(null);
147
+
148
+        return ResponseBean.success(sysUser);
149
+    }
150
+
151
+    /**
152
+     * 分页查询列表
153
+     * @param pageNum
154
+     * @param pageSize
155
+     * @return
156
+     */
157
+    @RequestMapping(value="/channel/taChannel",method= RequestMethod.GET)
158
+    public ResponseBean taUserList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
159
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
160
+        ResponseBean responseBean = new ResponseBean();
161
+        try {
162
+            //使用分页插件
163
+            IPage pg = new Page<>(pageNum, pageSize);
164
+            IPage<TaChannelProxy> result = iTaChannelProxyService.getChannelList(pg);
165
+            responseBean.addSuccess(result);
166
+        }catch (Exception e){
167
+            e.printStackTrace();
168
+            logger.error("taUserList -=- {}",e.toString());
169
+            responseBean.addError(e.getMessage());
170
+        }
171
+        return responseBean;
172
+    }
173
+
174
+    /**
175
+     * 新增代理商
176
+     * @param taChannelProxy
177
+     * @param request
178
+     * @return
179
+     */
180
+    @RequestMapping(value="/channel/taChannel",method= RequestMethod.POST)
181
+    public ResponseBean taUserList(@RequestBody TaChannelProxy taChannelProxy, HttpServletRequest request){
182
+        ResponseBean responseBean = new ResponseBean();
183
+        try {
184
+            if (taChannelProxy.getAppMaxNum() != null && taChannelProxy.getAppMaxNum() <= 0){
185
+                responseBean.addError("维护小程序数量不得小于0");
186
+                return responseBean;
187
+            }
188
+            if (StringUtils.isEmpty(taChannelProxy.getUserName())){
189
+                taChannelProxy.setUserName(taChannelProxy.getChannelTel());
190
+            }
191
+
192
+            QueryWrapper<TaChannelProxy> userNameQueryWrapper = new QueryWrapper<>();
193
+            userNameQueryWrapper.eq("user_name", taChannelProxy.getUserName());
194
+            Integer countUserName = iTaChannelProxyService.count(userNameQueryWrapper);
195
+            if (countUserName > 0){
196
+                responseBean.addError("账户名已存在");
197
+                return responseBean;
198
+            }
199
+
200
+
201
+            QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
202
+            taChannelProxyQueryWrapper.eq("channel_tel", taChannelProxy.getChannelTel());
203
+            Integer countChannel = iTaChannelProxyService.count(taChannelProxyQueryWrapper);
204
+            if (countChannel > 0){
205
+                responseBean.addError("手机号已存在");
206
+                return responseBean;
207
+            }
208
+            taChannelProxy.setPassword(MD5Utils.md5(MD5Utils.md5("abc@123")));
209
+            taChannelProxy.setStatus(1);
210
+            taChannelProxy.setCreateTime(LocalDateTime.now());
211
+            iTaChannelProxyService.save(taChannelProxy);
212
+        }catch (Exception e){
213
+            e.printStackTrace();
214
+            logger.error("taUserList -=- {}",e.toString());
215
+            responseBean.addError(e.getMessage());
216
+        }
217
+        return responseBean;
218
+    }
219
+
220
+    /**
221
+     * 根据id查询对象
222
+     * @param id  实体ID
223
+     */
224
+    @RequestMapping(value="/channel/taChannel/{id}",method= RequestMethod.GET)
225
+    public ResponseBean getChannelProxyById(@PathVariable Integer id){
226
+        ResponseBean responseBean = new ResponseBean();
227
+        QueryWrapper<TaChannelProxy> queryWrapper = new QueryWrapper<>();
228
+        queryWrapper.eq("channel_id", id);
229
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getOne(queryWrapper);
230
+        responseBean.addSuccess(taChannelProxy);
231
+        return responseBean;
232
+    }
233
+
234
+    /**
235
+     * 修改对象
236
+     * @param id
237
+     * @param taChannelProxy
238
+     * @param request
239
+     * @return
240
+     */
241
+    @RequestMapping(value="/channel/taChannel/{id}",method= RequestMethod.PUT)
242
+    public ResponseBean taNewsTypeUpdate(@PathVariable Integer id,
243
+                                         @RequestBody TaChannelProxy taChannelProxy, HttpServletRequest request){
244
+        ResponseBean responseBean = new ResponseBean();
245
+        if (taChannelProxy.getAppMaxNum() != null && taChannelProxy.getAppMaxNum() <= 0){
246
+            responseBean.addError("维护小程序数量不得小于0");
247
+            return responseBean;
248
+        }
249
+
250
+        if (StringUtils.isEmpty(taChannelProxy.getUserName())){
251
+            taChannelProxy.setUserName(taChannelProxy.getChannelTel());
252
+        }
253
+
254
+        QueryWrapper<TaChannelProxy> userNameQueryWrapper = new QueryWrapper<>();
255
+        userNameQueryWrapper.eq("user_name", taChannelProxy.getUserName());
256
+        userNameQueryWrapper.ne("channel_id", id);
257
+        Integer countUserName = iTaChannelProxyService.count(userNameQueryWrapper);
258
+        if (countUserName > 0){
259
+            responseBean.addError("账户名已存在");
260
+            return responseBean;
261
+        }
262
+
263
+        taChannelProxy.setExpireDate(taChannelProxy.getExpireDate().plusDays(1L));
264
+        //更新业务层的登录账号为禁用
265
+        if (taChannelProxy.getStatus() != null){
266
+            QueryWrapper<TaChannelAppRelation> taChannelAppRelationQueryWrapper = new QueryWrapper<>();
267
+            taChannelAppRelationQueryWrapper.eq("channel_id", id);
268
+            List<TaChannelAppRelation> taChannelAppRelation = iTaChannelAppRelationService.list(taChannelAppRelationQueryWrapper);
269
+            List<Integer> orgIdList = new ArrayList<>();
270
+            taChannelAppRelation.forEach(e->{
271
+                orgIdList.add(e.getOrgId());
272
+            });
273
+            if (CollectionUtils.isNotEmpty(orgIdList)){
274
+                QueryWrapper<TaUser> taUserQueryWrapper = new QueryWrapper<>();
275
+                taUserQueryWrapper.in("org_id", orgIdList);
276
+                TaUser taUser = new TaUser();
277
+                taUser.setStatus(taChannelProxy.getStatus());
278
+                iTaUserService.update(taUser, taUserQueryWrapper);
279
+            }
280
+
281
+        }
282
+
283
+        QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
284
+        taChannelProxyQueryWrapper.eq("channel_id", id);
285
+        iTaChannelProxyService.update(taChannelProxy, taChannelProxyQueryWrapper);
286
+        return ResponseBean.success("更新成功");
287
+    }
288
+
289
+}

+ 41
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/entity/TaChannelProxy.java View File

1
+package com.huiju.estateagents.channel.sysChannel.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+import java.time.LocalDateTime;
11
+
12
+@Data
13
+@EqualsAndHashCode(callSuper = false)
14
+@Accessors(chain = true)
15
+public class TaChannelProxy {
16
+    @TableId(value = "channel_id", type = IdType.AUTO)
17
+    private Integer channelId;
18
+
19
+    private String channelProxyName;
20
+
21
+    private String channelImg;
22
+
23
+    private String channelContactName;
24
+
25
+    private String channelTel;
26
+
27
+    private String userName;
28
+
29
+    private String password;
30
+
31
+    private LocalDateTime expireDate;
32
+
33
+    private Integer status;
34
+
35
+    private Integer appMaxNum;
36
+
37
+    private LocalDateTime createTime;
38
+
39
+    @TableField(exist = false)
40
+    private Integer appCurrentNum;
41
+}

+ 12
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/mapper/TaChannelProxyMapper.java View File

1
+package com.huiju.estateagents.channel.sysChannel.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
7
+import org.apache.ibatis.annotations.Mapper;
8
+
9
+@Mapper
10
+public interface TaChannelProxyMapper extends BaseMapper<TaChannelProxy> {
11
+    IPage<TaChannelProxy> getChannelList(IPage page);
12
+}

+ 12
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/service/ITaChannelProxyService.java View File

1
+package com.huiju.estateagents.channel.sysChannel.service;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
6
+
7
+
8
+public interface ITaChannelProxyService extends IService<TaChannelProxy> {
9
+    IPage<TaChannelProxy> getChannelList(IPage page);
10
+
11
+    void resetPassword(Integer id, String newPass) throws Exception;
12
+}

+ 57
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/service/impl/TaChannelProxyServiceImpl.java View File

1
+package com.huiju.estateagents.channel.sysChannel.service.impl;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import com.huiju.estateagents.center.taUser.entity.TaUser;
8
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
9
+import com.huiju.estateagents.channel.sysChannel.mapper.TaChannelProxyMapper;
10
+import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
11
+import com.huiju.estateagents.common.MD5Utils;
12
+import com.huiju.estateagents.entity.TaChannelAppRelation;
13
+import com.huiju.estateagents.mapper.TaChannelAppRelationMapper;
14
+import org.apache.commons.collections.CollectionUtils;
15
+import org.springframework.beans.factory.annotation.Autowired;
16
+import org.springframework.stereotype.Service;
17
+
18
+@Service
19
+public class TaChannelProxyServiceImpl extends ServiceImpl<TaChannelProxyMapper, TaChannelProxy>  implements ITaChannelProxyService {
20
+    @Autowired
21
+    private TaChannelProxyMapper taChannelProxyMapper;
22
+
23
+    @Autowired
24
+    private TaChannelAppRelationMapper taChannelAppRelationMapper;
25
+
26
+    @Override
27
+    public IPage<TaChannelProxy> getChannelList(IPage page) {
28
+        IPage<TaChannelProxy> taChannelProxyIPage = taChannelProxyMapper.getChannelList(page);
29
+        if (CollectionUtils.isNotEmpty(taChannelProxyIPage.getRecords())){
30
+            taChannelProxyIPage.getRecords().forEach(e->{
31
+                QueryWrapper<TaChannelAppRelation> taChannelAppRelationQueryWrapper = new QueryWrapper<>();
32
+                taChannelAppRelationQueryWrapper.eq("channel_id", e.getChannelId());
33
+                taChannelAppRelationQueryWrapper.groupBy("channel_id");
34
+                e.setAppCurrentNum(taChannelAppRelationMapper.selectCount(taChannelAppRelationQueryWrapper));
35
+            });
36
+            taChannelProxyIPage.setRecords(taChannelProxyIPage.getRecords());
37
+        }
38
+        return taChannelProxyIPage;
39
+    }
40
+
41
+    @Override
42
+    public void resetPassword(Integer id, String newPass) throws Exception {
43
+        TaChannelProxy taChannelProxy = this.getById(id);
44
+        if (null == taChannelProxy) {
45
+            throw new Exception("未找到有效的渠道信息");
46
+        }
47
+
48
+        String encryptPass = MD5Utils.md5(MD5Utils.md5(newPass));
49
+        TaChannelProxy proxy = new TaChannelProxy();
50
+        proxy.setPassword(encryptPass);
51
+        proxy.setChannelId(id);
52
+
53
+        if (!this.updateById(proxy)) {
54
+            throw new Exception("重置渠道密码失败");
55
+        }
56
+    }
57
+}

+ 47
- 1
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

135
      */
135
      */
136
     public final static String MINIAPP_INDEX = "/index/index";
136
     public final static String MINIAPP_INDEX = "/index/index";
137
 
137
 
138
-    public final static String MINIAPP_DEFAULT_AVATAR = "https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/default_avatar.jpg";
138
+    public final static String MINIAPP_DEFAULT_AVATAR = "https://njcj.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/default_avatar.jpg";
139
 
139
 
140
 
140
 
141
     /**
141
     /**
440
 	public static final Object GROUP_ACTIVITY = "groupActivity";
440
 	public static final Object GROUP_ACTIVITY = "groupActivity";
441
 	public static final String TARGET_TYPE_H5 = "H5";
441
 	public static final String TARGET_TYPE_H5 = "H5";
442
     public static final String ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/checkin/index\"}";
442
     public static final String ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/checkin/index\"}";
443
+    public static final String DRAINAGE_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/project/h5Page\"}";
443
     
444
     
444
     /**
445
     /**
445
      * 消息通知
446
      * 消息通知
541
      */
542
      */
542
     public static final String MESSAGE_TYPE_OF_MINIAPP_TEMPLATE = "miniapp_template";
543
     public static final String MESSAGE_TYPE_OF_MINIAPP_TEMPLATE = "miniapp_template";
543
 
544
 
545
+    /**
546
+     * 进入小程序
547
+     */
548
+    public static final String BIZ_EVENT_START = "start";
549
+
550
+    /**
551
+     * 登录渠道端系统类型
552
+     */
553
+    public static final String LOGIN_TYPE_CHANNEL = "channel";
554
+
555
+    /**
556
+     * 登录中心端系统类型
557
+     */
558
+    public static final String LOGIN_TYPE_CENTER = "center";
559
+
560
+    /**
561
+     * 查看分享者活动类型 h5
562
+     */
563
+    public static final String H5_SHARE = "h5_share";
564
+
565
+    /**
566
+     * 查看分享者活动类型 拼团
567
+     */
568
+    public static final String GROUP_SHARE = "group_share";
569
+
570
+    /**
571
+     * 查看分享者活动类型 助力
572
+     */
573
+    public static final String HELP_SHARE = "help_share";
574
+
575
+    /**
576
+     * 查看分享者活动类型 活动
577
+     */
578
+    public static final String DYNAMIC_SHARE = "dynamic_share";
579
+
580
+    /**
581
+     * 户型
582
+     */
583
+    public static final String APARTMENT_TYPR_APART = "apart";
584
+
585
+    /**
586
+     * 户型全景图
587
+     */
588
+    public static final String PANORAMA_TYPE_APARTMENT = "apartment";
589
+
544
 }
590
 }

+ 13
- 7
src/main/java/com/huiju/estateagents/controller/ExtendContentController.java View File

18
 import io.swagger.annotations.ApiOperation;
18
 import io.swagger.annotations.ApiOperation;
19
 import jodd.util.StringUtil;
19
 import jodd.util.StringUtil;
20
 import org.apache.commons.lang3.StringUtils;
20
 import org.apache.commons.lang3.StringUtils;
21
+import org.apache.ibatis.annotations.Param;
21
 import org.slf4j.Logger;
22
 import org.slf4j.Logger;
22
 import org.slf4j.LoggerFactory;
23
 import org.slf4j.LoggerFactory;
23
 import org.springframework.beans.factory.annotation.Autowired;
24
 import org.springframework.beans.factory.annotation.Autowired;
24
-import org.springframework.web.bind.annotation.PathVariable;
25
-import org.springframework.web.bind.annotation.RequestBody;
26
-import org.springframework.web.bind.annotation.RequestMapping;
27
-import org.springframework.web.bind.annotation.RequestMethod;
28
-import org.springframework.web.bind.annotation.RequestParam;
29
-import org.springframework.web.bind.annotation.ResponseBody;
30
-import org.springframework.web.bind.annotation.RestController;
25
+import org.springframework.web.bind.annotation.*;
31
 
26
 
32
 import javax.servlet.http.HttpServletRequest;
27
 import javax.servlet.http.HttpServletRequest;
33
 import java.time.LocalDateTime;
28
 import java.time.LocalDateTime;
156
         return responseBean;
151
         return responseBean;
157
     }
152
     }
158
 
153
 
154
+    /**
155
+     * 针对首屏优化, 获取一些 banner, 开屏等配置
156
+     * @param cityId
157
+     * @param request
158
+     * @return
159
+     */
160
+    @GetMapping("/wx/extendContent")
161
+    public ResponseBean extendContentListOfWX(@RequestParam(value = "cityId") Integer cityId, HttpServletRequest request) {
162
+        return iExtendContentService.selectExtendContentListShowType(null, null, null,null, null, null, cityId,getOrgId(request));
163
+    }
164
+
159
 
165
 
160
     /**
166
     /**
161
      * 保存对象
167
      * 保存对象

+ 110
- 11
src/main/java/com/huiju/estateagents/controller/MiniAppController.java View File

16
 import com.huiju.estateagents.common.WxUtils;
16
 import com.huiju.estateagents.common.WxUtils;
17
 import com.huiju.estateagents.entity.*;
17
 import com.huiju.estateagents.entity.*;
18
 import com.huiju.estateagents.event.EventBus;
18
 import com.huiju.estateagents.event.EventBus;
19
+import com.huiju.estateagents.mapper.TaOrgCityMapper;
19
 import com.huiju.estateagents.mapper.TaShareMapper;
20
 import com.huiju.estateagents.mapper.TaShareMapper;
20
 import com.huiju.estateagents.service.*;
21
 import com.huiju.estateagents.service.*;
21
 import com.huiju.estateagents.common.JWTUtils;
22
 import com.huiju.estateagents.common.JWTUtils;
22
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
23
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
23
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
24
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
24
 import me.chanjar.weixin.common.error.WxErrorException;
25
 import me.chanjar.weixin.common.error.WxErrorException;
26
+import net.bytebuddy.asm.Advice;
25
 import org.apache.commons.collections.CollectionUtils;
27
 import org.apache.commons.collections.CollectionUtils;
26
 import org.apache.commons.lang3.StringUtils;
28
 import org.apache.commons.lang3.StringUtils;
27
 import org.apache.http.HttpStatus;
29
 import org.apache.http.HttpStatus;
82
     @Autowired
84
     @Autowired
83
     private ITaCustomImgService iTaCustomImgService;
85
     private ITaCustomImgService iTaCustomImgService;
84
 
86
 
87
+    @Autowired
88
+    public ITdPointsRulesService iTdPointsRulesService;
89
+
90
+    @Autowired
91
+    public ITaMiniappService iTaMiniappService;
92
+
93
+    @Autowired
94
+    public TaOrgCityMapper taOrgCityMapper;
95
+
96
+    @Autowired
97
+    public ITdCityService iTdCityService;
85
 
98
 
86
     /**
99
     /**
87
      * 验证接入
100
      * 验证接入
94
         return echostr;
107
         return echostr;
95
     }
108
     }
96
 
109
 
110
+
111
+    /**
112
+     * 小程序数据预拉取 https://developers.weixin.qq.com/miniprogram/dev/framework/ability/pre-fetch.html
113
+     * @param appid
114
+     * @param timestamp
115
+     * @param token
116
+     * @param code
117
+     * @param path
118
+     * @param query
119
+     * @param scene
120
+     * @return
121
+     */
122
+    @GetMapping("/preload")
123
+    public ResponseBean getPreloadData(
124
+            @RequestParam(name = "appid") String appid,
125
+            @RequestParam(name = "timestamp") Long timestamp,
126
+            String token,
127
+            String code,
128
+            String path,
129
+            String query,
130
+            Integer scene
131
+    ) {
132
+        // 获取小程序信息
133
+        TaMiniapp taMiniapp = iTaMiniappService.getInfoWithTpls(appid);
134
+        if (null == taMiniapp) {
135
+            return ResponseBean.error("当前 appid 未在系统内注册", ResponseBean.ERROR_ILLEGAL_PARAMS);
136
+        }
137
+
138
+        // 获取组织信息
139
+        TaOrg taOrg = taOrgService.getById(taMiniapp.getOrgId());
140
+        if (null == taOrg) {
141
+            return ResponseBean.error("当前 appid 未设置对应组织", ResponseBean.ERROR_UNAVAILABLE);
142
+        }
143
+
144
+        // 获取城市列表
145
+        QueryWrapper<TaOrgCity> queryCity = new QueryWrapper<>();
146
+        queryCity.eq("id", taOrg.getOrgId());
147
+        queryCity.eq("status", CommConstant.STATUS_NORMAL);
148
+        List<TaOrgCity> taOrgCityList = taOrgCityMapper.selectList(queryCity);
149
+
150
+        // 获取默认扩展设置
151
+        QueryWrapper<TaCustomImg> queryExt = new QueryWrapper<>();
152
+        queryExt.eq("org_id", taOrg.getOrgId());
153
+        queryExt.eq("status", CommConstant.STATUS_NORMAL);
154
+        List<TaCustomImg> taCustomImg = iTaCustomImgService.list(queryExt);
155
+
156
+        return ResponseBean.success(new HashMap<String, Object>(){{
157
+            put("miniapp", taMiniapp);
158
+            put("org", taOrg);
159
+            put("cityList", taOrgCityList);
160
+            put("customImg", taCustomImg);
161
+        }});
162
+    }
163
+
97
     /**
164
     /**
98
      * 登陆接口
165
      * 登陆接口
99
      */
166
      */
101
     public ResponseBean login(
168
     public ResponseBean login(
102
             String code,
169
             String code,
103
             @RequestParam(required = false) String from,
170
             @RequestParam(required = false) String from,
104
-            @RequestParam(required = false)String recommender,
105
-            @RequestParam(required = false)String targetId,
171
+            @RequestParam(required = false) String recommender,
172
+            @RequestParam(required = false) String targetId,
173
+            @RequestParam(required = false) String lon,
174
+            @RequestParam(required = false) String lat,
106
             HttpServletRequest request) {
175
             HttpServletRequest request) {
107
         String appid = request.getHeader("appid");
176
         String appid = request.getHeader("appid");
108
 
177
 
130
             personQueryWrapper.eq("org_id",orgId);
199
             personQueryWrapper.eq("org_id",orgId);
131
             int count = taPersonService.count(personQueryWrapper);
200
             int count = taPersonService.count(personQueryWrapper);
132
 
201
 
133
-            if(null!=from&&from.contains("share") && StringUtils.isNotBlank(recommender) && count>0){
134
-                // 添加积分
135
-                 applicationContext.publishEvent(new EventBus(recommender, EventBus.EventType.SharePosterAll, orgId));
136
-            }
137
-
138
             TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(), orgId);
202
             TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(), orgId);
139
             if (null == taPerson) {
203
             if (null == taPerson) {
140
                 return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
204
                 return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
141
             }
205
             }
206
+
207
+            if(null!=from&&from.contains("share") && StringUtils.isNotBlank(recommender) && count>0){
208
+                // 校验是否点击过此人的分享
209
+                boolean checkPoint = checkSharePersonFrom(from,taPerson.getPersonId(),targetId,orgId);
210
+                if (checkPoint){
211
+                    // 添加积分
212
+                    applicationContext.publishEvent(new EventBus(recommender, EventBus.EventType.SharePosterAll, orgId));
213
+                }
214
+            }
215
+
216
+
142
             Map<Object,Object> map = new HashMap<>();
217
             Map<Object,Object> map = new HashMap<>();
143
             map.put("openId",session.getOpenid());
218
             map.put("openId",session.getOpenid());
144
             map.put("orgId",orgId);
219
             map.put("orgId",orgId);
175
                 QueryWrapper<TaSharePersonFrom> sharePersonFromQueryWrapper = new QueryWrapper<>();
250
                 QueryWrapper<TaSharePersonFrom> sharePersonFromQueryWrapper = new QueryWrapper<>();
176
                 sharePersonFromQueryWrapper.eq("person_id",taPerson.getPersonId());
251
                 sharePersonFromQueryWrapper.eq("person_id",taPerson.getPersonId());
177
                 if(from.equals("dynamic_share")){ // activity_share
252
                 if(from.equals("dynamic_share")){ // activity_share
178
-                    taSharePersonFrom.setStatus(CommConstant.STATUS_UNACCALIMED);
253
+                    //产品不认了
254
+                    taSharePersonFrom.setStatus(CommConstant.STATUS_NORMAL);
179
                     TaBuildingDynamic buildingDynamic = buildingDynamicService.getById(targetId);
255
                     TaBuildingDynamic buildingDynamic = buildingDynamicService.getById(targetId);
180
                     taSharePersonFrom.setBuildingId(buildingDynamic.getBuildingId());
256
                     taSharePersonFrom.setBuildingId(buildingDynamic.getBuildingId());
181
                     sharePersonFromQueryWrapper.eq("building_id",buildingDynamic.getBuildingId());
257
                     sharePersonFromQueryWrapper.eq("building_id",buildingDynamic.getBuildingId());
215
             // 所有人员都返回 org yansen 2019-11-13 19:56:18
291
             // 所有人员都返回 org yansen 2019-11-13 19:56:18
216
 //            if (CommConstant.PERSON_REALTY_CONSULTANT.equals(taPerson.getPersonType())){
292
 //            if (CommConstant.PERSON_REALTY_CONSULTANT.equals(taPerson.getPersonType())){
217
                 QueryWrapper<TaOrg>orgQueryWrapper = new QueryWrapper<>();
293
                 QueryWrapper<TaOrg>orgQueryWrapper = new QueryWrapper<>();
218
-                orgQueryWrapper.eq("org_id",taPerson.getOrgId());
294
+                orgQueryWrapper.eq("org_id", orgId);
219
                 TaOrg org = taOrgService.getOne(orgQueryWrapper);
295
                 TaOrg org = taOrgService.getOne(orgQueryWrapper);
220
                 taPerson.setOrg(org);
296
                 taPerson.setOrg(org);
221
 //            }
297
 //            }
227
 
303
 
228
             //返回是否授权标识
304
             //返回是否授权标识
229
             QueryWrapper<TaCustomImg> queryWrapper = new QueryWrapper<>();
305
             QueryWrapper<TaCustomImg> queryWrapper = new QueryWrapper<>();
230
-            queryWrapper.eq("org_id", getOrgId(request));
306
+            queryWrapper.eq("org_id", orgId);
231
             queryWrapper.eq("img_type", "auth");
307
             queryWrapper.eq("img_type", "auth");
232
             List<TaCustomImg>  taCustomImgs = iTaCustomImgService.list(queryWrapper);
308
             List<TaCustomImg>  taCustomImgs = iTaCustomImgService.list(queryWrapper);
233
             result.put("avatarAuth", CollectionUtils.isEmpty(taCustomImgs) ? false : "1".equals(taCustomImgs.get(0).getImgUrl()) ? true: false);
309
             result.put("avatarAuth", CollectionUtils.isEmpty(taCustomImgs) ? false : "1".equals(taCustomImgs.get(0).getImgUrl()) ? true: false);
234
 
310
 
235
-
236
             String token = (String) miniResp.get("token");
311
             String token = (String) miniResp.get("token");
237
             sysTokenService.saveToken(token);
312
             sysTokenService.saveToken(token);
238
 
313
 
314
+            //把積分規則返回給小程序
315
+            QueryWrapper<TdPointsRules> tdPointsRulesQueryWrapper = new QueryWrapper<>();
316
+            tdPointsRulesQueryWrapper.eq("org_id", orgId);
317
+            List<TdPointsRules> rulesPointList = iTdPointsRulesService.list(tdPointsRulesQueryWrapper);
318
+            result.put("rulesPointList",rulesPointList);
319
+
320
+            // 定位城市
321
+            String location = null == lon ? null : lon + "," + lat;
322
+            TdCity tdCity = iTdCityService.getLocationCity(location, orgId);
323
+            result.put("city", tdCity);
324
+
239
             return ResponseBean.success(result);
325
             return ResponseBean.success(result);
240
         } catch (WxErrorException e) {
326
         } catch (WxErrorException e) {
241
             System.err.println(e.getError());
327
             System.err.println(e.getError());
243
         }
329
         }
244
     }
330
     }
245
 
331
 
332
+    private boolean checkSharePersonFrom(String from, String personId, String targetId, Integer orgId) {
333
+        QueryWrapper<TaSharePersonFrom> queryWrapper =  new QueryWrapper<>();
334
+        queryWrapper.eq("target_type",from);
335
+        queryWrapper.eq("person_id",personId);
336
+        queryWrapper.eq("target_id",targetId);
337
+        queryWrapper.eq("org_id",orgId);
338
+        List<TaSharePersonFrom> list = taSharePersonFromService.list(queryWrapper);
339
+        if (list.size() > 0){
340
+            return false;
341
+        }
342
+        return true;
343
+    }
344
+
246
     /**
345
     /**
247
      * 登陆接口
346
      * 登陆接口
248
      */
347
      */

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/StatisticalController.java View File

163
         return iStatisticalService.selectIntentionUser(pageNum, pageSize, getOrgId(request), buildingId);
163
         return iStatisticalService.selectIntentionUser(pageNum, pageSize, getOrgId(request), buildingId);
164
     }
164
     }
165
 
165
 
166
+    /**
167
+     * 用户来源  首页
168
+     * @return
169
+     */
170
+    @GetMapping(value = "/admin/selectPersonFrom")
171
+    public ResponseBean selectPersonFrom(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
172
+                                         @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endDate,
173
+                                            HttpServletRequest request) {
174
+        return iStatisticalService.selectPersonFrom(getOrgId(request), startDate,endDate);
175
+    }
176
+
177
+    /**
178
+     * 用户来源  折线图 首页
179
+     * @return
180
+     */
181
+    @GetMapping(value = "/admin/selectPersonFromGroupByDay")
182
+    public ResponseBean selectPersonFromGroupByDay(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
183
+                                         @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endDate,
184
+                                         HttpServletRequest request) {
185
+        return iStatisticalService.selectPersonFromGroupByDay(getOrgId(request), startDate,endDate);
186
+    }
166
 }
187
 }

+ 4
- 3
src/main/java/com/huiju/estateagents/controller/TaBuildingController.java View File

321
      * 微信推荐楼盘列表
321
      * 微信推荐楼盘列表
322
      * @return
322
      * @return
323
      */
323
      */
324
-    @RequestMapping(value = "/wx/building/mian", method = RequestMethod.GET)
325
-    public ResponseBean getWxMainBuildingList(){
326
-        return taBuildingService.getWxMainBuildingList();
324
+    @RequestMapping(value = "/wx/building/main", method = RequestMethod.GET)
325
+    public ResponseBean getWxMainBuildingList(String cityId, HttpServletRequest request){
326
+        Integer orgId = getOrgId(request);
327
+        return taBuildingService.getWxMainBuildingList(cityId, orgId);
327
     }
328
     }
328
 
329
 
329
     /**
330
     /**

+ 2
- 2
src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java View File

532
         dynamicQueryWrapper.eq("dynamic_id",dynamic);
532
         dynamicQueryWrapper.eq("dynamic_id",dynamic);
533
         if (iBuildingDynamicService.updateById(dynamic)){
533
         if (iBuildingDynamicService.updateById(dynamic)){
534
             responseBean.addSuccess("成功");
534
             responseBean.addSuccess("成功");
535
-        }else {
535
+        } else {
536
             responseBean.addError("失败");
536
             responseBean.addError("失败");
537
         }
537
         }
538
         return responseBean;
538
         return responseBean;
553
         dynamicQueryWrapper.eq("dynamic_id",dynamic);
553
         dynamicQueryWrapper.eq("dynamic_id",dynamic);
554
         if (iBuildingDynamicService.updateById(dynamic)){
554
         if (iBuildingDynamicService.updateById(dynamic)){
555
             responseBean.addSuccess("成功");
555
             responseBean.addSuccess("成功");
556
-        }else {
556
+        } else {
557
             responseBean.addError("失败");
557
             responseBean.addError("失败");
558
         }
558
         }
559
         return responseBean;
559
         return responseBean;

+ 211
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingPanoramaController.java View File

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.common.CommConstant;
9
+import com.huiju.estateagents.entity.TaBuildingApartment;
10
+import com.huiju.estateagents.entity.TaBuildingPanorama;
11
+import com.huiju.estateagents.service.ITaBuildingApartmentService;
12
+import com.huiju.estateagents.service.ITaBuildingPanoramaService;
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.servlet.http.HttpServletRequest;
19
+import java.time.LocalDateTime;
20
+import java.util.ArrayList;
21
+import java.util.Collections;
22
+import java.util.List;
23
+import java.util.stream.Collectors;
24
+import java.util.stream.Stream;
25
+
26
+/**
27
+ * <p>
28
+    *   前端控制器
29
+    * </p>
30
+ *
31
+ * @author jobob
32
+ * @since 2020-01-30
33
+ */
34
+@RestController
35
+@RequestMapping("/api")
36
+public class TaBuildingPanoramaController extends BaseController {
37
+
38
+    private final Logger logger = LoggerFactory.getLogger(TaBuildingPanoramaController.class);
39
+
40
+    @Autowired
41
+    public ITaBuildingPanoramaService iTaBuildingPanoramaService;
42
+
43
+
44
+    @Autowired
45
+    private ITaBuildingApartmentService taBuildingApartmentService;
46
+
47
+    /**
48
+     * 查询列表
49
+     * @return
50
+     */
51
+    @RequestMapping(value="/admin/panorama/{buildingId}",method= RequestMethod.GET)
52
+    public ResponseBean taBuildingPanoramaList(@PathVariable String buildingId,HttpServletRequest request){
53
+        ResponseBean responseBean = new ResponseBean();
54
+        try {
55
+            QueryWrapper<TaBuildingPanorama> queryWrapper = new QueryWrapper<>();
56
+            queryWrapper.eq("org_id",getOrgId(request));
57
+            queryWrapper.eq("building_id",buildingId);
58
+            queryWrapper.eq("status",CommConstant.STATUS_NORMAL);
59
+            
60
+            queryWrapper.orderByDesc("create_date");
61
+            List<TaBuildingPanorama> result = iTaBuildingPanoramaService.list(queryWrapper);
62
+
63
+            responseBean.addSuccess(result);
64
+        }catch (Exception e){
65
+            e.printStackTrace();
66
+            logger.error("taBuildingPanoramaList -=- {}",e.toString());
67
+            responseBean.addError(e.getMessage());
68
+        }
69
+        return responseBean;
70
+    }
71
+
72
+
73
+    /**
74
+     * 获取全景图的户型列表
75
+     * @return
76
+     */
77
+    @RequestMapping(value="/admin/panorama/apartment",method= RequestMethod.GET)
78
+    public ResponseBean getApartmentList(@RequestParam(value ="buildingId") String buildingId,
79
+                                               HttpServletRequest request){
80
+        ResponseBean responseBean = new ResponseBean();
81
+        try {
82
+            //获取此楼盘下的所有的户型
83
+            QueryWrapper<TaBuildingApartment> queryWrapper = new QueryWrapper<>();
84
+            queryWrapper.eq("status",CommConstant.STATUS_NORMAL);
85
+            queryWrapper.eq("apartment_type",CommConstant.APARTMENT_TYPR_APART);
86
+            queryWrapper.eq("building_id",buildingId);
87
+            List<TaBuildingApartment> apartmentList = taBuildingApartmentService.list(queryWrapper);
88
+
89
+            //获取此楼盘下所有已经有全景图的户型
90
+            QueryWrapper<TaBuildingPanorama> panoramaQueryWrapper = new QueryWrapper<>();
91
+            panoramaQueryWrapper.eq("status",CommConstant.STATUS_NORMAL);
92
+            panoramaQueryWrapper.eq("panorama_type",CommConstant.PANORAMA_TYPE_APARTMENT);
93
+            panoramaQueryWrapper.eq("building_id",buildingId);
94
+            panoramaQueryWrapper.eq("org_id",getOrgId(request));
95
+            List<TaBuildingPanorama> panoramaList = iTaBuildingPanoramaService.list(panoramaQueryWrapper);
96
+            List<String> stringList = panoramaList.stream().map(TaBuildingPanorama::getApartmentId).collect(Collectors.toList());
97
+
98
+            List<TaBuildingApartment> resultList = new ArrayList<>();
99
+            //过滤已经选择的
100
+            apartmentList.forEach(e -> {
101
+                if (!stringList.contains(e.getApartmentId())){
102
+                    resultList.add(e);
103
+                }
104
+            });
105
+
106
+            responseBean.addSuccess(resultList);
107
+        }catch (Exception e){
108
+            e.printStackTrace();
109
+            logger.error("getApartmentList -=- {}",e.toString());
110
+            responseBean.addError(e.getMessage());
111
+        }
112
+        return responseBean;
113
+    }
114
+
115
+    /**
116
+     * 保存对象
117
+     * @param taBuildingPanorama 实体对象
118
+     * @return
119
+     */
120
+    @RequestMapping(value="/admin/panorama",method= RequestMethod.POST)
121
+    public ResponseBean taBuildingPanoramaAdd(@RequestBody TaBuildingPanorama taBuildingPanorama,HttpServletRequest request){
122
+        ResponseBean responseBean = new ResponseBean();
123
+        try {
124
+            taBuildingPanorama.setStatus(CommConstant.STATUS_NORMAL);
125
+            taBuildingPanorama.setCreateDate(LocalDateTime.now());
126
+            taBuildingPanorama.setOrgId(getOrgId(request));
127
+            //把户型给内容
128
+            if (taBuildingPanorama.getPanoramaType().equals(CommConstant.PANORAMA_TYPE_APARTMENT)){
129
+                TaBuildingApartment apartment = taBuildingApartmentService.getById(taBuildingPanorama.getApartmentId());
130
+                taBuildingPanorama.setContent(apartment.getApartmentName());
131
+            }
132
+            if (iTaBuildingPanoramaService.save(taBuildingPanorama)){
133
+                responseBean.addSuccess(taBuildingPanorama);
134
+            }else {
135
+                responseBean.addError("fail");
136
+            }
137
+        }catch (Exception e){
138
+            e.printStackTrace();
139
+            logger.error("taBuildingPanoramaAdd -=- {}",e.toString());
140
+            responseBean.addError(e.getMessage());
141
+        }
142
+        return responseBean;
143
+    }
144
+
145
+    /**
146
+     * 根据id删除对象--逻辑删除
147
+     * @param id  实体ID
148
+     */
149
+    @ResponseBody
150
+    @RequestMapping(value="/admin/panorama/{id}", method= RequestMethod.DELETE)
151
+    public ResponseBean taBuildingPanoramaDelete(@PathVariable Integer id){
152
+        ResponseBean responseBean = new ResponseBean();
153
+        try {
154
+            TaBuildingPanorama taBuildingPanorama = new TaBuildingPanorama();
155
+            taBuildingPanorama.setPanoramaId(id);
156
+            taBuildingPanorama.setStatus(CommConstant.STATUS_UNACCALIMED);
157
+            if(iTaBuildingPanoramaService.updateById(taBuildingPanorama)){
158
+                responseBean.addSuccess("success");
159
+            }else {
160
+                responseBean.addError("fail");
161
+            }
162
+        }catch (Exception e){
163
+            e.printStackTrace();
164
+            logger.error("taBuildingPanoramaDelete -=- {}",e.toString());
165
+            responseBean.addError(e.getMessage());
166
+        }
167
+        return responseBean;
168
+    }
169
+
170
+    /**
171
+     * 修改对象
172
+     * @param id  实体ID
173
+     * @param taBuildingPanorama 实体对象
174
+     * @return
175
+     */
176
+    @RequestMapping(value="/admin/panorama/{id}",method= RequestMethod.PUT)
177
+    public ResponseBean taBuildingPanoramaUpdate(@PathVariable Integer id,
178
+                                        @RequestBody TaBuildingPanorama taBuildingPanorama){
179
+        ResponseBean responseBean = new ResponseBean();
180
+        try {
181
+            taBuildingPanorama.setPanoramaId(id);
182
+            if (iTaBuildingPanoramaService.updateById(taBuildingPanorama)){
183
+                responseBean.addSuccess(taBuildingPanorama);
184
+            }else {
185
+                responseBean.addError("fail");
186
+            }
187
+        }catch (Exception e){
188
+            e.printStackTrace();
189
+            logger.error("taBuildingPanoramaUpdate -=- {}",e.toString());
190
+            responseBean.addError(e.getMessage());
191
+        }
192
+        return responseBean;
193
+    }
194
+
195
+    /**
196
+     * 根据id查询对象
197
+     * @param id  实体ID
198
+     */
199
+    @RequestMapping(value="/panorama/{id}",method= RequestMethod.GET)
200
+    public ResponseBean taBuildingPanoramaGet(@PathVariable Integer id){
201
+        ResponseBean responseBean = new ResponseBean();
202
+        try {
203
+            responseBean.addSuccess(iTaBuildingPanoramaService.getById(id));
204
+        }catch (Exception e){
205
+            e.printStackTrace();
206
+            logger.error("taBuildingPanoramaDelete -=- {}",e.toString());
207
+            responseBean.addError(e.getMessage());
208
+        }
209
+        return responseBean;
210
+    }
211
+}

+ 2
- 2
src/main/java/com/huiju/estateagents/controller/TaMiniappController.java View File

79
     @RequestMapping(value="/center/taMiniapp",method= RequestMethod.POST)
79
     @RequestMapping(value="/center/taMiniapp",method= RequestMethod.POST)
80
     public ResponseBean taMiniappAdd(@RequestBody TaMiniapp taMiniapp, HttpServletRequest request){
80
     public ResponseBean taMiniappAdd(@RequestBody TaMiniapp taMiniapp, HttpServletRequest request){
81
         ResponseBean responseBean = new ResponseBean();
81
         ResponseBean responseBean = new ResponseBean();
82
-
82
+        Integer channelId = getChannelId(request);
83
         try {
83
         try {
84
-            iTaMiniappService.saveInfoWithTpls(taMiniapp);
84
+            iTaMiniappService.saveInfoWithTpls(taMiniapp, channelId);
85
             responseBean.addSuccess(taMiniapp);
85
             responseBean.addSuccess(taMiniapp);
86
         }catch (Exception e){
86
         }catch (Exception e){
87
             e.printStackTrace();
87
             e.printStackTrace();

+ 147
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonFromRecordController.java View File

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.common.CommConstant;
9
+import com.huiju.estateagents.common.StringUtils;
10
+import com.huiju.estateagents.entity.*;
11
+import com.huiju.estateagents.service.ITaPersonFromRecordService;
12
+import com.huiju.estateagents.service.ITaPersonService;
13
+import com.huiju.estateagents.statistic.service.ITsUserBehaviorStatisticService;
14
+import org.slf4j.Logger;
15
+import org.slf4j.LoggerFactory;
16
+import org.springframework.beans.factory.annotation.Autowired;
17
+import org.springframework.web.bind.annotation.*;
18
+
19
+import javax.servlet.http.HttpServletRequest;
20
+import java.time.LocalDateTime;
21
+import java.util.List;
22
+
23
+/**
24
+ * <p>
25
+    * 新增用户来源表  前端控制器
26
+    * </p>
27
+ *
28
+ * @author jobob
29
+ * @since 2020-01-03
30
+ */
31
+@RestController
32
+@RequestMapping("/api")
33
+public class TaPersonFromRecordController extends BaseController {
34
+
35
+    private final Logger logger = LoggerFactory.getLogger(TaPersonFromRecordController.class);
36
+
37
+    @Autowired
38
+    public ITaPersonFromRecordService iTaPersonFromRecordService;
39
+
40
+    @Autowired
41
+    public ITaPersonService taPersonService;
42
+
43
+    @Autowired
44
+    private ITsUserBehaviorStatisticService iTsUserBehaviorStatisticService;
45
+
46
+    /**
47
+     * 分页查询列表
48
+     * @param pageNum
49
+     * @param pageSize
50
+     * @return
51
+     */
52
+    @RequestMapping(value="/admin/taPersonFromRecord",method= RequestMethod.GET)
53
+    public ResponseBean taPersonFromRecordList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
54
+                                               @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
55
+        ResponseBean responseBean = new ResponseBean();
56
+        iTaPersonFromRecordService.personFromStatistic();
57
+        iTsUserBehaviorStatisticService.userBehaviorStatustic();
58
+        responseBean.addSuccess("成功");
59
+        return responseBean;
60
+    }
61
+
62
+    /**
63
+     * 保存对象
64
+     * @param taPersonFromRecord 实体对象
65
+     * @return
66
+     */
67
+    @RequestMapping(value="/taPersonFromRecord",method= RequestMethod.POST)
68
+    public ResponseBean taPersonFromRecordAdd(@RequestBody TaPersonFromRecord taPersonFromRecord){
69
+        ResponseBean responseBean = new ResponseBean();
70
+        try {
71
+            if (iTaPersonFromRecordService.save(taPersonFromRecord)){
72
+                responseBean.addSuccess(taPersonFromRecord);
73
+            }else {
74
+                responseBean.addError("fail");
75
+            }
76
+        }catch (Exception e){
77
+            e.printStackTrace();
78
+            logger.error("taPersonFromRecordAdd -=- {}",e.toString());
79
+            responseBean.addError(e.getMessage());
80
+        }
81
+        return responseBean;
82
+    }
83
+
84
+    /**
85
+     * 根据id删除对象
86
+     * @param id  实体ID
87
+     */
88
+    @ResponseBody
89
+    @RequestMapping(value="/taPersonFromRecord/{id}", method= RequestMethod.DELETE)
90
+    public ResponseBean taPersonFromRecordDelete(@PathVariable Integer id){
91
+        ResponseBean responseBean = new ResponseBean();
92
+        try {
93
+            if(iTaPersonFromRecordService.removeById(id)){
94
+                responseBean.addSuccess("success");
95
+            }else {
96
+                responseBean.addError("fail");
97
+            }
98
+        }catch (Exception e){
99
+            e.printStackTrace();
100
+            logger.error("taPersonFromRecordDelete -=- {}",e.toString());
101
+            responseBean.addError(e.getMessage());
102
+        }
103
+        return responseBean;
104
+    }
105
+
106
+    /**
107
+     * 修改对象
108
+     * @param id  实体ID
109
+     * @param taPersonFromRecord 实体对象
110
+     * @return
111
+     */
112
+    @RequestMapping(value="/taPersonFromRecord/{id}",method= RequestMethod.PUT)
113
+    public ResponseBean taPersonFromRecordUpdate(@PathVariable Integer id,
114
+                                        @RequestBody TaPersonFromRecord taPersonFromRecord){
115
+        ResponseBean responseBean = new ResponseBean();
116
+        try {
117
+            if (iTaPersonFromRecordService.updateById(taPersonFromRecord)){
118
+                responseBean.addSuccess(taPersonFromRecord);
119
+            }else {
120
+                responseBean.addError("fail");
121
+            }
122
+        }catch (Exception e){
123
+            e.printStackTrace();
124
+            logger.error("taPersonFromRecordUpdate -=- {}",e.toString());
125
+            responseBean.addError(e.getMessage());
126
+        }
127
+        return responseBean;
128
+    }
129
+
130
+    /**
131
+     * 根据id查询对象
132
+     * @param id  实体ID
133
+     */
134
+    @RequestMapping(value="/taPersonFromRecord/{id}",method= RequestMethod.GET)
135
+    public ResponseBean taPersonFromRecordGet(@PathVariable Integer id){
136
+        ResponseBean responseBean = new ResponseBean();
137
+        try {
138
+            responseBean.addSuccess(iTaPersonFromRecordService.getById(id));
139
+        }catch (Exception e){
140
+            e.printStackTrace();
141
+            logger.error("taPersonFromRecordDelete -=- {}",e.toString());
142
+            responseBean.addError(e.getMessage());
143
+        }
144
+        return responseBean;
145
+    }
146
+
147
+}

+ 15
- 6
src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java View File

53
     public ITaBuildingService buildingService;
53
     public ITaBuildingService buildingService;
54
     @Autowired
54
     @Autowired
55
     private ITaRecommendCustomerService taRecommendCustomerService;
55
     private ITaRecommendCustomerService taRecommendCustomerService;
56
-
56
+    @Autowired
57
+    public ITaPersonFromRecordService iTaPersonFromRecordService;
57
 
58
 
58
 
59
 
59
     /**
60
     /**
80
     }
81
     }
81
 
82
 
82
     /**
83
     /**
83
-     * 保存对象
84
+     * 保存对象--埋点数据保存
84
      * @param taPersonVisitRecord 实体对象
85
      * @param taPersonVisitRecord 实体对象
85
      * @return
86
      * @return
86
      */
87
      */
141
         }
142
         }
142
         try {
143
         try {
143
             if (iTaPersonVisitRecordService.save(taPersonVisitRecord)){
144
             if (iTaPersonVisitRecordService.save(taPersonVisitRecord)){
145
+                //清洗埋點數據到新增用戶表--只有进入小程序的时候 start才记录
146
+                if(taPersonVisitRecord.getEvent().equals(CommConstant.BIZ_EVENT_START)){
147
+                    iTaPersonFromRecordService.addNewPersonRecordRecord(taPersonVisitRecord);
148
+                }
149
+
144
                 return ResponseBean.success(taPersonVisitRecord);
150
                 return ResponseBean.success(taPersonVisitRecord);
145
             }else {
151
             }else {
146
                 return ResponseBean.error("保存失败",ResponseBean.ERROR_UNAVAILABLE);
152
                 return ResponseBean.error("保存失败",ResponseBean.ERROR_UNAVAILABLE);
344
         }
350
         }
345
         //使用分页插件
351
         //使用分页插件
346
         IPage<TaConsultantInfo> pg = new Page<>(pageNumber, pageSize);
352
         IPage<TaConsultantInfo> pg = new Page<>(pageNumber, pageSize);
347
-        IPage<TaConsultantInfo> result = iTaPersonVisitRecordService.getConsultantShareInfoList(pg, userId, getOrgId(request));
353
+        QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
354
+        taPersonQueryWrapper.eq("user_id", userId);
355
+        TaPerson taPerson = taPersonService.getOne(taPersonQueryWrapper);
356
+        IPage<TaConsultantInfo> result = iTaPersonVisitRecordService.getConsultantShareInfoList(pg, taPerson.getPersonId());
348
 
357
 
349
         List<TaConsultantInfo> taConsultantInfos = result.getRecords();
358
         List<TaConsultantInfo> taConsultantInfos = result.getRecords();
350
         taConsultantInfos.forEach(e ->{
359
         taConsultantInfos.forEach(e ->{
351
-            Integer shareNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, e.getEventType());
360
+            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");
352
             switch (e.getEventType()){
361
             switch (e.getEventType()){
353
-                case CommConstant.POSTER_CONTENT_TYPE_ACTIVITY:
362
+                case CommConstant.FAVOR_ACTIVITY:
354
                     e.setActivityShareNum(shareNum);
363
                     e.setActivityShareNum(shareNum);
355
                     break;
364
                     break;
356
                 case CommConstant.POINTS_CHANGE_HELP:
365
                 case CommConstant.POINTS_CHANGE_HELP:
362
                 case CommConstant.CAROUSEL_NEWS:
371
                 case CommConstant.CAROUSEL_NEWS:
363
                     e.setNewsNum(shareNum);
372
                     e.setNewsNum(shareNum);
364
                     break;
373
                     break;
365
-                case CommConstant.POSTER_CONTENT_TYPE_BUILDING:
374
+                case CommConstant.FAVOR_PROJECT:
366
                     e.setBuildingNum(shareNum);
375
                     e.setBuildingNum(shareNum);
367
                     break;
376
                     break;
368
                 case CommConstant.EVENT_H5:
377
                 case CommConstant.EVENT_H5:

+ 1
- 1
src/main/java/com/huiju/estateagents/controller/TaPointsRecordsController.java View File

111
                         result.getRecords().get(i).setRecordName("兑换商品");
111
                         result.getRecords().get(i).setRecordName("兑换商品");
112
                         break;
112
                         break;
113
                     case CommConstant.POINTS_CHANGE_SHARE_POSTER:
113
                     case CommConstant.POINTS_CHANGE_SHARE_POSTER:
114
-                        result.getRecords().get(i).setRecordName("分享海报");
114
+                        result.getRecords().get(i).setRecordName("分享转发");
115
                         break;
115
                         break;
116
                     case CommConstant.POINTS_CHANGE_CHECKIN:
116
                     case CommConstant.POINTS_CHANGE_CHECKIN:
117
                         result.getRecords().get(i).setRecordName("签到");
117
                         result.getRecords().get(i).setRecordName("签到");

+ 27
- 8
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java View File

306
                                          @RequestParam(value ="verifyStatus",required = false) String verifyStatus,
306
                                          @RequestParam(value ="verifyStatus",required = false) String verifyStatus,
307
                                          @RequestParam(value = "sex",required = false)Integer sex,
307
                                          @RequestParam(value = "sex",required = false)Integer sex,
308
                                          @RequestParam(value = "customerType") String customerType,// public 公  private 私
308
                                          @RequestParam(value = "customerType") String customerType,// public 公  private 私
309
-                                         @RequestParam(value = "status",required = false) Integer status){
309
+                                         @RequestParam(value = "status",required = false) Integer status,
310
+                                         @RequestParam(value = "sceneType",required = false) String sceneType){
310
         try{
311
         try{
311
 
312
 
312
             // TODO 目前如果是公客,就取当前操作人员的 buildingId
313
             // TODO 目前如果是公客,就取当前操作人员的 buildingId
320
 //                TaPersonBuilding personBuilding = taPersonBuildingMapper.selectOne(queryWrapper);
321
 //                TaPersonBuilding personBuilding = taPersonBuildingMapper.selectOne(queryWrapper);
321
 //                buildingId = personBuilding.getBuildingId();
322
 //                buildingId = personBuilding.getBuildingId();
322
 //            }
323
 //            }
323
-            return ResponseBean.success(taRecommendCustomerService.getCustomerList(status,pageNumber,pageSize,buildingId,name,tel,consultName,consultTel,entryType,verifyStatus,sex, customerType, getOrgId(request),getTaPersonBuildingListByUserId(request)));
324
+            return ResponseBean.success(taRecommendCustomerService.getCustomerList(status,pageNumber,pageSize,buildingId,name,tel,consultName,consultTel,entryType,verifyStatus,sex, customerType, getOrgId(request),getTaPersonBuildingListByUserId(request),sceneType));
324
         }catch (Exception e){
325
         }catch (Exception e){
325
             e.printStackTrace();
326
             e.printStackTrace();
326
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
327
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
393
         }
394
         }
394
     }
395
     }
395
 
396
 
397
+    /**
398
+     * 分配置业顾问
399
+     */
400
+    @RequestMapping(value="/admin/customer/consultant/assist/{personId}",method= RequestMethod.POST)
401
+    public ResponseBean assistConsultant (@RequestBody TaUser taUser, @PathVariable String personId, HttpServletRequest request){
402
+        try{
403
+            Integer orgId = getOrgId(request);
404
+            taRecommendCustomerService.consultantAssist(taUser, personId, orgId);
405
+            return ResponseBean.success("");
406
+        }catch (Exception e){
407
+            e.printStackTrace();
408
+            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
409
+        }
410
+    }
396
 
411
 
397
     @GetMapping("/admin/customer/recommend/{customerId}")
412
     @GetMapping("/admin/customer/recommend/{customerId}")
398
     public ResponseBean getCustomersIRecommended (@RequestParam int pageNumber, @RequestParam int pageSize, @PathVariable String customerId,HttpServletRequest request){
413
     public ResponseBean getCustomersIRecommended (@RequestParam int pageNumber, @RequestParam int pageSize, @PathVariable String customerId,HttpServletRequest request){
521
     @GetMapping(value = "/admin/customer/recommend/get/{id}")
536
     @GetMapping(value = "/admin/customer/recommend/get/{id}")
522
     public ResponseBean getCustomerDetail(@PathVariable String id,
537
     public ResponseBean getCustomerDetail(@PathVariable String id,
523
                                           @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
538
                                           @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
524
-                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,HttpServletRequest request) {
539
+                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
540
+                                          @RequestParam(value ="buildingId",required = false) String buildingId,
541
+                                          HttpServletRequest request) {
525
         ResponseBean responseBean = new ResponseBean();
542
         ResponseBean responseBean = new ResponseBean();
526
         try {
543
         try {
527
-            responseBean.addSuccess(taRecommendCustomerService.getCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request)));
544
+            responseBean.addSuccess(taRecommendCustomerService.getCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request),buildingId));
528
         }catch (Exception e){
545
         }catch (Exception e){
529
             e.printStackTrace();
546
             e.printStackTrace();
530
             responseBean.addError(e.getMessage());
547
             responseBean.addError(e.getMessage());
535
     @GetMapping(value = "/admin/customer/recommend/public/get/{id}")
552
     @GetMapping(value = "/admin/customer/recommend/public/get/{id}")
536
     public ResponseBean getPublicCustomerDetail(@PathVariable String id,
553
     public ResponseBean getPublicCustomerDetail(@PathVariable String id,
537
                                                 @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
554
                                                 @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
538
-                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,HttpServletRequest request) {
555
+                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
556
+                                                @RequestParam(value ="buildingId",required = false) String buildingId,HttpServletRequest request) {
539
         ResponseBean responseBean = new ResponseBean();
557
         ResponseBean responseBean = new ResponseBean();
540
         try {
558
         try {
541
-            responseBean.addSuccess(taRecommendCustomerService.getPublicCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request)));
559
+            responseBean.addSuccess(taRecommendCustomerService.getPublicCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request),buildingId));
542
         }catch (Exception e){
560
         }catch (Exception e){
543
             e.printStackTrace();
561
             e.printStackTrace();
544
             responseBean.addError(e.getMessage());
562
             responseBean.addError(e.getMessage());
548
 
566
 
549
     @GetMapping("/admin/customer/recommend/drift")
567
     @GetMapping("/admin/customer/recommend/drift")
550
     public ResponseBean getDriftCustomerList (HttpServletRequest request,
568
     public ResponseBean getDriftCustomerList (HttpServletRequest request,
551
-                                              @RequestParam(value ="buildingId",defaultValue = "false") String buildingId,
569
+                                              @RequestParam(value ="buildingId",defaultValue = "") String buildingId,
570
+                                              @RequestParam(value ="sceneType",defaultValue = "") String sceneType,
552
                                          @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
571
                                          @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
553
                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
572
                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
554
         try{
573
         try{
555
-            return ResponseBean.success(taPersonService.getDriftCustomerList(pageNumber,pageSize,buildingId, getOrgId(request)));
574
+            return ResponseBean.success(taPersonService.getDriftCustomerList(pageNumber,pageSize,buildingId, getOrgId(request),sceneType));
556
         }catch (Exception e){
575
         }catch (Exception e){
557
             e.printStackTrace();
576
             e.printStackTrace();
558
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
577
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);

+ 16
- 8
src/main/java/com/huiju/estateagents/controller/TaSharePersonFromController.java View File

5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.estateagents.base.BaseController;
6
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.ResponseBean;
7
 import com.huiju.estateagents.base.ResponseBean;
8
-import com.huiju.estateagents.entity.TaSharePersonFrom;
8
+import com.huiju.estateagents.common.CommConstant;
9
+import com.huiju.estateagents.entity.*;
9
 import com.huiju.estateagents.service.ITaSharePersonFromService;
10
 import com.huiju.estateagents.service.ITaSharePersonFromService;
11
+import org.apache.commons.lang3.StringUtils;
10
 import org.slf4j.Logger;
12
 import org.slf4j.Logger;
11
 import org.slf4j.LoggerFactory;
13
 import org.slf4j.LoggerFactory;
12
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.web.bind.annotation.ResponseBody;
20
 import org.springframework.web.bind.annotation.ResponseBody;
19
 import org.springframework.web.bind.annotation.RestController;
21
 import org.springframework.web.bind.annotation.RestController;
20
 
22
 
23
+import javax.servlet.http.HttpServletRequest;
24
+import java.time.LocalDateTime;
25
+
21
 /**
26
 /**
22
  * <p>
27
  * <p>
23
     *   前端控制器
28
     *   前端控制器
63
     }
68
     }
64
 
69
 
65
     /**
70
     /**
66
-     * 保存对象
67
-     * @param taSharePersonFrom 实体对象
71
+     * 保存对象--分享记录埋点
72
+     *
68
      * @return
73
      * @return
69
      */
74
      */
70
-    @RequestMapping(value="/taSharePersonFrom",method= RequestMethod.POST)
71
-    public ResponseBean taSharePersonFromAdd(@RequestBody TaSharePersonFrom taSharePersonFrom){
75
+    @RequestMapping(value="/wx/taSharePersonFrom",method= RequestMethod.POST)
76
+    public ResponseBean taSharePersonFromAdd( @RequestParam(required = false) String from,
77
+                                              @RequestParam(required = false)String recommender,
78
+                                              @RequestParam(required = false)String targetId,
79
+                                              HttpServletRequest request){
72
         ResponseBean responseBean = new ResponseBean();
80
         ResponseBean responseBean = new ResponseBean();
73
         try {
81
         try {
74
-            if (iTaSharePersonFromService.save(taSharePersonFrom)){
82
+            if(StringUtils.isNotBlank(from) &&StringUtils.isNotBlank(recommender) &&StringUtils.isNotBlank(targetId)){
83
+                //添加客户分享信息记录
84
+                TaSharePersonFrom taSharePersonFrom = iTaSharePersonFromService.addSharePersonRecord(getPersonId(request), getOrgId(request), from, recommender, targetId);
75
                 responseBean.addSuccess(taSharePersonFrom);
85
                 responseBean.addSuccess(taSharePersonFrom);
76
-            }else {
77
-                responseBean.addError("fail");
78
             }
86
             }
79
         }catch (Exception e){
87
         }catch (Exception e){
80
             e.printStackTrace();
88
             e.printStackTrace();

+ 2
- 1
src/main/java/com/huiju/estateagents/controller/TdCityController.java View File

189
     @RequestMapping(value="/wx/location/city",method= RequestMethod.GET)
189
     @RequestMapping(value="/wx/location/city",method= RequestMethod.GET)
190
     public ResponseBean wxLocationCityDetail(@RequestParam(value = "location") String location,HttpServletRequest request){
190
     public ResponseBean wxLocationCityDetail(@RequestParam(value = "location") String location,HttpServletRequest request){
191
         ResponseBean responseBean = new ResponseBean();
191
         ResponseBean responseBean = new ResponseBean();
192
+        Integer orgId = getOrgId(request);
192
         try {
193
         try {
193
-            TdCity tdCity = iTdCityService.getLocationCity(location);
194
+            TdCity tdCity = iTdCityService.getLocationCity(location, orgId);
194
             responseBean.addSuccess(tdCity);
195
             responseBean.addSuccess(tdCity);
195
         }catch (Exception e){
196
         }catch (Exception e){
196
             logger.error("tdCityList -=- {}",e.toString());
197
             logger.error("tdCityList -=- {}",e.toString());

+ 2
- 0
src/main/java/com/huiju/estateagents/controller/TdReportController.java View File

4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.CommConstant;
7
 import com.huiju.estateagents.entity.TdReport;
8
 import com.huiju.estateagents.entity.TdReport;
8
 import com.huiju.estateagents.service.ITdReportService;
9
 import com.huiju.estateagents.service.ITdReportService;
9
 import io.swagger.annotations.Api;
10
 import io.swagger.annotations.Api;
60
             //使用分页插件
61
             //使用分页插件
61
 		    IPage<TdReport> pg = new Page<>(pageNum, pageSize);
62
 		    IPage<TdReport> pg = new Page<>(pageNum, pageSize);
62
             QueryWrapper<TdReport> queryWrapper = new QueryWrapper<>();
63
             QueryWrapper<TdReport> queryWrapper = new QueryWrapper<>();
64
+            queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
63
             queryWrapper.orderByDesc("create_date");
65
             queryWrapper.orderByDesc("create_date");
64
 
66
 
65
             IPage<TdReport> result = iTdReportService.page(pg, queryWrapper);
67
             IPage<TdReport> result = iTdReportService.page(pg, queryWrapper);

+ 143
- 0
src/main/java/com/huiju/estateagents/controller/TdWxDictController.java View File

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.TdWxDict;
9
+import com.huiju.estateagents.service.ITdWxDictService;
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-01-06
22
+ */
23
+@RestController
24
+@RequestMapping("/api")
25
+public class TdWxDictController extends BaseController {
26
+
27
+    private final Logger logger = LoggerFactory.getLogger(TdWxDictController.class);
28
+
29
+    @Autowired
30
+    public ITdWxDictService iTdWxDictService;
31
+
32
+
33
+    /**
34
+     * 分页查询列表
35
+     * @param pageNumber
36
+     * @param pageSize
37
+     * @return
38
+     */
39
+    @RequestMapping(value="/admin/tdWxDict",method= RequestMethod.GET)
40
+    public ResponseBean tdWxDictList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
41
+                                     @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
42
+        ResponseBean responseBean = new ResponseBean();
43
+        try {
44
+            //使用分页插件
45
+		    IPage<TdWxDict> pg = new Page<>(pageNumber, pageSize);
46
+            QueryWrapper<TdWxDict> queryWrapper = new QueryWrapper<>();
47
+            queryWrapper.groupBy("scene_type");
48
+
49
+            IPage<TdWxDict> result = iTdWxDictService.page(pg, queryWrapper);
50
+            responseBean.addSuccess(result);
51
+        }catch (Exception e){
52
+            e.printStackTrace();
53
+            logger.error("tdWxDictList -=- {}",e.toString());
54
+            responseBean.addError(e.getMessage());
55
+        }
56
+        return responseBean;
57
+    }
58
+
59
+    /**
60
+     * 保存对象
61
+     * @param tdWxDict 实体对象
62
+     * @return
63
+     */
64
+    @RequestMapping(value="/tdWxDict",method= RequestMethod.POST)
65
+    public ResponseBean tdWxDictAdd(@RequestBody TdWxDict tdWxDict){
66
+        ResponseBean responseBean = new ResponseBean();
67
+        try {
68
+            if (iTdWxDictService.save(tdWxDict)){
69
+                responseBean.addSuccess(tdWxDict);
70
+            }else {
71
+                responseBean.addError("fail");
72
+            }
73
+        }catch (Exception e){
74
+            e.printStackTrace();
75
+            logger.error("tdWxDictAdd -=- {}",e.toString());
76
+            responseBean.addError(e.getMessage());
77
+        }
78
+        return responseBean;
79
+    }
80
+
81
+    /**
82
+     * 根据id删除对象
83
+     * @param id  实体ID
84
+     */
85
+    @ResponseBody
86
+    @RequestMapping(value="/tdWxDict/{id}", method= RequestMethod.DELETE)
87
+    public ResponseBean tdWxDictDelete(@PathVariable Integer id){
88
+        ResponseBean responseBean = new ResponseBean();
89
+        try {
90
+            if(iTdWxDictService.removeById(id)){
91
+                responseBean.addSuccess("success");
92
+            }else {
93
+                responseBean.addError("fail");
94
+            }
95
+        }catch (Exception e){
96
+            e.printStackTrace();
97
+            logger.error("tdWxDictDelete -=- {}",e.toString());
98
+            responseBean.addError(e.getMessage());
99
+        }
100
+        return responseBean;
101
+    }
102
+
103
+    /**
104
+     * 修改对象
105
+     * @param id  实体ID
106
+     * @param tdWxDict 实体对象
107
+     * @return
108
+     */
109
+    @RequestMapping(value="/tdWxDict/{id}",method= RequestMethod.PUT)
110
+    public ResponseBean tdWxDictUpdate(@PathVariable Integer id,
111
+                                        @RequestBody TdWxDict tdWxDict){
112
+        ResponseBean responseBean = new ResponseBean();
113
+        try {
114
+            if (iTdWxDictService.updateById(tdWxDict)){
115
+                responseBean.addSuccess(tdWxDict);
116
+            }else {
117
+                responseBean.addError("fail");
118
+            }
119
+        }catch (Exception e){
120
+            e.printStackTrace();
121
+            logger.error("tdWxDictUpdate -=- {}",e.toString());
122
+            responseBean.addError(e.getMessage());
123
+        }
124
+        return responseBean;
125
+    }
126
+
127
+    /**
128
+     * 根据id查询对象
129
+     * @param id  实体ID
130
+     */
131
+    @RequestMapping(value="/tdWxDict/{id}",method= RequestMethod.GET)
132
+    public ResponseBean tdWxDictGet(@PathVariable Integer id){
133
+        ResponseBean responseBean = new ResponseBean();
134
+        try {
135
+            responseBean.addSuccess(iTdWxDictService.getById(id));
136
+        }catch (Exception e){
137
+            e.printStackTrace();
138
+            logger.error("tdWxDictDelete -=- {}",e.toString());
139
+            responseBean.addError(e.getMessage());
140
+        }
141
+        return responseBean;
142
+    }
143
+}

+ 19
- 1
src/main/java/com/huiju/estateagents/drainage/controller/TaDrainageController.java View File

12
 import com.huiju.estateagents.drainage.service.ITaDrainageRecordService;
12
 import com.huiju.estateagents.drainage.service.ITaDrainageRecordService;
13
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
13
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
14
 import com.huiju.estateagents.entity.ExtendContent;
14
 import com.huiju.estateagents.entity.ExtendContent;
15
+import com.huiju.estateagents.entity.TaMiniapp;
16
+import com.huiju.estateagents.mapper.TaMiniappMapper;
15
 import com.huiju.estateagents.service.IExtendContentService;
17
 import com.huiju.estateagents.service.IExtendContentService;
18
+import com.huiju.estateagents.service.IMiniAppService;
16
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
19
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
17
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
20
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
18
 import io.swagger.models.auth.In;
21
 import io.swagger.models.auth.In;
60
     @Autowired
63
     @Autowired
61
     public IExtendContentService iExtendContentService;
64
     public IExtendContentService iExtendContentService;
62
 
65
 
66
+    @Autowired
67
+    private TaMiniappMapper taMiniappMapper;
68
+
69
+    @Autowired
70
+    private IMiniAppService miniAppService;
71
+
63
     /**
72
     /**
64
      * 分页查询列表
73
      * 分页查询列表
65
      * @param pageNum
74
      * @param pageNum
128
                 taDrainage.setStatus(CommConstant.STATUS_NORMAL);
137
                 taDrainage.setStatus(CommConstant.STATUS_NORMAL);
129
             }
138
             }
130
             if (iTaDrainageService.save(taDrainage)){
139
             if (iTaDrainageService.save(taDrainage)){
131
-                //添加第三方appid和secret
140
+                // 根据ORGID查询当前小程序表的miniapp_id
141
+                QueryWrapper<TaMiniapp> taMiniappQuery= new QueryWrapper<>();
142
+                taMiniappQuery.eq("org_id",getOrgId(request));
143
+                TaMiniapp taMiniapp = taMiniappMapper.selectOne(taMiniappQuery);
144
+                // 生成二维码
145
+                ResponseBean taMiniappQrcode = miniAppService.getQrCode(CommConstant.DRAINAGE_QRCODE.replace("#0",taDrainage.getDrainageId().toString()).replace("#1","h5"),taMiniapp.getMiniappId());
146
+                taDrainage.setQrCode(String.valueOf(taMiniappQrcode.getData()));
147
+                iTaDrainageService.updateById(taDrainage);
148
+
149
+                //添加第三方appid和secretis
132
                 TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = new TaThirdPartyMiniappConfig();
150
                 TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = new TaThirdPartyMiniappConfig();
133
                 taThirdPartyMiniappConfig.setOrgId(getOrgId(request));
151
                 taThirdPartyMiniappConfig.setOrgId(getOrgId(request));
134
                 taThirdPartyMiniappConfig.setAppid(getUUIDS());
152
                 taThirdPartyMiniappConfig.setAppid(getUUIDS());

+ 2
- 1
src/main/java/com/huiju/estateagents/drainage/entity/TaDrainage.java View File

73
     private String middleImg ;
73
     private String middleImg ;
74
     /** 状态 */
74
     /** 状态 */
75
     private Integer status ;
75
     private Integer status ;
76
-
76
+    /** 二维码*/
77
+    private String qrCode;
77
     @TableField(exist = false)
78
     @TableField(exist = false)
78
     private String appid;
79
     private String appid;
79
     
80
     

+ 34
- 1
src/main/java/com/huiju/estateagents/entity/TaBuilding.java View File

52
     /**
52
     /**
53
      * 开盘时间
53
      * 开盘时间
54
      */
54
      */
55
-    private LocalDateTime openingDate;
55
+    private String openingDate;
56
 
56
 
57
     /**
57
     /**
58
      * 项目地址
58
      * 项目地址
198
      */
198
      */
199
     private Integer mapScope;
199
     private Integer mapScope;
200
 
200
 
201
+    /**
202
+     * 开发商
203
+     */
204
+    private String propertyDeveloper;
205
+
206
+    /**
207
+     * 楼栋总数
208
+     */
209
+    private Integer buildingNum;
210
+
211
+    /**
212
+     * 备案名
213
+     */
214
+    private String recordName;
215
+
201
     /**
216
     /**
202
      * 地图数据
217
      * 地图数据
203
      */
218
      */
275
      */
290
      */
276
     @TableField(exist = false)
291
     @TableField(exist = false)
277
     private List<TaBuildingImg> buildingListImg;
292
     private List<TaBuildingImg> buildingListImg;
293
+
294
+    /**
295
+     * 列表封面图
296
+     */
297
+    @TableField(exist = false)
298
+    private String listPoster;
299
+
300
+    /**
301
+     * 标签列表, 逗哈分隔
302
+     */
303
+    @TableField(exist = false)
304
+    private String tags;
305
+
306
+    /**
307
+     * 全景图
308
+     */
309
+    @TableField(exist = false)
310
+    private List<TaBuildingPanorama> panoramaList;
278
 }
311
 }

+ 79
- 0
src/main/java/com/huiju/estateagents/entity/TaBuildingPanorama.java View File

1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ *  
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2020-01-30
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaBuildingPanorama implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 全景图ID 全景图ID
29
+     */
30
+    @TableId(value = "panorama_id", type = IdType.AUTO)
31
+    private Integer panoramaId;
32
+
33
+    /**
34
+     * 公司id
35
+     */
36
+    private Integer orgId;
37
+
38
+    /**
39
+     * 楼盘id
40
+     */
41
+    private String buildingId;
42
+
43
+    /**
44
+     * 户型ID
45
+     */
46
+    private String apartmentId;
47
+
48
+    /**
49
+     * 全景图类型 全景图类型building指楼盘全景图,apartment指户型全景图
50
+     */
51
+    private String panoramaType;
52
+
53
+    /**
54
+     * 全景内容
55
+     */
56
+    private String content;
57
+
58
+    /**
59
+     * 全景封面
60
+     */
61
+    private String coverImg;
62
+
63
+    /**
64
+     * 全景图链接地址
65
+     */
66
+    private String panoramaLink;
67
+
68
+    /**
69
+     * 创建时间
70
+     */
71
+    private LocalDateTime createDate;
72
+
73
+    /**
74
+     * 状态
75
+     */
76
+    private Integer status;
77
+
78
+
79
+}

+ 49
- 0
src/main/java/com/huiju/estateagents/entity/TaChannelAppRelation.java View File

1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 渠道小程序关系表
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2020-01-04
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaChannelAppRelation implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 关系id
29
+     */
30
+    @TableId(value = "relation_id", type = IdType.AUTO)
31
+    private Integer relationId;
32
+
33
+    /**
34
+     * 渠道id
35
+     */
36
+    private Integer channelId;
37
+
38
+    /**
39
+     * 公司id
40
+     */
41
+    private Integer orgId;
42
+
43
+    /**
44
+     * 创建时间
45
+     */
46
+    private LocalDateTime createTime;
47
+
48
+
49
+}

+ 6
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java View File

287
      */
287
      */
288
     @TableField(exist = false)
288
     @TableField(exist = false)
289
     private String personFrom;
289
     private String personFrom;
290
+
291
+    /**
292
+     * 用户来源
293
+     */
294
+    @TableField(exist = false)
295
+    private String sceneAlias;
290
 }
296
 }

+ 93
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonFromRecord.java View File

1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+import java.io.Serializable;
11
+import java.time.LocalDateTime;
12
+
13
+/**
14
+ * <p>
15
+ * 新增用户来源表 
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2020-01-03
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+public class TaPersonFromRecord implements Serializable {
25
+
26
+    private static final long serialVersionUID = 1L;
27
+
28
+    /**
29
+     * 新增用户来源id
30
+     */
31
+    @TableId(value = "from_record_id", type = IdType.AUTO)
32
+    private Integer fromRecordId;
33
+
34
+    /**
35
+     * 微信来源字典id
36
+     */
37
+    private String sceneId;
38
+
39
+    /**
40
+     * 新增用户id
41
+     */
42
+    private String personId;
43
+
44
+    /**
45
+     * 是否第一次
46
+     */
47
+    private Boolean isFirstTime;
48
+
49
+    /**
50
+     * 类型ID值
51
+     */
52
+    private String targetId;
53
+
54
+    /**
55
+     * 分享人Id
56
+     */
57
+    private String sharePersonId;
58
+
59
+    /**
60
+     * 创建时间
61
+     */
62
+    private LocalDateTime createDate;
63
+
64
+    /**
65
+     * 公司id
66
+     */
67
+    private Integer orgId;
68
+
69
+    /**
70
+     * 楼盘id
71
+     */
72
+    private String buildingId;
73
+
74
+    /**
75
+     * 事件
76
+     */
77
+    private String event;
78
+
79
+    /**
80
+     * 事件类型
81
+     */
82
+    private String eventType;
83
+
84
+    /**
85
+     * 行为
86
+     */
87
+    private String activity;
88
+
89
+    /**
90
+     * 微信来源类型
91
+     */
92
+    private String sceneType;
93
+}

+ 8
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonVisitRecord.java View File

81
      */
81
      */
82
     private String consultantId;
82
     private String consultantId;
83
 
83
 
84
+    /**
85
+     * 场景值id
86
+     */
87
+    @TableField(exist = false)
88
+    private String sceneId;
89
+
84
     /**
90
     /**
85
      * 分享者personid
91
      * 分享者personid
86
      */
92
      */
94
 
100
 
95
     private String targetId;
101
     private String targetId;
96
 
102
 
103
+    private String targetType ;
104
+
97
     /**
105
     /**
98
      * 用户名称
106
      * 用户名称
99
      */
107
      */

+ 5
- 5
src/main/java/com/huiju/estateagents/entity/TaShareRecord.java View File

93
 
93
 
94
     @TableField(exist = false)
94
     @TableField(exist = false)
95
     private String activityName;
95
     private String activityName;
96
-    
96
+
97
     @TableField(exist = false)
97
     @TableField(exist = false)
98
     private String mainImg;
98
     private String mainImg;
99
-    
99
+
100
     @TableField(exist = false)
100
     @TableField(exist = false)
101
     private Integer activityStatus;
101
     private Integer activityStatus;
102
-    
102
+
103
     @TableField(exist = false)
103
     @TableField(exist = false)
104
     private LocalDateTime endDate;
104
     private LocalDateTime endDate;
105
-    
105
+
106
     @TableField(exist = false)
106
     @TableField(exist = false)
107
     private Integer id;
107
     private Integer id;
108
-    
108
+
109
     /**
109
     /**
110
      * 是否发起者
110
      * 是否发起者
111
      */
111
      */

+ 4
- 0
src/main/java/com/huiju/estateagents/entity/TdBizEvent.java View File

55
      */
55
      */
56
     private LocalDateTime createDate;
56
     private LocalDateTime createDate;
57
 
57
 
58
+    /**
59
+     * 分数
60
+     */
61
+    private Integer points;
58
     /**
62
     /**
59
      * 意向值
63
      * 意向值
60
      */
64
      */

+ 62
- 0
src/main/java/com/huiju/estateagents/entity/TdWxDict.java View File

1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.util.List;
13
+
14
+/**
15
+ * <p>
16
+ * 微信字典表 
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2020-01-06
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+public class TdWxDict implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    /**
30
+     * 场景值id
31
+     */
32
+    @TableId(value = "scene_id", type = IdType.AUTO)
33
+    private String sceneId;
34
+
35
+    /**
36
+     * 场景名称
37
+     */
38
+    private String sceneName;
39
+
40
+    /**
41
+     * 场景类型
42
+     */
43
+    private String sceneType;
44
+
45
+    /**
46
+     * 场景类型别名
47
+     */
48
+    private String sceneAlias;
49
+
50
+
51
+    /**
52
+     * 来源人数合集
53
+     */
54
+    @TableField(exist = false)
55
+    private Integer fromData;
56
+
57
+    /**
58
+     * 注册人数合集
59
+     */
60
+    @TableField(exist = false)
61
+    private Integer registerSum;
62
+}

+ 2
- 2
src/main/java/com/huiju/estateagents/excel/TaActivityDynamicEnlistExport.java View File

41
      * 推广人
41
      * 推广人
42
      */
42
      */
43
     @ColumnWidth(15)
43
     @ColumnWidth(15)
44
-    @ExcelProperty(value = "推广人", index = 4)
44
+    @ExcelProperty(value = "引流人", index = 4)
45
     private String sharePersonName;
45
     private String sharePersonName;
46
 
46
 
47
-    /**
47
+    /*
48
      * 公司
48
      * 公司
49
      */
49
      */
50
     @ColumnWidth(15)
50
     @ColumnWidth(15)

+ 5
- 2
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java View File

52
             "/wx/chat", // 聊天暂时不鉴权
52
             "/wx/chat", // 聊天暂时不鉴权
53
             "/api/wx/",
53
             "/api/wx/",
54
             "/api/wx/tdCity",
54
             "/api/wx/tdCity",
55
+            "/api/wx/preload",
55
             "/api/admin/signin",
56
             "/api/admin/signin",
56
             "/api/taCheckin/activity",
57
             "/api/taCheckin/activity",
57
             "/api/wx/qrcode/scene",
58
             "/api/wx/qrcode/scene",
58
 		    "/api/center/signin",
59
 		    "/api/center/signin",
60
+            "/api/channel/signin",
59
 		    "/api/admin/taUser/signin",
61
 		    "/api/admin/taUser/signin",
60
             "/swagger-resources/configuration/ui",
62
             "/swagger-resources/configuration/ui",
61
             "/swagger-resources",
63
             "/swagger-resources",
66
             "/webjars/springfox-swagger-ui",
68
             "/webjars/springfox-swagger-ui",
67
             "/webjars/springfox-swagger-ui/css/typography.css",
69
             "/webjars/springfox-swagger-ui/css/typography.css",
68
             "/clean/menurole",
70
             "/clean/menurole",
69
-            "/clean/buttonrole"
71
+            "/clean/buttonrole",
72
+            "/api/admin/taPersonFromRecord"
70
     };
73
     };
71
 
74
 
72
     /*
75
     /*
142
             // 只尝试去解析
145
             // 只尝试去解析
143
             Jwts.parser().setSigningKey(JWTUtils.key).parseClaimsJws(jwtAuths[1]);
146
             Jwts.parser().setSigningKey(JWTUtils.key).parseClaimsJws(jwtAuths[1]);
144
         } catch (ExpiredJwtException e) {
147
         } catch (ExpiredJwtException e) {
145
-            ResponseBean resp = ResponseBean.error("权限验证非法, Token 已过期", ResponseBean.ERROR_AUTH_EXPIRED);
148
+            ResponseBean resp = ResponseBean.error("权限验证非法, 身份信息已过期", ResponseBean.ERROR_AUTH_EXPIRED);
146
             response.addHeader("Content-type", "application/json");
149
             response.addHeader("Content-type", "application/json");
147
             response.getOutputStream().write(JSONObject.toJSONBytes(resp));
150
             response.getOutputStream().write(JSONObject.toJSONBytes(resp));
148
             return false;
151
             return false;

+ 24
- 10
src/main/java/com/huiju/estateagents/job/CustomerStatisticTimeJob.java View File

1
 package com.huiju.estateagents.job;
1
 package com.huiju.estateagents.job;
2
 
2
 
3
 import com.huiju.estateagents.base.BaseController;
3
 import com.huiju.estateagents.base.BaseController;
4
+import com.huiju.estateagents.service.ITaPersonFromRecordService;
4
 import com.huiju.estateagents.statistic.service.ITsCustomerGenderStatisticService;
5
 import com.huiju.estateagents.statistic.service.ITsCustomerGenderStatisticService;
5
 import com.huiju.estateagents.statistic.service.ITsCustomerStatisticDailyService;
6
 import com.huiju.estateagents.statistic.service.ITsCustomerStatisticDailyService;
6
 import com.huiju.estateagents.statistic.service.ITsCustomerStatisticMonthlyService;
7
 import com.huiju.estateagents.statistic.service.ITsCustomerStatisticMonthlyService;
8
+import com.huiju.estateagents.statistic.service.ITsUserBehaviorStatisticService;
7
 import org.slf4j.Logger;
9
 import org.slf4j.Logger;
8
 import org.slf4j.LoggerFactory;
10
 import org.slf4j.LoggerFactory;
9
 import org.springframework.beans.factory.annotation.Autowired;
11
 import org.springframework.beans.factory.annotation.Autowired;
36
     @Autowired
38
     @Autowired
37
     private ITsCustomerStatisticMonthlyService customerStatisticMonthlyService;
39
     private ITsCustomerStatisticMonthlyService customerStatisticMonthlyService;
38
 
40
 
41
+    @Autowired
42
+    public ITaPersonFromRecordService iTaPersonFromRecordService;
43
+
44
+    @Autowired
45
+    private ITsUserBehaviorStatisticService iTsUserBehaviorStatisticService;
46
+
39
     /**
47
     /**
40
      *
48
      *
41
      * 盘客工具数据统计
49
      * 盘客工具数据统计
43
      * 开启定时任务,每天23:50执行
51
      * 开启定时任务,每天23:50执行
44
      */
52
      */
45
     @Scheduled(cron = "59 50 23 * * ?")
53
     @Scheduled(cron = "59 50 23 * * ?")
46
-    //@Scheduled(cron = "* 0/5 * * * ?")
54
+//    @Scheduled(cron = "* 0/1 * * * ?")
47
     private void configureTasks() {
55
     private void configureTasks() {
48
         LocalDateTime nowDate = LocalDateTime.now();
56
         LocalDateTime nowDate = LocalDateTime.now();
49
-    
57
+
50
         //每天的新增客户统计并入表
58
         //每天的新增客户统计并入表
51
         customerStatisticDailyService.newCustomerStatisticDaily(nowDate);
59
         customerStatisticDailyService.newCustomerStatisticDaily(nowDate);
52
-        
60
+
53
         //每天的跟进客户统计并入表
61
         //每天的跟进客户统计并入表
54
         customerStatisticDailyService.followUpStatisticDaily(nowDate);
62
         customerStatisticDailyService.followUpStatisticDaily(nowDate);
55
-        
63
+
56
         //每天的到访客户统计并入表
64
         //每天的到访客户统计并入表
57
         customerStatisticDailyService.visiteStatisticDaily(nowDate);
65
         customerStatisticDailyService.visiteStatisticDaily(nowDate);
58
-    
66
+
59
         //每天的新增客户性别统计并入表
67
         //每天的新增客户性别统计并入表
60
         taCustomerGenderStatisticService.newCustomerSexStatisticDaily(nowDate);
68
         taCustomerGenderStatisticService.newCustomerSexStatisticDaily(nowDate);
61
-    
69
+
62
         //每天的跟进客户性别统计并入表
70
         //每天的跟进客户性别统计并入表
63
         taCustomerGenderStatisticService.followUpSexStatisticDaily(nowDate);
71
         taCustomerGenderStatisticService.followUpSexStatisticDaily(nowDate);
64
-    
72
+
65
         //每天的到访客户性别统计并入表
73
         //每天的到访客户性别统计并入表
66
         taCustomerGenderStatisticService.visiteSexStatisticDaily(nowDate);
74
         taCustomerGenderStatisticService.visiteSexStatisticDaily(nowDate);
67
-    
75
+
68
         //每月的新增客户统计并入表,但是每天都更新
76
         //每月的新增客户统计并入表,但是每天都更新
69
         customerStatisticMonthlyService.newCustomerStatisticMonthly(nowDate);
77
         customerStatisticMonthlyService.newCustomerStatisticMonthly(nowDate);
70
-    
78
+
71
         //每月的跟进客户统计并入表,但是每天都更新
79
         //每月的跟进客户统计并入表,但是每天都更新
72
         customerStatisticMonthlyService.followUpStatisticMonthly(nowDate);
80
         customerStatisticMonthlyService.followUpStatisticMonthly(nowDate);
73
-    
81
+
74
         //每月的到访客户统计并入表,但是每天都更新
82
         //每月的到访客户统计并入表,但是每天都更新
75
         customerStatisticMonthlyService.visiteStatisticMonthly(nowDate);
83
         customerStatisticMonthlyService.visiteStatisticMonthly(nowDate);
84
+
85
+        //统计新增来源用户
86
+        iTaPersonFromRecordService.personFromStatistic();
87
+
88
+        //统计用户行为数据
89
+        iTsUserBehaviorStatisticService.userBehaviorStatustic();
76
     }
90
     }
77
 
91
 
78
 }
92
 }

+ 0
- 2
src/main/java/com/huiju/estateagents/job/JudglActivityTimeJob.java View File

1
 package com.huiju.estateagents.job;
1
 package com.huiju.estateagents.job;
2
 
2
 
3
 import com.huiju.estateagents.base.BaseController;
3
 import com.huiju.estateagents.base.BaseController;
4
-import com.huiju.estateagents.center.sysUser.controller.SysUserController;
5
 import com.huiju.estateagents.common.DateUtils;
4
 import com.huiju.estateagents.common.DateUtils;
6
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
5
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
7
 import com.huiju.estateagents.service.*;
6
 import com.huiju.estateagents.service.*;
89
 
88
 
90
         //更新H5活动状态为已结束
89
         //更新H5活动状态为已结束
91
         iTaDrainageService.updateDrainageToEnd();
90
         iTaDrainageService.updateDrainageToEnd();
92
-
93
     }
91
     }
94
 
92
 
95
 }
93
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingMapper.java View File

91
      * @return
91
      * @return
92
      */
92
      */
93
     int countNumByHeavy(@Param("heavy") Integer heavy, @Param("dynamicId") String dynamicId);
93
     int countNumByHeavy(@Param("heavy") Integer heavy, @Param("dynamicId") String dynamicId);
94
+
95
+    List<TaBuilding> selectMainBuildings(@Param("cityId") String cityId, @Param("orgId") Integer orgId);
94
 }
96
 }

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingPanoramaMapper.java View File

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

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaChannelAppRelationMapper.java View File

1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TaChannelAppRelation;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 渠道小程序关系表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2020-01-04
14
+ */
15
+@Mapper
16
+public interface TaChannelAppRelationMapper extends BaseMapper<TaChannelAppRelation> {
17
+
18
+}

+ 22
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonFromRecordMapper.java View File

1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TaPersonFromRecord;
5
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
6
+import org.apache.ibatis.annotations.Mapper;
7
+
8
+import java.util.List;
9
+
10
+/**
11
+ * <p>
12
+ * 新增用户来源表  Mapper 接口
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2020-01-03
17
+ */
18
+@Mapper
19
+public interface TaPersonFromRecordMapper extends BaseMapper<TaPersonFromRecord> {
20
+
21
+    List<TsPersonFromStatistic> getNowDataList();
22
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java View File

67
     @Select("select count(1) from ta_person where org_id = #{org} AND person_type IN ('customer','drift','estate agent') and phone is not null")
67
     @Select("select count(1) from ta_person where org_id = #{org} AND person_type IN ('customer','drift','estate agent') and phone is not null")
68
     Integer selectRegisteredCount(@Param("org") Integer orgId);
68
     Integer selectRegisteredCount(@Param("org") Integer orgId);
69
 
69
 
70
+    /**
71
+     * 渠道代理后台总用户数
72
+     * @return
73
+     */
74
+    @ResultType(Integer.class)
75
+    @Select("select count(1) from ta_person where org_id = #{org}")
76
+    Integer selectChannelUserCount(@Param("org") String orgId);
77
+
78
+    /**
79
+     * 渠道代理后台总注册数
80
+     * @return
81
+     */
82
+    @ResultType(Integer.class)
83
+    @Select("select count(1) from ta_person where org_id = #{org} and phone is not null")
84
+    Integer selectChannelRegisteredCount(@Param("org") String orgId);
85
+
70
     /**
86
     /**
71
      * 根据时间段查询
87
      * 根据时间段查询
72
      * @param personType
88
      * @param personType
203
      * @return
219
      * @return
204
      */
220
      */
205
     Integer judgeBindStatusByCondition(@Param("userId") Integer userId, @Param("orgId") Integer orgId, @Param("phone") String phone);
221
     Integer judgeBindStatusByCondition(@Param("userId") Integer userId, @Param("orgId") Integer orgId, @Param("phone") String phone);
222
+
223
+    IPage<TaPerson> selectDriftCustomerPageList(IPage<TaPerson> page,@Param("buildingId") String buildingId,@Param("orgId") Integer orgId,@Param("personEstateDrift") String personEstateDrift,@Param("sceneType") String sceneType);
224
+
225
+    int selectFromNum(@Param("orgId") Integer orgId,@Param("personType") String personType);
206
 }
226
 }

+ 7
- 4
src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java View File

4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.baomidou.mybatisplus.core.metadata.IPage;
6
 import com.huiju.estateagents.entity.TaConsultantInfo;
6
 import com.huiju.estateagents.entity.TaConsultantInfo;
7
-import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaPersonBuilding;
7
 import com.huiju.estateagents.entity.TaPersonBuilding;
9
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
8
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
10
 import org.apache.ibatis.annotations.Mapper;
9
 import org.apache.ibatis.annotations.Mapper;
27
 @Mapper
26
 @Mapper
28
 public interface TaPersonVisitRecordMapper extends BaseMapper<TaPersonVisitRecord> {
27
 public interface TaPersonVisitRecordMapper extends BaseMapper<TaPersonVisitRecord> {
29
 
28
 
30
-    IPage<TaPersonVisitRecord> visitRecordByPersonId(IPage<TaPersonVisitRecord> page,@Param("personId") String personId);
29
+    IPage<TaPersonVisitRecord> visitRecordByPersonId(IPage<TaPersonVisitRecord> page,@Param("personId") String personId,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList,@Param("buildingId") String buildingId);
31
 
30
 
32
     Integer getDurationByPersonId(@Param("personId") String personId);
31
     Integer getDurationByPersonId(@Param("personId") String personId);
33
 
32
 
80
 
79
 
81
     IPage<TaPersonVisitRecord> getWxVisitRecordActivityList(IPage<TaPersonVisitRecord> pg, @Param("userId") Integer userId,@Param("personId") String personId,@Param("orgId") Integer orgId,@Param("eventType") String eventType);
80
     IPage<TaPersonVisitRecord> getWxVisitRecordActivityList(IPage<TaPersonVisitRecord> pg, @Param("userId") Integer userId,@Param("personId") String personId,@Param("orgId") Integer orgId,@Param("eventType") String eventType);
82
 
81
 
83
-    IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, @Param("userId") Integer userId, @Param("orgId") Integer orgId);
82
+    IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, @Param("personId") String personId);
84
 
83
 
85
-    Integer countShareNumByEventType(@Param("targetId") String targetId, @Param("orgId")Integer orgId, @Param("userId")Integer userId, @Param("eventType")String eventType);
84
+    Integer countShareNumByEventType(@Param("orgId")Integer orgId, @Param("targetId") String targetId, @Param("userId")Integer userId, @Param("personId")String personId, @Param("eventType")String eventType);
85
+
86
+    List<TaPersonVisitRecord> selectData();
87
+
88
+    List<TaPersonVisitRecord> selectTapersonFromShare();
86
 }
89
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java View File

33
 
33
 
34
     TaRecommendCustomer getCustomerById(@Param("customerId")String customerId);
34
     TaRecommendCustomer getCustomerById(@Param("customerId")String customerId);
35
 
35
 
36
-    IPage<TaRecommendCustomer> getCustomerList(IPage<TaRecommendCustomer> page,@Param("building") String building, @Param("name") String name, @Param("tel") String tel, @Param("consultName") String consultName, @Param("consultTel") String consultTel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId,@Param("status")Integer status, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
36
+    IPage<TaRecommendCustomer> getCustomerList(IPage<TaRecommendCustomer> page,@Param("building") String building, @Param("name") String name, @Param("tel") String tel, @Param("consultName") String consultName, @Param("consultTel") String consultTel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId,@Param("status")Integer status, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList,@Param("sceneType") String sceneType);
37
     IPage<TaRecommendCustomer> getRecCustomerList(IPage<TaRecommendCustomer> page,@Param("building") String building, @Param("name") String name, @Param("tel") String tel, @Param("consultName") String consultName, @Param("consultTel") String consultTel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
37
     IPage<TaRecommendCustomer> getRecCustomerList(IPage<TaRecommendCustomer> page,@Param("building") String building, @Param("name") String name, @Param("tel") String tel, @Param("consultName") String consultName, @Param("consultTel") String consultTel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
38
     IPage<TaRecommendCustomer> getRepCustomerList(IPage<TaRecommendCustomer> page,@Param("building") String building, @Param("name") String name, @Param("tel") String tel, @Param("consultName") String consultName, @Param("consultTel") String consultTel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
38
     IPage<TaRecommendCustomer> getRepCustomerList(IPage<TaRecommendCustomer> page,@Param("building") String building, @Param("name") String name, @Param("tel") String tel, @Param("consultName") String consultName, @Param("consultTel") String consultTel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
39
     IPage<TaPerson> getIndependentAgents(IPage<TaPerson>page, @Param("name") String name, @Param("tel") String tel, @Param("orgId") Integer orgId);
39
     IPage<TaPerson> getIndependentAgents(IPage<TaPerson>page, @Param("name") String name, @Param("tel") String tel, @Param("orgId") Integer orgId);
48
      * @param sex
48
      * @param sex
49
      * @return
49
      * @return
50
      */
50
      */
51
-    IPage<TaPerson> getPublicCustomerList(IPage<TaPerson> page, @Param("name") String name, @Param("tel") String tel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId,@Param("consultTel")String consultTel);
51
+    IPage<TaPerson> getPublicCustomerList(IPage<TaPerson> page, @Param("name") String name, @Param("tel") String tel,@Param("entryType") String entryType,@Param("verifyStatus") String verifyStatus,@Param("sex") Integer sex, @Param("orgId") Integer orgId,@Param("consultTel")String consultTel,@Param("sceneType") String sceneType);
52
 
52
 
53
     /**
53
     /**
54
      * 导出数据 获取推荐用户数据
54
      * 导出数据 获取推荐用户数据

+ 2
- 0
src/main/java/com/huiju/estateagents/mapper/TdCityMapper.java View File

26
      * @return
26
      * @return
27
      */
27
      */
28
     List<TdCity> selectWxCity(@Param("orgId") Integer orgId);
28
     List<TdCity> selectWxCity(@Param("orgId") Integer orgId);
29
+
30
+    TdCity getOrgDefaultCity(@Param("orgId") Integer orgId);
29
 }
31
 }

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TdWxDictMapper.java View File

1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TdWxDict;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 微信字典表  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2020-01-06
14
+ */
15
+@Mapper
16
+public interface TdWxDictMapper extends BaseMapper<TdWxDict> {
17
+
18
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/service/IStatisticalService.java View File

106
      * @return
106
      * @return
107
      */
107
      */
108
     ResponseBean selectIntentionUser(Integer pageNum, Integer pageSize, Integer orgId, String buildingId);
108
     ResponseBean selectIntentionUser(Integer pageNum, Integer pageSize, Integer orgId, String buildingId);
109
+
110
+    /**
111
+     * 用户来源数据 首页
112
+     * @param orgId
113
+     * @param startDate
114
+     * @param endDate
115
+     * @return
116
+     */
117
+    ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate);
118
+
119
+    /**
120
+     * 用户来源数据统计折线图
121
+     * @param orgId
122
+     * @param startDate
123
+     * @param endDate
124
+     * @return
125
+     */
126
+    ResponseBean selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate);
109
 }
127
 }

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingPanoramaService.java View File

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

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITaBuildingService.java View File

133
      * 微信小程序 楼盘列表
133
      * 微信小程序 楼盘列表
134
      * @return
134
      * @return
135
      */
135
      */
136
-    ResponseBean getWxMainBuildingList();
136
+    ResponseBean getWxMainBuildingList(String cityId, Integer orgId);
137
 
137
 
138
     ResponseBean getWxBuildingById(String buildingId);
138
     ResponseBean getWxBuildingById(String buildingId);
139
 
139
 

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaChannelAppRelationService.java View File

1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.TaChannelAppRelation;
5
+
6
+/**
7
+ * <p>
8
+ * 渠道小程序关系表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2020-01-04
13
+ */
14
+public interface ITaChannelAppRelationService extends IService<TaChannelAppRelation> {
15
+
16
+}

+ 3
- 1
src/main/java/com/huiju/estateagents/service/ITaMiniappService.java View File

13
  */
13
  */
14
 public interface ITaMiniappService extends IService<TaMiniapp> {
14
 public interface ITaMiniappService extends IService<TaMiniapp> {
15
 
15
 
16
-    TaMiniapp saveInfoWithTpls(TaMiniapp taMiniapp) throws Exception;
16
+    TaMiniapp saveInfoWithTpls(TaMiniapp taMiniapp, Integer channelId) throws Exception;
17
+
18
+    TaMiniapp getInfoWithTpls(String appid);
17
 }
19
 }

+ 23
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonFromRecordService.java View File

1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.TaPersonFromRecord;
5
+import com.huiju.estateagents.entity.TaPersonVisitRecord;
6
+
7
+/**
8
+ * <p>
9
+ * 新增用户来源表  服务类
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2020-01-03
14
+ */
15
+public interface ITaPersonFromRecordService extends IService<TaPersonFromRecord> {
16
+
17
+    void addNewPersonRecordRecord(TaPersonVisitRecord taPersonVisitRecord);
18
+
19
+    /**
20
+     * 定时任务批量保存数据
21
+     */
22
+    void personFromStatistic();
23
+}

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITaPersonService.java View File

57
 
57
 
58
     List<TaPerson> getPersonsByOpenId(String openid);
58
     List<TaPerson> getPersonsByOpenId(String openid);
59
 
59
 
60
-    IPage<TaPerson> getDriftCustomerList (int pageNumber, int pageSize,String building, Integer orgId);
60
+    IPage<TaPerson> getDriftCustomerList (int pageNumber, int pageSize,String building, Integer orgId, String sceneType);
61
 
61
 
62
     String getPersonIdByCustomerId(String customerId);
62
     String getPersonIdByCustomerId(String customerId);
63
 
63
 

+ 2
- 2
src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java View File

60
 
60
 
61
 	IPage<TaPersonVisitRecord> getDrainageVisitRecord(IPage<TaPersonVisitRecord> pg, Integer orgId, String activityName, String eventType, String shareName, String shareTel, String buildingId, String personType, List<TaPersonBuilding> taPersonBuildingList);
61
 	IPage<TaPersonVisitRecord> getDrainageVisitRecord(IPage<TaPersonVisitRecord> pg, Integer orgId, String activityName, String eventType, String shareName, String shareTel, String buildingId, String personType, List<TaPersonBuilding> taPersonBuildingList);
62
 
62
 
63
-	IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, Integer userId, Integer orgId);
63
+	IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, String personId);
64
 
64
 
65
-	Integer countShareNumByEventType(String targetId, Integer orgId, Integer userId, String eventType);
65
+	Integer countShareNumByEventType(Integer orgId, String targetId, Integer userId, String personId, String eventType);
66
 }
66
 }

+ 7
- 4
src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java View File

2
 
2
 
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.center.taUser.entity.TaUser;
5
 import com.huiju.estateagents.entity.TaPerson;
6
 import com.huiju.estateagents.entity.TaPerson;
6
 import com.huiju.estateagents.entity.TaPersonBuilding;
7
 import com.huiju.estateagents.entity.TaPersonBuilding;
7
 import com.huiju.estateagents.entity.TaRecommendCustomer;
8
 import com.huiju.estateagents.entity.TaRecommendCustomer;
9
 import com.huiju.estateagents.excel.AgentsRecommendCustomer;
10
 import com.huiju.estateagents.excel.AgentsRecommendCustomer;
10
 import com.huiju.estateagents.excel.ExcelRecommendCustomer;
11
 import com.huiju.estateagents.excel.ExcelRecommendCustomer;
11
 import com.huiju.estateagents.excel.ReporRecommendCustomer;
12
 import com.huiju.estateagents.excel.ReporRecommendCustomer;
13
+import io.swagger.models.auth.In;
12
 
14
 
13
-import java.time.LocalDateTime;
14
 import java.util.List;
15
 import java.util.List;
15
 
16
 
16
 /**
17
 /**
35
 
36
 
36
     IPage<TaRecommendCustomer> getUnSignedCustomerList(int pageNumber, int pageSize, String building,String personId);
37
     IPage<TaRecommendCustomer> getUnSignedCustomerList(int pageNumber, int pageSize, String building,String personId);
37
 
38
 
38
-    IPage getCustomerList(Integer status,int pageNumber, int pageSize, String building,String name,String tel,String consultName,String consultTel,String entryType,String verifyStatus,Integer sex, String customerType, Integer orgId,List<TaPersonBuilding> taPersonBuildingList);
39
+    IPage getCustomerList(Integer status,int pageNumber, int pageSize, String building,String name,String tel,String consultName,String consultTel,String entryType,String verifyStatus,Integer sex, String customerType, Integer orgId,List<TaPersonBuilding> taPersonBuildingList,String sceneType);
39
 
40
 
40
     IPage<TaRecommendCustomer> getRecCustomerList(int pageNumber, int pageSize, String building,String name,String tel,String consultName,String consultTel,String entryType,String verifyStatus,Integer sex, Integer orgId,List<TaPersonBuilding> taPersonBuildingList);
41
     IPage<TaRecommendCustomer> getRecCustomerList(int pageNumber, int pageSize, String building,String name,String tel,String consultName,String consultTel,String entryType,String verifyStatus,Integer sex, Integer orgId,List<TaPersonBuilding> taPersonBuildingList);
41
 
42
 
44
     IPage<TaPerson> getIndependentAgents(int pageNumber, int pageSize,String name,String tel, Integer orgId);
45
     IPage<TaPerson> getIndependentAgents(int pageNumber, int pageSize,String name,String tel, Integer orgId);
45
 
46
 
46
 
47
 
47
-    TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList);
48
+    TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId);
48
 
49
 
49
-    TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList);
50
+    TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId);
50
 
51
 
51
     TaRecommendCustomer getCustomerById(String customerId);
52
     TaRecommendCustomer getCustomerById(String customerId);
52
 
53
 
54
 
55
 
55
     TaRecommendCustomer newByPerson(TaPerson person);
56
     TaRecommendCustomer newByPerson(TaPerson person);
56
 
57
 
58
+    ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId);
59
+
57
     /**
60
     /**
58
      * 导出数据(推荐客户)
61
      * 导出数据(推荐客户)
59
      * @param orgId
62
      * @param orgId

+ 11
- 0
src/main/java/com/huiju/estateagents/service/ITaSharePersonFromService.java View File

1
 package com.huiju.estateagents.service;
1
 package com.huiju.estateagents.service;
2
 
2
 
3
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.entity.TaSharePersonFrom;
5
 import com.huiju.estateagents.entity.TaSharePersonFrom;
5
 
6
 
6
 /**
7
 /**
13
  */
14
  */
14
 public interface ITaSharePersonFromService extends IService<TaSharePersonFrom> {
15
 public interface ITaSharePersonFromService extends IService<TaSharePersonFrom> {
15
 
16
 
17
+    /**
18
+     * 添加客户分享记录
19
+     * @param personId
20
+     * @param orgId
21
+     * @param from
22
+     * @param recommender
23
+     * @param targetId
24
+     * @return
25
+     */
26
+    TaSharePersonFrom addSharePersonRecord(String personId, Integer orgId, String from, String recommender, String targetId);
16
 }
27
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/service/ITdCityService.java View File

18
     List<TdCity> selectCity(String leveltype,String status);
18
     List<TdCity> selectCity(String leveltype,String status);
19
 
19
 
20
     // 微信端城市
20
     // 微信端城市
21
-    List<TdCity> selectWxCity(String leveltype,Integer orgId);
21
+    List<TdCity> selectWxCity(String leveltype, Integer orgId);
22
 	
22
 	
23
 	/**
23
 	/**
24
 	 * 根据经纬度获取城市详情信息
24
 	 * 根据经纬度获取城市详情信息
25
 	 * @param location
25
 	 * @param location
26
 	 * @return
26
 	 * @return
27
 	 */
27
 	 */
28
-	TdCity getLocationCity(String location);
28
+	TdCity getLocationCity(String location, Integer orgId);
29
 }
29
 }

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITdWxDictService.java View File

1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.TdWxDict;
5
+
6
+/**
7
+ * <p>
8
+ * 微信字典表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2020-01-06
13
+ */
14
+public interface ITdWxDictService extends IService<TdWxDict> {
15
+
16
+}

+ 1
- 1
src/main/java/com/huiju/estateagents/service/impl/ExtendContentServiceImpl.java View File

76
         // 开屏
76
         // 开屏
77
         QueryWrapper<ExtendContent> extendContentQuery= new QueryWrapper<>();
77
         QueryWrapper<ExtendContent> extendContentQuery= new QueryWrapper<>();
78
         // banner 或 screen(首屏广告) ,这里是 screen
78
         // banner 或 screen(首屏广告) ,这里是 screen
79
-        extendContentQuery.eq("show_type",showType);
79
+        extendContentQuery.eq(StringUtils.isNotBlank(showType), "show_type",showType);
80
         extendContentQuery.eq(StringUtils.isNotBlank(showPosition), "show_position",showPosition);
80
         extendContentQuery.eq(StringUtils.isNotBlank(showPosition), "show_position",showPosition);
81
         extendContentQuery.eq(StringUtils.isNotBlank(targetId), "target_id",targetId);
81
         extendContentQuery.eq(StringUtils.isNotBlank(targetId), "target_id",targetId);
82
         extendContentQuery.eq(StringUtils.isNotBlank(contentId), "content_id",contentId);
82
         extendContentQuery.eq(StringUtils.isNotBlank(contentId), "content_id",contentId);

+ 104
- 6
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java View File

1
 package com.huiju.estateagents.service.impl;
1
 package com.huiju.estateagents.service.impl;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.common.CommConstant;
7
 import com.huiju.estateagents.common.CommConstant;
7
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
8
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
9
+import com.huiju.estateagents.entity.TdWxDict;
8
 import com.huiju.estateagents.exception.EstaException;
10
 import com.huiju.estateagents.exception.EstaException;
9
 import com.huiju.estateagents.mapper.*;
11
 import com.huiju.estateagents.mapper.*;
10
 import com.huiju.estateagents.po.PersonPO;
12
 import com.huiju.estateagents.po.PersonPO;
11
 import com.huiju.estateagents.service.IStatisticalService;
13
 import com.huiju.estateagents.service.IStatisticalService;
14
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
15
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
12
 import lombok.extern.slf4j.Slf4j;
16
 import lombok.extern.slf4j.Slf4j;
13
 import org.springframework.beans.factory.annotation.Autowired;
17
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.stereotype.Service;
18
 import org.springframework.stereotype.Service;
15
 
19
 
16
 import java.time.LocalDate;
20
 import java.time.LocalDate;
21
+import java.time.LocalDateTime;
22
+import java.time.format.DateTimeFormatter;
23
+import java.time.temporal.ChronoUnit;
17
 import java.util.*;
24
 import java.util.*;
25
+import java.util.stream.Collectors;
26
+import java.util.stream.Stream;
18
 
27
 
19
 /**
28
 /**
20
  * 数据统计
29
  * 数据统计
42
     @Autowired
51
     @Autowired
43
     private TaPersonIntentionRecordMapper taPersonIntentionRecordMapper;
52
     private TaPersonIntentionRecordMapper taPersonIntentionRecordMapper;
44
 
53
 
54
+    @Autowired
55
+    private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
56
+
57
+    @Autowired
58
+    private TdWxDictMapper tdWxDictMapper;
59
+
45
 
60
 
46
     @Override
61
     @Override
47
     public ResponseBean indexStatistical(Integer orgId) {
62
     public ResponseBean indexStatistical(Integer orgId) {
198
     public ResponseBean selectUserResource(Integer orgId, LocalDate startDate, LocalDate endDate) {
213
     public ResponseBean selectUserResource(Integer orgId, LocalDate startDate, LocalDate endDate) {
199
         ResponseBean responseBean = new ResponseBean();
214
         ResponseBean responseBean = new ResponseBean();
200
         // 用户来源 柱状
215
         // 用户来源 柱状
201
-        List<Map<String, Object>> mapList = taPersonMapper.selectUserSourceColumnar(orgId, CommConstant.PERSON_REALTY_CONSULTANT, startDate, endDate);
216
+//        List<Map<String, Object>> mapList = taPersonMapper.selectUserSourceColumnar(orgId, CommConstant.PERSON_REALTY_CONSULTANT, startDate, endDate);
202
 
217
 
203
         // 用户来源饼状
218
         // 用户来源饼状
204
-        // 来源置业顾问, 来源全民经纪人,自由进入
205
-        Integer person_realty_consultant = taPersonMapper.selectUserSourcePie(orgId, CommConstant.PERSON_REALTY_CONSULTANT, CommConstant.PERSON_REALTY_CONSULTANT);
206
-        Integer person_estate_agent = taPersonMapper.selectUserSourcePie(orgId, CommConstant.PERSON_ESTATE_AGENT, CommConstant.PERSON_REALTY_CONSULTANT);
207
-        Integer person_null = taPersonMapper.selectUserSourcePie(orgId, null, CommConstant.PERSON_REALTY_CONSULTANT);
219
+        // 来源置业顾问, 来源客户,其他
220
+        Integer total = taPersonMapper.selectFromNum(orgId, null) ;
221
+        Integer person_realty_consultant = taPersonMapper.selectFromNum(orgId, CommConstant.PERSON_REALTY_CONSULTANT);
222
+        Integer person_estate_agent = taPersonMapper.selectFromNum(orgId, CommConstant.PERSON_ESTATE_CUSTOMER);
223
+        Integer person_null = total - person_realty_consultant - person_estate_agent;
208
         Map<String, Object> map = new HashMap<>();
224
         Map<String, Object> map = new HashMap<>();
209
         map.put("person_realty_consultant", person_realty_consultant);
225
         map.put("person_realty_consultant", person_realty_consultant);
210
         map.put("person_estate_agent", person_estate_agent);
226
         map.put("person_estate_agent", person_estate_agent);
214
         List<Map<String, Object>> selectUserSourceData = taPersonMapper.selectUserSourceData(orgId, CommConstant.PERSON_ESTATE_AGENT, startDate, endDate);
230
         List<Map<String, Object>> selectUserSourceData = taPersonMapper.selectUserSourceData(orgId, CommConstant.PERSON_ESTATE_AGENT, startDate, endDate);
215
 
231
 
216
         Map<String, Object> result = new HashMap<>();
232
         Map<String, Object> result = new HashMap<>();
217
-        result.put("columnar", mapList);
233
+        result.put("columnar", new ArrayList<Map<String,Object>>());
218
         result.put("pie", map);
234
         result.put("pie", map);
219
         result.put("data", selectUserSourceData);
235
         result.put("data", selectUserSourceData);
220
 
236
 
302
         responseBean.addSuccess(page);
318
         responseBean.addSuccess(page);
303
         return responseBean;
319
         return responseBean;
304
     }
320
     }
321
+
322
+    /**
323
+     * 用户来源数据 首页
324
+     *
325
+     * @param orgId
326
+     * @param startDate
327
+     * @param endDate
328
+     * @return
329
+     */
330
+    @Override
331
+    public ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate) {
332
+        ResponseBean responseBean = new ResponseBean();
333
+//        List<TsPersonFromStatistic> list = tsPersonFromStatisticMapper.selectPersonFrom(orgId,startDate,endDate);
334
+        QueryWrapper<TdWxDict> tdWxDictQueryWrapper = new QueryWrapper<>();
335
+        tdWxDictQueryWrapper.groupBy("scene_type");
336
+        List<TdWxDict> tdWxDicts = tdWxDictMapper.selectList(tdWxDictQueryWrapper);
337
+//        tdWxDicts.forEach(e -> {
338
+//            int fromSum = list.stream().filter(l -> e.getSceneType().equals(l.getSceneType())).mapToInt(TsPersonFromStatistic::getFromNum).sum();
339
+//            int registerSum = list.stream().filter(l -> e.getSceneType().equals(l.getSceneType())).mapToInt(TsPersonFromStatistic::getRegisteredNum).sum();
340
+//            e.setFromData(fromSum);
341
+//            e.setRegisterSum(registerSum);
342
+//        });
343
+        Map<String,Object> map = new HashMap<>();
344
+        map.put("tdWxDicts",tdWxDicts);
345
+//        List<TsPersonFromStatistic> tableList = tsPersonFromStatisticMapper.selectPersonFromGroupByData(orgId,startDate,endDate);
346
+//        map.put("list",tableList);
347
+        responseBean.addSuccess(map);
348
+        return responseBean;
349
+    }
350
+
351
+    /**
352
+     * 用户来源数据统计折线图
353
+     *
354
+     * @param orgId
355
+     * @param startDate
356
+     * @param endDate
357
+     * @return
358
+     */
359
+    @Override
360
+    public ResponseBean selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate) {
361
+        List<TsPersonFromStatistic> dayList = getDayList(startDate, endDate);
362
+        List<TsPersonFromStatistic> list = tsPersonFromStatisticMapper.selectPersonFromGroupByDay(orgId,startDate,endDate);
363
+        dayList.forEach(e -> {
364
+            list.forEach(l -> {
365
+                if (e.getCreateTime().equals(l.getCreateTime())){
366
+                    e.setFromNum(l.getFromNum());
367
+                    e.setRegisteredNum(l.getRegisteredNum());
368
+                }
369
+            });
370
+        });
371
+        return ResponseBean.success(dayList);
372
+    }
373
+
374
+    /**
375
+     * 返回时间区间格式
376
+     * @param startDate
377
+     * @param endDate
378
+     * @return
379
+     */
380
+    private List<TsPersonFromStatistic> getDayList(LocalDate startDate, LocalDate endDate) {
381
+        if (null == startDate || null == endDate){
382
+            endDate = LocalDate.now();
383
+            startDate = LocalDate.now().plusDays(-7);
384
+        }
385
+
386
+        //获取时间区间
387
+        List<LocalDate> dates = Stream.iterate(startDate, date -> date.plusDays(1))
388
+                .limit(ChronoUnit.DAYS.between(startDate, endDate))
389
+                .collect(Collectors.toList());
390
+
391
+        //格式化时间
392
+        List<TsPersonFromStatistic> dataList = new ArrayList<>();
393
+        DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
394
+        dates.forEach(e -> {
395
+            TsPersonFromStatistic tsPersonFromStatistic = new TsPersonFromStatistic();
396
+            tsPersonFromStatistic.setRegisteredNum(0);
397
+            tsPersonFromStatistic.setFromNum(0);
398
+            tsPersonFromStatistic.setCreateTime(dtf3.format(e));
399
+            dataList.add(tsPersonFromStatistic);
400
+        });
401
+        return dataList;
402
+    }
305
 }
403
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/service/impl/TaBuildingIntentionServiceImpl.java View File

79
             taBuildingIntention.setEventId(e.getEventId());
79
             taBuildingIntention.setEventId(e.getEventId());
80
             taBuildingIntention.setEventCode(e.getEventCode());
80
             taBuildingIntention.setEventCode(e.getEventCode());
81
             taBuildingIntention.setEventName(e.getEventName());
81
             taBuildingIntention.setEventName(e.getEventName());
82
-            taBuildingIntention.setIntention(1);
82
+            taBuildingIntention.setIntention(e.getPoints());
83
             taBuildingIntention.setCreateDate(LocalDateTime.now());
83
             taBuildingIntention.setCreateDate(LocalDateTime.now());
84
             taBuildingIntention.setBuildingId(buildingId);
84
             taBuildingIntention.setBuildingId(buildingId);
85
             taBuildingIntention.setStatus(1);
85
             taBuildingIntention.setStatus(1);

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TaBuildingPanoramaServiceImpl.java View File

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

+ 74
- 14
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java View File

102
     @Autowired
102
     @Autowired
103
     public ITaBuildingIntentionService iTaBuildingIntentionService;
103
     public ITaBuildingIntentionService iTaBuildingIntentionService;
104
 
104
 
105
+    @Autowired
106
+    private ITaBuildingPanoramaService taBuildingPanoramaService;
107
+
105
     @Override
108
     @Override
106
     public ResponseBean buildingList(Integer pageNum, Integer pageSize, String name, String code, LocalDateTime startDate, String buildingStatus, String marketStatus, Integer cityId, Integer isMain, Integer orgId,List<TaPersonBuilding> taPersonBuildingList) {
109
     public ResponseBean buildingList(Integer pageNum, Integer pageSize, String name, String code, LocalDateTime startDate, String buildingStatus, String marketStatus, Integer cityId, Integer isMain, Integer orgId,List<TaPersonBuilding> taPersonBuildingList) {
107
         Page<TaBuilding> page = new Page<>();
110
         Page<TaBuilding> page = new Page<>();
292
         List<TaBuildingMapRelation> mapRelationList = iTaBuildingMapRelationService.list(mapRelationQueryWrapper);
295
         List<TaBuildingMapRelation> mapRelationList = iTaBuildingMapRelationService.list(mapRelationQueryWrapper);
293
         building.setMapJson(mapRelationList.size() > 0 ? JSONObject.toJSONString(mapRelationList) : null);
296
         building.setMapJson(mapRelationList.size() > 0 ? JSONObject.toJSONString(mapRelationList) : null);
294
 
297
 
298
+        //查询关联的全景图列表
299
+        QueryWrapper<TaBuildingPanorama> panoramaQueryWrapper = new QueryWrapper<>();
300
+        panoramaQueryWrapper.eq("building_id", building.getBuildingId());
301
+        panoramaQueryWrapper.eq("org_id", building.getOrgId());
302
+        panoramaQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
303
+        panoramaQueryWrapper.orderByDesc("create_date");
304
+        List<TaBuildingPanorama> panoramaList = taBuildingPanoramaService.list(panoramaQueryWrapper);
305
+        building.setPanoramaList(panoramaList);
306
+
295
         return ResponseBean.success(building);
307
         return ResponseBean.success(building);
296
     }
308
     }
297
 
309
 
304
 
316
 
305
         boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(building, orgId, null, "update");
317
         boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(building, orgId, null, "update");
306
         if (!isMainMoreThanTenFlag){
318
         if (!isMainMoreThanTenFlag){
307
-            responseBean.addError("每个城市只能推荐10个楼盘到首页,请先将已推荐楼盘取消推荐后再推荐当前楼盘。");
319
+            responseBean.addError("当前城市最多只能推荐10个项目至首页哦。");
308
             return responseBean;
320
             return responseBean;
309
         }
321
         }
310
 
322
 
458
 
470
 
459
         TaBuilding building = object.toJavaObject(TaBuilding.class);
471
         TaBuilding building = object.toJavaObject(TaBuilding.class);
460
 
472
 
461
-        if(null!= object.getDate("openingDate")){
462
-            building.setOpeningDate(DateUtils.date2LocalDateTime(object.getDate("openingDate")));
473
+        boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(building, orgId, null, "add");
474
+        if (!isMainMoreThanTenFlag){
475
+            responseBean.addError("当前城市最多只能推荐10个项目至首页哦。");
476
+            return responseBean;
463
         }
477
         }
478
+
464
         building.setCreateDate(LocalDateTime.now());
479
         building.setCreateDate(LocalDateTime.now());
465
         building.setStatus(2);
480
         building.setStatus(2);
466
         building.setOrgId(orgId);
481
         building.setOrgId(orgId);
556
 
571
 
557
         boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(taBuildingMapper.selectOne(buildingIdQueryWrapper), orgId, status, "updateStatus");
572
         boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(taBuildingMapper.selectOne(buildingIdQueryWrapper), orgId, status, "updateStatus");
558
         if (!isMainMoreThanTenFlag){
573
         if (!isMainMoreThanTenFlag){
559
-            responseBean.addError("每个城市只能推荐10个楼盘到首页,请先将已推荐楼盘取消推荐后再推荐当前楼盘。");
574
+            responseBean.addError("当前城市最多只能推荐10个项目至首页哦");
560
             return responseBean;
575
             return responseBean;
561
         }
576
         }
562
 
577
 
764
     }
779
     }
765
 
780
 
766
     @Override
781
     @Override
767
-    public ResponseBean getWxMainBuildingList() {
768
-        QueryWrapper<TaBuilding> buildingQueryWrapper = new QueryWrapper<>();
769
-        buildingQueryWrapper.eq("status", 1);
770
-        buildingQueryWrapper.eq("is_main", 1);
771
-        buildingQueryWrapper.orderByAsc("order_no");
772
-        List<TaBuilding> buildingList = taBuildingMapper.selectList(buildingQueryWrapper);
782
+    public ResponseBean getWxMainBuildingList(String cityId, Integer orgId) {
783
+        List<TaBuilding> buildingList = taBuildingMapper.selectMainBuildings(cityId, orgId);
784
+        if (null == buildingList) {
785
+            return ResponseBean.success(new ArrayList<>());
786
+        }
773
 
787
 
774
-        for (TaBuilding build:buildingList) {
775
-            getBuildingAttaches(build);
788
+        for (TaBuilding building : buildingList) {
789
+            String buildingId = building.getBuildingId();
790
+
791
+            // 列表封面
792
+            if (!StringUtils.isEmpty(building.getListPoster())) {
793
+                List<TaBuildingImg> listImage = new ArrayList<>();
794
+                TaBuildingImg img = new TaBuildingImg();
795
+                img.setImgType(CommConstant.BUILDING_IMG_LIST);
796
+                img.setBuildingId(buildingId);
797
+                img.setUrl(building.getListPoster());
798
+                listImage.add(img);
799
+                building.setBuildingListImg(listImage);
800
+            }
801
+
802
+            // tags
803
+            if (!StringUtils.isEmpty(building.getTags())) {
804
+                List<TaBuildingTag> tags = new ArrayList<>();
805
+                String[] tagsArray =  building.getTags().split(",");
806
+                if (null != tagsArray) {
807
+                    for(String tagName: tagsArray) {
808
+                        TaBuildingTag tag = new TaBuildingTag();
809
+                        tag.setBuildingId(buildingId);
810
+                        tag.setTagName(tagName);
811
+                        tags.add(tag);
812
+                    }
813
+                }
814
+                building.setBuildingTag(tags);
815
+            }
816
+
817
+            // Uv
818
+            IPage<TaUv> pageUv = new Page<>(1, 10);
819
+            QueryWrapper<TaUv> query3 = new QueryWrapper<>();
820
+            query3.eq("be_uv", buildingId);
821
+            query3.eq("tagert_type", CommConstant.FAVOR_PROJECT);
822
+            query3.orderByDesc("create_date");
823
+            IPage<TaUv> uvs = taUvMapper.selectPage(pageUv, query3);
824
+            building.setUvList(uvs);
825
+
826
+            // share num
827
+            IPage<TaShare> pageSN = new Page<>(1, 10);
828
+            pageSN.setTotal(null == building.getShareNum() ? 0l : building.getShareNum());
829
+            building.setShareList(pageSN);
776
         }
830
         }
777
 
831
 
778
-        return ResponseBean.success(buildingList);
832
+        IPage<TaBuilding> page = new Page<>(1, 10);
833
+        page.setTotal(buildingList.size());
834
+        page.setRecords(buildingList);
835
+        return ResponseBean.success(page);
779
     }
836
     }
780
 
837
 
781
     @Override
838
     @Override
902
         queryWrapper.eq("building_id", taBuilding.getBuildingId());
959
         queryWrapper.eq("building_id", taBuilding.getBuildingId());
903
         queryWrapper.eq("org_id", orgId);
960
         queryWrapper.eq("org_id", orgId);
904
         TaBuilding info = taBuildingMapper.selectOne(queryWrapper);
961
         TaBuilding info = taBuildingMapper.selectOne(queryWrapper);
905
-        if (operte.equals("update") && (taBuilding.getIsMain() != 1 || info.getStatus() == 2)){
962
+        if (taBuilding.getIsMain() != 1){
906
             return true;
963
             return true;
907
         }
964
         }
965
+//        if (operte.equals("update") && (info.getStatus() == 2)){
966
+//            return true;
967
+//        }
908
         if (operte.equals("updateStatus") && status == 2){
968
         if (operte.equals("updateStatus") && status == 2){
909
             return true;
969
             return true;
910
         }
970
         }

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TaChannelAppRelationServiceImpl.java View File

1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.entity.TaChannelAppRelation;
5
+import com.huiju.estateagents.mapper.TaChannelAppRelationMapper;
6
+import com.huiju.estateagents.service.ITaChannelAppRelationService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 渠道小程序关系表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-04
16
+ */
17
+@Service
18
+public class TaChannelAppRelationServiceImpl extends ServiceImpl<TaChannelAppRelationMapper, TaChannelAppRelation> implements ITaChannelAppRelationService {
19
+
20
+}

+ 28
- 1
src/main/java/com/huiju/estateagents/service/impl/TaMiniappServiceImpl.java View File

3
 import cn.binarywang.wx.miniapp.api.WxMaService;
3
 import cn.binarywang.wx.miniapp.api.WxMaService;
4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
+import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
7
+import com.huiju.estateagents.channel.sysChannel.mapper.TaChannelProxyMapper;
6
 import com.huiju.estateagents.common.StringUtils;
8
 import com.huiju.estateagents.common.StringUtils;
7
 import com.huiju.estateagents.common.WxUtils;
9
 import com.huiju.estateagents.common.WxUtils;
10
+import com.huiju.estateagents.entity.TaChannelAppRelation;
8
 import com.huiju.estateagents.entity.TaMiniapp;
11
 import com.huiju.estateagents.entity.TaMiniapp;
9
 import com.huiju.estateagents.entity.TaMiniappTemplate;
12
 import com.huiju.estateagents.entity.TaMiniappTemplate;
13
+import com.huiju.estateagents.mapper.TaChannelAppRelationMapper;
10
 import com.huiju.estateagents.mapper.TaMiniappMapper;
14
 import com.huiju.estateagents.mapper.TaMiniappMapper;
11
 import com.huiju.estateagents.mapper.TaMiniappTemplateMapper;
15
 import com.huiju.estateagents.mapper.TaMiniappTemplateMapper;
12
 import com.huiju.estateagents.service.ITaMiniappService;
16
 import com.huiju.estateagents.service.ITaMiniappService;
14
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.stereotype.Service;
19
 import org.springframework.stereotype.Service;
16
 
20
 
21
+import java.time.LocalDateTime;
22
+
17
 /**
23
 /**
18
  * <p>
24
  * <p>
19
  * 小程序表  服务实现类
25
  * 小程序表  服务实现类
24
  */
30
  */
25
 @Service
31
 @Service
26
 public class TaMiniappServiceImpl extends ServiceImpl<TaMiniappMapper, TaMiniapp> implements ITaMiniappService {
32
 public class TaMiniappServiceImpl extends ServiceImpl<TaMiniappMapper, TaMiniapp> implements ITaMiniappService {
33
+    @Autowired
34
+    TaMiniappMapper taMiniappMapper;
35
+
27
     @Autowired
36
     @Autowired
28
     TaMiniappTemplateMapper taMiniappTemplateMapper;
37
     TaMiniappTemplateMapper taMiniappTemplateMapper;
29
 
38
 
30
     @Autowired
39
     @Autowired
31
     WxUtils wxUtils;
40
     WxUtils wxUtils;
32
 
41
 
42
+    @Autowired
43
+    private TaChannelAppRelationMapper taChannelAppRelationMapper;
44
+
45
+    @Autowired
46
+    private TaChannelProxyMapper taChannelProxyMapper;
47
+
33
     @Override
48
     @Override
34
-    public TaMiniapp saveInfoWithTpls(TaMiniapp taMiniapp) throws Exception {
49
+    public TaMiniapp saveInfoWithTpls(TaMiniapp taMiniapp, Integer channelId) throws Exception {
35
         if (StringUtils.isEmpty(taMiniapp.getMiniappId())) {
50
         if (StringUtils.isEmpty(taMiniapp.getMiniappId())) {
36
             throw new Exception("请填写小程序 AppID");
51
             throw new Exception("请填写小程序 AppID");
37
         }
52
         }
76
 
91
 
77
         return taMiniapp;
92
         return taMiniapp;
78
     }
93
     }
94
+
95
+    @Override
96
+    public TaMiniapp getInfoWithTpls(String appid) {
97
+        TaMiniapp taMiniapp = taMiniappMapper.selectById(appid);
98
+
99
+        QueryWrapper<TaMiniappTemplate> queryWrapper = new QueryWrapper<>();
100
+        queryWrapper.eq("miniapp_id", appid);
101
+        queryWrapper.eq("is_subscribe", 1);
102
+        taMiniapp.setTpls(taMiniappTemplateMapper.selectList(queryWrapper));
103
+
104
+        return taMiniapp;
105
+    }
79
 }
106
 }

+ 80
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonFromRecordServiceImpl.java View File

1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.huiju.estateagents.common.StringUtils;
6
+import com.huiju.estateagents.entity.TaPersonFromRecord;
7
+import com.huiju.estateagents.entity.TaPersonVisitRecord;
8
+import com.huiju.estateagents.entity.TdWxDict;
9
+import com.huiju.estateagents.mapper.TaPersonFromRecordMapper;
10
+import com.huiju.estateagents.mapper.TdWxDictMapper;
11
+import com.huiju.estateagents.service.ITaPersonFromRecordService;
12
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
13
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.stereotype.Service;
16
+
17
+import java.time.LocalDateTime;
18
+import java.util.List;
19
+
20
+/**
21
+ * <p>
22
+ * 新增用户来源表  服务实现类
23
+ * </p>
24
+ *
25
+ * @author jobob
26
+ * @since 2020-01-03
27
+ */
28
+@Service
29
+public class TaPersonFromRecordServiceImpl extends ServiceImpl<TaPersonFromRecordMapper, TaPersonFromRecord> implements ITaPersonFromRecordService {
30
+
31
+    @Autowired
32
+    private TaPersonFromRecordMapper taPersonFromRecordMapper;
33
+
34
+    @Autowired
35
+    private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
36
+
37
+    @Autowired
38
+    private TdWxDictMapper tdWxDictMapper;
39
+
40
+    /**
41
+     * 通過買點表清洗數據
42
+     * @param taPersonVisitRecord
43
+     */
44
+    @Override
45
+    public void addNewPersonRecordRecord(TaPersonVisitRecord taPersonVisitRecord) {
46
+        TaPersonFromRecord taPersonFromRecord = new TaPersonFromRecord();
47
+        taPersonFromRecord.setCreateDate(LocalDateTime.now());
48
+        taPersonFromRecord.setActivity(taPersonVisitRecord.getActivity());
49
+        taPersonFromRecord.setOrgId(Integer.valueOf(taPersonVisitRecord.getOrgId()));
50
+        taPersonFromRecord.setPersonId(taPersonVisitRecord.getPersonId());
51
+        taPersonFromRecord.setBuildingId(taPersonVisitRecord.getBuildingId());
52
+        taPersonFromRecord.setEvent(taPersonVisitRecord.getEvent());
53
+        taPersonFromRecord.setEventType(taPersonVisitRecord.getEventType());
54
+        taPersonFromRecord.setSceneId(taPersonVisitRecord.getSceneId());
55
+        TdWxDict tdWxDict = tdWxDictMapper.selectById(taPersonVisitRecord.getSceneId());
56
+        taPersonFromRecord.setSceneType(null == tdWxDict ? "" : tdWxDict.getSceneType());
57
+        taPersonFromRecord.setSharePersonId(taPersonVisitRecord.getSharePersonId());
58
+        taPersonFromRecord.setTargetId(taPersonVisitRecord.getTargetId());
59
+        QueryWrapper<TaPersonFromRecord> queryWrapper = new QueryWrapper<>();
60
+        queryWrapper.eq("org_id",taPersonVisitRecord.getOrgId());
61
+        queryWrapper.eq("person_id",taPersonVisitRecord.getPersonId());
62
+        int count = taPersonFromRecordMapper.selectCount(queryWrapper);
63
+        if(count > 0){
64
+            return;
65
+        }else {
66
+            taPersonFromRecord.setIsFirstTime(true);
67
+        }
68
+        taPersonFromRecordMapper.insert(taPersonFromRecord);
69
+    }
70
+
71
+    /**
72
+     * 定时任务批量保存数据
73
+     */
74
+    @Override
75
+    public void personFromStatistic() {
76
+        List<TsPersonFromStatistic> list =  taPersonFromRecordMapper.getNowDataList();
77
+        tsPersonFromStatisticMapper.deleteByData();
78
+        tsPersonFromStatisticMapper.insertStatisticList(list);
79
+    }
80
+}

+ 3
- 2
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java View File

394
         Integer saved = taSaveMapper.selectCount(saveQueryWrapper);
394
         Integer saved = taSaveMapper.selectCount(saveQueryWrapper);
395
         result.put("saved",saved);
395
         result.put("saved",saved);
396
         result.put("personType",taPerson.getPersonType());
396
         result.put("personType",taPerson.getPersonType());
397
+        result.put("userId", taPerson.getUserId());
397
 
398
 
398
         return ResponseBean.success(result);
399
         return ResponseBean.success(result);
399
     }
400
     }
737
     }
738
     }
738
 
739
 
739
     @Override
740
     @Override
740
-    public IPage<TaPerson> getDriftCustomerList (int pageNumber, int pageSize,String building, Integer orgId){
741
+    public IPage<TaPerson> getDriftCustomerList (int pageNumber, int pageSize,String building, Integer orgId,String sceneType){
741
         QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
742
         QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
742
         queryWrapper.eq("person_type",CommConstant.PERSON_ESTATE_DRIFT);
743
         queryWrapper.eq("person_type",CommConstant.PERSON_ESTATE_DRIFT);
743
         if(building.equals("") && null != building){
744
         if(building.equals("") && null != building){
746
         queryWrapper.eq(orgId != null, "org_id", orgId);
747
         queryWrapper.eq(orgId != null, "org_id", orgId);
747
         queryWrapper.orderByDesc("create_date");
748
         queryWrapper.orderByDesc("create_date");
748
         IPage<TaPerson> page = new Page<>(pageNumber, pageSize);
749
         IPage<TaPerson> page = new Page<>(pageNumber, pageSize);
749
-        return taPersonMapper.selectPage(page,queryWrapper);
750
+        return taPersonMapper.selectDriftCustomerPageList(page,building,orgId,CommConstant.PERSON_ESTATE_DRIFT,sceneType);
750
     }
751
     }
751
 
752
 
752
     @Override
753
     @Override

+ 15
- 13
src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java View File

132
 				e.setUserTel(personInfo.getPhone());
132
 				e.setUserTel(personInfo.getPhone());
133
 			}
133
 			}
134
 
134
 
135
-			TaPerson userShareInfo = taPersonMapper.selectById(e.getSharePersonId());
135
+			QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
136
+			queryWrapper.eq("user_id", e.getSharePersonId()).or().eq("person_id", e.getSharePersonId());
137
+			TaPerson userShareInfo = taPersonMapper.selectOne(queryWrapper);
136
 			if (userShareInfo != null) {
138
 			if (userShareInfo != null) {
137
 				e.setShareName(userShareInfo.getNickname());
139
 				e.setShareName(userShareInfo.getNickname());
138
 				e.setShareTel(userShareInfo.getPhone());
140
 				e.setShareTel(userShareInfo.getPhone());
139
 			}
141
 			}
140
 
142
 
141
-			if (CommConstant.EVENT_H5.equals(e.getEventType())) {
143
+			if (CommConstant.H5_SHARE.equals(e.getEventType())) {
142
 				e.setActivityName(e.getDrainageName());
144
 				e.setActivityName(e.getDrainageName());
143
 				continue;
145
 				continue;
144
 			}
146
 			}
145
-			if (CommConstant.POSTER_CONTENT_TYPE_BUILDING.equals(e.getEventType())) {
147
+			if (CommConstant.BUILDING_SHARE.equals(e.getEventType())) {
146
 				e.setActivityName(e.getBuildingName());
148
 				e.setActivityName(e.getBuildingName());
147
 				continue;
149
 				continue;
148
 			}
150
 			}
149
-			if (CommConstant.POSTER_CONTENT_TYPE_NEWS.equals(e.getEventType())) {
151
+			if (CommConstant.NEWS_SHARE.equals(e.getEventType())) {
150
 				e.setActivityName(e.getNewsName());
152
 				e.setActivityName(e.getNewsName());
151
 				continue;
153
 				continue;
152
 			}
154
 			}
153
-			if (CommConstant.POINTS_CHANGE_HELP.equals(e.getEventType())) {
155
+			if (CommConstant.HELP_SHARE.equals(e.getEventType())) {
154
 				e.setActivityName(e.getHelpActivityName());
156
 				e.setActivityName(e.getHelpActivityName());
155
 				continue;
157
 				continue;
156
 			}
158
 			}
157
-			if (CommConstant.POINTS_CHANGE_GROUP.equals(e.getEventType())) {
159
+			if (CommConstant.GROUP_SHARE.equals(e.getEventType())) {
158
 				e.setActivityName(e.getGroupActivityName());
160
 				e.setActivityName(e.getGroupActivityName());
159
 				continue;
161
 				continue;
160
 			}
162
 			}
164
 	}
166
 	}
165
 
167
 
166
 	@Override
168
 	@Override
167
-	public IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, Integer userId, Integer orgId) {
168
-		IPage<TaConsultantInfo> result = personVisitRecordMapper.getConsultantShareInfoList(pg,userId,orgId);
169
+	public IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, String personId) {
170
+		IPage<TaConsultantInfo> result = personVisitRecordMapper.getConsultantShareInfoList(pg,personId);
169
 		return result;
171
 		return result;
170
 	}
172
 	}
171
 
173
 
172
 	@Override
174
 	@Override
173
-	public Integer countShareNumByEventType(String targetId, Integer orgId, Integer userId, String eventType) {
174
-		return personVisitRecordMapper.countShareNumByEventType(targetId, orgId, userId, eventType);
175
+	public Integer countShareNumByEventType(Integer orgId, String targetId, Integer userId, String personId, String eventType) {
176
+		return personVisitRecordMapper.countShareNumByEventType(orgId, targetId, userId, personId, eventType);
175
 	}
177
 	}
176
 
178
 
177
 	/**
179
 	/**
197
 			QueryWrapper<TaRecommendCustomer> queryWrapper = new QueryWrapper();
199
 			QueryWrapper<TaRecommendCustomer> queryWrapper = new QueryWrapper();
198
 			queryWrapper.eq("realty_consultant",e.getConsultantId());
200
 			queryWrapper.eq("realty_consultant",e.getConsultantId());
199
 			queryWrapper.eq("person_id",e.getPersonId());
201
 			queryWrapper.eq("person_id",e.getPersonId());
200
-			TaRecommendCustomer taRecommendCustomer = taRecommendCustomerMapper.selectOne(queryWrapper);
201
-			if (null != taRecommendCustomer){
202
+			List<TaRecommendCustomer> taRecommendCustomer = taRecommendCustomerMapper.selectList(queryWrapper);
203
+			if (taRecommendCustomer.size() > 0){
202
 				//1是我的客户
204
 				//1是我的客户
203
 				e.setMyCustomer(CommConstant.STATUS_NORMAL);
205
 				e.setMyCustomer(CommConstant.STATUS_NORMAL);
204
 			}
206
 			}
223
 		taPersonQueryWrapper.eq("org_id",orgId);
225
 		taPersonQueryWrapper.eq("org_id",orgId);
224
 		TaPerson taPerson = taPersonMapper.selectOne(taPersonQueryWrapper);
226
 		TaPerson taPerson = taPersonMapper.selectOne(taPersonQueryWrapper);
225
 		//获取我的访问客户列表
227
 		//获取我的访问客户列表
226
-		IPage<TaPersonVisitRecord> result = personVisitRecordMapper.getWxActivityVisitRecordList(pg,userId,orgId, targetId,taPerson.getPersonId(), eventType);
228
+		IPage<TaPersonVisitRecord> result = personVisitRecordMapper.getWxActivityVisitRecordList(pg,userId,orgId, targetId,taPerson.getPersonId(), (CommConstant.FAVOR_PROJECT.equals(eventType) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(eventType) ? "dynamic" : eventType)  + "_share");
227
 		List<TaPersonVisitRecord> records = result.getRecords();
229
 		List<TaPersonVisitRecord> records = result.getRecords();
228
 		//判断是否我的客户状态
230
 		//判断是否我的客户状态
229
 		records.forEach(e -> {
231
 		records.forEach(e -> {

+ 105
- 75
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java View File

88
     @Autowired
88
     @Autowired
89
     private TaUserMapper taUserMapper;
89
     private TaUserMapper taUserMapper;
90
 
90
 
91
+    @Autowired
92
+    private TaPersonFromRecordMapper taPersonFromRecordMapper;
93
+
91
     @Autowired
94
     @Autowired
92
     private TdPersonFromMapper tdPersonFromMapper;
95
     private TdPersonFromMapper tdPersonFromMapper;
93
 
96
 
97
+    @Autowired
98
+    private TdWxDictMapper tdWxDictMapper;
99
+
94
     @Override
100
     @Override
95
     public ResponseBean getMyCustList(String openid, String keywords, int pageNumber, int pageSize) {
101
     public ResponseBean getMyCustList(String openid, String keywords, int pageNumber, int pageSize) {
96
         List<TaPerson> taPersons = getPersonsByOpenId(openid);
102
         List<TaPerson> taPersons = getPersonsByOpenId(openid);
480
     }
486
     }
481
 
487
 
482
     @Override
488
     @Override
483
-    public IPage getCustomerList(Integer status,int pageNumber, int pageSize,String building,String name,String tel,String consultName,String consultTel,String entryType,String verifyStatus,Integer sex, String customerType, Integer orgId,List<TaPersonBuilding> taPersonBuildingList){
489
+    public IPage getCustomerList(Integer status,int pageNumber, int pageSize,String building,String name,String tel,String consultName,String consultTel,String entryType,String verifyStatus,Integer sex, String customerType, Integer orgId,List<TaPersonBuilding> taPersonBuildingList,String sceneType){
484
 
490
 
485
         if (CommConstant.CUTOMER_TYPE_PUBLIC.equals(customerType)) {
491
         if (CommConstant.CUTOMER_TYPE_PUBLIC.equals(customerType)) {
486
-
487
-            /**
488
-             * <if test="buildingId != null">
489
-             *             ,(select tpp.name from ta_share_person_from tspf left join ta_person tpp on  tspf.share_person = tpp.person_id where tspf.building_id = #{buildingId} and tspf.is_first_time = 1) as sharePersonName
490
-             *         </if>
491
-             */
492
-
493
-            /**
494
-             * SELECT
495
-             *         b.*
496
-             *         FROM
497
-             *         ta_person b
498
-             *         <where>
499
-             *             b.status > 0
500
-             *             AND IFNULL(b.person_type, '') in ('estate agent', 'customer')
501
-             *             <if test="name != null and name !=''">
502
-             *                 and b.nickname like CONCAT('%',#{name}, '%')
503
-             *             </if>
504
-             *             <if test="tel != null and tel!=''">
505
-             *                 and b.phone like CONCAT('%',#{tel}, '%')
506
-             *             </if>
507
-             *             <if test="entryType != null and entryType !=''">
508
-             *                 and b.entry_type = #{entryType}
509
-             *             </if>
510
-             *             <if test="sex != null and sex !=''">
511
-             *                 and b.sex = #{sex}
512
-             *             </if>
513
-             *             <if test="orgId != null">
514
-             *                 and b.org_id = #{orgId}
515
-             *             </if>
516
-             *             <if test="consultTel != null and consultTel !=''">
517
-             *                 and b.tel like CONCAT('%',#{consultTel}, '%')
518
-             *             </if>
519
-             *             and NOT EXISTS ( select * from ta_recommend_customer a where a.recommend_person = b.person_id)
520
-             *         </where>
521
-             *         order by b.create_date desc
522
-             */
523
-
524
             // 公客
492
             // 公客
525
             IPage<TaPerson>page = new Page<>(pageNumber,pageSize);
493
             IPage<TaPerson>page = new Page<>(pageNumber,pageSize);
526
             // 公客就不用 buildingId 进行查询
494
             // 公客就不用 buildingId 进行查询
527
-            return taRecommendCustomerMapper.getPublicCustomerList(page,name, tel,  entryType, verifyStatus, sex, orgId,consultTel);
495
+            return taRecommendCustomerMapper.getPublicCustomerList(page,name, tel,  entryType, verifyStatus, sex, orgId,consultTel,sceneType);
528
         } else {
496
         } else {
529
             // 私客
497
             // 私客
530
             IPage<TaRecommendCustomer>page = new Page<>(pageNumber,pageSize);
498
             IPage<TaRecommendCustomer>page = new Page<>(pageNumber,pageSize);
531
-            return taRecommendCustomerMapper.getCustomerList(page, building, name, tel, consultName, consultTel, entryType, verifyStatus, sex, orgId,status,taPersonBuildingList);
499
+            return taRecommendCustomerMapper.getCustomerList(page, building, name, tel, consultName, consultTel, entryType, verifyStatus, sex, orgId,status,taPersonBuildingList,sceneType);
532
         }
500
         }
533
 
501
 
534
     }
502
     }
559
 
527
 
560
 
528
 
561
     @Override
529
     @Override
562
-    public TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList){
530
+    public TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId){
563
         String personId = taRecommendCustomerMapper.getCustomerById(customerId).getPersonId();
531
         String personId = taRecommendCustomerMapper.getCustomerById(customerId).getPersonId();
564
         TaRecommendCustomer taRecommendCustomer = taRecommendCustomerMapper.getCustomerDetail(customerId,personId);
532
         TaRecommendCustomer taRecommendCustomer = taRecommendCustomerMapper.getCustomerDetail(customerId,personId);
565
         TaPerson person = taPersonMapper.selectById(personId);
533
         TaPerson person = taPersonMapper.selectById(personId);
566
         if(!StringUtils.isEmpty(personId)){
534
         if(!StringUtils.isEmpty(personId)){
567
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
535
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
568
-            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId);
536
+            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId,taPersonBuildingList,buildingId);
569
             List<TaPersonVisitRecord> records = taPersonVisitRecordIPage.getRecords();
537
             List<TaPersonVisitRecord> records = taPersonVisitRecordIPage.getRecords();
570
             records.forEach(e -> {
538
             records.forEach(e -> {
571
                 //获取活动标题
539
                 //获取活动标题
609
             taRecommendCustomer.setVisitRecords(taPersonVisitRecordIPage);
577
             taRecommendCustomer.setVisitRecords(taPersonVisitRecordIPage);
610
             taRecommendCustomer.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
578
             taRecommendCustomer.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
611
             taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
579
             taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
612
-            Map<String,String>geoInfo = new HashMap<>();
613
-            geoInfo.put("provience",person.getProvince());
614
-            geoInfo.put("country",person.getCountry());
615
-            TdCity city = cityMapper.selectById(person.getCity());
616
-            if(null!=city){
617
-                geoInfo.put("city",city.getName());
618
-            }else {
619
-                geoInfo.put("city","未知");
620
-            }
621
-            taRecommendCustomer.setGeoInfo(geoInfo);
622
         }
580
         }
623
         if(!StringUtils.isEmpty(taRecommendCustomer.getRealtyConsultant())){
581
         if(!StringUtils.isEmpty(taRecommendCustomer.getRealtyConsultant())){
624
             TaPerson consultant =  taPersonMapper.getById(taRecommendCustomer.getRealtyConsultant());
582
             TaPerson consultant =  taPersonMapper.getById(taRecommendCustomer.getRealtyConsultant());
638
         }
596
         }
639
         //构造来源类型
597
         //构造来源类型
640
         taRecommendCustomer.setPersonFrom("");
598
         taRecommendCustomer.setPersonFrom("");
641
-        if (null != person && null != person.getFromCode()){
642
-            QueryWrapper<TdPersonFrom> tdPersonFromQueryWrapper = new QueryWrapper<>();
643
-            tdPersonFromQueryWrapper.eq("from_code",person.getFromCode());
644
-            TdPersonFrom tdPersonFrom = tdPersonFromMapper.selectOne(tdPersonFromQueryWrapper);
645
-            taRecommendCustomer.setPersonFrom(null != tdPersonFrom ? tdPersonFrom.getFromName() : "");
599
+        if (null != person){
600
+            Map<String,String>geoInfo = new HashMap<>();
601
+            geoInfo.put("provience",person.getProvince());
602
+            geoInfo.put("country",person.getCountry());
603
+            TdCity city = cityMapper.selectById(person.getCity());
604
+            if(null!=city){
605
+                geoInfo.put("city",city.getName());
606
+            }else {
607
+                geoInfo.put("city","未知");
608
+            }
609
+            taRecommendCustomer.setGeoInfo(geoInfo);
610
+
611
+            QueryWrapper<TaPersonFromRecord> queryWrapper = new QueryWrapper<>();
612
+            queryWrapper.eq("org_id",person.getOrgId());
613
+            queryWrapper.eq("person_id",person.getPersonId());
614
+            queryWrapper.eq("is_first_time",1);
615
+            List<TaPersonFromRecord> taPersonFromRecords = taPersonFromRecordMapper.selectList(queryWrapper);
616
+            if (taPersonFromRecords.size() > 0){
617
+                QueryWrapper<TdWxDict> tdWxDictQueryWrapper = new QueryWrapper<>();
618
+                tdWxDictQueryWrapper.eq("scene_id",taPersonFromRecords.get(0).getSceneId());
619
+                TdWxDict tdWxDict = tdWxDictMapper.selectOne(tdWxDictQueryWrapper);
620
+                taRecommendCustomer.setPersonFrom(null != tdWxDict ? tdWxDict.getSceneAlias() : "");
621
+            }
646
         }
622
         }
647
 
623
 
648
         return taRecommendCustomer;
624
         return taRecommendCustomer;
649
     }
625
     }
650
 
626
 
651
     @Override
627
     @Override
652
-    public TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList){
653
-        TaPerson taRecommendCustomer = taPersonMapper.getById(personId);
628
+    public TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId){
629
+        TaPerson taPerson = taPersonMapper.getById(personId);
654
         if(!StringUtils.isEmpty(personId)){
630
         if(!StringUtils.isEmpty(personId)){
655
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
631
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
656
-            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId);
632
+            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId,taPersonBuildingList,buildingId);
657
             List<TaPersonVisitRecord> records = taPersonVisitRecordIPage.getRecords();
633
             List<TaPersonVisitRecord> records = taPersonVisitRecordIPage.getRecords();
658
             records.forEach(e -> {
634
             records.forEach(e -> {
659
                 //获取活动标题
635
                 //获取活动标题
694
                 }
670
                 }
695
             });
671
             });
696
             taPersonVisitRecordIPage.setRecords(records);
672
             taPersonVisitRecordIPage.setRecords(records);
697
-            taRecommendCustomer.setVisitRecords(taPersonVisitRecordIPage);
698
-            taRecommendCustomer.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
699
-            taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
700
-            taRecommendCustomer.setDuration(taPersonVisitRecordMapper.getDurationByPersonId(personId));
701
-            taRecommendCustomer.setVisitTime(taPersonVisitRecordMapper.getFirstVisitTimeByPersonId(personId));
702
-            TdCity city = cityMapper.selectById(taRecommendCustomer.getCity());
673
+            taPerson.setVisitRecords(taPersonVisitRecordIPage);
674
+            taPerson.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
675
+            taPerson.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
676
+            taPerson.setDuration(taPersonVisitRecordMapper.getDurationByPersonId(personId));
677
+            taPerson.setVisitTime(taPersonVisitRecordMapper.getFirstVisitTimeByPersonId(personId));
678
+            TdCity city = cityMapper.selectById(taPerson.getCity());
703
             if(null != city){
679
             if(null != city){
704
-                taRecommendCustomer.setCity(city.getName());
680
+                taPerson.setCity(city.getName());
705
             }
681
             }
706
 
682
 
707
             //构造来源类型
683
             //构造来源类型
708
-            taRecommendCustomer.setPersonFrom("");
709
-            if (null != taRecommendCustomer.getFromCode()){
710
-                QueryWrapper<TdPersonFrom> tdPersonFromQueryWrapper = new QueryWrapper<>();
711
-                tdPersonFromQueryWrapper.eq("from_code",taRecommendCustomer.getFromCode());
712
-                TdPersonFrom tdPersonFrom = tdPersonFromMapper.selectOne(tdPersonFromQueryWrapper);
713
-                taRecommendCustomer.setPersonFrom(null != tdPersonFrom ? tdPersonFrom.getFromName() : "");
684
+            taPerson.setPersonFrom("");
685
+            if (null != taPerson){
686
+                QueryWrapper<TaPersonFromRecord> queryWrapper = new QueryWrapper<>();
687
+                queryWrapper.eq("org_id",taPerson.getOrgId());
688
+                queryWrapper.eq("person_id",taPerson.getPersonId());
689
+                queryWrapper.eq("is_first_time",1);
690
+                List<TaPersonFromRecord> taPersonFromRecords = taPersonFromRecordMapper.selectList(queryWrapper);
691
+                if (taPersonFromRecords.size() > 0){
692
+                    QueryWrapper<TdWxDict> tdWxDictQueryWrapper = new QueryWrapper<>();
693
+                    tdWxDictQueryWrapper.eq("scene_id",taPersonFromRecords.get(0).getSceneId());
694
+                    TdWxDict tdWxDict = tdWxDictMapper.selectOne(tdWxDictQueryWrapper);
695
+                    taPerson.setPersonFrom(null != tdWxDict ? tdWxDict.getSceneAlias() : "");
696
+                }
714
             }
697
             }
715
         }
698
         }
716
-        return taRecommendCustomer;
699
+        return taPerson;
717
     }
700
     }
718
 
701
 
719
     @Override
702
     @Override
767
         }
750
         }
768
     }
751
     }
769
 
752
 
753
+    @Override
754
+    public ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId) {
755
+        TaPerson taPerson = taPersonMapper.getById(personId);
756
+
757
+        TaPerson recommendPerson = taPersonMapper.selectById(personId);
758
+
759
+        QueryWrapper<TaUser> queryWrapper = new QueryWrapper();
760
+        queryWrapper.eq("user_id", taUser.getUserId());
761
+        TaUser userInfo = taUserMapper.selectOne(queryWrapper);
762
+
763
+        QueryWrapper<TaPersonBuilding> taPersonBuildingQueryWrapper = new QueryWrapper();
764
+        taPersonBuildingQueryWrapper.eq("user_id", taUser.getUserId());
765
+        TaPersonBuilding taPersonBuilding = taPersonBuildingMapper.selectOne(taPersonBuildingQueryWrapper);
766
+
767
+        if (null == userInfo || userInfo.getStatus() != CommConstant.STATUS_NORMAL) {
768
+            return ResponseBean.error("置业顾问不存在或已被注销", ResponseBean.ERROR_UNAVAILABLE);
769
+        }
770
+
771
+        TaRecommendCustomer taRecommendCustomer = new TaRecommendCustomer();
772
+        taRecommendCustomer.setOrgId(orgId);
773
+        taRecommendCustomer.setName(taPerson.getNickname());
774
+        taRecommendCustomer.setPicture(taPerson.getAvatarurl());
775
+        taRecommendCustomer.setPhone(taPerson.getPhone());
776
+        taRecommendCustomer.setSex(null == taPerson.getGender() ? null : ("1".equals(taPerson.getGender()) ? 1 : 2));
777
+        taRecommendCustomer.setRealtyConsultant(userInfo.getUserId().toString());
778
+        taRecommendCustomer.setBuildingId(taPersonBuilding.getBuildingId());
779
+        TaBuilding building = taBuildingMapper.selectById(taPersonBuilding.getBuildingId());
780
+        taRecommendCustomer.setIntention(building.getBuildingName());
781
+        taRecommendCustomer.setReportRecommendStatus(CommConstant.VERIFY_AGREE);
782
+        taRecommendCustomer.setCreateDate(LocalDateTime.now());
783
+        taRecommendCustomer.setReportDate(LocalDateTime.now());
784
+        taRecommendCustomer.setPersonId(taPerson.getPersonId());
785
+        taRecommendCustomer.setEntryType(CommConstant.ENTRY_VERIFY);
786
+        taRecommendCustomer.setVerifyStatus(CommConstant.VERIFY_AGREE);
787
+        taRecommendCustomer.setStatus(CommConstant.CUSTOMER_REPORT);
788
+        taRecommendCustomer.setPersonId(personId);
789
+        taRecommendCustomer.setRecommendPerson(recommendPerson == null ? "" : recommendPerson.getRecommendPerson());
790
+
791
+        int row = taRecommendCustomerMapper.insert(taRecommendCustomer);
792
+        if (row < 1) {
793
+            return ResponseBean.error("分配客户失败", ResponseBean.ERROR_UNAVAILABLE);
794
+        }
795
+
796
+        return ResponseBean.success(taRecommendCustomer);
797
+
798
+    }
799
+
770
     private List<TaRecommendCustomer> getCustomerByPhone(String phone) {
800
     private List<TaRecommendCustomer> getCustomerByPhone(String phone) {
771
         QueryWrapper<TaRecommendCustomer> queryWrapper = new QueryWrapper<>();
801
         QueryWrapper<TaRecommendCustomer> queryWrapper = new QueryWrapper<>();
772
         queryWrapper.eq("phone", phone);
802
         queryWrapper.eq("phone", phone);

+ 84
- 2
src/main/java/com/huiju/estateagents/service/impl/TaSharePersonFromServiceImpl.java View File

1
 package com.huiju.estateagents.service.impl;
1
 package com.huiju.estateagents.service.impl;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
-import com.huiju.estateagents.entity.TaSharePersonFrom;
5
-import com.huiju.estateagents.mapper.TaSharePersonFromMapper;
5
+import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.common.CommConstant;
7
+import com.huiju.estateagents.entity.*;
8
+import com.huiju.estateagents.mapper.*;
6
 import com.huiju.estateagents.service.ITaSharePersonFromService;
9
 import com.huiju.estateagents.service.ITaSharePersonFromService;
10
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
11
 import org.springframework.stereotype.Service;
8
 
12
 
13
+import java.time.LocalDateTime;
14
+
9
 /**
15
 /**
10
  * <p>
16
  * <p>
11
  *   服务实现类
17
  *   服务实现类
17
 @Service
23
 @Service
18
 public class TaSharePersonFromServiceImpl extends ServiceImpl<TaSharePersonFromMapper, TaSharePersonFrom> implements ITaSharePersonFromService {
24
 public class TaSharePersonFromServiceImpl extends ServiceImpl<TaSharePersonFromMapper, TaSharePersonFrom> implements ITaSharePersonFromService {
19
 
25
 
26
+    @Autowired
27
+    private TaPersonMapper taPersonMapper;
28
+
29
+    @Autowired
30
+    private TaBuildingDynamicMapper taBuildingDynamicMapper;
31
+
32
+    @Autowired
33
+    private TaPersonBuildingMapper taPersonBuildingMapper;
34
+
35
+    @Autowired
36
+    private TaNewsMapper taNewsMapper;
37
+
38
+    @Autowired
39
+    private TaSharePersonFromMapper taSharePersonFromMapper;
40
+    /**
41
+     * 添加客户分享记录
42
+     *
43
+     * @param personId
44
+     * @param orgId
45
+     * @param from
46
+     * @param recommender
47
+     * @param targetId
48
+     * @return
49
+     */
50
+    @Override
51
+    public TaSharePersonFrom addSharePersonRecord(String personId, Integer orgId, String from, String recommender, String targetId) {
52
+        TaPerson taPerson = taPersonMapper.getById(personId);
53
+        TaSharePersonFrom taSharePersonFrom = new TaSharePersonFrom();
54
+        TaPerson recommenderPerson = taPersonMapper.getById(recommender);
55
+        taSharePersonFrom.setCreateDate(LocalDateTime.now());
56
+        taSharePersonFrom.setOrgId(orgId);
57
+        taSharePersonFrom.setPersonId(taPerson.getPersonId());
58
+        taSharePersonFrom.setSharePersonType(recommenderPerson.getPersonType());
59
+        taSharePersonFrom.setTargetId(targetId);
60
+        taSharePersonFrom.setTargetType(from);
61
+        if(CommConstant.PERSON_REALTY_CONSULTANT.equals(recommenderPerson.getPersonType())){
62
+            taSharePersonFrom.setSharePerson(recommenderPerson.getUserId().toString());
63
+        }else {
64
+            taSharePersonFrom.setSharePerson(recommenderPerson.getPersonId());
65
+        }
66
+        QueryWrapper<TaSharePersonFrom> sharePersonFromQueryWrapper = new QueryWrapper<>();
67
+        sharePersonFromQueryWrapper.eq("person_id",taPerson.getPersonId());
68
+        if(from.equals("dynamic_share")){ // activity_share
69
+            taSharePersonFrom.setStatus(CommConstant.STATUS_UNACCALIMED);
70
+            TaBuildingDynamic buildingDynamic = taBuildingDynamicMapper.selectById(targetId);
71
+            taSharePersonFrom.setBuildingId(buildingDynamic.getBuildingId());
72
+            sharePersonFromQueryWrapper.eq("building_id",buildingDynamic.getBuildingId());
73
+        }else {
74
+            taSharePersonFrom.setStatus(CommConstant.STATUS_NORMAL);
75
+        }
76
+        if (from.contains("card")){
77
+            // 因为targetId 是 personId ,需要查询出 userId
78
+            TaPerson person = taPersonMapper.getById(targetId);
79
+
80
+            QueryWrapper<TaPersonBuilding> personBuildingQueryWrapper = new QueryWrapper<>();
81
+            personBuildingQueryWrapper.eq("user_id",person.getUserId());
82
+            TaPersonBuilding personBuilding = taPersonBuildingMapper.selectOne(personBuildingQueryWrapper);
83
+            taSharePersonFrom.setBuildingId(personBuilding.getBuildingId());
84
+            sharePersonFromQueryWrapper.eq("building_id",personBuilding.getBuildingId());
85
+        }else if (from.contains("news")){
86
+            TaNews news = taNewsMapper.selectById(targetId);
87
+            taSharePersonFrom.setBuildingId(news.getBuildingId());
88
+            sharePersonFromQueryWrapper.eq("building_id",news.getBuildingId());
89
+        }else if (from.contains("building")){
90
+            taSharePersonFrom.setBuildingId(targetId);
91
+            sharePersonFromQueryWrapper.eq("building_id",targetId);
92
+        }
93
+        Integer isFirstTime = taSharePersonFromMapper.selectCount(sharePersonFromQueryWrapper);
94
+        if(isFirstTime>0){
95
+            taSharePersonFrom.setIsFirstTime(false);
96
+        }else {
97
+            taSharePersonFrom.setIsFirstTime(true);
98
+        }
99
+        taSharePersonFromMapper.insert(taSharePersonFrom);
100
+        return taSharePersonFrom;
101
+    }
20
 }
102
 }

+ 5
- 1
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java View File

62
             taBuildingDynamicQuery.eq("dynamic_id",id);
62
             taBuildingDynamicQuery.eq("dynamic_id",id);
63
             TaBuildingDynamic taBuildingDynamic = taBuildingDynamicMapper.selectOne(taBuildingDynamicQuery);
63
             TaBuildingDynamic taBuildingDynamic = taBuildingDynamicMapper.selectOne(taBuildingDynamicQuery);
64
             taBuildingDynamicMapper.updateById( taBuildingDynamic.setShareNum(taBuildingDynamic.getShareNum() == null ? 1:taBuildingDynamic.getShareNum()+1));
64
             taBuildingDynamicMapper.updateById( taBuildingDynamic.setShareNum(taBuildingDynamic.getShareNum() == null ? 1:taBuildingDynamic.getShareNum()+1));
65
-            return ResponseBean.success("成功");
65
+//            return ResponseBean.success("成功");
66
         }
66
         }
67
 
67
 
68
         QueryWrapper<TaShare> queryWrapper = new QueryWrapper<>();
68
         QueryWrapper<TaShare> queryWrapper = new QueryWrapper<>();
71
         queryWrapper.eq("tagert_type", typeOf);
71
         queryWrapper.eq("tagert_type", typeOf);
72
         List<TaShare> uvs = taShareMapper.selectList(queryWrapper);
72
         List<TaShare> uvs = taShareMapper.selectList(queryWrapper);
73
         if (null != uvs && uvs.size() > 0) {
73
         if (null != uvs && uvs.size() > 0) {
74
+            //更新分享为最新时间
75
+            TaShare taShare = new TaShare();
76
+            taShare.setCreateDate(LocalDateTime.now());
77
+            taShareMapper.update(taShare, queryWrapper);
74
             return ResponseBean.success("");
78
             return ResponseBean.success("");
75
         }
79
         }
76
 
80
 

+ 16
- 4
src/main/java/com/huiju/estateagents/service/impl/TdCityServiceImpl.java View File

45
      * @return
45
      * @return
46
      */
46
      */
47
     @Override
47
     @Override
48
-    public TdCity getLocationCity(String location) {
48
+    public TdCity getLocationCity(String location, Integer orgId) {
49
+        if (null == location) {
50
+            return tdCityMapper.getOrgDefaultCity(orgId);
51
+        }
52
+
49
         //获取高德地图的坐标
53
         //获取高德地图的坐标
50
         String amapString = CommConstant.AMAP_HTTP + "?location="+location+"&key=" + CommConstant.AMAP_KEY;
54
         String amapString = CommConstant.AMAP_HTTP + "?location="+location+"&key=" + CommConstant.AMAP_KEY;
51
         RestTemplate restTemplate = new RestTemplate();
55
         RestTemplate restTemplate = new RestTemplate();
60
             queryWrapper.eq("leveltype",2);
64
             queryWrapper.eq("leveltype",2);
61
             List<TdCity> tdCities = tdCityMapper.selectList(queryWrapper);
65
             List<TdCity> tdCities = tdCityMapper.selectList(queryWrapper);
62
             if (tdCities.size() > 0){
66
             if (tdCities.size() > 0){
63
-                return tdCities.get(0);
67
+                List<TdCity> cityList = selectWxCity(null, orgId);
68
+                Integer cityId = tdCities.get(0).getId();
69
+                for (TdCity tdCity : cityList){
70
+                    if (tdCity.getId().equals(cityId)){
71
+                        return tdCity;
72
+                    }
73
+                }
64
             }
74
             }
65
-            return null;
75
+//            return null;
66
         }
76
         }
67
-        return null;
77
+
78
+        // 没有匹配到则返回默认城市
79
+        return tdCityMapper.getOrgDefaultCity(orgId);
68
     }
80
     }
69
     
81
     
70
 }
82
 }

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TdWxDictServiceImpl.java View File

1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.entity.TdWxDict;
5
+import com.huiju.estateagents.mapper.TdWxDictMapper;
6
+import com.huiju.estateagents.service.ITdWxDictService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 微信字典表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-06
16
+ */
17
+@Service
18
+public class TdWxDictServiceImpl extends ServiceImpl<TdWxDictMapper, TdWxDict> implements ITdWxDictService {
19
+
20
+}

+ 143
- 0
src/main/java/com/huiju/estateagents/statistic/controller/TsPersonFromStatisticController.java View File

1
+package com.huiju.estateagents.statistic.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.statistic.entity.TsPersonFromStatistic;
9
+import com.huiju.estateagents.statistic.service.ITsPersonFromStatisticService;
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-01-04
22
+ */
23
+@RestController
24
+@RequestMapping("/")
25
+public class TsPersonFromStatisticController extends BaseController {
26
+
27
+    private final Logger logger = LoggerFactory.getLogger(TsPersonFromStatisticController.class);
28
+
29
+    @Autowired
30
+    public ITsPersonFromStatisticService iTsPersonFromStatisticService;
31
+
32
+
33
+    /**
34
+     * 分页查询列表
35
+     * @param pageNum
36
+     * @param pageSize
37
+     * @return
38
+     */
39
+    @RequestMapping(value="/tsPersonFromStatistic",method= RequestMethod.GET)
40
+    public ResponseBean tsPersonFromStatisticList(@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<TsPersonFromStatistic> pg = new Page<>(pageNum, pageSize);
46
+            QueryWrapper<TsPersonFromStatistic> queryWrapper = new QueryWrapper<>();
47
+            queryWrapper.orderByDesc("create_date");
48
+
49
+            IPage<TsPersonFromStatistic> result = iTsPersonFromStatisticService.page(pg, queryWrapper);
50
+            responseBean.addSuccess(result);
51
+        }catch (Exception e){
52
+            e.printStackTrace();
53
+            logger.error("tsPersonFromStatisticList -=- {}",e.toString());
54
+            responseBean.addError(e.getMessage());
55
+        }
56
+        return responseBean;
57
+    }
58
+
59
+    /**
60
+     * 保存对象
61
+     * @param tsPersonFromStatistic 实体对象
62
+     * @return
63
+     */
64
+    @RequestMapping(value="/tsPersonFromStatistic",method= RequestMethod.POST)
65
+    public ResponseBean tsPersonFromStatisticAdd(@RequestBody TsPersonFromStatistic tsPersonFromStatistic){
66
+        ResponseBean responseBean = new ResponseBean();
67
+        try {
68
+            if (iTsPersonFromStatisticService.save(tsPersonFromStatistic)){
69
+                responseBean.addSuccess(tsPersonFromStatistic);
70
+            }else {
71
+                responseBean.addError("fail");
72
+            }
73
+        }catch (Exception e){
74
+            e.printStackTrace();
75
+            logger.error("tsPersonFromStatisticAdd -=- {}",e.toString());
76
+            responseBean.addError(e.getMessage());
77
+        }
78
+        return responseBean;
79
+    }
80
+
81
+    /**
82
+     * 根据id删除对象
83
+     * @param id  实体ID
84
+     */
85
+    @ResponseBody
86
+    @RequestMapping(value="/tsPersonFromStatistic/{id}", method= RequestMethod.DELETE)
87
+    public ResponseBean tsPersonFromStatisticDelete(@PathVariable Integer id){
88
+        ResponseBean responseBean = new ResponseBean();
89
+        try {
90
+            if(iTsPersonFromStatisticService.removeById(id)){
91
+                responseBean.addSuccess("success");
92
+            }else {
93
+                responseBean.addError("fail");
94
+            }
95
+        }catch (Exception e){
96
+            e.printStackTrace();
97
+            logger.error("tsPersonFromStatisticDelete -=- {}",e.toString());
98
+            responseBean.addError(e.getMessage());
99
+        }
100
+        return responseBean;
101
+    }
102
+
103
+    /**
104
+     * 修改对象
105
+     * @param id  实体ID
106
+     * @param tsPersonFromStatistic 实体对象
107
+     * @return
108
+     */
109
+    @RequestMapping(value="/tsPersonFromStatistic/{id}",method= RequestMethod.PUT)
110
+    public ResponseBean tsPersonFromStatisticUpdate(@PathVariable Integer id,
111
+                                        @RequestBody TsPersonFromStatistic tsPersonFromStatistic){
112
+        ResponseBean responseBean = new ResponseBean();
113
+        try {
114
+            if (iTsPersonFromStatisticService.updateById(tsPersonFromStatistic)){
115
+                responseBean.addSuccess(tsPersonFromStatistic);
116
+            }else {
117
+                responseBean.addError("fail");
118
+            }
119
+        }catch (Exception e){
120
+            e.printStackTrace();
121
+            logger.error("tsPersonFromStatisticUpdate -=- {}",e.toString());
122
+            responseBean.addError(e.getMessage());
123
+        }
124
+        return responseBean;
125
+    }
126
+
127
+    /**
128
+     * 根据id查询对象
129
+     * @param id  实体ID
130
+     */
131
+    @RequestMapping(value="/tsPersonFromStatistic/{id}",method= RequestMethod.GET)
132
+    public ResponseBean tsPersonFromStatisticGet(@PathVariable Integer id){
133
+        ResponseBean responseBean = new ResponseBean();
134
+        try {
135
+            responseBean.addSuccess(iTsPersonFromStatisticService.getById(id));
136
+        }catch (Exception e){
137
+            e.printStackTrace();
138
+            logger.error("tsPersonFromStatisticDelete -=- {}",e.toString());
139
+            responseBean.addError(e.getMessage());
140
+        }
141
+        return responseBean;
142
+    }
143
+}

+ 160
- 0
src/main/java/com/huiju/estateagents/statistic/controller/TsUserBehaviorStatisticController.java View File

1
+package com.huiju.estateagents.statistic.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.statistic.entity.TsUserBehaviorStatistic;
9
+import com.huiju.estateagents.statistic.service.ITsUserBehaviorStatisticService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.format.annotation.DateTimeFormat;
14
+import org.springframework.web.bind.annotation.*;
15
+
16
+import javax.servlet.http.HttpServletRequest;
17
+import java.time.LocalDate;
18
+
19
+/**
20
+ * <p>
21
+    * 用户行为统计表  前端控制器
22
+    * </p>
23
+ *
24
+ * @author jobob
25
+ * @since 2020-01-13
26
+ */
27
+@RestController
28
+@RequestMapping("/api")
29
+public class TsUserBehaviorStatisticController extends BaseController {
30
+
31
+    private final Logger logger = LoggerFactory.getLogger(TsUserBehaviorStatisticController.class);
32
+
33
+    @Autowired
34
+    public ITsUserBehaviorStatisticService iTsUserBehaviorStatisticService;
35
+
36
+
37
+    /**
38
+     * 分页查询列表
39
+     * @param pageNum
40
+     * @param pageSize
41
+     * @return
42
+     */
43
+    @RequestMapping(value="/tsUserBehaviorStatistic",method= RequestMethod.GET)
44
+    public ResponseBean tsUserBehaviorStatisticList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
45
+                                                    @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
46
+        ResponseBean responseBean = new ResponseBean();
47
+        try {
48
+            //使用分页插件
49
+		    IPage<TsUserBehaviorStatistic> pg = new Page<>(pageNum, pageSize);
50
+            QueryWrapper<TsUserBehaviorStatistic> queryWrapper = new QueryWrapper<>();
51
+            queryWrapper.orderByDesc("create_date");
52
+
53
+            IPage<TsUserBehaviorStatistic> result = iTsUserBehaviorStatisticService.page(pg, queryWrapper);
54
+            responseBean.addSuccess(result);
55
+        }catch (Exception e){
56
+            e.printStackTrace();
57
+            logger.error("tsUserBehaviorStatisticList -=- {}",e.toString());
58
+            responseBean.addError(e.getMessage());
59
+        }
60
+        return responseBean;
61
+    }
62
+
63
+    /**
64
+     * 保存对象
65
+     * @param tsUserBehaviorStatistic 实体对象
66
+     * @return
67
+     */
68
+    @RequestMapping(value="/tsUserBehaviorStatistic",method= RequestMethod.POST)
69
+    public ResponseBean tsUserBehaviorStatisticAdd(@RequestBody TsUserBehaviorStatistic tsUserBehaviorStatistic){
70
+        ResponseBean responseBean = new ResponseBean();
71
+        try {
72
+            if (iTsUserBehaviorStatisticService.save(tsUserBehaviorStatistic)){
73
+                responseBean.addSuccess(tsUserBehaviorStatistic);
74
+            }else {
75
+                responseBean.addError("fail");
76
+            }
77
+        }catch (Exception e){
78
+            e.printStackTrace();
79
+            logger.error("tsUserBehaviorStatisticAdd -=- {}",e.toString());
80
+            responseBean.addError(e.getMessage());
81
+        }
82
+        return responseBean;
83
+    }
84
+
85
+    /**
86
+     * 根据id删除对象
87
+     * @param id  实体ID
88
+     */
89
+    @ResponseBody
90
+    @RequestMapping(value="/tsUserBehaviorStatistic/{id}", method= RequestMethod.DELETE)
91
+    public ResponseBean tsUserBehaviorStatisticDelete(@PathVariable Integer id){
92
+        ResponseBean responseBean = new ResponseBean();
93
+        try {
94
+            if(iTsUserBehaviorStatisticService.removeById(id)){
95
+                responseBean.addSuccess("success");
96
+            }else {
97
+                responseBean.addError("fail");
98
+            }
99
+        }catch (Exception e){
100
+            e.printStackTrace();
101
+            logger.error("tsUserBehaviorStatisticDelete -=- {}",e.toString());
102
+            responseBean.addError(e.getMessage());
103
+        }
104
+        return responseBean;
105
+    }
106
+
107
+    /**
108
+     * 修改对象
109
+     * @param id  实体ID
110
+     * @param tsUserBehaviorStatistic 实体对象
111
+     * @return
112
+     */
113
+    @RequestMapping(value="/tsUserBehaviorStatistic/{id}",method= RequestMethod.PUT)
114
+    public ResponseBean tsUserBehaviorStatisticUpdate(@PathVariable Integer id,
115
+                                        @RequestBody TsUserBehaviorStatistic tsUserBehaviorStatistic){
116
+        ResponseBean responseBean = new ResponseBean();
117
+        try {
118
+            if (iTsUserBehaviorStatisticService.updateById(tsUserBehaviorStatistic)){
119
+                responseBean.addSuccess(tsUserBehaviorStatistic);
120
+            }else {
121
+                responseBean.addError("fail");
122
+            }
123
+        }catch (Exception e){
124
+            e.printStackTrace();
125
+            logger.error("tsUserBehaviorStatisticUpdate -=- {}",e.toString());
126
+            responseBean.addError(e.getMessage());
127
+        }
128
+        return responseBean;
129
+    }
130
+
131
+    /**
132
+     * 根据id查询对象
133
+     * @param id  实体ID
134
+     */
135
+    @RequestMapping(value="/tsUserBehaviorStatistic/{id}",method= RequestMethod.GET)
136
+    public ResponseBean tsUserBehaviorStatisticGet(@PathVariable Integer id){
137
+        ResponseBean responseBean = new ResponseBean();
138
+        try {
139
+            responseBean.addSuccess(iTsUserBehaviorStatisticService.getById(id));
140
+        }catch (Exception e){
141
+            e.printStackTrace();
142
+            logger.error("tsUserBehaviorStatisticDelete -=- {}",e.toString());
143
+            responseBean.addError(e.getMessage());
144
+        }
145
+        return responseBean;
146
+    }
147
+
148
+    /**
149
+     * 用户行为
150
+     * @return
151
+     */
152
+    @GetMapping(value = "/admin/tsUserBehavior")
153
+    public ResponseBean selectUserBehavior(
154
+                                           @RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
155
+                                           @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)  LocalDate endDate,
156
+                                           @RequestParam(value = "buildingId", required = false) String buildingId,
157
+                                           HttpServletRequest request) {
158
+        return iTsUserBehaviorStatisticService.selectUserBehavior(getOrgId(request), startDate, endDate, buildingId);
159
+    }
160
+}

+ 69
- 0
src/main/java/com/huiju/estateagents/statistic/entity/TsPersonFromStatistic.java View File

1
+package com.huiju.estateagents.statistic.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+import java.io.Serializable;
11
+import java.time.LocalDateTime;
12
+
13
+/**
14
+ * <p>
15
+ * 用户来源统计表 
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2020-01-04
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+public class TsPersonFromStatistic implements Serializable {
25
+
26
+    private static final long serialVersionUID = 1L;
27
+
28
+    /**
29
+     * ID
30
+     */
31
+    @TableId(value = "person_from_statistic_id", type = IdType.AUTO)
32
+    private Integer personFromStatisticId;
33
+
34
+    /**
35
+     * 场景类型
36
+     */
37
+    private String sceneType;
38
+
39
+    /**
40
+     * 事件类型
41
+     */
42
+    private String eventType;
43
+
44
+    /**
45
+     * 来源数量
46
+     */
47
+    private Integer fromNum;
48
+
49
+    /**
50
+     * 公司id
51
+     */
52
+    private Integer orgId;
53
+
54
+    /**
55
+     * 创建时间
56
+     */
57
+    private LocalDateTime createDate;
58
+
59
+    /**
60
+     * 注册数量
61
+     */
62
+    private Integer registeredNum;
63
+
64
+    /**
65
+     * 时间
66
+     */
67
+    @TableField(exist = false)
68
+    private String createTime;
69
+}

+ 64
- 0
src/main/java/com/huiju/estateagents/statistic/entity/TsUserBehaviorStatistic.java View File

1
+package com.huiju.estateagents.statistic.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 用户行为统计表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2020-01-13
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TsUserBehaviorStatistic implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 用户行为统计主键
29
+     */
30
+    @TableId(value = "behavior_id", type = IdType.AUTO)
31
+    private Integer behaviorId;
32
+
33
+    /**
34
+     * 公司id
35
+     */
36
+    private Integer orgId;
37
+
38
+    /**
39
+     * 楼盘id
40
+     */
41
+    private String buildingId;
42
+
43
+    /**
44
+     * 事件名称
45
+     */
46
+    private String eventName;
47
+
48
+    /**
49
+     * 事件类型
50
+     */
51
+    private String eventType;
52
+
53
+    /**
54
+     * 行为数量统计
55
+     */
56
+    private Integer behaviorNum;
57
+
58
+    /**
59
+     * 创建时间
60
+     */
61
+    private LocalDateTime createDate;
62
+
63
+
64
+}

+ 30
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TsPersonFromStatisticMapper.java View File

1
+package com.huiju.estateagents.statistic.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+import java.time.LocalDate;
8
+import java.util.List;
9
+
10
+/**
11
+ * <p>
12
+ * 用户来源统计表  Mapper 接口
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2020-01-04
17
+ */
18
+@Mapper
19
+public interface TsPersonFromStatisticMapper extends BaseMapper<TsPersonFromStatistic> {
20
+
21
+    void insertStatisticList(List<TsPersonFromStatistic> list);
22
+
23
+    List<TsPersonFromStatistic> selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate);
24
+
25
+    List<TsPersonFromStatistic> selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate);
26
+
27
+    List<TsPersonFromStatistic> selectPersonFromGroupByData(Integer orgId, LocalDate startDate, LocalDate endDate);
28
+
29
+    void deleteByData();
30
+}

+ 28
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TsUserBehaviorStatisticMapper.java View File

1
+package com.huiju.estateagents.statistic.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.po.PersonPO;
5
+import com.huiju.estateagents.statistic.entity.TsUserBehaviorStatistic;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+import java.time.LocalDate;
10
+import java.util.List;
11
+
12
+/**
13
+ * <p>
14
+ * 用户行为统计表  Mapper 接口
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2020-01-13
19
+ */
20
+@Mapper
21
+public interface TsUserBehaviorStatisticMapper extends BaseMapper<TsUserBehaviorStatistic> {
22
+
23
+    List<TsUserBehaviorStatistic> seleUserBehaviorList();
24
+
25
+    int deleteByDate();
26
+
27
+    List<PersonPO>  seleBehaviorListByDate(@Param("orgId") Integer orgId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId);
28
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/statistic/service/ITsPersonFromStatisticService.java View File

1
+package com.huiju.estateagents.statistic.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5
+
6
+/**
7
+ * <p>
8
+ * 用户来源统计表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2020-01-04
13
+ */
14
+public interface ITsPersonFromStatisticService extends IService<TsPersonFromStatistic> {
15
+
16
+}

+ 30
- 0
src/main/java/com/huiju/estateagents/statistic/service/ITsUserBehaviorStatisticService.java View File

1
+package com.huiju.estateagents.statistic.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.statistic.entity.TsUserBehaviorStatistic;
6
+
7
+import java.time.LocalDate;
8
+
9
+/**
10
+ * <p>
11
+ * 用户行为统计表  服务类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-13
16
+ */
17
+public interface ITsUserBehaviorStatisticService extends IService<TsUserBehaviorStatistic> {
18
+
19
+    void userBehaviorStatustic();
20
+
21
+    /**
22
+     * 按日期获取统计列表
23
+     * @param orgId
24
+     * @param startDate
25
+     * @param endDate
26
+     * @param buildingId
27
+     * @return
28
+     */
29
+    ResponseBean selectUserBehavior(Integer orgId, LocalDate startDate, LocalDate endDate, String buildingId);
30
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/statistic/service/impl/TsPersonFromStatisticServiceImpl.java View File

1
+package com.huiju.estateagents.statistic.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
6
+import com.huiju.estateagents.statistic.service.ITsPersonFromStatisticService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 用户来源统计表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-04
16
+ */
17
+@Service
18
+public class TsPersonFromStatisticServiceImpl extends ServiceImpl<TsPersonFromStatisticMapper, TsPersonFromStatistic> implements ITsPersonFromStatisticService {
19
+
20
+}

+ 66
- 0
src/main/java/com/huiju/estateagents/statistic/service/impl/TsUserBehaviorStatisticServiceImpl.java View File

1
+package com.huiju.estateagents.statistic.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.entity.TdBizEvent;
7
+import com.huiju.estateagents.entity.TdBizEventType;
8
+import com.huiju.estateagents.mapper.TdBizEventTypeMapper;
9
+import com.huiju.estateagents.po.PersonPO;
10
+import com.huiju.estateagents.statistic.entity.TsUserBehaviorStatistic;
11
+import com.huiju.estateagents.statistic.mapper.TsUserBehaviorStatisticMapper;
12
+import com.huiju.estateagents.statistic.service.ITsUserBehaviorStatisticService;
13
+import org.springframework.beans.factory.annotation.Autowired;
14
+import org.springframework.stereotype.Service;
15
+
16
+import java.time.LocalDate;
17
+import java.util.HashMap;
18
+import java.util.List;
19
+import java.util.Map;
20
+
21
+/**
22
+ * <p>
23
+ * 用户行为统计表  服务实现类
24
+ * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2020-01-13
28
+ */
29
+@Service
30
+public class TsUserBehaviorStatisticServiceImpl extends ServiceImpl<TsUserBehaviorStatisticMapper, TsUserBehaviorStatistic> implements ITsUserBehaviorStatisticService {
31
+
32
+    @Autowired
33
+    private TsUserBehaviorStatisticMapper tsUserBehaviorStatisticMapper;
34
+
35
+    @Autowired
36
+    private TdBizEventTypeMapper tdBizEventTypeMapper;
37
+
38
+    @Override
39
+    public void userBehaviorStatustic() {
40
+        //查询当天信息
41
+        List<TsUserBehaviorStatistic> list = tsUserBehaviorStatisticMapper.seleUserBehaviorList();
42
+        //删除当天信息
43
+        tsUserBehaviorStatisticMapper.deleteByDate();
44
+        //批量插入信息
45
+        this.saveBatch(list);
46
+    }
47
+
48
+    /**
49
+     * 按日期获取统计列表
50
+     *
51
+     * @param orgId
52
+     * @param startDate
53
+     * @param endDate
54
+     * @param buildingId
55
+     * @return
56
+     */
57
+    @Override
58
+    public ResponseBean selectUserBehavior(Integer orgId, LocalDate startDate, LocalDate endDate, String buildingId) {
59
+        ResponseBean responseBean = new ResponseBean();
60
+        List<PersonPO> tsUserBehaviorStatistics = tsUserBehaviorStatisticMapper.seleBehaviorListByDate(orgId, startDate, endDate, buildingId);
61
+        Map<String, Object> map = new HashMap<>();
62
+        map.put("selectUserBehavior", tsUserBehaviorStatistics);
63
+        responseBean.addSuccess(map);
64
+        return responseBean;
65
+    }
66
+}

src/main/resources/application-test.yml → src/main/resources/application-blue.yml View File

4
   application:
4
   application:
5
     name: estateagents
5
     name: estateagents
6
   datasource:
6
   datasource:
7
-    username: estateagents
8
-    password: estateagents
9
-    url: jdbc:mysql://47.101.36.130:3306/estateagents_3.5.1_test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
7
+    username: root
8
+    password: LUfZGvh7j1^qA*2c
9
+    url: jdbc:mysql://123.57.65.31:3306/estateagents_test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
10
     driver-class-name: com.mysql.cj.jdbc.Driver
10
     driver-class-name: com.mysql.cj.jdbc.Driver
11
     initial-size: 10 # 初始化连接数
11
     initial-size: 10 # 初始化连接数
12
     max-active: 20 # 最大连接数
12
     max-active: 20 # 最大连接数
41
     id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
41
     id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
42
     keywords: 6
42
     keywords: 6
43
 ali:
43
 ali:
44
-  accessKeyId: LTAIkc75dpkJw8Lb
45
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
44
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
45
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
46
   oss:
46
   oss:
47
     endpoint: oss-cn-shanghai.aliyuncs.com
47
     endpoint: oss-cn-shanghai.aliyuncs.com
48
-    bucketName: estateagents
49
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
48
+    bucketName: njcj
49
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
50
 
50
 
51
 # 手机短信服务
51
 # 手机短信服务
52
 sms:
52
 sms:

+ 5
- 5
src/main/resources/application-dev.yml View File

6
   datasource:
6
   datasource:
7
     username: estateagents
7
     username: estateagents
8
     password: estateagents
8
     password: estateagents
9
-    url: jdbc:mysql://47.101.36.130:3306/estateagents?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
9
+    url: jdbc:mysql://47.101.36.130:3306/estateagents_3.5.1_test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
10
     driver-class-name: com.mysql.cj.jdbc.Driver
10
     driver-class-name: com.mysql.cj.jdbc.Driver
11
     initial-size: 10 # 初始化连接数
11
     initial-size: 10 # 初始化连接数
12
     max-active: 20 # 最大连接数
12
     max-active: 20 # 最大连接数
41
       id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
41
       id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
42
       keywords: 6
42
       keywords: 6
43
 ali:
43
 ali:
44
-  accessKeyId: LTAIkc75dpkJw8Lb
45
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
44
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
45
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
46
   oss:
46
   oss:
47
     endpoint: oss-cn-shanghai.aliyuncs.com
47
     endpoint: oss-cn-shanghai.aliyuncs.com
48
-    bucketName: estateagents
49
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
48
+    bucketName: njcj
49
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
50
 
50
 
51
 # 手机短信服务
51
 # 手机短信服务
52
 sms:
52
 sms:

+ 74
- 0
src/main/resources/application-green.yml View File

1
+server:
2
+  port: 9090
3
+spring:
4
+  application:
5
+    name: estateagents
6
+  datasource:
7
+    username: root
8
+    password: LUfZGvh7j1^qA*2c
9
+    url: jdbc:mysql://123.57.65.31:3306/estateagents_test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
10
+    driver-class-name: com.mysql.cj.jdbc.Driver
11
+    initial-size: 10 # 初始化连接数
12
+    max-active: 20 # 最大连接数
13
+    min-idle: 8 # 最小空闲数
14
+    max-idle: 8 # 最大空闲数
15
+  servlet:
16
+    multipart:
17
+      max-file-size: 10MB
18
+      max-request-size: 50MB
19
+
20
+##mybatis-plus
21
+mybatis-plus:
22
+  configuration:
23
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
24
+    call-setters-on-nulls: true
25
+  mapper-locations: classpath:mapper/**/*.xml
26
+wx:
27
+  miniapp:
28
+    appid: wxd6f47a9bb3052175
29
+    secret: 28f33b6bbc0f778c11a0bb234a7d6d4e
30
+    token:
31
+    aesKey:
32
+    msgDataFormat: JSON
33
+  tpls:
34
+  - name: notice
35
+    id: 6hWKexNlaVpAOvrcWxHHQ_Duz1gRIkg2-Clsktp2-Os
36
+    keywords: 4
37
+  - name: newCustomer
38
+    id: WiBYjqkE9KvwDv1WSq5vnuv5A6FSaOB8ETFcrVmtCEI
39
+    keywords: 4
40
+  - name: mainbiz
41
+    id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
42
+    keywords: 6
43
+ali:
44
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
45
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
46
+  oss:
47
+    endpoint: oss-cn-shanghai.aliyuncs.com
48
+    bucketName: njcj
49
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
50
+
51
+# 手机短信服务
52
+sms:
53
+  url: http://101.200.84.17:8081/sms
54
+  method: POST
55
+  contentType: "application/json;charset=UTF-8"
56
+  template:
57
+    code:
58
+    tel:
59
+    params:
60
+
61
+  # 以下为各模板 code
62
+  # 验证码
63
+  captcha:
64
+    # 模板 code
65
+    code: "0301"
66
+    # 有效时间 秒
67
+    expire: 120
68
+    # 验证码长度
69
+    size: 4
70
+    # 短信签名
71
+    sign: 营销云
72
+
73
+  visitor:
74
+    code: "0501"

+ 4
- 4
src/main/resources/application-gzysd.yml View File

118
 
118
 
119
       keywords: 6
119
       keywords: 6
120
 ali:
120
 ali:
121
-  accessKeyId: LTAIkc75dpkJw8Lb
122
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
121
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
122
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
123
   oss:
123
   oss:
124
     endpoint: oss-cn-shanghai.aliyuncs.com
124
     endpoint: oss-cn-shanghai.aliyuncs.com
125
-    bucketName: estateagents
126
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
125
+    bucketName: njcj
126
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
127
 
127
 
128
 
128
 
129
 >>>>>>> ac499f2ddc4d4469098e59fff8bbe310779f7be3
129
 >>>>>>> ac499f2ddc4d4469098e59fff8bbe310779f7be3

+ 4
- 4
src/main/resources/application-hj.yml View File

42
 
42
 
43
       keywords: 6
43
       keywords: 6
44
 ali:
44
 ali:
45
-  accessKeyId: LTAIkc75dpkJw8Lb
46
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
45
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
46
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
47
   oss:
47
   oss:
48
     endpoint: oss-cn-shanghai.aliyuncs.com
48
     endpoint: oss-cn-shanghai.aliyuncs.com
49
-    bucketName: estateagents
50
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
49
+    bucketName: njcj
50
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
51
 
51
 
52
 
52
 

+ 4
- 4
src/main/resources/application-jj.yml View File

42
 
42
 
43
       keywords: 6
43
       keywords: 6
44
 ali:
44
 ali:
45
-  accessKeyId: LTAIkc75dpkJw8Lb
46
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
45
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
46
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
47
   oss:
47
   oss:
48
     endpoint: oss-cn-shanghai.aliyuncs.com
48
     endpoint: oss-cn-shanghai.aliyuncs.com
49
-    bucketName: estateagents
50
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
49
+    bucketName: njcj
50
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
51
 
51
 
52
 
52
 

+ 4
- 4
src/main/resources/application-nj.yml View File

42
 
42
 
43
       keywords: 6
43
       keywords: 6
44
 ali:
44
 ali:
45
-  accessKeyId: LTAIkc75dpkJw8Lb
46
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
45
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
46
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
47
   oss:
47
   oss:
48
     endpoint: oss-cn-shanghai.aliyuncs.com
48
     endpoint: oss-cn-shanghai.aliyuncs.com
49
-    bucketName: estateagents
50
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
49
+    bucketName: njcj
50
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
51
 
51
 
52
 # 手机短信服务
52
 # 手机短信服务
53
 sms:
53
 sms:

src/main/resources/application-prod.yml → src/main/resources/application-prod-blue.yml View File

4
   application:
4
   application:
5
     name: estateagents
5
     name: estateagents
6
   datasource:
6
   datasource:
7
-    username: estateagents
8
-    password: DQ@0lW##kBb2+-jPZ
9
-    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/estateagents3.5?useUnicode=true&serverTimezone=CTT&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
7
+    username: root
8
+    password: HZjVK5O%zTdP0#8AhGcF@03!eZsGbqdO
9
+    url: jdbc:mysql://rm-2zez52se79qgg9649po.mysql.rds.aliyuncs.com:3306/estateagents?useUnicode=true&serverTimezone=CTT&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
10
     driver-class-name: com.mysql.cj.jdbc.Driver
10
     driver-class-name: com.mysql.cj.jdbc.Driver
11
     initial-size: 10 # 初始化连接数
11
     initial-size: 10 # 初始化连接数
12
     max-active: 20 # 最大连接数
12
     max-active: 20 # 最大连接数
40
       id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
40
       id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
41
       keywords: 6
41
       keywords: 6
42
 ali:
42
 ali:
43
-  accessKeyId: LTAIkc75dpkJw8Lb
44
-  accessKeySecret: v4bvXCaix6vSDTCFfwSAdqV53iFEQw
43
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
44
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
45
   oss:
45
   oss:
46
     endpoint: oss-cn-shanghai.aliyuncs.com
46
     endpoint: oss-cn-shanghai.aliyuncs.com
47
-    bucketName: estateagents
48
-    bucketURL: https://estateagents.oss-cn-shanghai.aliyuncs.com
47
+    bucketName: njcj
48
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
49
 
49
 
50
 # 手机短信服务
50
 # 手机短信服务
51
 sms:
51
 sms:

+ 79
- 0
src/main/resources/application-prod-green.yml View File

1
+server:
2
+  port: 9567
3
+spring:
4
+  application:
5
+    name: estateagents
6
+  datasource:
7
+    username: root
8
+    password: HZjVK5O%zTdP0#8AhGcF@03!eZsGbqdO
9
+    url: jdbc:mysql://rm-2zez52se79qgg9649po.mysql.rds.aliyuncs.com:3306/estateagents?useUnicode=true&serverTimezone=CTT&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull
10
+    driver-class-name: com.mysql.cj.jdbc.Driver
11
+    initial-size: 10 # 初始化连接数
12
+    max-active: 20 # 最大连接数
13
+    min-idle: 8 # 最小空闲数
14
+    max-idle: 8 # 最大空闲数
15
+  servlet:
16
+    multipart:
17
+      max-file-size: 10MB
18
+      max-request-size: 50MB
19
+
20
+##mybatis-plus
21
+mybatis-plus:
22
+  configuration:
23
+    call-setters-on-nulls: true
24
+  mapper-locations: classpath:mapper/**/*.xml
25
+wx:
26
+  miniapp:
27
+    appid: wxd6f47a9bb3052175
28
+    secret: 28f33b6bbc0f778c11a0bb234a7d6d4e
29
+    token:
30
+    aesKey:
31
+    msgDataFormat: JSON
32
+  tpls:
33
+    - name: notice
34
+      id: 6hWKexNlaVpAOvrcWxHHQ_Duz1gRIkg2-Clsktp2-Os
35
+      keywords: 4
36
+    - name: newCustomer
37
+      id: WiBYjqkE9KvwDv1WSq5vnuv5A6FSaOB8ETFcrVmtCEI
38
+      keywords: 4
39
+    - name: mainbiz
40
+      id: WiBYjqkE9KvwDv1WSq5vniGU4P0gvwlat-5ENYKpfxg
41
+      keywords: 6
42
+ali:
43
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
44
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
45
+  oss:
46
+    endpoint: oss-cn-shanghai.aliyuncs.com
47
+    bucketName: njcj
48
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
49
+
50
+# 手机短信服务
51
+sms:
52
+  # 先使用外网地址, 后期使用内网地址
53
+  url: http://101.200.84.17:8081/sms
54
+  method: POST
55
+  contentType: "application/json;charset=UTF-8"
56
+  template:
57
+    code:
58
+    tel:
59
+    params:
60
+
61
+  # 以下为各模板 code
62
+  # 验证码
63
+  captcha:
64
+    # 模板 code
65
+    code: "0301"
66
+    # 有效时间 秒
67
+    expire: 120
68
+    # 验证码长度
69
+    size: 4
70
+    # 短信签名
71
+    sign: AI智慧案场
72
+
73
+  visitor:
74
+    code: "0501"
75
+
76
+#日志配置
77
+logging:
78
+  config: classpath:log/logback-spring.xml
79
+  debug: true

+ 0
- 0
src/main/resources/application-rc.yml View File


Some files were not shown because too many files changed in this diff