浏览代码

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

weiximei 5 年前
父节点
当前提交
1cf71081c6
共有 41 个文件被更改,包括 990 次插入68 次删除
  1. 31
    0
      src/main/java/com/huiju/estateagents/activity/controller/ActivityController.java
  2. 10
    0
      src/main/java/com/huiju/estateagents/activity/mapper/ActivityMapper.java
  3. 10
    0
      src/main/java/com/huiju/estateagents/activity/service/ActivityServiceI.java
  4. 19
    0
      src/main/java/com/huiju/estateagents/activity/service/impl/ActivityServiceImpl.java
  5. 3
    0
      src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java
  6. 39
    9
      src/main/java/com/huiju/estateagents/controller/HelpActivityController.java
  7. 11
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java
  8. 36
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonController.java
  9. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java
  10. 69
    2
      src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java
  11. 18
    0
      src/main/java/com/huiju/estateagents/controller/TaShareActivityController.java
  12. 5
    0
      src/main/java/com/huiju/estateagents/entity/HelpActivity.java
  13. 37
    0
      src/main/java/com/huiju/estateagents/entity/PersonIntention.java
  14. 5
    0
      src/main/java/com/huiju/estateagents/entity/TaPerson.java
  15. 6
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonVisitRecord.java
  16. 5
    1
      src/main/java/com/huiju/estateagents/entity/TaRecommendCustomer.java
  17. 6
    1
      src/main/java/com/huiju/estateagents/entity/TaShareActivity.java
  18. 9
    3
      src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java
  19. 32
    0
      src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java
  20. 7
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java
  21. 37
    1
      src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java
  22. 24
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java
  23. 124
    15
      src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java
  24. 1
    2
      src/main/java/com/huiju/estateagents/service/impl/TaShareActivityServiceImpl.java
  25. 77
    2
      src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerFollowUpRecordController.java
  26. 29
    1
      src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerGenderStatisticController.java
  27. 24
    1
      src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerStatisticDailyController.java
  28. 25
    1
      src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerStatisticMonthlyController.java
  29. 1
    1
      src/main/java/com/huiju/estateagents/statistic/entity/TaCustomerFollowUpRecord.java
  30. 10
    0
      src/main/java/com/huiju/estateagents/statistic/mapper/TaCustomerStatisticDailyMapper.java
  31. 10
    0
      src/main/java/com/huiju/estateagents/statistic/mapper/TaCustomerStatisticMonthlyMapper.java
  32. 9
    0
      src/main/java/com/huiju/estateagents/statistic/service/ITaCustomerStatisticDailyService.java
  33. 9
    0
      src/main/java/com/huiju/estateagents/statistic/service/ITaCustomerStatisticMonthlyService.java
  34. 18
    0
      src/main/java/com/huiju/estateagents/statistic/service/impl/TaCustomerStatisticDailyServiceImpl.java
  35. 19
    0
      src/main/java/com/huiju/estateagents/statistic/service/impl/TaCustomerStatisticMonthlyServiceImpl.java
  36. 76
    0
      src/main/resources/mapper/Activity.xml
  37. 1
    4
      src/main/resources/mapper/HelpActivityMapper.xml
  38. 12
    0
      src/main/resources/mapper/TaPersonVisitRecordMapper.xml
  39. 82
    24
      src/main/resources/mapper/TaRecommendCustomerMapper.xml
  40. 12
    0
      src/main/resources/mapper/statistic/TaCustomerStatisticDailyMapper.xml
  41. 11
    0
      src/main/resources/mapper/statistic/TaCustomerStatisticMonthlyMapper.xml

+ 31
- 0
src/main/java/com/huiju/estateagents/activity/controller/ActivityController.java 查看文件

1
 package com.huiju.estateagents.activity.controller;
1
 package com.huiju.estateagents.activity.controller;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.huiju.estateagents.activity.service.ActivityServiceI;
4
 import com.huiju.estateagents.activity.service.ActivityServiceI;
4
 import com.huiju.estateagents.base.BaseController;
5
 import com.huiju.estateagents.base.BaseController;
5
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.entity.TaPerson;
7
 import com.huiju.estateagents.entity.TaPerson;
8
+import com.huiju.estateagents.entity.TaRecommendCustomer;
7
 import com.huiju.estateagents.service.ITaPersonService;
9
 import com.huiju.estateagents.service.ITaPersonService;
10
+import com.huiju.estateagents.service.ITaRecommendCustomerService;
8
 import io.swagger.annotations.Api;
11
 import io.swagger.annotations.Api;
9
 import org.springframework.beans.factory.annotation.Autowired;
12
 import org.springframework.beans.factory.annotation.Autowired;
10
 import org.springframework.web.bind.annotation.RequestMapping;
13
 import org.springframework.web.bind.annotation.RequestMapping;
30
 	@Autowired
33
 	@Autowired
31
 	private ITaPersonService taPersonService;
34
 	private ITaPersonService taPersonService;
32
 	
35
 	
36
+	@Autowired
37
+	ITaRecommendCustomerService taRecommendCustomerService;
38
+	
33
 	@RequestMapping(value = "/wx/activity/list", method = RequestMethod.GET)
39
 	@RequestMapping(value = "/wx/activity/list", method = RequestMethod.GET)
34
 	public ResponseBean wxBuildingDynamiceList(@RequestParam(value = "pageNumber",defaultValue = "1")Integer pageNumber,
40
 	public ResponseBean wxBuildingDynamiceList(@RequestParam(value = "pageNumber",defaultValue = "1")Integer pageNumber,
35
 	                                           @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
41
 	                                           @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
47
 		
53
 		
48
 		return responseBean;
54
 		return responseBean;
49
 	}
55
 	}
56
+	
57
+	@RequestMapping(value = "/wx/customer/activity/list", method = RequestMethod.GET)
58
+	public ResponseBean wxActivityList(@RequestParam(value = "pageNumber",defaultValue = "1")Integer pageNumber,
59
+	                                           @RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
60
+	                                           @RequestParam(value = "customerId") String customerId,
61
+	                                           HttpServletRequest request){
62
+		ResponseBean  responseBean = new ResponseBean();
63
+		Integer orgId = getOrgId(request);
64
+		//查找客户信息
65
+		QueryWrapper<TaRecommendCustomer> queryWrapper = new QueryWrapper<>();
66
+		queryWrapper.eq("customer_id",customerId);
67
+		TaRecommendCustomer taRecommendCustomer = taRecommendCustomerService.getOne(queryWrapper);
68
+		if (null == taRecommendCustomer){
69
+			return ResponseBean.error("验证人员信息失败",ResponseBean.ERROR_UNAVAILABLE);
70
+		}
71
+		if (null == taRecommendCustomer.getPersonId()){
72
+			return ResponseBean.error("验证人员信息失败",ResponseBean.ERROR_UNAVAILABLE);
73
+		}
74
+		
75
+		QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
76
+		taPersonQueryWrapper.eq("person_id",taRecommendCustomer.getPersonId());
77
+		TaPerson person = taPersonService.getOne(taPersonQueryWrapper);
78
+		responseBean = activityService.getCustomerActivityList(pageNumber,pageSize,orgId,person);
79
+		return responseBean;
80
+	}
50
 }
81
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/activity/mapper/ActivityMapper.java 查看文件

6
 import org.apache.ibatis.annotations.Param;
6
 import org.apache.ibatis.annotations.Param;
7
 
7
 
8
 import java.util.List;
8
 import java.util.List;
9
+import java.util.Map;
9
 
10
 
10
 @Mapper
11
 @Mapper
11
 public interface ActivityMapper {
12
 public interface ActivityMapper {
12
 	List<Activity> getActivityList(Page pg, @Param("orgId") Integer orgId,@Param("status") Integer status,@Param("cityId") Integer cityId);
13
 	List<Activity> getActivityList(Page pg, @Param("orgId") Integer orgId,@Param("status") Integer status,@Param("cityId") Integer cityId);
14
+	
15
+	/**
16
+	 * 获取客户参与的活动列表
17
+	 * @param pg
18
+	 * @param orgId
19
+	 * @param personId
20
+	 * @return
21
+	 */
22
+	List<Map<String,Object>> getCustomerActivityList(Page pg,@Param("orgId") Integer orgId,@Param("personId") String personId);
13
 }
23
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/activity/service/ActivityServiceI.java 查看文件

14
 	 * @return
14
 	 * @return
15
 	 */
15
 	 */
16
 	ResponseBean getActivityList(Integer pageNumber, Integer pageSize, Integer orgId, TaPerson person,Integer cityId);
16
 	ResponseBean getActivityList(Integer pageNumber, Integer pageSize, Integer orgId, TaPerson person,Integer cityId);
17
+	
18
+	/**
19
+	 * 获取客户参加的活动信息
20
+	 * @param pageNumber
21
+	 * @param pageSize
22
+	 * @param orgId
23
+	 * @param person
24
+	 * @return
25
+	 */
26
+	ResponseBean getCustomerActivityList(Integer pageNumber, Integer pageSize, Integer orgId, TaPerson person);
17
 }
27
 }

+ 19
- 0
src/main/java/com/huiju/estateagents/activity/service/impl/ActivityServiceImpl.java 查看文件

21
 import org.springframework.stereotype.Service;
21
 import org.springframework.stereotype.Service;
22
 
22
 
23
 import java.util.List;
23
 import java.util.List;
24
+import java.util.Map;
24
 
25
 
25
 /**
26
 /**
26
  * @author FXF
27
  * @author FXF
113
 		pg.setRecords(list);
114
 		pg.setRecords(list);
114
 		return ResponseBean.success(pg);
115
 		return ResponseBean.success(pg);
115
 	}
116
 	}
117
+	
118
+	/**
119
+	 * 获取客户参加的活动信息
120
+	 *
121
+	 * @param pageNumber
122
+	 * @param pageSize
123
+	 * @param orgId
124
+	 * @param person
125
+	 * @return
126
+	 */
127
+	@Override
128
+	public ResponseBean getCustomerActivityList(Integer pageNumber, Integer pageSize, Integer orgId, TaPerson person) {
129
+		//分页获取全部数据
130
+		Page pg = new Page(pageNumber,pageSize);
131
+		List<Map<String, Object>> customerActivityList = activityMapper.getCustomerActivityList(pg, orgId, person.getPersonId());
132
+		pg.setRecords(customerActivityList);
133
+		return ResponseBean.success(pg);
134
+	}
116
 }
135
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java 查看文件

160
     @TableField(exist = false)
160
     @TableField(exist = false)
161
     private String buildingId;
161
     private String buildingId;
162
 
162
 
163
+    @TableField(exist = false)
164
+    private List<String> projects;
165
+
163
     /**
166
     /**
164
      * ta_org/orgNum楼盘最大数
167
      * ta_org/orgNum楼盘最大数
165
      */
168
      */

+ 39
- 9
src/main/java/com/huiju/estateagents/controller/HelpActivityController.java 查看文件

10
 import com.huiju.estateagents.base.BaseController;
