Kaynağa Gözat

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

张延森 5 yıl önce
ebeveyn
işleme
428d47cca5
63 değiştirilmiş dosya ile 1457 ekleme ve 118 silme
  1. 20
    0
      src/main/java/com/huiju/estateagents/base/BaseController.java
  2. 74
    22
      src/main/java/com/huiju/estateagents/center/sysUser/controller/SysUserController.java
  3. 34
    4
      src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java
  4. 12
    0
      src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java
  5. 1
    1
      src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java
  6. 2
    2
      src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java
  7. 20
    4
      src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java
  8. 239
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/controller/SysUserChannelController.java
  9. 36
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/entity/TaChannelProxy.java
  10. 12
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/mapper/TaChannelProxyMapper.java
  11. 10
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/service/ITaChannelProxyService.java
  12. 38
    0
      src/main/java/com/huiju/estateagents/channel/sysChannel/service/impl/TaChannelProxyServiceImpl.java
  13. 14
    0
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  14. 10
    0
      src/main/java/com/huiju/estateagents/controller/StatisticalController.java
  15. 2
    2
      src/main/java/com/huiju/estateagents/controller/TaMiniappController.java
  16. 5
    2
      src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java
  17. 13
    8
      src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java
  18. 2
    0
      src/main/java/com/huiju/estateagents/controller/TdReportController.java
  19. 143
    0
      src/main/java/com/huiju/estateagents/controller/TdWxDictController.java
  20. 18
    0
      src/main/java/com/huiju/estateagents/drainage/controller/TaDrainageController.java
  21. 2
    1
      src/main/java/com/huiju/estateagents/drainage/entity/TaDrainage.java
  22. 15
    0
      src/main/java/com/huiju/estateagents/entity/TaBuilding.java
  23. 49
    0
      src/main/java/com/huiju/estateagents/entity/TaChannelAppRelation.java
  24. 6
    0
      src/main/java/com/huiju/estateagents/entity/TaPerson.java
  25. 5
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonFromRecord.java
  26. 45
    0
      src/main/java/com/huiju/estateagents/entity/TdWxDict.java
  27. 1
    0
      src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java
  28. 17
    10
      src/main/java/com/huiju/estateagents/job/CustomerStatisticTimeJob.java
  29. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaChannelAppRelationMapper.java
  30. 4
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonFromRecordMapper.java
  31. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java
  32. 1
    1
      src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java
  33. 2
    2
      src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java
  34. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TdWxDictMapper.java
  35. 9
    0
      src/main/java/com/huiju/estateagents/service/IStatisticalService.java
  36. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaChannelAppRelationService.java
  37. 1
    1
      src/main/java/com/huiju/estateagents/service/ITaMiniappService.java
  38. 5
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonFromRecordService.java
  39. 1
    1
      src/main/java/com/huiju/estateagents/service/ITaPersonService.java
  40. 3
    3
      src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java
  41. 16
    0
      src/main/java/com/huiju/estateagents/service/ITdWxDictService.java
  42. 19
    0
      src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java
  43. 4
    1
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java
  44. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TaChannelAppRelationServiceImpl.java
  45. 33
    1
      src/main/java/com/huiju/estateagents/service/impl/TaMiniappServiceImpl.java
  46. 15
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPersonFromRecordServiceImpl.java
  47. 2
    2
      src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java
  48. 7
    45
      src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java
  49. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TdWxDictServiceImpl.java
  50. 143
    0
      src/main/java/com/huiju/estateagents/statistic/controller/TsPersonFromStatisticController.java
  51. 62
    0
      src/main/java/com/huiju/estateagents/statistic/entity/TsPersonFromStatistic.java
  52. 24
    0
      src/main/java/com/huiju/estateagents/statistic/mapper/TsPersonFromStatisticMapper.java
  53. 16
    0
      src/main/java/com/huiju/estateagents/statistic/service/ITsPersonFromStatisticService.java
  54. 20
    0
      src/main/java/com/huiju/estateagents/statistic/service/impl/TsPersonFromStatisticServiceImpl.java
  55. 5
    0
      src/main/resources/mapper/TaChannelAppRelationMapper.xml
  56. 8
    0
      src/main/resources/mapper/TaChannelProxyMapper.xml
  57. 19
    0
      src/main/resources/mapper/TaPersonFromRecordMapper.xml
  58. 19
    0
      src/main/resources/mapper/TaPersonMapper.xml
  59. 12
    3
      src/main/resources/mapper/TaPersonVisitRecordMapper.xml
  60. 14
    1
      src/main/resources/mapper/TaRecommendCustomerMapper.xml
  61. 8
    1
      src/main/resources/mapper/TaUserMapper.xml
  62. 5
    0
      src/main/resources/mapper/TdWxDictMapper.xml
  63. 25
    0
      src/main/resources/mapper/statistic/TsPersonFromStatisticMapper.xml

+ 20
- 0
src/main/java/com/huiju/estateagents/base/BaseController.java Dosyayı Görüntüle