10
 import com.huiju.estateagents.base.BaseController;
11
 import com.huiju.estateagents.base.ResponseBean;
11
 import com.huiju.estateagents.base.ResponseBean;
12
 import com.huiju.estateagents.common.CommConstant;
12
 import com.huiju.estateagents.common.CommConstant;
13
-import com.huiju.estateagents.entity.HelpActivity;
14
-import com.huiju.estateagents.entity.HelpInitiateRecord;
15
-import com.huiju.estateagents.entity.HelpRecord;
16
-import com.huiju.estateagents.entity.TaBuildingDynamic;
17
-import com.huiju.estateagents.entity.TaChannel;
18
-import com.huiju.estateagents.entity.TaPerson;
19
-import com.huiju.estateagents.entity.TaPoster;
20
-import com.huiju.estateagents.entity.TaShareContent;
21
-import com.huiju.estateagents.entity.TdPosterTemplate;
13
+import com.huiju.estateagents.entity.*;
22
 import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
14
 import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
23
 import com.huiju.estateagents.excel.HelpProceedAndFinish;
15
 import com.huiju.estateagents.excel.HelpProceedAndFinish;
24
 import com.huiju.estateagents.excel.HelpRecordExport;
16
 import com.huiju.estateagents.excel.HelpRecordExport;
159
         ResponseBean responseBean = new ResponseBean();
151
         ResponseBean responseBean = new ResponseBean();
160
         Integer orgId = getOrgId(request);
152
         Integer orgId = getOrgId(request);
161
         Integer cityId = iTaBuildingService.getCityById(helpActivity.getBuildingId());
153
         Integer cityId = iTaBuildingService.getCityById(helpActivity.getBuildingId());
154
+        QueryWrapper<HelpActivity> helpActivityQueryWrapper = new QueryWrapper<>();
155
+        helpActivityQueryWrapper.eq("heavy", helpActivity.getHeavy());
156
+        Integer heavyCount = taHelpActivityService.count(helpActivityQueryWrapper);
157
+        if (heavyCount != 0){
158
+            responseBean.addError("权重已存在,请重新编辑");
159
+            return responseBean;
160
+        }
162
         helpActivity.setCityId(cityId);
161
         helpActivity.setCityId(cityId);
163
         // 活动暂且定位为未开始
162
         // 活动暂且定位为未开始
164
         helpActivity.setActivityStatus(1);
163
         helpActivity.setActivityStatus(1);
201
     public ResponseBean helpActivityUpdate(@RequestBody String parameter) {
200
     public ResponseBean helpActivityUpdate(@RequestBody String parameter) {
202
         ResponseBean responseBean = new ResponseBean();
201
         ResponseBean responseBean = new ResponseBean();
203
         HelpActivity helpActivity = JSONObject.parseObject(parameter, HelpActivity.class);
202
         HelpActivity helpActivity = JSONObject.parseObject(parameter, HelpActivity.class);
203
+        QueryWrapper<HelpActivity> helpActivityQueryWrapper = new QueryWrapper<>();
204
+        helpActivityQueryWrapper.eq("heavy", helpActivity.getHeavy());
205
+        Integer heavyCount = taHelpActivityService.count(helpActivityQueryWrapper);
206
+        if (heavyCount != 0){
207
+            responseBean.addError("权重已存在,请重新编辑");
208
+            return responseBean;
209
+        }
204
         Integer cityId = iTaBuildingService.getCityById( helpActivity.getBuildingId());
210
         Integer cityId = iTaBuildingService.getCityById( helpActivity.getBuildingId());
205
         helpActivity.setCityId(cityId);
211
         helpActivity.setCityId(cityId);
206
         helpActivity.setHelpActivityId(helpActivity.getHelpActivityId());
212
         helpActivity.setHelpActivityId(helpActivity.getHelpActivityId());
264
         return responseBean;
270
         return responseBean;
265
     }
271
     }
266
 
272
 
273
+    @RequestMapping(value = "/admin/helpActivity/send/{helpActivityId}", method = RequestMethod.PUT)
274
+    public ResponseBean send(@PathVariable String helpActivityId, HttpServletRequest request) {
275
+        ResponseBean responseBean = new ResponseBean();
276
+        QueryWrapper<HelpActivity> helpActivityQueryWrapper = new QueryWrapper<>();
277
+        helpActivityQueryWrapper.eq("help_activity_id", helpActivityId);
278
+        HelpActivity helpActivity = taHelpActivityService.getOne(helpActivityQueryWrapper);
279
+        helpActivity.setStatus(1);
280
+        helpActivity.setOrgId(getOrgId(request));
281
+        taHelpActivityService.update(helpActivity, helpActivityQueryWrapper);
282
+        return responseBean;
283
+    }
284
+
285
+    @RequestMapping(value = "/admin/helpActivity/cancel/{helpActivityId}", method = RequestMethod.PUT)
286
+    public ResponseBean cancel(@PathVariable String helpActivityId, HttpServletRequest request) {
287
+        ResponseBean responseBean = new ResponseBean();
288
+        QueryWrapper<HelpActivity> taShareActivityQueryWrapper = new QueryWrapper<>();
289
+        taShareActivityQueryWrapper.eq("help_activity_id", helpActivityId);
290
+        HelpActivity helpActivity = taHelpActivityService.getOne(taShareActivityQueryWrapper);
291
+        helpActivity.setStatus(-1);
292
+        helpActivity.setOrgId(getOrgId(request));
293
+        taHelpActivityService.update(helpActivity, taShareActivityQueryWrapper);
294
+        return responseBean;
295
+    }
296
+
267
     @ApiOperation(value = "助力记录", notes = "助力记录")
297
     @ApiOperation(value = "助力记录", notes = "助力记录")
268
     @ApiImplicitParams({
298
     @ApiImplicitParams({
269
             @ApiImplicitParam(dataTypeClass = Integer.class, name = "pageNum", paramType = "query", value = "第几页"),
299
             @ApiImplicitParam(dataTypeClass = Integer.class, name = "pageNum", paramType = "query", value = "第几页"),

+ 11
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java 查看文件

75
     @Autowired
75
     @Autowired
76
     private ITaBuildingService iTaBuildingService;
76
     private ITaBuildingService iTaBuildingService;
77
 
77
 
78
+    @Autowired
79
+    private ITaRecommendCustomerService recommendCustomerService;
80
+
78
     @Autowired
81
     @Autowired
79
     private TaActivityDynamicEnlistMapper taActivityDynamicEnlistMapper;
82
     private TaActivityDynamicEnlistMapper taActivityDynamicEnlistMapper;
80
 
83
 
310
                    if (tempIsCheckin.intValue() == CommConstant.STATUS_UNACCALIMED.intValue()){
313
                    if (tempIsCheckin.intValue() == CommConstant.STATUS_UNACCALIMED.intValue()){
311
                        enlist.setEnlistId(Integer.valueOf(enlistId));
314
                        enlist.setEnlistId(Integer.valueOf(enlistId));
312
                        applicationContext.publishEvent(new EventBus(enlist,ActivityCheckin,getOrgId(request)));
315
                        applicationContext.publishEvent(new EventBus(enlist,ActivityCheckin,getOrgId(request)));
316
+                       QueryWrapper<TaRecommendCustomer> customerQueryWrapper = new QueryWrapper<>();
317
+                       customerQueryWrapper.eq("person_id",enlist.getPersonId());
318
+                       customerQueryWrapper.eq("building_id",enlist.getBuildingId());
319
+                       TaRecommendCustomer recommendCustomer = recommendCustomerService.getOne(customerQueryWrapper);
320
+                       if (recommendCustomer.getStatus() < CommConstant.CUSTOMER_VISITE){
321
+                           recommendCustomer.setStatus(CommConstant.CUSTOMER_VISITE);
322
+                           recommendCustomerService.updateById(recommendCustomer);
323
+                       }
313
                        Integer rulePoints = taPointsRecordsService.getRulePoints(CommConstant.POINTS_CHANGE_ACTIVITY_CHECKIN, getOrgId(request));
324
                        Integer rulePoints = taPointsRecordsService.getRulePoints(CommConstant.POINTS_CHANGE_ACTIVITY_CHECKIN, getOrgId(request));
314
                        enlist.setAddPoints(rulePoints);
325
                        enlist.setAddPoints(rulePoints);
315
                        responseBean.addSuccess(enlist);
326
                        responseBean.addSuccess(enlist);

+ 36
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonController.java 查看文件

139
         return responseBean;
139
         return responseBean;
140
     }
140
     }
141
 
141
 
142
+    @PutMapping("/wx/registerConsultantOneClick")
143
+    public ResponseBean registerConsultantOneClick(HttpServletRequest request) {
144
+        ResponseBean responseBean = new ResponseBean();
145
+        Integer orgId =getOrgId(request);
146
+        String openid = getOpenId(request);
147
+        List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
148
+        if (null == taPersons || taPersons.size() != 1) {
149
+            return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
150
+        }
151
+        TaPerson person = taPersons.get(0);
152
+        QueryWrapper<TaUser>queryWrapper = new QueryWrapper<>();
153
+        queryWrapper.eq("phone",person.getPhone());
154
+        queryWrapper.eq("org_id",orgId);
155
+        queryWrapper.eq("is_consultant",true);
156
+        List<TaUser> users = taUserService.list(queryWrapper);
157
+        if(users.size()>0){
158
+            TaUser user = users.get(0);
159
+            person.setPersonType(CommConstant.PERSON_REALTY_CONSULTANT);
160
+            person.setUserId(user.getUserId());
161
+            person.setAvatarurl(user.getAvatar());
162
+            person.setCompany(user.getOrgName());
163
+            person.setTel(user.getPhone());
164
+            person.setName(user.getUserName());
165
+            person.setAddress(user.getAddress());
166
+            person.setIdNo(user.getIdNo());
167
+            person.setDepartment(user.getDepartment());
168
+            person.setPost(user.getPosition());
169
+            person.setPhoto(user.getPhoto());
170
+            taPersonService.updateById(person);
171
+            responseBean.addSuccess(person);
172
+        }else {
173
+            responseBean.addError("手机号不存在,请联系管理员维护。");
174
+        }
175
+        return responseBean;
176
+    }
177
+
142
     @PutMapping("/wx/registerAgent")
178
     @PutMapping("/wx/registerAgent")
143
     public ResponseBean registerAgent(@RequestParam(required = false) String recommendAgentCode, @RequestParam(required = false) String channelCode,HttpServletRequest request) {
179
     public ResponseBean registerAgent(@RequestParam(required = false) String recommendAgentCode, @RequestParam(required = false) String channelCode,HttpServletRequest request) {
144
         ResponseBean responseBean = new ResponseBean();
180
         ResponseBean responseBean = new ResponseBean();

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java 查看文件

200
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
200
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
201
         }
201
         }
202
     }
202
     }
203
+    
204
+    /**
205
+     * 盘客工具分页获取访问记录
206
+     * @param pageNum
207
+     * @param pageSize
208
+     * @return
209
+     */
210
+    @RequestMapping(value="/wx/taPersonVisitRecord",method= RequestMethod.GET)
211
+    public ResponseBean wxPersonVisitRecordList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
212
+                                                @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
213
+                                                @RequestParam(value = "customerId") String customerId){
214
+        try {
215
+            //使用分页插件
216
+            IPage<TaPersonVisitRecord> pg = new Page<>(pageNum, pageSize);
217
+            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getPersonVisitRecordList(pg, customerId);
218
+            return ResponseBean.success(result);
219
+        }catch (Exception e){
220
+            logger.error("taPersonVisitRecordList -=- {}",e.toString());
221
+            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
222
+        }
223
+    }
203
 }
224
 }

+ 69
- 2
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java 查看文件

474
 
474
 
475
 
475
 
476
     @GetMapping(value = "/admin/customer/recommend/get/{id}")
476
     @GetMapping(value = "/admin/customer/recommend/get/{id}")
477
-    public ResponseBean getCutomerDetail(@PathVariable String id) {
477
+    public ResponseBean getCustomerDetail(@PathVariable String id) {
478
         ResponseBean responseBean = new ResponseBean();
478
         ResponseBean responseBean = new ResponseBean();
479
         try {
479
         try {
480
             responseBean.addSuccess(taRecommendCustomerService.getCustomerDetail(id));
480
             responseBean.addSuccess(taRecommendCustomerService.getCustomerDetail(id));
485
         return responseBean;
485
         return responseBean;
486
     }
486
     }
487
 
487
 
488
+    @GetMapping(value = "/admin/customer/recommend/public/get/{id}")
489
+    public ResponseBean getPublicCustomerDetail(@PathVariable String id) {
490
+        ResponseBean responseBean = new ResponseBean();
491
+        try {
492
+            responseBean.addSuccess(taRecommendCustomerService.getPublicCustomerDetail(id));
493
+        }catch (Exception e){
494
+            e.printStackTrace();
495
+            responseBean.addError(e.getMessage());
496
+        }
497
+        return responseBean;
498
+    }
499
+
488
     @GetMapping("/admin/customer/recommend/drift")
500
     @GetMapping("/admin/customer/recommend/drift")
489
     public ResponseBean getDriftCustomerList (HttpServletRequest request,
501
     public ResponseBean getDriftCustomerList (HttpServletRequest request,
490
                                               @RequestParam(value ="buildingId",defaultValue = "false") String buildingId,
502
                                               @RequestParam(value ="buildingId",defaultValue = "false") String buildingId,
749
 
761
 
750
 
762
 
751
     }
763
     }
752
-
764
+    
765
+    /**
766
+     * 查询判客工具下的我的客户人数集合
767
+     * @param request
768
+     * @return
769
+     */
770
+    @GetMapping("/wx/inventory/customer/statistics")
771
+    @ApiOperation(value = "查询我的客户人数统计", notes = "查询我的客户人数统计")
772
+    public ResponseBean getMyCustStatistics(HttpServletRequest request) {
773
+        String openid = getOpenId(request);
774
+        return taRecommendCustomerService.getMyCustStatistics(openid);
775
+    }
776
+    
777
+    /**
778
+     * 分页查询判客工具下的我的客户跟进人集合
779
+     *  根据type区分  follow 跟进  clinch 成交
780
+     * @param request
781
+     * @return
782
+     */
783
+    @GetMapping("/wx/inventory/customer/{type}")
784
+    @ApiOperation(value = "查询我的客户人数统计", notes = "查询我的客户人数统计")
785
+    public ResponseBean getMyCustFollows(@PathVariable(value = "type") String type,
786
+                                         @RequestParam(value = "pageNumber",defaultValue = "0") Integer pageNumber,
787
+                                         @RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
788
+                                         @RequestParam(value = "name",required = false) String name,
789
+                                         @RequestParam(value = "phone",required = false) String phone,
790
+                                         @RequestParam(value = "status",required = false) Integer status,HttpServletRequest request) {
791
+        String openid = getOpenId(request);
792
+        return taRecommendCustomerService.getMyCustFollowOrClinch(pageNumber,pageSize,openid,type,name,phone,status);
793
+    }
794
+    
795
+    /**
796
+     * 查询盘客工具下我的客户详情
797
+     * @param request
798
+     * @return
799
+     */
800
+    @GetMapping("/wx/inventory/customer/{customerId}")
801
+    @ApiOperation(value = "查询客户详情", notes = "查询客户详情")
802
+    public ResponseBean getMyCustDetail(@PathVariable(value = "customerId") String customerId,HttpServletRequest request) {
803
+        String openid = getOpenId(request);
804
+        return taRecommendCustomerService.getMyCustDetail(customerId,openid);
805
+    }
806
+    
807
+    /**
808
+     * 查询盘客工具下编辑基本信息
809
+     * @param request
810
+     * @return
811
+     */
812
+    @PutMapping("/wx/inventory/customer/{customerId}")
813
+    @ApiOperation(value = "编辑客户信息", notes = "编辑客户信息")
814
+    public ResponseBean updateMyCustDetail(@PathVariable(value = "customerId") String customerId,
815
+                                           @RequestBody TaRecommendCustomer taRecommendCustomer, HttpServletRequest request) {
816
+        String openid = getOpenId(request);
817
+        taRecommendCustomer.setCustomerId(customerId);
818
+        return taRecommendCustomerService.updateMyCust(taRecommendCustomer,openid);
819
+    }
753
 }
820
 }

+ 18
- 0
src/main/java/com/huiju/estateagents/controller/TaShareActivityController.java 查看文件

132
                 responseBean.addError("拼团人数必须大于等于2人");
132
                 responseBean.addError("拼团人数必须大于等于2人");
133
                 return responseBean;
133
                 return responseBean;
134
             }
134
             }
135
+
136
+            QueryWrapper<TaShareActivity> taShareActivityQueryWrapper = new QueryWrapper<>();
137
+            taShareActivityQueryWrapper.eq("heavy", taShareActivity.getHeavy());
138
+            Integer heavyCount = iTaShareActivityService.count(taShareActivityQueryWrapper);
139
+            if (heavyCount != 0){
140
+                responseBean.addError("权重已存在,请重新编辑");
141
+                return responseBean;
142
+            }
143
+
135
             Integer cityId = iTaBuildingService.getCityById(taShareActivity.getBuildingId());
144
             Integer cityId = iTaBuildingService.getCityById(taShareActivity.getBuildingId());
136
             taShareActivity.setCityId(cityId);
145
             taShareActivity.setCityId(cityId);
137
             taShareActivity.setOrgId(getOrgId(request));
146
             taShareActivity.setOrgId(getOrgId(request));
186
             TaShareActivity taShareActivity = JSONObject.parseObject(parameter, TaShareActivity.class);
195
             TaShareActivity taShareActivity = JSONObject.parseObject(parameter, TaShareActivity.class);
187
             Integer cityId = iTaBuildingService.getCityById(taShareActivity.getBuildingId());
196
             Integer cityId = iTaBuildingService.getCityById(taShareActivity.getBuildingId());
188
             taShareActivity.setCityId(cityId);
197
             taShareActivity.setCityId(cityId);
198
+
199
+            QueryWrapper<TaShareActivity> taShareActivityQueryWrapper = new QueryWrapper<>();
200
+            taShareActivityQueryWrapper.eq("heavy", taShareActivity.getHeavy());
201
+            Integer heavyCount = iTaShareActivityService.count(taShareActivityQueryWrapper);
202
+            if (heavyCount != 0){
203
+                responseBean.addError("权重已存在,请重新编辑");
204
+                return responseBean;
205
+            }
206
+
189
             if (iTaShareActivityService.updateById(taShareActivity)){
207
             if (iTaShareActivityService.updateById(taShareActivity)){
190
                 responseBean.addSuccess(taShareActivity);
208
                 responseBean.addSuccess(taShareActivity);
191
             }else {
209
             }else {

+ 5
- 0
src/main/java/com/huiju/estateagents/entity/HelpActivity.java 查看文件

106
      */
106
      */
107
     private String img;
107
     private String img;
108
 
108
 
109
+    /**
110
+     * 列表图
111
+     */
112
+    private String detailImg;
113
+
109
     /**
114
     /**
110
      * 城市ID
115
      * 城市ID
111
      */
116
      */

+ 37
- 0
src/main/java/com/huiju/estateagents/entity/PersonIntention.java 查看文件

1
+package com.huiju.estateagents.entity;
2
+
3
+import lombok.Data;
4
+
5
+import java.io.Serializable;
6
+import java.time.LocalDateTime;
7
+
8
+/**
9
+ * <p>
10
+ * 收藏表 
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-07-25
15
+ */
16
+@Data
17
+public class PersonIntention implements Serializable {
18
+
19
+    private static final long serialVersionUID = 1L;
20
+
21
+
22
+
23
+    private String personId;
24
+
25
+
26
+    private String buildingName;
27
+
28
+
29
+    private String buildingId;
30
+
31
+
32
+    private Integer intention;
33
+
34
+
35
+
36
+
37
+}

+ 5
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java 查看文件

267
     @TableField(exist = false)
267
     @TableField(exist = false)
268
     private List<TaShareContent> shareContents;
268
     private List<TaShareContent> shareContents;
269
 
269
 
270
+    @TableField(exist = false)
271
+    private List<PersonIntention> intentions;
272
+
273
+    @TableField(exist = false)
274
+    private Integer visitTimes;
270
     /**
275
     /**
271
      * 推广人
276
      * 推广人
272
      */
277
      */

+ 6
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonVisitRecord.java 查看文件

101
      */
101
      */
102
     @TableField(exist = false)
102
     @TableField(exist = false)
103
     private Integer accessCount;
103
     private Integer accessCount;
104
+    
105
+    /**
106
+     * 楼盘名称
107
+     */
108
+    @TableField(exist = false)
109
+    private String buildingName;
104
 
110
 
105
 }
111
 }

+ 5
- 1
src/main/java/com/huiju/estateagents/entity/TaRecommendCustomer.java 查看文件

10
 import com.baomidou.mybatisplus.annotation.IdType;
10
 import com.baomidou.mybatisplus.annotation.IdType;
11
 import com.baomidou.mybatisplus.annotation.TableField;
11
 import com.baomidou.mybatisplus.annotation.TableField;
12
 import com.baomidou.mybatisplus.annotation.TableId;
12
 import com.baomidou.mybatisplus.annotation.TableId;
13
+import com.huiju.estateagents.center.taUser.entity.TaUser;
13
 import lombok.Data;
14
 import lombok.Data;
14
 import lombok.EqualsAndHashCode;
15
 import lombok.EqualsAndHashCode;
15
 import lombok.experimental.Accessors;
16
 import lombok.experimental.Accessors;
168
     private Integer visitTimes;
169
     private Integer visitTimes;
169
 
170
 
170
     @TableField(exist = false)
171
     @TableField(exist = false)