@@ -39,6 +39,26 @@ public class BaseController {
39 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 62
 	public String getOpenId(HttpServletRequest request){
43 63
 
44 64
 		Map map = JWTUtils.getUserIdAndOrgId(request);

+ 74
- 22
src/main/java/com/huiju/estateagents/center/sysUser/controller/SysUserController.java Dosyayı Görüntüle

@@ -10,6 +10,10 @@ import com.huiju.estateagents.center.sysUser.entity.SysToken;
10 10
 import com.huiju.estateagents.center.sysUser.entity.SysUser;
11 11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
12 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 17
 import com.huiju.estateagents.common.CommConstant;
14 18
 import com.huiju.estateagents.common.JWTUtils;
15 19
 import com.huiju.estateagents.common.MD5Utils;
@@ -44,6 +48,12 @@ public class SysUserController extends BaseController {
44 48
     @Autowired
45 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 59
      * @param pageNum
@@ -162,13 +172,14 @@ public class SysUserController extends BaseController {
162 172
      */
163 173
     @RequestMapping(value="/center/current",method=RequestMethod.GET)
164 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 185
     @PostMapping("/center/signin")
@@ -177,34 +188,75 @@ public class SysUserController extends BaseController {
177 188
         if (params == null) {
178 189
             return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
179 190
         }
180
-        
191
+
192
+        QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
181 193
         String userName = params.getString("userName");
182
-        String userPassword = params.getString("password");
183
-        
194
+
195
+        taChannelProxyQueryWrapper.eq("user_name", userName).or().eq("channel_tel", userName);
196
+
184 197
         //验证用户名密码是否正确
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) {
198
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getOne(taChannelProxyQueryWrapper);
199
+        String defaultPsw = MD5Utils.md5("abc@123");
200
+        if (taChannelProxy == null || !defaultPsw.equals(params.getString("password"))) {
190 201
             return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
191 202
         }
192
-        
193
-        if (sysUser.getStatus() != CommConstant.STATUS_NORMAL) {
194
-            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
203
+
204
+        //校验是否过期且是否停用
205
+        if (LocalDateTime.now().isAfter(taChannelProxy.getExpireDate()) || taChannelProxy.getStatus() == 0){
206
+            return ResponseBean.error("当前后台服务已到期,请联系管理员", ResponseBean.ERROR_ILLEGAL_PARAMS);
195 207
         }
196
-        
197
-        String token = JWTUtils.newToken(sysUser.getUserName());
198
-    
208
+
209
+        Map map = new HashMap();
210
+        map.put("userName", StringUtils.isEmpty(taChannelProxy.getUserName()) ? taChannelProxy.getChannelTel() : taChannelProxy.getUserName());
211
+        map.put("channelId",taChannelProxy.getChannelId().toString());
212
+        String token = JWTUtils.newTokenByMap(map);
213
+
199 214
         //保存token
200 215
         sysTokenService.saveToken(token);
201 216
         
202 217
         Map<String, Object> result = new HashMap<>();
203 218
         result.put("token", token);
204
-        result.put("user", sysUser);
219
+        result.put("user", taChannelProxy);
205 220
         
206 221
         return ResponseBean.success(result);
207 222
     }
223
+
224
+    @PostMapping("/center/changePassword")
225
+    public ResponseBean changePassword(@RequestBody String paramStr) {
226
+        JSONObject params = JSONObject.parseObject(paramStr);
227
+        if (params == null) {
228
+            return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
229
+        }
230
+        String loginPassword = params.get("loginPassword").toString();
231
+        String newPassword = params.get("newPassword").toString();
232
+        String confirmPassword = params.get("confirmPassword").toString();
233
+
234
+        //校验密码
235
+        QueryWrapper<TaUser> taUserQueryWrapper = new QueryWrapper<>();
236
+        taUserQueryWrapper.eq("user_id", params.get("userId"));
237
+        TaUser taUser = iTaUserService.getOne(taUserQueryWrapper);
238
+
239
+        if (!taUser.getLoginPassword().equals(MD5Utils.md5(MD5Utils.md5(loginPassword)))){
240
+            return ResponseBean.error("旧密码错误,请重新输入", ResponseBean.ERROR_UNAVAILABLE);
241
+        };
242
+
243
+        if (StringUtils.isEmpty(newPassword) || StringUtils.isEmpty(confirmPassword)){
244
+            return ResponseBean.error("请输入新密码", ResponseBean.ERROR_UNAVAILABLE);
245
+        }
246
+
247
+        if (!newPassword.equals(confirmPassword)){
248
+            return ResponseBean.error("两次密码不一致,请确认重新输入", ResponseBean.ERROR_UNAVAILABLE);
249
+        }
250
+
251
+        //重置密码
252
+        QueryWrapper<TaUser> updateWrapper = new QueryWrapper<>();
253
+        TaUser user = new TaUser();
254
+        user.setLoginPassword(MD5Utils.md5(MD5Utils.md5(newPassword)));
255
+        updateWrapper.eq("user_id", params.get("userId"));
256
+        iTaUserService.update(user, updateWrapper);
257
+
258
+        return ResponseBean.success("设置成功");
259
+    }
208 260
     
209 261
     @PostMapping("/center/signout")
210 262
     public ResponseBean signout(HttpServletRequest request) {

+ 34
- 4
src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java Dosyayı Görüntüle

@@ -96,12 +96,41 @@ public class TaUserController extends BaseController {
96 96
      */
97 97
     @RequestMapping(value="/center/taUser",method= RequestMethod.GET)
98 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 100
         ResponseBean responseBean = new ResponseBean();
101
+        String userName = getChannelUserName(request);
102
+        Integer channelId = null;
103
+        if (!"admin".equals(userName)){
104
+            channelId = getChannelId(request);
105
+        }
106
+
101 107
         try {
102 108
             //使用分页插件
103 109
 		    IPage pg = new Page<>(pageNum, pageSize);
104
-            IPage<Map<String,Object>> result = iTaUserService.getPageList(pg);
110
+            IPage<Map<String,Object>> result = iTaUserService.getPageList(pg, channelId);
111
+            responseBean.addSuccess(result);
112
+        }catch (Exception e){
113
+            e.printStackTrace();
114
+            logger.error("taUserList -=- {}",e.toString());
115
+            responseBean.addError(e.getMessage());
116
+        }
117
+        return responseBean;
118
+    }
119
+
120
+    /**
121
+     * 分页查询列表
122
+     * @param pageNum
123
+     * @param pageSize
124
+     * @return
125
+     */
126
+    @RequestMapping(value="/channel/taUser",method= RequestMethod.GET)
127
+    public ResponseBean taUserChannelList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
128
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
129
+        ResponseBean responseBean = new ResponseBean();
130
+        try {
131
+            //使用分页插件
132
+            IPage pg = new Page<>(pageNum, pageSize);
133
+            IPage<Map<String,Object>> result = iTaUserService.getPageList(pg, null);
105 134
             responseBean.addSuccess(result);
106 135
         }catch (Exception e){
107 136
             e.printStackTrace();
@@ -117,10 +146,11 @@ public class TaUserController extends BaseController {
117 146
      * @return
118 147
      */
119 148
     @RequestMapping(value="/center/taUser",method= RequestMethod.POST)
120
-    public ResponseBean taUserAdd(@RequestBody TaUser taUser){
149
+    public ResponseBean taUserAdd(@RequestBody TaUser taUser, HttpServletRequest request){
121 150
         ResponseBean responseBean = new ResponseBean();
151
+        Integer channelId = getChannelId(request);
122 152
         try {
123
-            responseBean.addSuccess(iTaUserService.newUserAndOrg(taUser));
153
+            responseBean.addSuccess(iTaUserService.newUserAndOrg(taUser, channelId));
124 154
         }catch (Exception e){
125 155
             e.printStackTrace();
126 156
             logger.error("taUserAdd -=- {}",e.toString());

+ 12
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java Dosyayı Görüntüle

@@ -201,4 +201,16 @@ public class TaUser implements Serializable {
201 201
 
202 202
     @TableField(exist = false)
203 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 Dosyayı Görüntüle

@@ -22,7 +22,7 @@ import java.util.Map;
22 22
 @Mapper
23 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 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 Dosyayı Görüntüle

@@ -20,9 +20,9 @@ import java.util.Map;
20 20
  */
21 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 27
     TaUser getInfoWithOrg(Integer id);
28 28
 

+ 20
- 4
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java Dosyayı Görüntüle

@@ -14,6 +14,8 @@ import com.huiju.estateagents.center.taUser.mapper.TaTagUserMapper;
14 14
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
15 15
 import com.huiju.estateagents.center.taUser.mapper.TaUserRoleMapper;
16 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 19
 import com.huiju.estateagents.common.CommConstant;
18 20
 import com.huiju.estateagents.common.MD5Utils;
19 21
 import com.huiju.estateagents.common.StringUtils;
@@ -21,11 +23,13 @@ import com.huiju.estateagents.entity.*;
21 23
 import com.huiju.estateagents.mapper.*;
22 24
 import com.huiju.estateagents.service.*;
23 25
 import org.apache.commons.collections.CollectionUtils;
26
+import org.apache.commons.collections.map.HashedMap;
24 27
 import org.springframework.beans.factory.annotation.Autowired;
25 28
 import org.springframework.stereotype.Service;
26 29
 
27 30
 import java.time.LocalDateTime;
28 31
 import java.util.ArrayList;
32
+import java.util.Iterator;
29 33
 import java.util.List;
30 34
 import java.util.Map;
31 35
 import java.util.stream.Collectors;
@@ -88,16 +92,28 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
88 92
 
89 93
 	@Autowired
90 94
 	private ISysOrgParamsService iSysOrgParamsService;
91
-	
95
+
92 96
 	@Override
93
-	public IPage<Map<String,Object>> getPageList(IPage pg) {
94
-		List<Map<String,Object>> taUserList = taUserMapper.getPageList(pg);
97
+	public IPage<Map<String,Object>> getPageList(IPage pg, Integer channelId) {
98
+		List<Map<String,Object>> taUserList = taUserMapper.getPageList(pg, channelId);
99
+
100
+		for (Map map : taUserList){
101
+			if (map.get("orgId") == null){
102
+				map.put("userCount", 0);
103
+				map.put("registeredCount", 0);
104
+				continue;
105
+			}
106
+			Integer userCount = taPersonMapper.selectChannelUserCount(map.get("orgId").toString());
107
+			Integer registeredCount = taPersonMapper.selectChannelRegisteredCount(map.get("orgId").toString());
108
+			map.put("userCount", userCount);
109
+			map.put("registeredCount", registeredCount);
110
+		}
95 111
 		pg.setRecords(taUserList);
96 112
 		return pg;
97 113
 	}
98 114
 
99 115
 	@Override
100
-	public TaUser newUserAndOrg(TaUser taUser) throws Exception {
116
+	public TaUser newUserAndOrg(TaUser taUser, Integer channelId) throws Exception {
101 117
 		if (StringUtils.isEmpty(taUser.getPhone())) {
102 118
 			throw new Exception("电话号码不能为空");
103 119
 		}

+ 239
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/controller/SysUserChannelController.java Dosyayı Görüntüle

@@ -0,0 +1,239 @@
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.TaNewsType;
22
+import io.swagger.annotations.ApiImplicitParam;
23
+import io.swagger.annotations.ApiImplicitParams;
24
+import io.swagger.annotations.ApiOperation;
25
+import org.slf4j.Logger;
26
+import org.slf4j.LoggerFactory;
27
+import org.springframework.beans.factory.annotation.Autowired;
28
+import org.springframework.web.bind.annotation.*;
29
+
30
+import javax.servlet.http.HttpServletRequest;
31
+import java.time.LocalDateTime;
32
+import java.time.LocalTime;
33
+import java.util.Date;
34
+import java.util.HashMap;
35
+import java.util.Map;
36
+
37
+/**
38
+ * <p>
39
+    * 系统用户 系统中心账户 前端控制器
40
+    * </p>
41
+ *
42
+ * @author jobob
43
+ * @since 2019-09-11
44
+ */
45
+@RestController
46
+@RequestMapping("/api")
47
+public class SysUserChannelController extends BaseController {
48
+
49
+    private final Logger logger = LoggerFactory.getLogger(SysUserChannelController.class);
50
+
51
+    @Autowired
52
+    public ISysUserService iSysUserService;
53
+    
54
+    @Autowired
55
+    private ISysTokenService sysTokenService;
56
+
57
+    @Autowired
58
+    private ITaChannelProxyService iTaChannelProxyService;
59
+
60
+    /**
61
+     * 修改对象
62
+     * @param sysUser 实体对象
63
+     * @return
64
+     */
65
+    @RequestMapping(value="/channel/sysUser",method= RequestMethod.PUT)
66
+    public ResponseBean sysUserUpdate(@RequestBody SysUser sysUser, HttpServletRequest request){
67
+        ResponseBean responseBean = new ResponseBean();
68
+        try {
69
+            String userName = JWTUtils.getSubject(request);
70
+            sysUser.setPassword(MD5Utils.md5(sysUser.getPassword()));
71
+            sysUser.setUserName(userName);
72
+            if (iSysUserService.updateById(sysUser)){
73
+                responseBean.addSuccess(sysUser);
74
+            }else {
75
+                responseBean.addError("fail");
76
+            }
77
+        }catch (Exception e){
78
+            e.printStackTrace();
79
+            logger.error("sysUserUpdate -=- {}",e.toString());
80
+            responseBean.addError(e.getMessage());
81
+        }
82
+        return responseBean;
83
+    }
84
+
85
+    @PostMapping("/channel/signin")
86
+    public ResponseBean signinChannel(@RequestBody String paramStr) {
87
+        JSONObject params = JSONObject.parseObject(paramStr);
88
+        if (params == null) {
89
+            return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
90
+        }
91
+
92
+        String userName = params.getString("userName");
93
+        String userPassword = params.getString("password");
94
+
95
+        //验证用户名密码是否正确
96
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
97
+        sysUserQueryWrapper.eq("user_name",userName);
98
+        sysUserQueryWrapper.eq("password", MD5Utils.md5(userPassword));
99
+        sysUserQueryWrapper.eq("type", CommConstant.LOGIN_TYPE_CHANNEL);
100
+        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
101
+        if (sysUser == null) {
102
+            return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
103
+        }
104
+
105
+        if (sysUser.getStatus() != CommConstant.STATUS_NORMAL) {
106
+            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
107
+        }
108
+
109
+        String token = JWTUtils.newToken(sysUser.getUserName());
110
+
111
+        //保存token
112
+        sysTokenService.saveToken(token);
113
+
114
+        Map<String, Object> result = new HashMap<>();
115
+        result.put("token", token);
116
+        result.put("user", sysUser);
117
+
118
+        return ResponseBean.success(result);
119
+    }
120
+
121
+    @PostMapping("/channel/signout")
122
+    public ResponseBean signoutChannel(HttpServletRequest request) {
123
+        String token = JWTUtils.getToken(request);
124
+        QueryWrapper<SysToken> sysTokenQueryWrapper = new QueryWrapper<>();
125
+        sysTokenQueryWrapper.eq("token",token);
126
+        sysTokenService.remove(sysTokenQueryWrapper);
127
+        return ResponseBean.success("成功退出");
128
+    }
129
+
130
+    /**
131
+     * 根据id查询对象
132
+     * @param id  实体ID
133
+     */
134
+    @RequestMapping(value="/channel/current",method=RequestMethod.GET)
135
+    public ResponseBean currentChannelUser(HttpServletRequest request){
136
+        String userName = JWTUtils.getSubject(request);
137
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
138
+        sysUserQueryWrapper.eq("user_name",userName);
139
+        sysUserQueryWrapper.eq("type",CommConstant.LOGIN_TYPE_CHANNEL);
140
+        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
141
+        sysUser.setPassword(null);
142
+
143
+        return ResponseBean.success(sysUser);
144
+    }
145
+
146
+    /**
147
+     * 分页查询列表
148
+     * @param pageNum
149
+     * @param pageSize
150
+     * @return
151
+     */
152
+    @RequestMapping(value="/channel/taChannel",method= RequestMethod.GET)
153
+    public ResponseBean taUserList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
154
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
155
+        ResponseBean responseBean = new ResponseBean();
156
+        try {
157
+            //使用分页插件
158
+            IPage pg = new Page<>(pageNum, pageSize);
159
+            IPage<TaChannelProxy> result = iTaChannelProxyService.getChannelList(pg);
160
+            responseBean.addSuccess(result);
161
+        }catch (Exception e){
162
+            e.printStackTrace();
163
+            logger.error("taUserList -=- {}",e.toString());
164
+            responseBean.addError(e.getMessage());
165
+        }
166
+        return responseBean;
167
+    }
168
+
169
+    /**
170
+     * 新增代理商
171
+     * @param taChannelProxy
172
+     * @param request
173
+     * @return
174
+     */
175
+    @RequestMapping(value="/channel/taChannel",method= RequestMethod.POST)
176
+    public ResponseBean taUserList(@RequestBody TaChannelProxy taChannelProxy, HttpServletRequest request){
177
+        ResponseBean responseBean = new ResponseBean();
178
+        try {
179
+            if (taChannelProxy.getAppMaxNum() != null && taChannelProxy.getAppMaxNum() < 0){
180
+                responseBean.addError("维护小程序数量不得小于0");
181
+                return responseBean;
182
+            }
183
+
184
+            QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
185
+            taChannelProxyQueryWrapper.eq("channel_tel", taChannelProxy.getChannelTel());
186
+            Integer countChannel = iTaChannelProxyService.count(taChannelProxyQueryWrapper);
187
+            if (countChannel > 0){
188
+                responseBean.addError("手机号已存在");
189
+                return responseBean;
190
+            }
191
+
192
+            taChannelProxy.setStatus(1);
193
+            taChannelProxy.setCreateTime(LocalDateTime.now());
194
+            iTaChannelProxyService.save(taChannelProxy);
195
+        }catch (Exception e){
196
+            e.printStackTrace();
197
+            logger.error("taUserList -=- {}",e.toString());
198
+            responseBean.addError(e.getMessage());
199
+        }
200
+        return responseBean;
201
+    }
202
+
203
+    /**
204
+     * 根据id查询对象
205
+     * @param id  实体ID
206
+     */
207
+    @RequestMapping(value="/channel/taChannel/{id}",method= RequestMethod.GET)
208
+    public ResponseBean getChannelProxyById(@PathVariable Integer id){
209
+        ResponseBean responseBean = new ResponseBean();
210
+        QueryWrapper<TaChannelProxy> queryWrapper = new QueryWrapper<>();
211
+        queryWrapper.eq("channel_id", id);
212
+        TaChannelProxy taChannelProxy = iTaChannelProxyService.getOne(queryWrapper);
213
+        responseBean.addSuccess(taChannelProxy);
214
+        return responseBean;
215
+    }
216
+
217
+    /**
218
+     * 修改对象
219
+     * @param id
220
+     * @param taChannelProxy
221
+     * @param request
222
+     * @return
223
+     */
224
+    @RequestMapping(value="/channel/taChannel/{id}",method= RequestMethod.PUT)
225
+    public ResponseBean taNewsTypeUpdate(@PathVariable Integer id,
226
+                                         @RequestBody TaChannelProxy taChannelProxy, HttpServletRequest request){
227
+        ResponseBean responseBean = new ResponseBean();
228
+        if (taChannelProxy.getAppMaxNum() != null && taChannelProxy.getAppMaxNum() < 0){
229
+            responseBean.addError("维护小程序数量不得小于0");
230
+            return responseBean;
231
+        }
232
+
233
+        QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
234
+        taChannelProxyQueryWrapper.eq("channel_id", id);
235
+        iTaChannelProxyService.update(taChannelProxy, taChannelProxyQueryWrapper);
236
+        return ResponseBean.success("更新成功");
237
+    }
238
+
239
+}

+ 36
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/entity/TaChannelProxy.java Dosyayı Görüntüle

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

+ 12
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/mapper/TaChannelProxyMapper.java Dosyayı Görüntüle

@@ -0,0 +1,12 @@
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
+}

+ 10
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/service/ITaChannelProxyService.java Dosyayı Görüntüle

@@ -0,0 +1,10 @@
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
+}

+ 38
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/service/impl/TaChannelProxyServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,38 @@
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.channel.sysChannel.entity.TaChannelProxy;
8
+import com.huiju.estateagents.channel.sysChannel.mapper.TaChannelProxyMapper;
9
+import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
10
+import com.huiju.estateagents.entity.TaChannelAppRelation;
11
+import com.huiju.estateagents.mapper.TaChannelAppRelationMapper;
12
+import org.apache.commons.collections.CollectionUtils;
13
+import org.springframework.beans.factory.annotation.Autowired;
14
+import org.springframework.stereotype.Service;
15
+
16
+@Service
17
+public class TaChannelProxyServiceImpl extends ServiceImpl<TaChannelProxyMapper, TaChannelProxy>  implements ITaChannelProxyService {
18
+    @Autowired
19
+    private TaChannelProxyMapper taChannelProxyMapper;
20
+
21
+    @Autowired
22
+    private TaChannelAppRelationMapper taChannelAppRelationMapper;
23
+
24
+    @Override
25
+    public IPage<TaChannelProxy> getChannelList(IPage page) {
26
+        IPage<TaChannelProxy> taChannelProxyIPage = taChannelProxyMapper.getChannelList(page);
27
+        if (CollectionUtils.isNotEmpty(taChannelProxyIPage.getRecords())){
28
+            taChannelProxyIPage.getRecords().forEach(e->{
29
+                QueryWrapper<TaChannelAppRelation> taChannelAppRelationQueryWrapper = new QueryWrapper<>();
30
+                taChannelAppRelationQueryWrapper.eq("channel_id", e.getChannelId());
31
+                taChannelAppRelationQueryWrapper.groupBy("channel_id");
32
+                e.setAppCurrentNum(taChannelAppRelationMapper.selectCount(taChannelAppRelationQueryWrapper));
33
+            });
34
+            taChannelProxyIPage.setRecords(taChannelProxyIPage.getRecords());
35
+        }
36
+        return taChannelProxyIPage;
37
+    }
38
+}

+ 14
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Dosyayı Görüntüle

@@ -541,4 +541,18 @@ public class CommConstant {
541 541
      */
542 542
     public static final String MESSAGE_TYPE_OF_MINIAPP_TEMPLATE = "miniapp_template";
543 543
 
544
+    /**
545
+     * 进入小程序
546
+     */
547
+    public static final String BIZ_EVENT_START = "start";
548
+
549
+    /**
550
+     * 登录渠道端系统类型
551
+     */
552
+    public static final String LOGIN_TYPE_CHANNEL = "channel";
553
+
554
+    /**
555
+     * 登录中心端系统类型
556
+     */
557
+    public static final String LOGIN_TYPE_CENTER = "center";
544 558
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/controller/StatisticalController.java Dosyayı Görüntüle

@@ -163,4 +163,14 @@ public class StatisticalController extends BaseController {
163 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
+    }
166 176
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/controller/TaMiniappController.java Dosyayı Görüntüle

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

+ 5
- 2
src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java Dosyayı Görüntüle

@@ -142,8 +142,11 @@ public class TaPersonVisitRecordController extends BaseController {
142 142
         }
143 143
         try {
144 144
             if (iTaPersonVisitRecordService.save(taPersonVisitRecord)){
145
-                //清洗埋點數據到新增用戶表
146
-                iTaPersonFromRecordService.addNewPersonRecordRecord(taPersonVisitRecord);
145
+                //清洗埋點數據到新增用戶表--只有进入小程序的时候 start才记录
146
+                if(taPersonVisitRecord.getEvent().equals(CommConstant.BIZ_EVENT_START)){
147
+                    iTaPersonFromRecordService.addNewPersonRecordRecord(taPersonVisitRecord);
148
+                }
149
+
147 150
                 return ResponseBean.success(taPersonVisitRecord);
148 151
             }else {
149 152
                 return ResponseBean.error("保存失败",ResponseBean.ERROR_UNAVAILABLE);

+ 13
- 8
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java Dosyayı Görüntüle

@@ -306,7 +306,8 @@ public class TaRecommendCustomerController extends BaseController {
306 306
                                          @RequestParam(value ="verifyStatus",required = false) String verifyStatus,
307 307
                                          @RequestParam(value = "sex",required = false)Integer sex,
308 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 311
         try{
311 312
 
312 313
             // TODO 目前如果是公客,就取当前操作人员的 buildingId
@@ -320,7 +321,7 @@ public class TaRecommendCustomerController extends BaseController {
320 321
 //                TaPersonBuilding personBuilding = taPersonBuildingMapper.selectOne(queryWrapper);
321 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 325
         }catch (Exception e){
325 326
             e.printStackTrace();
326 327
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
@@ -521,10 +522,12 @@ public class TaRecommendCustomerController extends BaseController {
521 522
     @GetMapping(value = "/admin/customer/recommend/get/{id}")
522 523
     public ResponseBean getCustomerDetail(@PathVariable String id,
523 524
                                           @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
524
-                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,HttpServletRequest request) {
525
+                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
526
+                                          @RequestParam(value ="buildingId",required = false) String buildingId,
527
+                                          HttpServletRequest request) {
525 528
         ResponseBean responseBean = new ResponseBean();
526 529
         try {
527
-            responseBean.addSuccess(taRecommendCustomerService.getCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request)));
530
+            responseBean.addSuccess(taRecommendCustomerService.getCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request),buildingId));
528 531
         }catch (Exception e){
529 532
             e.printStackTrace();
530 533
             responseBean.addError(e.getMessage());
@@ -535,10 +538,11 @@ public class TaRecommendCustomerController extends BaseController {
535 538
     @GetMapping(value = "/admin/customer/recommend/public/get/{id}")
536 539
     public ResponseBean getPublicCustomerDetail(@PathVariable String id,
537 540
                                                 @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
538
-                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,HttpServletRequest request) {
541
+                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
542
+                                                @RequestParam(value ="buildingId",required = false) String buildingId,HttpServletRequest request) {
539 543
         ResponseBean responseBean = new ResponseBean();
540 544
         try {
541
-            responseBean.addSuccess(taRecommendCustomerService.getPublicCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request)));
545
+            responseBean.addSuccess(taRecommendCustomerService.getPublicCustomerDetail(id,pageNumber,pageSize,getTaPersonBuildingListByUserId(request),buildingId));
542 546
         }catch (Exception e){
543 547
             e.printStackTrace();
544 548
             responseBean.addError(e.getMessage());
@@ -548,11 +552,12 @@ public class TaRecommendCustomerController extends BaseController {
548 552
 
549 553
     @GetMapping("/admin/customer/recommend/drift")
550 554
     public ResponseBean getDriftCustomerList (HttpServletRequest request,
551
-                                              @RequestParam(value ="buildingId",defaultValue = "false") String buildingId,
555
+                                              @RequestParam(value ="buildingId",defaultValue = "") String buildingId,
556
+                                              @RequestParam(value ="sceneType",defaultValue = "") String sceneType,
552 557
                                          @RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
553 558
                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
554 559
         try{
555
-            return ResponseBean.success(taPersonService.getDriftCustomerList(pageNumber,pageSize,buildingId, getOrgId(request)));
560
+            return ResponseBean.success(taPersonService.getDriftCustomerList(pageNumber,pageSize,buildingId, getOrgId(request),sceneType));
556 561
         }catch (Exception e){
557 562
             e.printStackTrace();
558 563
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);

+ 2
- 0
src/main/java/com/huiju/estateagents/controller/TdReportController.java Dosyayı Görüntüle

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

+ 143
- 0
src/main/java/com/huiju/estateagents/controller/TdWxDictController.java Dosyayı Görüntüle

@@ -0,0 +1,143 @@
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
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/drainage/controller/TaDrainageController.java Dosyayı Görüntüle

@@ -12,7 +12,10 @@ import com.huiju.estateagents.drainage.entity.TaDrainageRecord;
12 12
 import com.huiju.estateagents.drainage.service.ITaDrainageRecordService;
13 13
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
14 14
 import com.huiju.estateagents.entity.ExtendContent;
15
+import com.huiju.estateagents.entity.TaMiniapp;
16
+import com.huiju.estateagents.mapper.TaMiniappMapper;
15 17
 import com.huiju.estateagents.service.IExtendContentService;
18
+import com.huiju.estateagents.service.IMiniAppService;
16 19
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
17 20
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
18 21
 import io.swagger.models.auth.In;
@@ -60,6 +63,12 @@ public class TaDrainageController extends BaseController {
60 63
     @Autowired
61 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 74
      * @param pageNum
@@ -128,6 +137,15 @@ public class TaDrainageController extends BaseController {
128 137
                 taDrainage.setStatus(CommConstant.STATUS_NORMAL);
129 138
             }
130 139
             if (iTaDrainageService.save(taDrainage)){
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.ACTIVITY_QRCODE.replace("#0",taDrainage.getDrainageId().toString()).replace("#1","h5"),taMiniapp.getMiniappId());
146
+                taDrainage.setQrCode(String.valueOf(taMiniappQrcode.getData()));
147
+                iTaDrainageService.updateById(taDrainage);
148
+
131 149
                 //添加第三方appid和secret
132 150
                 TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = new TaThirdPartyMiniappConfig();
133 151
                 taThirdPartyMiniappConfig.setOrgId(getOrgId(request));

+ 2
- 1
src/main/java/com/huiju/estateagents/drainage/entity/TaDrainage.java Dosyayı Görüntüle

@@ -73,7 +73,8 @@ public class TaDrainage implements Serializable {
73 73
     private String middleImg ;
74 74
     /** 状态 */
75 75
     private Integer status ;
76
-
76
+    /** 二维码*/
77
+    private String qrCode;
77 78
     @TableField(exist = false)
78 79
     private String appid;
79 80
     

+ 15
- 0
src/main/java/com/huiju/estateagents/entity/TaBuilding.java Dosyayı Görüntüle

@@ -198,6 +198,21 @@ public class TaBuilding implements Serializable {
198 198
      */
199 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
      */

+ 49
- 0
src/main/java/com/huiju/estateagents/entity/TaChannelAppRelation.java Dosyayı Görüntüle

@@ -0,0 +1,49 @@
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 Dosyayı Görüntüle

@@ -287,4 +287,10 @@ public class TaPerson implements Serializable {
287 287
      */
288 288
     @TableField(exist = false)
289 289
     private String personFrom;
290
+
291
+    /**
292
+     * 用户来源
293
+     */
294
+    @TableField(exist = false)
295
+    private String sceneAlias;
290 296
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonFromRecord.java Dosyayı Görüntüle

@@ -85,4 +85,9 @@ public class TaPersonFromRecord implements Serializable {
85 85
      * 行为
86 86
      */
87 87
     private String activity;
88
+
89
+    /**
90
+     * 微信来源类型
91
+     */
92
+    private String sceneType;
88 93
 }

+ 45
- 0
src/main/java/com/huiju/estateagents/entity/TdWxDict.java Dosyayı Görüntüle

@@ -0,0 +1,45 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import lombok.Data;
4
+import lombok.EqualsAndHashCode;
5
+import lombok.experimental.Accessors;
6
+
7
+import java.io.Serializable;
8
+
9
+/**
10
+ * <p>
11
+ * 微信字典表 
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-06
16
+ */
17
+@Data
18
+@EqualsAndHashCode(callSuper = false)
19
+@Accessors(chain = true)
20
+public class TdWxDict implements Serializable {
21
+
22
+    private static final long serialVersionUID = 1L;
23
+
24
+    /**
25
+     * 场景值id
26
+     */
27
+    private String sceneId;
28
+
29
+    /**
30
+     * 场景名称
31
+     */
32
+    private String sceneName;
33
+
34
+    /**
35
+     * 场景类型
36
+     */
37
+    private String sceneType;
38
+
39
+    /**
40
+     * 场景类型别名
41
+     */
42
+    private String sceneAlias;
43
+
44
+
45
+}

+ 1
- 0
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java Dosyayı Görüntüle

@@ -56,6 +56,7 @@ public class AccessInterceptor implements HandlerInterceptor {
56 56
             "/api/taCheckin/activity",
57 57
             "/api/wx/qrcode/scene",
58 58
 		    "/api/center/signin",
59
+            "/api/channel/signin",
59 60
 		    "/api/admin/taUser/signin",
60 61
             "/swagger-resources/configuration/ui",
61 62
             "/swagger-resources",

+ 17
- 10
src/main/java/com/huiju/estateagents/job/CustomerStatisticTimeJob.java Dosyayı Görüntüle

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

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaChannelAppRelationMapper.java Dosyayı Görüntüle

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.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
+}

+ 4
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonFromRecordMapper.java Dosyayı Görüntüle

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

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java Dosyayı Görüntüle

@@ -67,6 +67,22 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
67 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 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 88
      * @param personType
@@ -203,4 +219,6 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
203 219
      * @return
204 220
      */
205 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);
206 224
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java Dosyayı Görüntüle

@@ -27,7 +27,7 @@ import java.util.List;
27 27
 @Mapper
28 28
 public interface TaPersonVisitRecordMapper extends BaseMapper<TaPersonVisitRecord> {
29 29
 
30
-    IPage<TaPersonVisitRecord> visitRecordByPersonId(IPage<TaPersonVisitRecord> page,@Param("personId") String personId);
30
+    IPage<TaPersonVisitRecord> visitRecordByPersonId(IPage<TaPersonVisitRecord> page,@Param("personId") String personId,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList,@Param("buildingId") String buildingId);
31 31
 
32 32
     Integer getDurationByPersonId(@Param("personId") String personId);
33 33
 

+ 2
- 2
src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java Dosyayı Görüntüle

@@ -33,7 +33,7 @@ public interface TaRecommendCustomerMapper extends BaseMapper<TaRecommendCustome
33 33
 
34 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 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 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 39
     IPage<TaPerson> getIndependentAgents(IPage<TaPerson>page, @Param("name") String name, @Param("tel") String tel, @Param("orgId") Integer orgId);
@@ -48,7 +48,7 @@ public interface TaRecommendCustomerMapper extends BaseMapper<TaRecommendCustome
48 48
      * @param sex
49 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
      * 导出数据 获取推荐用户数据

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TdWxDictMapper.java Dosyayı Görüntüle

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.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
+}

+ 9
- 0
src/main/java/com/huiju/estateagents/service/IStatisticalService.java Dosyayı Görüntüle

@@ -106,4 +106,13 @@ public interface IStatisticalService {
106 106
      * @return
107 107
      */
108 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);
109 118
 }

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaChannelAppRelationService.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.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
+}

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITaMiniappService.java Dosyayı Görüntüle

@@ -13,5 +13,5 @@ import com.huiju.estateagents.entity.TaMiniapp;
13 13
  */
14 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 17
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonFromRecordService.java Dosyayı Görüntüle

@@ -15,4 +15,9 @@ import com.huiju.estateagents.entity.TaPersonVisitRecord;
15 15
 public interface ITaPersonFromRecordService extends IService<TaPersonFromRecord> {
16 16
 
17 17
     void addNewPersonRecordRecord(TaPersonVisitRecord taPersonVisitRecord);
18
+
19
+    /**
20
+     * 定时任务批量保存数据
21
+     */
22
+    void personFromStatistic();
18 23
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITaPersonService.java Dosyayı Görüntüle

@@ -57,7 +57,7 @@ public interface ITaPersonService extends IService<TaPerson> {
57 57
 
58 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 62
     String getPersonIdByCustomerId(String customerId);
63 63
 

+ 3
- 3
src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java Dosyayı Görüntüle

@@ -35,7 +35,7 @@ public interface ITaRecommendCustomerService extends IService<TaRecommendCustome
35 35
 
36 36
     IPage<TaRecommendCustomer> getUnSignedCustomerList(int pageNumber, int pageSize, String building,String personId);
37 37
 
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);
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,String sceneType);
39 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 41
 
@@ -44,9 +44,9 @@ public interface ITaRecommendCustomerService extends IService<TaRecommendCustome
44 44
     IPage<TaPerson> getIndependentAgents(int pageNumber, int pageSize,String name,String tel, Integer orgId);
45 45
 
46 46
 
47
-    TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList);
47
+    TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId);
48 48
 
49
-    TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList);
49
+    TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId);
50 50
 
51 51
     TaRecommendCustomer getCustomerById(String customerId);
52 52
 

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITdWxDictService.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.entity.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
+}

+ 19
- 0
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java Dosyayı Görüntüle

@@ -9,6 +9,8 @@ import com.huiju.estateagents.exception.EstaException;
9 9
 import com.huiju.estateagents.mapper.*;
10 10
 import com.huiju.estateagents.po.PersonPO;
11 11
 import com.huiju.estateagents.service.IStatisticalService;
12
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
13
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
12 14
 import lombok.extern.slf4j.Slf4j;
13 15
 import org.springframework.beans.factory.annotation.Autowired;
14 16
 import org.springframework.stereotype.Service;
@@ -42,6 +44,9 @@ public class StatisticalServiceImpl implements IStatisticalService {
42 44
     @Autowired
43 45
     private TaPersonIntentionRecordMapper taPersonIntentionRecordMapper;
44 46
 
47
+    @Autowired
48
+    private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
49
+
45 50
 
46 51
     @Override
47 52
     public ResponseBean indexStatistical(Integer orgId) {
@@ -302,4 +307,18 @@ public class StatisticalServiceImpl implements IStatisticalService {
302 307
         responseBean.addSuccess(page);
303 308
         return responseBean;
304 309
     }
310
+
311
+    /**
312
+     * 用户来源数据 首页
313
+     *
314
+     * @param orgId
315
+     * @param startDate
316
+     * @param endDate
317
+     * @return
318
+     */
319
+    @Override
320
+    public ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate) {
321
+        List<TsPersonFromStatistic> list = tsPersonFromStatisticMapper.selectPersonFrom(orgId,startDate,endDate);
322
+        return null;
323
+    }
305 324
 }

+ 4
- 1
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java Dosyayı Görüntüle

@@ -902,7 +902,10 @@ public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuild
902 902
         queryWrapper.eq("building_id", taBuilding.getBuildingId());
903 903
         queryWrapper.eq("org_id", orgId);
904 904
         TaBuilding info = taBuildingMapper.selectOne(queryWrapper);
905
-        if (operte.equals("update") && (taBuilding.getIsMain() != 1 || info.getStatus() == 2)){
905
+        if (taBuilding.getIsMain() != 1){
906
+            return true;
907
+        }
908
+        if (operte.equals("update") && (info.getStatus() == 2)){
906 909
             return true;
907 910
         }
908 911
         if (operte.equals("updateStatus") && status == 2){

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TaChannelAppRelationServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.entity.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
+}

+ 33
- 1
src/main/java/com/huiju/estateagents/service/impl/TaMiniappServiceImpl.java Dosyayı Görüntüle

@@ -3,10 +3,14 @@ package com.huiju.estateagents.service.impl;
3 3
 import cn.binarywang.wx.miniapp.api.WxMaService;
4 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 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 8
 import com.huiju.estateagents.common.StringUtils;
7 9
 import com.huiju.estateagents.common.WxUtils;
10
+import com.huiju.estateagents.entity.TaChannelAppRelation;
8 11
 import com.huiju.estateagents.entity.TaMiniapp;
9 12
 import com.huiju.estateagents.entity.TaMiniappTemplate;
13
+import com.huiju.estateagents.mapper.TaChannelAppRelationMapper;
10 14
 import com.huiju.estateagents.mapper.TaMiniappMapper;
11 15
 import com.huiju.estateagents.mapper.TaMiniappTemplateMapper;
12 16
 import com.huiju.estateagents.service.ITaMiniappService;
@@ -14,6 +18,8 @@ import org.checkerframework.checker.units.qual.A;
14 18
 import org.springframework.beans.factory.annotation.Autowired;
15 19
 import org.springframework.stereotype.Service;
16 20
 
21
+import java.time.LocalDateTime;
22
+
17 23
 /**
18 24
  * <p>
19 25
  * 小程序表  服务实现类
@@ -30,8 +36,14 @@ public class TaMiniappServiceImpl extends ServiceImpl<TaMiniappMapper, TaMiniapp
30 36
     @Autowired
31 37
     WxUtils wxUtils;
32 38
 
39
+    @Autowired
40
+    private TaChannelAppRelationMapper taChannelAppRelationMapper;
41
+
42
+    @Autowired
43
+    private TaChannelProxyMapper taChannelProxyMapper;
44
+
33 45
     @Override
34
-    public TaMiniapp saveInfoWithTpls(TaMiniapp taMiniapp) throws Exception {
46
+    public TaMiniapp saveInfoWithTpls(TaMiniapp taMiniapp, Integer channelId) throws Exception {
35 47
         if (StringUtils.isEmpty(taMiniapp.getMiniappId())) {
36 48
             throw new Exception("请填写小程序 AppID");
37 49
         }
@@ -48,6 +60,26 @@ public class TaMiniappServiceImpl extends ServiceImpl<TaMiniappMapper, TaMiniapp
48 60
             throw new Exception("未知的小程序所属对象");
49 61
         }
50 62
 
63
+        //判断渠道端新增小程序最大数
64
+        QueryWrapper<TaChannelProxy> taChannelProxyQueryWrapper = new QueryWrapper<>();
65
+        taChannelProxyQueryWrapper.eq("channel_id", channelId);
66
+        TaChannelProxy taChannelProxy = taChannelProxyMapper.selectOne(taChannelProxyQueryWrapper);
67
+
68
+        QueryWrapper<TaChannelAppRelation> relationQueryWrapper = new QueryWrapper<>();
69
+        relationQueryWrapper.eq("channel_id", channelId);
70
+        Integer miniAppCount = taChannelAppRelationMapper.selectCount(relationQueryWrapper);
71
+        if (miniAppCount >= taChannelProxy.getAppMaxNum()){
72
+            throw new Exception("当前系统仅供维护"+ taChannelProxy.getAppMaxNum() +"个小程序,需要维护更多项目,请联系相关管理人员");
73
+        }
74
+
75
+        //维护渠道和小程序关系
76
+        TaChannelAppRelation taChannelAppRelation = new TaChannelAppRelation();
77
+        taChannelAppRelation.setChannelId(channelId);
78
+        taChannelAppRelation.setOrgId(taMiniapp.getOrgId());
79
+        taChannelAppRelation.setCreateTime(LocalDateTime.now());
80
+        taChannelAppRelationMapper.insert(taChannelAppRelation);
81
+
82
+
51 83
         TaMiniapp orign = this.getById(taMiniapp.getMiniappId());
52 84
         if (null != orign) {
53 85
             if (!this.updateById(taMiniapp)) {

+ 15
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonFromRecordServiceImpl.java Dosyayı Görüntüle

@@ -6,10 +6,13 @@ import com.huiju.estateagents.entity.TaPersonFromRecord;
6 6
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
7 7
 import com.huiju.estateagents.mapper.TaPersonFromRecordMapper;
8 8
 import com.huiju.estateagents.service.ITaPersonFromRecordService;
9
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
10
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
9 11
 import org.springframework.beans.factory.annotation.Autowired;
10 12
 import org.springframework.stereotype.Service;
11 13
 
12 14
 import java.time.LocalDateTime;
15
+import java.util.List;
13 16
 
14 17
 /**
15 18
  * <p>
@@ -25,6 +28,9 @@ public class TaPersonFromRecordServiceImpl extends ServiceImpl<TaPersonFromRecor
25 28
     @Autowired
26 29
     private TaPersonFromRecordMapper taPersonFromRecordMapper;
27 30
 
31
+    @Autowired
32
+    private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
33
+
28 34
     /**
29 35
      * 通過買點表清洗數據
30 36
      * @param taPersonVisitRecord
@@ -53,4 +59,13 @@ public class TaPersonFromRecordServiceImpl extends ServiceImpl<TaPersonFromRecor
53 59
         }
54 60
         taPersonFromRecordMapper.insert(taPersonFromRecord);
55 61
     }
62
+
63
+    /**
64
+     * 定时任务批量保存数据
65
+     */
66
+    @Override
67
+    public void personFromStatistic() {
68
+        List<TsPersonFromStatistic> list =  taPersonFromRecordMapper.getNowDataList();
69
+        tsPersonFromStatisticMapper.insertStatisticList(list);
70
+    }
56 71
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Dosyayı Görüntüle

@@ -737,7 +737,7 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
737 737
     }
738 738
 
739 739
     @Override
740
-    public IPage<TaPerson> getDriftCustomerList (int pageNumber, int pageSize,String building, Integer orgId){
740
+    public IPage<TaPerson> getDriftCustomerList (int pageNumber, int pageSize,String building, Integer orgId,String sceneType){
741 741
         QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
742 742
         queryWrapper.eq("person_type",CommConstant.PERSON_ESTATE_DRIFT);
743 743
         if(building.equals("") && null != building){
@@ -746,7 +746,7 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
746 746
         queryWrapper.eq(orgId != null, "org_id", orgId);
747 747
         queryWrapper.orderByDesc("create_date");
748 748
         IPage<TaPerson> page = new Page<>(pageNumber, pageSize);
749
-        return taPersonMapper.selectPage(page,queryWrapper);
749
+        return taPersonMapper.selectDriftCustomerPageList(page,building,orgId,CommConstant.PERSON_ESTATE_DRIFT,sceneType);
750 750
     }
751 751
 
752 752
     @Override

+ 7
- 45
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java Dosyayı Görüntüle

@@ -480,55 +480,17 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
480 480
     }
481 481
 
482 482
     @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){
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,String sceneType){
484 484
 
485 485
         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 486
             // 公客
525 487
             IPage<TaPerson>page = new Page<>(pageNumber,pageSize);
526 488
             // 公客就不用 buildingId 进行查询
527
-            return taRecommendCustomerMapper.getPublicCustomerList(page,name, tel,  entryType, verifyStatus, sex, orgId,consultTel);
489
+            return taRecommendCustomerMapper.getPublicCustomerList(page,name, tel,  entryType, verifyStatus, sex, orgId,consultTel,sceneType);
528 490
         } else {
529 491
             // 私客
530 492
             IPage<TaRecommendCustomer>page = new Page<>(pageNumber,pageSize);
531
-            return taRecommendCustomerMapper.getCustomerList(page, building, name, tel, consultName, consultTel, entryType, verifyStatus, sex, orgId,status,taPersonBuildingList);
493
+            return taRecommendCustomerMapper.getCustomerList(page, building, name, tel, consultName, consultTel, entryType, verifyStatus, sex, orgId,status,taPersonBuildingList,sceneType);
532 494
         }
533 495
 
534 496
     }
@@ -559,13 +521,13 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
559 521
 
560 522
 
561 523
     @Override
562
-    public TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList){
524
+    public TaRecommendCustomer getCustomerDetail(String customerId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId){
563 525
         String personId = taRecommendCustomerMapper.getCustomerById(customerId).getPersonId();
564 526
         TaRecommendCustomer taRecommendCustomer = taRecommendCustomerMapper.getCustomerDetail(customerId,personId);
565 527
         TaPerson person = taPersonMapper.selectById(personId);
566 528
         if(!StringUtils.isEmpty(personId)){
567 529
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
568
-            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId);
530
+            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId,taPersonBuildingList,buildingId);
569 531
             List<TaPersonVisitRecord> records = taPersonVisitRecordIPage.getRecords();
570 532
             records.forEach(e -> {
571 533
                 //获取活动标题
@@ -649,11 +611,11 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
649 611
     }
650 612
 
651 613
     @Override
652
-    public TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList){
614
+    public TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId){
653 615
         TaPerson taRecommendCustomer = taPersonMapper.getById(personId);
654 616
         if(!StringUtils.isEmpty(personId)){
655 617
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
656
-            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId);
618
+            IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId,taPersonBuildingList,buildingId);
657 619
             List<TaPersonVisitRecord> records = taPersonVisitRecordIPage.getRecords();
658 620
             records.forEach(e -> {
659 621
                 //获取活动标题

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TdWxDictServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.entity.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 Dosyayı Görüntüle

@@ -0,0 +1,143 @@
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
+}

+ 62
- 0
src/main/java/com/huiju/estateagents/statistic/entity/TsPersonFromStatistic.java Dosyayı Görüntüle

@@ -0,0 +1,62 @@
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-04
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TsPersonFromStatistic implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * ID
29
+     */
30
+    @TableId(value = "person_from_statistic_id", type = IdType.AUTO)
31
+    private Integer personFromStatisticId;
32
+
33
+    /**
34
+     * 场景类型
35
+     */
36
+    private String sceneType;
37
+
38
+    /**
39
+     * 事件类型
40
+     */
41
+    private String eventType;
42
+
43
+    /**
44
+     * 来源数量
45
+     */
46
+    private Integer fromNum;
47
+
48
+    /**
49
+     * 公司id
50
+     */
51
+    private Integer orgId;
52
+
53
+    /**
54
+     * 创建时间
55
+     */
56
+    private LocalDateTime createDate;
57
+
58
+    /**
59
+     * 注册数量
60
+     */
61
+    private Integer registeredNum;
62
+}

+ 24
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TsPersonFromStatisticMapper.java Dosyayı Görüntüle

@@ -0,0 +1,24 @@
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
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/statistic/service/ITsPersonFromStatisticService.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
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
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/statistic/service/impl/TsPersonFromStatisticServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,20 @@
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
+}

+ 5
- 0
src/main/resources/mapper/TaChannelAppRelationMapper.xml Dosyayı Görüntüle

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

+ 8
- 0
src/main/resources/mapper/TaChannelProxyMapper.xml Dosyayı Görüntüle

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.estateagents.channel.sysChannel.mapper.TaChannelProxyMapper">
4
+
5
+    <select id="getChannelList" resultType="com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy">
6
+        select * from ta_channel_proxy t
7
+    </select>
8
+</mapper>

+ 19
- 0
src/main/resources/mapper/TaPersonFromRecordMapper.xml Dosyayı Görüntüle

@@ -2,4 +2,23 @@
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.mapper.TaPersonFromRecordMapper">
4 4
 
5
+    <select id="getNowDataList" resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">
6
+        SELECT
7
+            count( 1 ) AS from_num,
8
+            t.scene_type,
9
+            t.event_type,
10
+            t.org_id,
11
+            t.create_date,
12
+            sum( IF ( p.photo IS NOT NULL OR p.tel IS NOT NULL, 1, 0 ) ) AS registered_num
13
+        FROM
14
+            ta_person_from_record t
15
+            LEFT JOIN ta_person p ON t.person_id = p.person_id
16
+        WHERE
17
+            t.is_first_time = 1
18
+            AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
19
+        GROUP BY
20
+            t.scene_type,
21
+            t.event_type,
22
+            t.org_id
23
+    </select>
5 24
 </mapper>

+ 19
- 0
src/main/resources/mapper/TaPersonMapper.xml Dosyayı Görüntüle

@@ -556,4 +556,23 @@ FROM
556 556
         LEFT JOIN ta_person b on a.user_id = b.user_id
557 557
         where a.org_id = #{orgId} and b.user_id = #{userId} and a.phone = #{phone} and a.is_consultant = '1'
558 558
     </select>
559
+
560
+    <select id="selectDriftCustomerPageList" resultType="com.huiju.estateagents.entity.TaPerson">
561
+        SELECT
562
+           t.* ,d.scene_type,d.scene_alias
563
+        FROM
564
+            ta_person t
565
+            LEFT JOIN ta_person_from_record r ON t.person_id = r.person_id AND r.is_first_time = 1 and r.org_id = #{orgId}
566
+            left join td_wx_dict d on r.scene_id = d.scene_id
567
+        WHERE
568
+            t.org_id = #{orgId}
569
+        and t.person_type = #{personEstateDrift}
570
+        <if test="buildingId !=null and buildingId !=''">
571
+            and t.building_id = #{buildingId}
572
+        </if>
573
+        <if test="sceneType !=null and sceneType !=''">
574
+            and d.scene_type = #{sceneType}
575
+        </if>
576
+        order by t.create_date desc
577
+    </select>
559 578
 </mapper>

+ 12
- 3
src/main/resources/mapper/TaPersonVisitRecordMapper.xml Dosyayı Görüntüle

@@ -23,9 +23,18 @@
23 23
     </sql>
24 24
 
25 25
     <select id="visitRecordByPersonId" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">
26
-        select * from ta_person_visit_record
27
-        where person_id = #{personId}
28
-        order by visit_time desc
26
+        select * from ta_person_visit_record t
27
+        where t.person_id = #{personId}
28
+        <if test="personBuildingList != null and personBuildingList.size > 0">
29
+            AND t.building_id in
30
+            <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
31
+                #{personBuilding.buildingId}
32
+            </foreach>
33
+        </if>
34
+        <if test="buildingId != null and buildingId != ''">
35
+            AND t.building_id = #{buildingId}
36
+        </if>
37
+        order by t.visit_time desc
29 38
     </select>
30 39
 
31 40
     <select id="selectAll" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">

+ 14
- 1
src/main/resources/mapper/TaRecommendCustomerMapper.xml Dosyayı Görüntüle

@@ -171,6 +171,11 @@ FROM
171 171
         LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
172 172
         LEFT JOIN ta_person c on a.recommend_person = c.person_id
173 173
         LEFT JOIN ta_user d on d.user_id = a.realty_consultant
174
+        LEFT JOIN ta_person_from_record p ON a.person_id = p.person_id AND p.is_first_time = 1
175
+        <if test="orgId != null">
176
+            and p.org_id =  #{orgId}
177
+        </if>
178
+        LEFT JOIN td_wx_dict w ON p.scene_id = w.scene_id
174 179
         <where>
175 180
             a.status > 0
176 181
             and a.verify_status = 1
@@ -212,6 +217,9 @@ FROM
212 217
                     #{personBuilding.buildingId}
213 218
                 </foreach>
214 219
             </if>
220
+            <if test="sceneType !=null and sceneType !=''">
221
+                and p.scene_type = #{sceneType}
222
+            </if>
215 223
         </where>
216 224
         order by a.create_date desc
217 225
     </select>
@@ -244,6 +252,8 @@ FROM
244 252
         ) AS sharePersonName
245 253
         FROM
246 254
         ta_person b
255
+        LEFT JOIN ta_person_from_record r ON b.person_id = r.person_id AND r.is_first_time = 1 and r.org_id = #{orgId}
256
+        left join td_wx_dict d on r.scene_id = d.scene_id
247 257
         <where>
248 258
             b.status > 0
249 259
             and b.org_id = #{orgId}
@@ -252,6 +262,9 @@ FROM
252 262
             <if test="name != null and name !=''">
253 263
                 and b.nickname like CONCAT('%',#{name}, '%')
254 264
             </if>
265
+            <if test="sceneType !=null and sceneType !=''">
266
+                and d.scene_type = #{sceneType}
267
+            </if>
255 268
             <if test="tel != null and tel!=''">
256 269
                 and b.phone like CONCAT('%',#{tel}, '%')
257 270
             </if>
@@ -612,7 +625,7 @@ FROM
612 625
         b.tel as consultTel
613 626
         FROM
614 627
         ta_recommend_customer a
615
-        LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
628
+        LEFT JOIN ta_person b ON (a.realty_consultant = b.person_id or a.realty_consultant = b.user_id)
616 629
         LEFT JOIN ta_person c on a.recommend_person = c.person_id
617 630
         <where>
618 631
             a.status > 0

+ 8
- 1
src/main/resources/mapper/TaUserMapper.xml Dosyayı Görüntüle

@@ -20,13 +20,20 @@
20 20
             m.secret,
21 21
             m.token,
22 22
             m.NAME AS miniappName,
23
-            m.qr_code AS qrCode
23
+            m.qr_code AS qrCode,
24
+            z.expire_date,
25
+            m.org_id
24 26
         FROM
25 27
             ta_user t
26 28
             LEFT JOIN ta_org o ON t.org_id = o.org_id
27 29
             LEFT JOIN ta_miniapp m ON o.org_id = m.org_id
30
+            left join ta_channel_app_relation n on m.org_id = n.org_id
31
+            left join ta_channel_proxy z on z.channel_id = n.channel_id
28 32
         WHERE
29 33
             t.is_admin =1
34
+            <if test="channelId != null and channelId != ''">
35
+                and n.channel_id = #{channelId}
36
+            </if>
30 37
     </select>
31 38
 
32 39
     <select id="getTagsList" resultType="com.huiju.estateagents.center.taUser.entity.TaTags">

+ 5
- 0
src/main/resources/mapper/TdWxDictMapper.xml Dosyayı Görüntüle

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

+ 25
- 0
src/main/resources/mapper/statistic/TsPersonFromStatisticMapper.xml Dosyayı Görüntüle

@@ -0,0 +1,25 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper">
4
+
5
+    <insert id="insertStatisticList">
6
+        INSERT INTO ts_person_from_statistic(scene_type,event_type,from_num,org_id,create_date,registered_num)
7
+        VALUES
8
+        <foreach collection="list" item="item" separator=",">
9
+            (#{item.sceneType},#{item.eventType},#{item.fromNum},#{item.orgId},#{item.createDate},#{item.registeredNum})
10
+        </foreach>
11
+    </insert>
12
+    <select id="selectPersonFrom" resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">
13
+        SELECT
14
+            *
15
+        FROM
16
+        ta_person_from_record tp
17
+        where tp.org_id = #{org}
18
+        <if test="startDate != null or endDate != null">
19
+            AND  tp.create_date BETWEEN #{startDate} and #{endDate}
20
+        </if>
21
+        <if test="startDate == null or endDate == null">
22
+            AND tp.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
23
+        </if>
24
+    </select>
25
+</mapper>