171
-    private TaPerson consultant;
172
+    private TaUser consultant;
172
 
173
 
173
     @TableField(exist = false)
174
     @TableField(exist = false)
174
     private String recommendName;
175
     private String recommendName;
177
     private String recommendTel;
178
     private String recommendTel;
178
 
179
 
179
     @TableField(exist = false)
180
     @TableField(exist = false)
181
+    private List<PersonIntention> intentions;
182
+
180
     private String intentionName;
183
     private String intentionName;
181
 
184
 
185
+
182
     /**
186
     /**
183
      * 推广人
187
      * 推广人
184
      */
188
      */

+ 6
- 1
src/main/java/com/huiju/estateagents/entity/TaShareActivity.java 查看文件

114
      * 置顶
114
      * 置顶
115
      */
115
      */
116
     private Integer weight;
116
     private Integer weight;
117
-    
117
+
118
+    /**
119
+     * 权重,用于排序
120
+     */
121
+    private Integer heavy;
122
+
118
     /**
123
     /**
119
      * Initiate 发起者  Booster 助力者
124
      * Initiate 发起者  Booster 助力者
120
      */
125
      */

+ 9
- 3
src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java 查看文件

49
     @ResultType(TaPersonVisitRecord.class)
49
     @ResultType(TaPersonVisitRecord.class)
50
     @Select("select * from ta_person_visit_record where event = #{event} and person_id = #{personId} and org_id = #{orgId} ")
50
     @Select("select * from ta_person_visit_record where event = #{event} and person_id = #{personId} and org_id = #{orgId} ")
51
     List<TaPersonVisitRecord> selectEventAll(@Param("event") String event, @Param("personId") String personId, @Param("orgId") Integer orgId);
51
     List<TaPersonVisitRecord> selectEventAll(@Param("event") String event, @Param("personId") String personId, @Param("orgId") Integer orgId);
52
-
53
-
54
-
52
+    
53
+    
54
+    /**
55
+     * 获取用户行为列表
56
+     * @param pg
57
+     * @param personId
58
+     * @return
59
+     */
60
+	IPage<TaPersonVisitRecord> getPersonVisitRecordList(IPage<TaPersonVisitRecord> pg,@Param("personId") String personId);
55
 }
61
 }

+ 32
- 0
src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java 查看文件

1
 package com.huiju.estateagents.mapper;
1
 package com.huiju.estateagents.mapper;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.huiju.estateagents.entity.PersonIntention;
4
 import com.huiju.estateagents.entity.TaPerson;
5
 import com.huiju.estateagents.entity.TaPerson;
5
 import com.huiju.estateagents.entity.TaRecommendCustomer;
6
 import com.huiju.estateagents.entity.TaRecommendCustomer;
6
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
7
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
9
 import org.apache.ibatis.annotations.Param;
10
 import org.apache.ibatis.annotations.Param;
10
 
11
 
11
 import java.util.List;
12
 import java.util.List;
13
+import java.util.Map;
12
 
14
 
13
 /**
15
 /**
14
  * <p>
16
  * <p>
149
      * @return
151
      * @return
150
      */
152
      */
151
     List<PrivateCustomerExport> getCustomerExportList(@Param("pageCode") Integer pageCode, @Param("pageSize") Integer pageSize, @Param("building") String buildingId, @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);
153
     List<PrivateCustomerExport> getCustomerExportList(@Param("pageCode") Integer pageCode, @Param("pageSize") Integer pageSize, @Param("building") String buildingId, @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);
154
+    
155
+    /**
156
+     * 获取我的客户的人数统计
157
+     * @param personId
158
+     * @param userId
159
+     * @return
160
+     */
161
+	List<Map<String, Object>> getMyCustStatistics(@Param("personId") String personId,@Param("userId") Integer userId,@Param("orgId") Integer orgId);
162
+    
163
+    /**
164
+     * 获取我的跟进客户数据
165
+     * @param page
166
+     * @param personId
167
+     * @param userId
168
+     * @param orgId
169
+     * @param type
170
+     * @param name
171
+     * @param phone
172
+     * @param status
173
+     * @return
174
+     */
175
+    IPage<TaRecommendCustomer> getMyCustFollowOrClinch(IPage<TaRecommendCustomer> page, @Param("personId") String personId, @Param("userId") Integer userId, @Param("orgId") Integer orgId, @Param("type") String type, @Param("name") String name, @Param("phone") String phone,@Param("status") Integer status);
176
+    
177
+    /**
178
+     * 获取我的客户详情数据
179
+     * @param customerId
180
+     * @return
181
+     */
182
+    TaRecommendCustomer getMyCustDetailById(String customerId);
152
 
183
 
184
+    List<PersonIntention> getCustomerIntentions(@Param("personId")String personId);
153
 }
185
 }

+ 7
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java 查看文件

15
  * @since 2019-07-23
15
  * @since 2019-07-23
16
  */
16
  */
17
 public interface ITaPersonVisitRecordService extends IService<TaPersonVisitRecord> {
17
 public interface ITaPersonVisitRecordService extends IService<TaPersonVisitRecord> {
18
+	/**
19
+	 * 分页获取客户访问记录
20
+	 * @param pg
21
+	 * @param customerId
22
+	 * @return
23
+	 */
24
+	IPage<TaPersonVisitRecord> getPersonVisitRecordList(IPage<TaPersonVisitRecord> pg, String customerId);
18
 //    IPage<TaPerson> selectCustomer(IPage<TaPerson> page);
25
 //    IPage<TaPerson> selectCustomer(IPage<TaPerson> page);
19
 //    TaPerson customerInfo(String personId);
26
 //    TaPerson customerInfo(String personId);
20
 }
27
 }

+ 37
- 1
src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java 查看文件

44
 
44
 
45
     TaRecommendCustomer getCustomerDetail(String customerId);
45
     TaRecommendCustomer getCustomerDetail(String customerId);
46
 
46
 
47
+    TaPerson getPublicCustomerDetail(String personId);
48
+
47
     TaRecommendCustomer getCustomerById(String customerId);
49
     TaRecommendCustomer getCustomerById(String customerId);
48
 
50
 
49
     IPage<TaRecommendCustomer>getCustomersIRecommended(int pageNumber, int pageSize,String customerId,Integer orgId);
51
     IPage<TaRecommendCustomer>getCustomersIRecommended(int pageNumber, int pageSize,String customerId,Integer orgId);
95
      * @return
97
      * @return
96
      */
98
      */
97
     List<AgentsRecommendCustomer> getIndependentAgentsExport(Integer orgId, Integer pageCode, Integer pageSize);
99
     List<AgentsRecommendCustomer> getIndependentAgentsExport(Integer orgId, Integer pageCode, Integer pageSize);
98
-
100
+    
101
+    /**
102
+     * 查询我的客户人数集合
103
+     * @param openid
104
+     * @return
105
+     */
106
+    ResponseBean getMyCustStatistics(String openid);
107
+    
108
+    /**
109
+     * 分页查询我的跟进客户集合
110
+     * @param pageNumber
111
+     * @param pageSize
112
+     * @param openid
113
+     * @param name
114
+     * @param phone
115
+     * @param status
116
+     * @return
117
+     */
118
+    ResponseBean getMyCustFollowOrClinch(Integer pageNumber, Integer pageSize, String openid, String type, String name, String phone, Integer status);
119
+    
120
+    /**
121
+     * 获取盘客工具下我的客户详情
122
+     * @param customerId
123
+     * @param openid
124
+     * @return
125
+     */
126
+    ResponseBean getMyCustDetail(String customerId, String openid);
127
+    
128
+    /**
129
+     * 更新我的客户基本信息
130
+     * @param taRecommendCustomer
131
+     * @param openid
132
+     * @return
133
+     */
134
+    ResponseBean updateMyCust(TaRecommendCustomer taRecommendCustomer, String openid);
99
 }
135
 }

+ 24
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java 查看文件

4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.huiju.estateagents.entity.TaPerson;
5
 import com.huiju.estateagents.entity.TaPerson;
6
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
6
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
7
+import com.huiju.estateagents.entity.TaRecommendCustomer;
7
 import com.huiju.estateagents.mapper.TaPersonMapper;
8
 import com.huiju.estateagents.mapper.TaPersonMapper;
8
 import com.huiju.estateagents.mapper.TaPersonVisitRecordMapper;
9
 import com.huiju.estateagents.mapper.TaPersonVisitRecordMapper;
10
+import com.huiju.estateagents.mapper.TaRecommendCustomerMapper;
9
 import com.huiju.estateagents.service.ITaPersonVisitRecordService;
11
 import com.huiju.estateagents.service.ITaPersonVisitRecordService;
10
 import org.springframework.beans.factory.annotation.Autowired;
12
 import org.springframework.beans.factory.annotation.Autowired;
11
 import org.springframework.stereotype.Service;
13
 import org.springframework.stereotype.Service;
12
 
14
 
15
+import java.util.List;
16
+
13
 /**
17
 /**
14
  * <p>
18
  * <p>
15
  *   服务实现类
19
  *   服务实现类
20
  */
24
  */
21
 @Service
25
 @Service
22
 public class TaPersonVisitRecordServiceImpl extends ServiceImpl<TaPersonVisitRecordMapper, TaPersonVisitRecord> implements ITaPersonVisitRecordService {
26
 public class TaPersonVisitRecordServiceImpl extends ServiceImpl<TaPersonVisitRecordMapper, TaPersonVisitRecord> implements ITaPersonVisitRecordService {
27
+	
28
+	@Autowired
29
+	private TaRecommendCustomerMapper taRecommendCustomerMapper;
30
+	
31
+	@Autowired
32
+	private TaPersonVisitRecordMapper personVisitRecordMapper;
33
+	
34
+	/**
35
+	 * 分页获取客户访问记录
36
+	 *
37
+	 * @param pg
38
+	 * @param customerId
39
+	 * @return
40
+	 */
41
+	@Override
42
+	public IPage<TaPersonVisitRecord> getPersonVisitRecordList(IPage<TaPersonVisitRecord> pg, String customerId) {
43
+		TaRecommendCustomer taRecommendCustomer = taRecommendCustomerMapper.selectById(customerId);
44
+		IPage<TaPersonVisitRecord> result = personVisitRecordMapper.getPersonVisitRecordList(pg,taRecommendCustomer.getPersonId());
45
+		return result;
46
+	}
23
 //    @Autowired
47
 //    @Autowired
24
 //    private TaPersonMapper taPersonMapper;
48
 //    private TaPersonMapper taPersonMapper;
25
 //    @Autowired
49
 //    @Autowired

+ 124
- 15
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java 查看文件

1
 package com.huiju.estateagents.service.impl;
1
 package com.huiju.estateagents.service.impl;
2
 
2
 
3
-import ch.qos.logback.core.status.StatusUtil;
4
 import com.alibaba.fastjson.JSONObject;
3
 import com.alibaba.fastjson.JSONObject;
5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
23
 import com.huiju.estateagents.service.IMiniAppService;
22
 import com.huiju.estateagents.service.IMiniAppService;
24
 import com.huiju.estateagents.service.ITaRecommendCustomerService;
23
 import com.huiju.estateagents.service.ITaRecommendCustomerService;
25
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
24
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
25
+import com.huiju.estateagents.statistic.entity.TaCustomerFollowUpRecord;
26
+import com.huiju.estateagents.statistic.mapper.TaCustomerFollowUpRecordMapper;
26
 import org.springframework.beans.factory.annotation.Autowired;
27
 import org.springframework.beans.factory.annotation.Autowired;
27
 import org.springframework.stereotype.Service;
28
 import org.springframework.stereotype.Service;
28
 
29
 
29
-import javax.naming.spi.ResolveResult;
30
 import java.time.LocalDateTime;
30
 import java.time.LocalDateTime;
31
 import java.util.HashMap;
31
 import java.util.HashMap;
32
 import java.util.List;
32
 import java.util.List;
63
 
63
 
64
     @Autowired
64
     @Autowired
65
     private TdCityMapper cityMapper;
65
     private TdCityMapper cityMapper;
66
+    
67
+    @Autowired
68
+    private TaCustomerFollowUpRecordMapper customerFollowUpRecordMapper;
66
 
69
 
67
     @Override
70
     @Override
68
     public ResponseBean getMyCustList(String openid, String keywords, int pageNumber, int pageSize) {
71
     public ResponseBean getMyCustList(String openid, String keywords, int pageNumber, int pageSize) {
442
         if(!StringUtils.isEmpty(personId)){
445
         if(!StringUtils.isEmpty(personId)){
443
             taRecommendCustomer.setVisitRecords(taPersonVisitRecordMapper.visitRecordByPersonId(personId));
446
             taRecommendCustomer.setVisitRecords(taPersonVisitRecordMapper.visitRecordByPersonId(personId));
444
             taRecommendCustomer.setVisitTimes(taPersonVisitRecordMapper.visitRecordByPersonId(personId).size());
447
             taRecommendCustomer.setVisitTimes(taPersonVisitRecordMapper.visitRecordByPersonId(personId).size());
448
+            taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId));
445
             Map<String,String>geoInfo = new HashMap<>();
449
             Map<String,String>geoInfo = new HashMap<>();
446
             geoInfo.put("provience",person.getProvince());
450
             geoInfo.put("provience",person.getProvince());
447
             geoInfo.put("country",person.getCountry());
451
             geoInfo.put("country",person.getCountry());
455
         }
459
         }
456
         if(!StringUtils.isEmpty(taRecommendCustomer.getRealtyConsultant())){
460
         if(!StringUtils.isEmpty(taRecommendCustomer.getRealtyConsultant())){
457
             TaPerson consultant =  taPersonMapper.getById(taRecommendCustomer.getRealtyConsultant());
461
             TaPerson consultant =  taPersonMapper.getById(taRecommendCustomer.getRealtyConsultant());
462
+            TaUser user = new TaUser();
458
             if(null == consultant){
463
             if(null == consultant){
459
-                TaUser user = userService.getById(taRecommendCustomer.getRealtyConsultant());
460
-                consultant.setPersonId(taRecommendCustomer.getRealtyConsultant());
461
-                consultant.setTel(user.getPhone());
462
-                consultant.setPhone(user.getPhone());
463
-                consultant.setDepartment(user.getDepartment());
464
-                consultant.setUserId(user.getUserId());
465
-                consultant.setPost(user.getPosition());
466
-                consultant.setName(user.getUserName());
467
-                consultant.setAddress(user.getAddress());
468
-                consultant.setAvatarurl(user.getAvatar());
469
-                consultant.setCompany(user.getOrgName());
464
+                user = userService.getById(taRecommendCustomer.getRealtyConsultant());
465
+            }else {
466
+                user = userService.getById(consultant.getUserId());
470
             }
467
             }
471
-            consultant.setProjects(taPersonMapper.getUserProjects(consultant.getUserId()));
472
-            taRecommendCustomer.setConsultant(consultant);
468
+            user.setProjects(taPersonMapper.getUserProjects(user.getUserId()));
469
+            taRecommendCustomer.setConsultant(user);
470
+        }
471
+        return taRecommendCustomer;
472
+    }
473
+
474
+    @Override
475
+    public TaPerson getPublicCustomerDetail(String personId){
476
+        TaPerson taRecommendCustomer = taPersonMapper.getById(personId);
477
+        if(!StringUtils.isEmpty(personId)){
478
+            taRecommendCustomer.setVisitRecords(taPersonVisitRecordMapper.visitRecordByPersonId(personId));
479
+            taRecommendCustomer.setVisitTimes(taPersonVisitRecordMapper.visitRecordByPersonId(personId).size());
480
+            taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId));
473
         }
481
         }
474
         return taRecommendCustomer;
482
         return taRecommendCustomer;
475
     }
483
     }
579
     public List<AgentsRecommendCustomer> getIndependentAgentsExport(Integer orgId, Integer pageCode, Integer pageSize) {
587
     public List<AgentsRecommendCustomer> getIndependentAgentsExport(Integer orgId, Integer pageCode, Integer pageSize) {
580
         return taRecommendCustomerMapper.getIndependentAgentsExport(orgId, pageCode, pageSize);
588
         return taRecommendCustomerMapper.getIndependentAgentsExport(orgId, pageCode, pageSize);
581
     }
589
     }
590
+    
591
+    /**
592
+     * 查询我的客户人数集合
593
+     *
594
+     * @param openid
595
+     * @return
596
+     */
597
+    @Override
598
+    public ResponseBean getMyCustStatistics(String openid) {
599
+        List<TaPerson> taPersons = getPersonsByOpenId(openid);
600
+        if (null == taPersons || taPersons.size() != 1) {
601
+            return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
602
+        }
603
+    
604
+        TaPerson taPerson = taPersons.get(0);
605
+        List<Map<String,Object>> list = taRecommendCustomerMapper.getMyCustStatistics(taPerson.getPersonId(),taPerson.getUserId(),taPerson.getOrgId());
606
+        return ResponseBean.success(list);
607
+    }
608
+    
609
+    /**
610
+     * 分页查询我的跟进客户集合
611
+     *
612
+     * @param pageNumber
613
+     * @param pageSize
614
+     * @param openid
615
+     * @param name
616
+     * @param phone
617
+     * @param status
618
+     * @return
619
+     */
620
+    @Override
621
+    public ResponseBean getMyCustFollowOrClinch(Integer pageNumber, Integer pageSize, String openid, String type, String name, String phone, Integer status) {
622
+        List<TaPerson> taPersons = getPersonsByOpenId(openid);
623
+        if (null == taPersons || taPersons.size() != 1) {
624
+            return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
625
+        }
626
+    
627
+        TaPerson taPerson = taPersons.get(0);
628
+        
629
+        IPage<TaRecommendCustomer> page = new Page<>();
630
+        page.setCurrent(pageNumber);
631
+        page.setSize(pageSize);
632
+        
633
+        //分页获取跟进客户status != 4的为跟进客户, status = 4的为成交客户 根据type区分  follow 跟进  clinch 成交
634
+        IPage<TaRecommendCustomer> result = taRecommendCustomerMapper.getMyCustFollowOrClinch(page, taPerson.getPersonId(),taPerson.getUserId(),taPerson.getOrgId(), type,name,phone,status);
635
+        return ResponseBean.success(result);
636
+    }
637
+    
638
+    /**
639
+     * 获取盘客工具下我的客户详情
640
+     *
641
+     * @param customerId
642
+     * @param openid
643
+     * @return
644
+     */
645
+    @Override
646
+    public ResponseBean getMyCustDetail(String customerId, String openid) {
647
+        List<TaPerson> taPersons = getPersonsByOpenId(openid);
648
+        if (null == taPersons || taPersons.size() != 1) {
649
+            return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
650
+        }
651
+    
652
+        TaPerson taPerson = taPersons.get(0);
653
+        TaRecommendCustomer taRecommendCustomer = taRecommendCustomerMapper.getMyCustDetailById(customerId);
654
+        //添加跟进行为
655
+        addCustomerFpllowUp(taPerson,taRecommendCustomer,"查看客户详情");
656
+        return ResponseBean.success(taRecommendCustomer);
657
+    }
658
+    
659
+    /**
660
+     * 更新我的客户基本信息
661
+     *
662
+     * @param taRecommendCustomer
663
+     * @param openid
664
+     * @return
665
+     */
666
+    @Override
667
+    public ResponseBean updateMyCust(TaRecommendCustomer taRecommendCustomer, String openid) {
668
+        List<TaPerson> taPersons = getPersonsByOpenId(openid);
669
+        if (null == taPersons || taPersons.size() != 1) {
670
+            return ResponseBean.error("验证当前人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
671
+        }
672
+    
673
+        TaPerson taPerson = taPersons.get(0);
674
+        taRecommendCustomerMapper.updateById(taRecommendCustomer);
675
+        //添加跟进行为
676
+        addCustomerFpllowUp(taPerson,taRecommendCustomer,"编辑客户信息");
677
+        return ResponseBean.success(taRecommendCustomer);
678
+    }
679
+    
680
+    //添加跟进行为
681
+    private void addCustomerFpllowUp(TaPerson taPerson,TaRecommendCustomer taRecommendCustomer,String recordType) {
682
+        TaCustomerFollowUpRecord taCustomerFollowUpRecord = new TaCustomerFollowUpRecord();
683
+        taCustomerFollowUpRecord.setOrgId(taPerson.getOrgId());
684
+        taCustomerFollowUpRecord.setCreateDate(LocalDateTime.now());
685
+        taCustomerFollowUpRecord.setCustomerId(taRecommendCustomer.getCustomerId());
686
+        taCustomerFollowUpRecord.setRecordType(recordType);
687
+        taCustomerFollowUpRecord.setFollowerId(taPerson.getPersonId());
688
+        taCustomerFollowUpRecord.setCustomerSex(taRecommendCustomer.getSex());
689
+        customerFollowUpRecordMapper.insert(taCustomerFollowUpRecord);
690
+    }
582
 }
691
 }

+ 1
- 2
src/main/java/com/huiju/estateagents/service/impl/TaShareActivityServiceImpl.java 查看文件

48
         queryWrapper.eq(endTime != null, "end_time", endTime);
48
         queryWrapper.eq(endTime != null, "end_time", endTime);
49
         queryWrapper.eq(orgId != null, "org_id", orgId);
49
         queryWrapper.eq(orgId != null, "org_id", orgId);
50
         queryWrapper.eq(cityId != null, "city_id", cityId);
50
         queryWrapper.eq(cityId != null, "city_id", cityId);
51
-        queryWrapper.orderByAsc("activity_status");
52
-        queryWrapper.orderByAsc("start_time");
51
+        queryWrapper.orderByDesc("heavy");
53
         IPage<TaShareActivity> taNewsIPage = this.page(page, queryWrapper);
52
         IPage<TaShareActivity> taNewsIPage = this.page(page, queryWrapper);
54
 
53
 
55
         List<TaShareActivity> taShareActivities = taNewsIPage.getRecords();
54
         List<TaShareActivity> taShareActivities = taNewsIPage.getRecords();

+ 77
- 2
src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerFollowUpRecordController.java 查看文件

5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.estateagents.base.BaseController;
6
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.ResponseBean;
7
 import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.entity.TaPerson;
9
+import com.huiju.estateagents.service.ITaPersonService;
8
 import com.huiju.estateagents.statistic.entity.TaCustomerFollowUpRecord;
10
 import com.huiju.estateagents.statistic.entity.TaCustomerFollowUpRecord;
9
 import com.huiju.estateagents.statistic.service.ITaCustomerFollowUpRecordService;
11
 import com.huiju.estateagents.statistic.service.ITaCustomerFollowUpRecordService;
10
 import org.slf4j.Logger;
12
 import org.slf4j.Logger;
18
 import org.springframework.web.bind.annotation.ResponseBody;
20
 import org.springframework.web.bind.annotation.ResponseBody;
19
 import org.springframework.web.bind.annotation.RestController;
21
 import org.springframework.web.bind.annotation.RestController;
20
 
22
 
23
+import javax.servlet.http.HttpServletRequest;
24
+import java.util.List;
25
+
21
 /**
26
 /**
22
  * <p>
27
  * <p>
23
     * 跟进记录表 小程序盘客工具我的客户跟进记录信息 前端控制器
28
     * 跟进记录表 小程序盘客工具我的客户跟进记录信息 前端控制器
27
  * @since 2019-11-08
32
  * @since 2019-11-08
28
  */
33
  */
29
 @RestController
34
 @RestController
30
-@RequestMapping("/")
35
+@RequestMapping("/api")
31
 public class TaCustomerFollowUpRecordController extends BaseController {
36
 public class TaCustomerFollowUpRecordController extends BaseController {
32
 
37
 
33
     private final Logger logger = LoggerFactory.getLogger(TaCustomerFollowUpRecordController.class);
38
     private final Logger logger = LoggerFactory.getLogger(TaCustomerFollowUpRecordController.class);
34
 
39
 
35
     @Autowired
40
     @Autowired
36
     public ITaCustomerFollowUpRecordService iTaCustomerFollowUpRecordService;
41
     public ITaCustomerFollowUpRecordService iTaCustomerFollowUpRecordService;
37
-
42
+    
43
+    @Autowired
44
+    private ITaPersonService taPersonService;
38
 
45
 
39
     /**
46
     /**
40
      * 分页查询列表
47
      * 分页查询列表
146
         }
153
         }
147
         return responseBean;
154
         return responseBean;
148
     }
155
     }
156
+    
157
+    /**
158
+     * 盘客工具添加跟进记录
159
+     * @param taCustomerFollowUpRecord 实体对象
160
+     * @return
161
+     */
162
+    @RequestMapping(value="/wx/taCustomerFollowUpRecord",method= RequestMethod.POST)
163
+    public ResponseBean wxCustomerFollowUpRecordAdd(@RequestBody TaCustomerFollowUpRecord taCustomerFollowUpRecord, HttpServletRequest request){
164
+        ResponseBean responseBean = new ResponseBean();
165
+        String openid = getOpenId(request);
166
+        Integer orgId = getOrgId(request);
167
+        List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
168
+        if (null == taPersons || taPersons.size() != 1) {
169
+            return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
170
+        }
171
+        TaPerson person = taPersons.get(0);
172
+        try {
173
+            taCustomerFollowUpRecord.setFollowerId(person.getPersonId());
174
+            if (iTaCustomerFollowUpRecordService.save(taCustomerFollowUpRecord)){
175
+                responseBean.addSuccess(taCustomerFollowUpRecord);
176
+            }else {
177
+                responseBean.addError("fail");
178
+            }
179
+        }catch (Exception e){
180
+            e.printStackTrace();
181
+            logger.error("taCustomerFollowUpRecordAdd -=- {}",e.toString());
182
+            responseBean.addError(e.getMessage());
183
+        }
184
+        return responseBean;
185
+    }
186
+    
187
+    /**
188
+     * 分页查询跟进记录列表
189
+     * @param pageNum
190
+     * @param pageSize
191
+     * @return
192
+     */
193
+    @RequestMapping(value="/wx/taCustomerFollowUpRecord",method= RequestMethod.GET)
194
+    public ResponseBean wxCustomerFollowUpRecordList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
195
+                                                     @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
196
+                                                     @RequestParam(value ="customerId",required = true) Integer customerId,
197
+                                                     HttpServletRequest request){
198
+        ResponseBean responseBean = new ResponseBean();
199
+        String openid = getOpenId(request);
200
+        Integer orgId = getOrgId(request);
201
+        List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
202
+        if (null == taPersons || taPersons.size() != 1) {
203
+            return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
204
+        }
205
+        TaPerson person = taPersons.get(0);
206
+        try {
207
+            //使用分页插件
208
+            IPage<TaCustomerFollowUpRecord> pg = new Page<>(pageNum, pageSize);
209
+            QueryWrapper<TaCustomerFollowUpRecord> queryWrapper = new QueryWrapper<>();
210
+            queryWrapper.eq("follower_id",person.getPersonId());
211
+            queryWrapper.eq("org_id",orgId);
212
+            queryWrapper.eq("customer_id",customerId);
213
+            queryWrapper.orderByDesc("create_date");
214
+            
215
+            IPage<TaCustomerFollowUpRecord> result = iTaCustomerFollowUpRecordService.page(pg, queryWrapper);
216
+            responseBean.addSuccess(result);
217
+        }catch (Exception e){
218
+            e.printStackTrace();
219
+            logger.error("taCustomerFollowUpRecordList -=- {}",e.toString());
220
+            responseBean.addError(e.getMessage());
221
+        }
222
+        return responseBean;
223
+    }
149
 }
224
 }

+ 29
- 1
src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerGenderStatisticController.java 查看文件

18
 import org.springframework.web.bind.annotation.ResponseBody;
18
 import org.springframework.web.bind.annotation.ResponseBody;
19
 import org.springframework.web.bind.annotation.RestController;
19
 import org.springframework.web.bind.annotation.RestController;
20
 
20
 
21
+import javax.servlet.http.HttpServletRequest;
22
+import java.util.List;
23
+
21
 /**
24
 /**
22
  * <p>
25
  * <p>
23
     * 客户分析性别统计表 小程序盘客工具客户分析 前端控制器
26
     * 客户分析性别统计表 小程序盘客工具客户分析 前端控制器
27
  * @since 2019-11-08
30
  * @since 2019-11-08
28
  */
31
  */
29
 @RestController
32
 @RestController
30
-@RequestMapping("/")
33
+@RequestMapping("/api")
31
 public class TaCustomerGenderStatisticController extends BaseController {
34
 public class TaCustomerGenderStatisticController extends BaseController {
32
 
35
 
33
     private final Logger logger = LoggerFactory.getLogger(TaCustomerGenderStatisticController.class);
36
     private final Logger logger = LoggerFactory.getLogger(TaCustomerGenderStatisticController.class);
146
         }
149
         }
147
         return responseBean;
150
         return responseBean;
148
     }
151
     }
152
+    
153
+    /**
154
+     * 微信端查询三条性别列表数据
155
+     * @return
156
+     */
157
+    @RequestMapping(value="/wx/genderStatistic/{customerType}",method= RequestMethod.GET)
158
+    public ResponseBean wxCustomerGenderStatisticList(@PathVariable(value = "customerType") String customerType, HttpServletRequest request){
159
+        ResponseBean responseBean = new ResponseBean();
160
+        try {
161
+            //查询当前小程序的男女比统计
162
+            QueryWrapper<TaCustomerGenderStatistic> queryWrapper = new QueryWrapper<>();
163
+            queryWrapper.eq("org_id",getOrgId(request));
164
+            queryWrapper.eq("customer_type",customerType);
165
+            queryWrapper.orderByDesc("create_date");
166
+     
167
+            List<TaCustomerGenderStatistic> result = iTaCustomerGenderStatisticService.list(queryWrapper);
168
+            responseBean.addSuccess(result);
169
+        }catch (Exception e){
170
+            e.printStackTrace();
171
+            logger.error("taCustomerGenderStatisticList -=- {}",e.toString());
172
+            responseBean.addError(e.getMessage());
173
+        }
174
+        return responseBean;
175
+    }
176
+    
149
 }
177
 }

+ 24
- 1
src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerStatisticDailyController.java 查看文件

18
 import org.springframework.web.bind.annotation.ResponseBody;
18
 import org.springframework.web.bind.annotation.ResponseBody;
19
 import org.springframework.web.bind.annotation.RestController;
19
 import org.springframework.web.bind.annotation.RestController;
20
 
20
 
21
+import javax.servlet.http.HttpServletRequest;
22
+import java.util.List;
23
+
21
 /**
24
 /**
22
  * <p>
25
  * <p>
23
     * 客户分析日统计表 小程序盘客工具客户分析 前端控制器
26
     * 客户分析日统计表 小程序盘客工具客户分析 前端控制器
27
  * @since 2019-11-08
30
  * @since 2019-11-08
28
  */
31
  */
29
 @RestController
32
 @RestController
30
-@RequestMapping("/")
33
+@RequestMapping("/api")
31
 public class TaCustomerStatisticDailyController extends BaseController {
34
 public class TaCustomerStatisticDailyController extends BaseController {
32
 
35
 
33
     private final Logger logger = LoggerFactory.getLogger(TaCustomerStatisticDailyController.class);
36
     private final Logger logger = LoggerFactory.getLogger(TaCustomerStatisticDailyController.class);
146
         }
149
         }
147
         return responseBean;
150
         return responseBean;
148
     }
151
     }
152
+    
153
+    /**
154
+     * 微信端查询日客户分析统计数据
155
+     * 日筛选:可以选择包括当前日往前的31日
156
+     * @return
157
+     */
158
+    @RequestMapping(value="/wx/customerStatisticDaily/{customerType}",method= RequestMethod.GET)
159
+    public ResponseBean wxCustomerStatisticDailyList(@PathVariable(value = "customerType") String customerType,
160
+                                                     HttpServletRequest request){
161
+        ResponseBean responseBean = new ResponseBean();
162
+        try {
163
+            List<TaCustomerStatisticDaily> list = iTaCustomerStatisticDailyService.getDailyList(customerType,getOrgId(request));
164
+            responseBean.addSuccess(list);
165
+        }catch (Exception e){
166
+            e.printStackTrace();
167
+            logger.error("wxCustomerStatisticDailyList -=- {}",e.toString());
168
+            responseBean.addError(e.getMessage());
169
+        }
170
+        return responseBean;
171
+    }
149
 }
172
 }

+ 25
- 1
src/main/java/com/huiju/estateagents/statistic/controller/TaCustomerStatisticMonthlyController.java 查看文件

18
 import org.springframework.web.bind.annotation.ResponseBody;
18
 import org.springframework.web.bind.annotation.ResponseBody;
19
 import org.springframework.web.bind.annotation.RestController;
19
 import org.springframework.web.bind.annotation.RestController;
20
 
20
 
21
+import javax.servlet.http.HttpServletRequest;
22
+import java.util.List;
23
+
21
 /**
24
 /**
22
  * <p>
25
  * <p>
23
     * 客户分析月统计表 小程序盘客工具客户分析 前端控制器
26
     * 客户分析月统计表 小程序盘客工具客户分析 前端控制器
27
  * @since 2019-11-08
30
  * @since 2019-11-08
28
  */
31
  */
29
 @RestController
32
 @RestController
30
-@RequestMapping("/")
33
+@RequestMapping("/api")
31
 public class TaCustomerStatisticMonthlyController extends BaseController {
34
 public class TaCustomerStatisticMonthlyController extends BaseController {
32
 
35
 
33
     private final Logger logger = LoggerFactory.getLogger(TaCustomerStatisticMonthlyController.class);
36
     private final Logger logger = LoggerFactory.getLogger(TaCustomerStatisticMonthlyController.class);
146
         }
149
         }
147
         return responseBean;
150
         return responseBean;
148
     }
151
     }
152
+    
153
+    /**
154
+     * 微信端查询月客户分析统计数据
155
+     * 月筛选:可以选择包括当前月往前的12个月
156
+     * @return
157
+     */
158
+    @RequestMapping(value="/wx/customerStatisticMonthly/{customerType}",method= RequestMethod.GET)
159
+    public ResponseBean taCustomerStatisticMonthlyList(@PathVariable(value = "customerType") String customerType,
160
+                                                       HttpServletRequest request){
161
+        ResponseBean responseBean = new ResponseBean();
162
+        try {
163
+            //查询月客户分析数据
164
+            List<TaCustomerStatisticMonthly> result = iTaCustomerStatisticMonthlyService.getCustomerMonthlyList(customerType, getOrgId(request));
165
+            responseBean.addSuccess(result);
166
+        }catch (Exception e){
167
+            e.printStackTrace();
168
+            logger.error("taCustomerStatisticMonthlyList -=- {}",e.toString());
169
+            responseBean.addError(e.getMessage());
170
+        }
171
+        return responseBean;
172
+    }
149
 }
173
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/statistic/entity/TaCustomerFollowUpRecord.java 查看文件

58
     /**
58
     /**
59
      * 跟进人ID
59
      * 跟进人ID
60
      */
60
      */
61
-    private Integer followerId;
61
+    private String followerId;
62
     
62
     
63
     /**
63
     /**
64
      * 客户性别
64
      * 客户性别

+ 10
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TaCustomerStatisticDailyMapper.java 查看文件

42
 	 * @return
42
 	 * @return
43
 	 */
43
 	 */
44
 	List<TaCustomerStatisticDaily> getVisiteCustomerData(@Param("nowDate") LocalDateTime nowDate,@Param("checkin") int checkin);
44
 	List<TaCustomerStatisticDaily> getVisiteCustomerData(@Param("nowDate") LocalDateTime nowDate,@Param("checkin") int checkin);
45
+	
46
+	/**
47
+	 * 获取31天的统计数据
48
+	 * @param customerType
49
+	 * @param orgId
50
+	 * @param nowDate
51
+	 * @param beforeDate
52
+	 * @return
53
+	 */
54
+	List<TaCustomerStatisticDaily> getDailyList(@Param("customerType") String customerType,@Param("orgId")  Integer orgId,@Param("nowDate")  LocalDateTime nowDate,@Param("beforeDate")  LocalDateTime beforeDate);
45
 }
55
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TaCustomerStatisticMonthlyMapper.java 查看文件

41
 	 * @return
41
 	 * @return
42
 	 */
42
 	 */
43
 	List<TaCustomerStatisticMonthly> getVisiteStatisticMonthly(@Param("nowDate") LocalDateTime nowDate,@Param("checkin") int checkin);
43
 	List<TaCustomerStatisticMonthly> getVisiteStatisticMonthly(@Param("nowDate") LocalDateTime nowDate,@Param("checkin") int checkin);
44
+	
45
+	/**
46
+	 * 获取12个月的统计数据
47
+	 * @param customerType
48
+	 * @param orgId
49
+	 * @param nowDate
50
+	 * @param beforeDate
51
+	 * @return
52
+	 */
53
+	List<TaCustomerStatisticMonthly> getMonthlyList(@Param("customerType") String customerType,@Param("orgId") Integer orgId,@Param("nowDate") LocalDateTime nowDate,@Param("beforeDate") LocalDateTime beforeDate);
44
 }
54
 }

+ 9
- 0
src/main/java/com/huiju/estateagents/statistic/service/ITaCustomerStatisticDailyService.java 查看文件

4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
5
 
5
 
6
 import java.time.LocalDateTime;
6
 import java.time.LocalDateTime;
7
+import java.util.List;
7
 
8
 
8
 /**
9
 /**
9
  * <p>
10
  * <p>
32
 	 * @param nowDate
33
 	 * @param nowDate
33
 	 */
34
 	 */
34
 	void visiteStatisticDaily(LocalDateTime nowDate);
35
 	void visiteStatisticDaily(LocalDateTime nowDate);
36
+	
37
+	/**
38
+	 * 获取日统计数据
39
+	 * @param customerType
40
+	 * @param orgId
41
+	 * @return
42
+	 */
43
+	List<TaCustomerStatisticDaily> getDailyList(String customerType, Integer orgId);
35
 }
44
 }

+ 9
- 0
src/main/java/com/huiju/estateagents/statistic/service/ITaCustomerStatisticMonthlyService.java 查看文件

4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticMonthly;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticMonthly;
5
 
5
 
6
 import java.time.LocalDateTime;
6
 import java.time.LocalDateTime;
7
+import java.util.List;
7
 
8
 
8
 /**
9
 /**
9
  * <p>
10
  * <p>
32
 	 * @param nowDate
33
 	 * @param nowDate
33
 	 */
34
 	 */
34
 	void visiteStatisticMonthly(LocalDateTime nowDate);
35
 	void visiteStatisticMonthly(LocalDateTime nowDate);
36
+	
37
+	/**
38
+	 * 查询12个月的客户统计分析数据
39
+	 * @param customerType
40
+	 * @param orgId
41
+	 * @return
42
+	 */
43
+	List<TaCustomerStatisticMonthly> getCustomerMonthlyList(String customerType, Integer orgId);
35
 }
44
 }

+ 18
- 0
src/main/java/com/huiju/estateagents/statistic/service/impl/TaCustomerStatisticDailyServiceImpl.java 查看文件

73
 		statisticDailySaveBatch(saveList,nowDate,CommConstant.CUSTOMER_TYPE_VISITE);
73
 		statisticDailySaveBatch(saveList,nowDate,CommConstant.CUSTOMER_TYPE_VISITE);
74
 	}
74
 	}
75
 	
75
 	
76
+	/**
77
+	 * 获取日统计数据
78
+	 *
79
+	 * @param customerType
80
+	 * @param orgId
81
+	 * @return
82
+	 */
83
+	@Override
84
+	public List<TaCustomerStatisticDaily> getDailyList(String customerType, Integer orgId) {
85
+		//当前日期
86
+		LocalDateTime nowDate = LocalDateTime.now();
87
+		//31天前的日期
88
+		LocalDateTime beforeDate = nowDate.plusDays(-31);
89
+		//获取31天的日期数据
90
+		List<TaCustomerStatisticDaily> list = customerStatisticDailyMapper.getDailyList(customerType,orgId,nowDate,beforeDate);
91
+		return list;
92
+	}
93
+	
76
 	/**
94
 	/**
77
 	 * 批量保存当天的统计数据
95
 	 * 批量保存当天的统计数据
78
 	 * @param list
96
 	 * @param list

+ 19
- 0
src/main/java/com/huiju/estateagents/statistic/service/impl/TaCustomerStatisticMonthlyServiceImpl.java 查看文件

3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.huiju.estateagents.common.CommConstant;
5
 import com.huiju.estateagents.common.CommConstant;
6
+import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
6
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticMonthly;
7
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticMonthly;
7
 import com.huiju.estateagents.statistic.mapper.TaCustomerStatisticMonthlyMapper;
8
 import com.huiju.estateagents.statistic.mapper.TaCustomerStatisticMonthlyMapper;
8
 import com.huiju.estateagents.statistic.service.ITaCustomerStatisticMonthlyService;
9
 import com.huiju.estateagents.statistic.service.ITaCustomerStatisticMonthlyService;
71
 		statisticMonthlySaveBatch(newVisiteMonthList,nowDate, CommConstant.CUSTOMER_TYPE_FOLLOW);
72
 		statisticMonthlySaveBatch(newVisiteMonthList,nowDate, CommConstant.CUSTOMER_TYPE_FOLLOW);
72
 	}
73
 	}
73
 	
74
 	
75
+	/**
76
+	 * 查询12个月的客户统计分析数据
77
+	 *
78
+	 * @param customerType
79
+	 * @param orgId
80
+	 * @return
81
+	 */
82
+	@Override
83
+	public List<TaCustomerStatisticMonthly> getCustomerMonthlyList(String customerType, Integer orgId) {
84
+		//当前日期
85
+		LocalDateTime nowDate = LocalDateTime.now();
86
+		//12个月前的日期
87
+		LocalDateTime beforeDate = nowDate.plusMonths(-12);
88
+		//获取31天的日期数据
89
+		List<TaCustomerStatisticMonthly> list = customerStatisticMonthlyMapper.getMonthlyList(customerType,orgId,nowDate,beforeDate);
90
+		return list;
91
+	}
92
+	
74
 	/**
93
 	/**
75
 	 * 批量保存当月的统计数据
94
 	 * 批量保存当月的统计数据
76
 	 * @param list
95
 	 * @param list

+ 76
- 0
src/main/resources/mapper/Activity.xml 查看文件

25
         </if>
25
         </if>
26
         ORDER BY weight desc,activity_status,start_date
26
         ORDER BY weight desc,activity_status,start_date
27
     </select>
27
     </select>
28
+    <select id="getCustomerActivityList" resultType="java.util.Map">
29
+        SELECT
30
+            t.enlist_id AS id,
31
+            t.dynamic_id AS activityId,
32
+            t.create_date AS createDate,
33
+            IF( t.is_checkin = 1, "已签到", "未签到" ) AS `status`,
34
+            d.img_url AS mainImg,
35
+            d.title,
36
+            d.start_date AS startDate,
37
+            d.enlist_end AS endDate,
38
+            'dynamic' AS type
39
+        FROM
40
+            ta_activity_dynamic_enlist t
41
+            LEFT JOIN ta_building_dynamic d ON t.dynamic_id = d.dynamic_id
42
+        WHERE
43
+            t.org_id = #{orgId}
44
+            AND t.person_id = #{personId}
45
+      UNION ALL
46
+        SELECT
47
+            t.record_id AS id,
48
+            t.group_activity_id AS activityId,
49
+            t.create_time AS createDate,
50
+        CASE
51
+            WHEN t.STATUS = 1 THEN
52
+            "进行中"
53
+            WHEN t.STATUS = 0
54
+            AND t.verification_status = 1 THEN
55
+            "成功已核销"
56
+        WHEN t.STATUS = 0
57
+        AND t.verification_status != 1 THEN
58
+        "成功未核销"
59
+        WHEN t.STATUS = 2 THEN
60
+        "失败"
61
+        END `status`,
62
+            d.main_img AS mainImg,
63
+            d.activity_name AS title,
64
+            d.start_time AS startDate,
65
+            d.end_time AS endDate,
66
+            'group' AS type
67
+        FROM
68
+            ta_share_record t
69
+            LEFT JOIN ta_share_activity d ON t.group_activity_id = d.group_activity_id
70
+        WHERE
71
+            t.org_id = #{orgId}
72
+            AND t.person_id = #{personId}
73
+      UNION ALL
74
+        SELECT
75
+            t.help_record_initiate_id AS id,
76
+            t.help_activity_id AS activityId,
77
+            t.create_date AS createDate,
78
+        CASE
79
+                WHEN t.STATUS = 1 THEN
80
+                "进行中"
81
+                WHEN t.STATUS = 0
82
+                AND t.verification_status = 1 THEN
83
+                    "成功已核销"
84
+                    WHEN t.STATUS = 0
85
+                    AND t.verification_status != 1 THEN
86
+                        "成功未核销"
87
+                        WHEN t.STATUS = 2 THEN
88
+                        "失败"
89
+                    END `status`,
90
+            d.img AS mainImg,
91
+            d.title,
92
+            d.start_date AS startDate,
93
+            d.end_date AS endDate,
94
+            'help' AS type
95
+        FROM
96
+            ta_help_initiate_record t
97
+            LEFT JOIN ta_help_activity d ON t.help_activity_id = d.help_activity_id
98
+        WHERE
99
+            t.org_id = #{orgId}
100
+            AND t.person_id = #{personId}
101
+        ORDER BY
102
+        createDate DESC
103
+    </select>
28
 </mapper>
104
 </mapper>

+ 1
- 4
src/main/resources/mapper/HelpActivityMapper.xml 查看文件

31
             and ha.org_id=#{orgId}
31
             and ha.org_id=#{orgId}
32
         </where>
32
         </where>
33
         GROUP BY ha.help_activity_id
33
         GROUP BY ha.help_activity_id
34
-        order by ha.activity_status = 0 desc,
35
-                  ha.activity_status = 1 desc,
36
-                  ha.activity_status = 2 desc,
37
-                  ha.start_date asc
34
+        order by ha.heavy desc
38
     </select>
35
     </select>
39
 
36
 
40
     <update id="updateActivityToUnStart">
37
     <update id="updateActivityToUnStart">

+ 12
- 0
src/main/resources/mapper/TaPersonVisitRecordMapper.xml 查看文件

49
         GROUP BY tpvr.person_id, tpvr.event
49
         GROUP BY tpvr.person_id, tpvr.event
50
         ORDER BY 	accessCount DESC,tpvr.visit_time DESC
50
         ORDER BY 	accessCount DESC,tpvr.visit_time DESC
51
     </select>
51
     </select>
52
+    <select id="getPersonVisitRecordList" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">
53
+        SELECT
54
+            t.*,
55
+            b.building_name
56
+        FROM
57
+            ta_person_visit_record t
58
+            LEFT JOIN ta_building b ON t.building_id = b.building_id
59
+        WHERE
60
+            t.person_id = #{personId}
61
+        ORDER BY
62
+            t.visit_time DESC
63
+    </select>
52
 
64
 
53
 </mapper>
65
 </mapper>

+ 82
- 24
src/main/resources/mapper/TaRecommendCustomerMapper.xml 查看文件

226
         ) AS sharePersonName
226
         ) AS sharePersonName
227
         FROM
227
         FROM
228
         ta_person b
228
         ta_person b
229
-               <where>
230
-                    b.status > 0
231
-                   AND IFNULL(b.person_type, '') in ('estate agent', 'customer')
232
-                    <if test="name != null and name !=''">
233
-                        and b.nickname like CONCAT('%',#{name}, '%')
234
-                    </if>
235
-                    <if test="tel != null and tel!=''">
236
-                        and b.phone like CONCAT('%',#{tel}, '%')
237
-                    </if>
238
-                    <if test="entryType != null and entryType !=''">
239
-                        and b.entry_type = #{entryType}
240
-                    </if>
241
-                    <if test="sex != null and sex !=''">
242
-                        and b.sex = #{sex}
243
-                    </if>
244
-                    <if test="orgId != null">
245
-                       and b.org_id = #{orgId}
246
-                    </if>
247
-                    <if test="consultTel != null and consultTel !=''">
248
-                        and b.tel like CONCAT('%',#{consultTel}, '%')
249
-                    </if>
250
-                    and NOT EXISTS ( select * from ta_recommend_customer a where a.recommend_person = b.person_id)
251
-                </where>
252
-               order by b.create_date desc
229
+        <where>
230
+            b.status > 0
231
+            and b.org_id = #{orgId}
232
+            AND IFNULL(b.person_type, '') in ('estate agent', 'customer')
233
+            AND b.person_id not IN ( SELECT c.person_id FROM ta_recommend_customer c WHERE c.org_id = #{orgId} AND person_id is not null AND person_id != ''  )
234
+            <if test="name != null and name !=''">
235
+                and b.nickname like CONCAT('%',#{name}, '%')
236
+            </if>
237
+            <if test="tel != null and tel!=''">
238
+                and b.phone like CONCAT('%',#{tel}, '%')
239
+            </if>
240
+            <if test="entryType != null and entryType !=''">
241
+                and b.entry_type = #{entryType}
242
+            </if>
243
+            <if test="sex != null and sex !=''">
244
+                and b.sex = #{sex}
245
+            </if>
246
+            <if test="consultTel != null and consultTel !=''">
247
+                and b.tel like CONCAT('%',#{consultTel}, '%')
248
+            </if>
249
+            and NOT EXISTS ( select * from ta_recommend_customer a where a.recommend_person = b.person_id)
250
+        </where>
251
+        order by b.create_date desc
253
     </select>
252
     </select>
254
 
253
 
255
     <select id="getRecCustomerExport" resultType="com.huiju.estateagents.excel.ExcelRecommendCustomer">
254
     <select id="getRecCustomerExport" resultType="com.huiju.estateagents.excel.ExcelRecommendCustomer">
606
         limit #{pageCode}, #{pageSize}
605
         limit #{pageCode}, #{pageSize}
607
     </select>
606
     </select>
608
 
607
 
608
+    <select id="getMyCustStatistics" resultType="java.util.Map">
609
+        SELECT
610
+            sum( IF ( STATUS = 4, 1, 0 ) ) AS followSum,
611
+            sum( IF ( STATUS != 4 AND STATUS != 4, 1, 0 ) ) AS clinchSum
612
+        FROM
613
+            ta_recommend_customer
614
+        WHERE
615
+            org_id = #{orgId}
616
+        AND ( realty_consultant = #{personId} OR realty_consultant = #{userId} )
617
+    </select>
618
+
619
+    <select id="getMyCustFollowOrClinch" resultType="com.huiju.estateagents.entity.TaRecommendCustomer">
620
+        SELECT
621
+            *
622
+        FROM
623
+            ta_recommend_customer
624
+        WHERE
625
+            org_id = #{orgId}
626
+        AND ( realty_consultant = #{personId} OR realty_consultant = #{userId} )
627
+        <if test="type == 'follow'">
628
+          AND STATUS != 4
629
+            <if test="name != null and name !=''">
630
+                and `name` like CONCAT('%',#{name}, '%')
631
+            </if>
632
+            <if test="phone != null and phone !=''">
633
+                and phone like CONCAT('%',#{phone}, '%')
634
+            </if>
635
+            <if test="status != null and status !=''">
636
+                and status = #{status}
637
+            </if>
638
+        </if>
639
+        <if test="type == 'clinch'">
640
+          AND STATUS = 4
641
+        </if>
642
+    </select>
643
+
644
+    <select id="getMyCustDetailById" resultType="com.huiju.estateagents.entity.TaRecommendCustomer">
645
+        SELECT
646
+            *
647
+        FROM
648
+            ta_recommend_customer
649
+        where customer_id = #{customerId}
650
+    </select>
651
+
652
+    <select id="getCustomerIntentions" resultType="com.huiju.estateagents.entity.PersonIntention">
653
+        SELECT
654
+            SUM( intention ) AS intention,
655
+            building_id,
656
+            building_name
657
+        FROM
658
+            `ta_person_intention_record`
659
+        WHERE
660
+            person_id = #{personId}
661
+        GROUP BY
662
+            building_id
663
+        ORDER BY
664
+            intention DESC
665
+    </select>
666
+
609
 </mapper>
667
 </mapper>

+ 12
- 0
src/main/resources/mapper/statistic/TaCustomerStatisticDailyMapper.xml 查看文件

41
         GROUP BY
41
         GROUP BY
42
             c.org_id
42
             c.org_id
43
     </select>
43
     </select>
44
+
45
+    <select id="getDailyList" resultType="com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily">
46
+        SELECT
47
+          *
48
+        FROM
49
+          ta_customer_statistic_daily
50
+        WHERE
51
+          org_id = #{orgId}
52
+        AND customer_type = #{customerType}
53
+        AND date_format( create_date, '%Y-%m-%d' ) >= date_format( #{beforeDate}, '%Y-%m-%d' )
54
+        AND date_format( create_date, '%Y-%m-%d' ) &lt;= date_format( #{nowDate}, '%Y-%m-%d' )
55
+    </select>
44
 </mapper>
56
 </mapper>

+ 11
- 0
src/main/resources/mapper/statistic/TaCustomerStatisticMonthlyMapper.xml 查看文件

44
         GROUP BY
44
         GROUP BY
45
             c.org_id
45
             c.org_id
46
     </select>
46
     </select>
47
+    <select id="getMonthlyList" resultType="com.huiju.estateagents.statistic.entity.TaCustomerStatisticMonthly">
48
+        SELECT
49
+          *
50
+        FROM
51
+          ta_customer_statistic_monthly
52
+        WHERE
53
+          org_id = #{orgId}
54
+        AND customer_type = #{customerType}
55
+        AND date_format( create_date, '%Y-%m-%d' ) >= date_format( #{beforeDate}, '%Y-%m-%d' )
56
+        AND date_format( create_date, '%Y-%m-%d' ) &lt;= date_format( #{nowDate}, '%Y-%m-%d' )
57
+    </select>
47
 </mapper>
58
 </mapper>