Procházet zdrojové kódy

Merge branch 'dev'

魏超 před 5 roky
rodič
revize
49f29470bf
37 změnil soubory, kde provedl 442 přidání a 83 odebrání
  1. 6
    0
      src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java
  2. 1
    1
      src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java
  3. 21
    8
      src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java
  4. 1
    0
      src/main/java/com/huiju/estateagents/controller/ExtendContentController.java
  5. 2
    1
      src/main/java/com/huiju/estateagents/controller/MiniAppController.java
  6. 1
    1
      src/main/java/com/huiju/estateagents/controller/TaHousingResourcesController.java
  7. 37
    4
      src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java
  8. 8
    8
      src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java
  9. 8
    12
      src/main/java/com/huiju/estateagents/controller/TaRaiseRecordController.java
  10. 20
    1
      src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java
  11. 7
    5
      src/main/java/com/huiju/estateagents/entity/ExtendContent.java
  12. 14
    0
      src/main/java/com/huiju/estateagents/entity/TaPerson.java
  13. 5
    0
      src/main/java/com/huiju/estateagents/entity/TaRaiseRecord.java
  14. 37
    3
      src/main/java/com/huiju/estateagents/excel/PrivateCustomerExport.java
  15. 44
    3
      src/main/java/com/huiju/estateagents/excel/PublicCustomerExport.java
  16. 55
    0
      src/main/java/com/huiju/estateagents/excel/SalesExport.java
  17. 3
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonBuildingMapper.java
  18. 1
    1
      src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java
  19. 2
    2
      src/main/java/com/huiju/estateagents/service/ITaHousingResourcesService.java
  20. 11
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonBuildingService.java
  21. 1
    1
      src/main/java/com/huiju/estateagents/service/ITaPersonService.java
  22. 1
    1
      src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java
  23. 1
    0
      src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java
  24. 2
    0
      src/main/java/com/huiju/estateagents/service/impl/ExtendContentServiceImpl.java
  25. 1
    2
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java
  26. 5
    3
      src/main/java/com/huiju/estateagents/service/impl/TaHousingResourcesServiceImpl.java
  27. 24
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPersonBuildingServiceImpl.java
  28. 6
    1
      src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java
  29. 3
    3
      src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java
  30. 11
    0
      src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java
  31. 23
    0
      src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java
  32. 2
    2
      src/main/java/com/huiju/estateagents/service/impl/WxPayServiceImpl.java
  33. 42
    0
      src/main/resources/mapper/TaPersonBuildingMapper.xml
  34. 4
    4
      src/main/resources/mapper/TaPersonVisitRecordMapper.xml
  35. 27
    10
      src/main/resources/mapper/TaRecommendCustomerMapper.xml
  36. 3
    1
      src/main/resources/mapper/TaSalesBatchMapper.xml
  37. 2
    5
      src/main/resources/mapper/TaUserMapper.xml

+ 6
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java Zobrazit soubor

226
      */
226
      */
227
     @TableField(exist = false)
227
     @TableField(exist = false)
228
     private String consultantPersonId;
228
     private String consultantPersonId;
229
+
230
+    /**
231
+     * personId集合
232
+     */
233
+    @TableField(exist = false)
234
+    private List<TaPerson> personIds;
229
 }
235
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java Zobrazit soubor

26
 	
26
 	
27
 	List<TaTags> getTagsList(@Param("userId") Integer userId,@Param("orgId") Integer orgId);
27
 	List<TaTags> getTagsList(@Param("userId") Integer userId,@Param("orgId") Integer orgId);
28
 	
28
 	
29
-	List<TaUser> getUserList(@Param("phone") String phone,@Param("loginName") String loginName,@Param("orgId") Integer orgId);
29
+	List<TaUser> getUserList(@Param("phone") String phone,@Param("orgId") Integer orgId);
30
 
30
 
31
     IPage<TaUser> seleUserList(IPage pg,@Param("taUser") TaUser taUser,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
31
     IPage<TaUser> seleUserList(IPage pg,@Param("taUser") TaUser taUser,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
32
 
32
 

+ 21
- 8
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java Zobrazit soubor

402
             throw new Exception("用户名称不能为空");
402
             throw new Exception("用户名称不能为空");
403
         }
403
         }
404
 
404
 
405
-        if (StringUtils.isEmpty(taUser.getLoginName())) {
406
-            taUser.setLoginName(taUser.getPhone());
405
+        if (!StringUtils.isEmpty(taUser.getLoginName())) {
406
+            QueryWrapper<TaUser> wrapper = new QueryWrapper<>();
407
+            wrapper.eq("login_name", taUser.getLoginName());
408
+            List<TaUser> taUserList = this.list(wrapper);
409
+            if (null != taUserList && taUserList.size() > 0) {
410
+                throw new Exception("登录名重复");
411
+            }
407
         }
412
         }
408
 
413
 
409
         boolean weightCount = validateWeight(taUser, "add");
414
         boolean weightCount = validateWeight(taUser, "add");
411
             throw new Exception("同一项目下权重值不能重复");
416
             throw new Exception("同一项目下权重值不能重复");
412
         }
417
         }
413
 
418
 
414
-        List<TaUser> taUserList = taUserMapper.getUserList(taUser.getPhone(), taUser.getLoginName(), taUser.getOrgId());
419
+        List<TaUser> taUserList = taUserMapper.getUserList(taUser.getPhone(), taUser.getOrgId());
415
         if (null != taUserList && taUserList.size() > 0) {
420
         if (null != taUserList && taUserList.size() > 0) {
416
-            throw new Exception("电话号码或登录名重复");
421
+            throw new Exception("电话号码重复");
417
         }
422
         }
418
         taUser.setLoginPassword(MD5Utils.md5(MD5Utils.md5("123456")));
423
         taUser.setLoginPassword(MD5Utils.md5(MD5Utils.md5("123456")));
419
         taUser.setStatus(CommConstant.STATUS_NORMAL);
424
         taUser.setStatus(CommConstant.STATUS_NORMAL);
481
         if (StringUtils.isEmpty(taUser.getWeight())) {
486
         if (StringUtils.isEmpty(taUser.getWeight())) {
482
             taUser.setWeight(null);
487
             taUser.setWeight(null);
483
         }
488
         }
484
-        if (StringUtils.isEmpty(taUser.getLoginName()) && taUserBefore.getLoginName().equals(taUserBefore.getPhone())) {
485
-            taUser.setLoginName(taUser.getPhone());
489
+        if (!StringUtils.isEmpty(taUser.getLoginName()) && !taUser.getLoginName().equals(taUserBefore.getLoginName())) {
490
+            if (!StringUtils.isEmpty(taUser.getLoginName())) {
491
+                QueryWrapper<TaUser> wrapper = new QueryWrapper<>();
492
+                wrapper.eq("login_name", taUser.getLoginName());
493
+                List<TaUser> taUserList = this.list(wrapper);
494
+                if (null != taUserList && taUserList.size() > 0) {
495
+                    throw new Exception("登录名重复");
496
+                }
497
+            }
486
         }
498
         }
487
 
499
 
488
         boolean weightCount = validateWeight(taUser, "update");
500
         boolean weightCount = validateWeight(taUser, "update");
491
         }
503
         }
492
 
504
 
493
         QueryWrapper<TaUser> wrapper = new QueryWrapper<>();
505
         QueryWrapper<TaUser> wrapper = new QueryWrapper<>();
494
-        wrapper.nested(q -> q.eq("phone", taUser.getPhone()).or().eq("login_Name", taUser.getLoginName()));
506
+//        wrapper.nested(q -> q.eq("phone", taUser.getPhone()).or().eq("login_Name", taUser.getLoginName()));
507
+        wrapper.eq("phone", taUser.getPhone());
495
         wrapper.eq("org_id", taUser.getOrgId());
508
         wrapper.eq("org_id", taUser.getOrgId());
496
         wrapper.ne("user_id", taUser.getUserId());
509
         wrapper.ne("user_id", taUser.getUserId());
497
         List<TaUser> taUserList = this.list(wrapper);
510
         List<TaUser> taUserList = this.list(wrapper);
498
         if (null != taUserList && taUserList.size() > 0) {
511
         if (null != taUserList && taUserList.size() > 0) {
499
-            throw new Exception("电话号码或登录名重复");
512
+            throw new Exception("电话号码重复");
500
         }
513
         }
501
         if (taUserMapper.updateById(taUser) < 1) {
514
         if (taUserMapper.updateById(taUser) < 1) {
502
             throw new Exception("更新用户信息失败");
515
             throw new Exception("更新用户信息失败");

+ 1
- 0
src/main/java/com/huiju/estateagents/controller/ExtendContentController.java Zobrazit soubor

105
             queryWrapper.eq(status != null, "status", status);
105
             queryWrapper.eq(status != null, "status", status);
106
             queryWrapper.eq( "org_id", getOrgId(request));
106
             queryWrapper.eq( "org_id", getOrgId(request));
107
             queryWrapper.and(taPersonBuildingList.size() > 0, wapper -> wapper.in("building_id",taPersonBuildingList.stream().map(TaPersonBuilding::getBuildingId).collect(Collectors.toList())).or().isNull("building_id"));
107
             queryWrapper.and(taPersonBuildingList.size() > 0, wapper -> wapper.in("building_id",taPersonBuildingList.stream().map(TaPersonBuilding::getBuildingId).collect(Collectors.toList())).or().isNull("building_id"));
108
+            queryWrapper.orderByDesc("order_no");
108
             queryWrapper.orderByDesc("create_date");
109
             queryWrapper.orderByDesc("create_date");
109
             IPage<ExtendContent> result = iExtendContentService.page(pg, queryWrapper);
110
             IPage<ExtendContent> result = iExtendContentService.page(pg, queryWrapper);
110
 
111
 

+ 2
- 1
src/main/java/com/huiju/estateagents/controller/MiniAppController.java Zobrazit soubor

463
         String sessionKey = params.getString("sessionKey");
463
         String sessionKey = params.getString("sessionKey");
464
         String encryptedData = params.getString("encryptedData");
464
         String encryptedData = params.getString("encryptedData");
465
         String iv = params.getString("iv");
465
         String iv = params.getString("iv");
466
+        String buildingId = params.getString("buildingId");
466
 
467
 
467
         // 解密
468
         // 解密
468
         WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv, appid);
469
         WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv, appid);
470
         // 更新用户绑定手机
471
         // 更新用户绑定手机
471
         String openid = getOpenId(request);
472
         String openid = getOpenId(request);
472
         Integer orgId = getOrgId(request);
473
         Integer orgId = getOrgId(request);
473
-        taPersonService.updatePersonPhone(openid, phoneNoInfo.getPhoneNumber(), orgId);
474
+        taPersonService.updatePersonPhone(openid, phoneNoInfo.getPhoneNumber(), buildingId, orgId);
474
         List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
475
         List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
475
         if (null == taPersons || taPersons.size() != 1) {
476
         if (null == taPersons || taPersons.size() != 1) {
476
             return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
477
             return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);

+ 1
- 1
src/main/java/com/huiju/estateagents/controller/TaHousingResourcesController.java Zobrazit soubor

529
                                             HttpServletRequest request) {
529
                                             HttpServletRequest request) {
530
         ResponseBean responseBean = new ResponseBean();
530
         ResponseBean responseBean = new ResponseBean();
531
         try {
531
         try {
532
-            responseBean = iTaHousingResourcesService.updateLockingStatus(houseId, type, getOrgId(request), raiseHouseId, personId, raiseRecordId);
532
+            responseBean = iTaHousingResourcesService.updateLockingStatus(houseId, type, getOrgId(request), raiseHouseId, personId, raiseRecordId,getUserId(request));
533
             logger.info("updateLockingStatus 返回结果:", JSONObject.toJSONString(responseBean));
533
             logger.info("updateLockingStatus 返回结果:", JSONObject.toJSONString(responseBean));
534
         } catch (Exception e) {
534
         } catch (Exception e) {
535
             logger.error("updateLockingStatus 异常:", e);
535
             logger.error("updateLockingStatus 异常:", e);

+ 37
- 4
src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java Zobrazit soubor

1
 package com.huiju.estateagents.controller;
1
 package com.huiju.estateagents.controller;
2
 
2
 
3
 
3
 
4
+import com.alibaba.excel.EasyExcel;
5
+import com.alibaba.excel.ExcelWriter;
6
+import com.alibaba.excel.write.metadata.WriteSheet;
4
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.BaseController;
5
 import com.huiju.estateagents.base.ResponseBean;
8
 import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.excel.HelpRecordExport;
10
+import com.huiju.estateagents.excel.SalesExport;
11
+import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
6
 import com.huiju.estateagents.service.ITaPersonBuildingService;
12
 import com.huiju.estateagents.service.ITaPersonBuildingService;
7
 import org.slf4j.Logger;
13
 import org.slf4j.Logger;
8
 import org.slf4j.LoggerFactory;
14
 import org.slf4j.LoggerFactory;
9
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.beans.factory.annotation.Autowired;
10
-import org.springframework.web.bind.annotation.RequestMapping;
11
-import org.springframework.web.bind.annotation.RequestMethod;
12
-import org.springframework.web.bind.annotation.RequestParam;
13
-import org.springframework.web.bind.annotation.RestController;
16
+import org.springframework.web.bind.annotation.*;
14
 
17
 
15
 import javax.servlet.http.HttpServletRequest;
18
 import javax.servlet.http.HttpServletRequest;
19
+import javax.servlet.http.HttpServletResponse;
20
+import java.io.IOException;
21
+import java.util.List;
16
 
22
 
17
 /**
23
 /**
18
  * <p>
24
  * <p>
55
         return responseBean;
61
         return responseBean;
56
     }
62
     }
57
 
63
 
64
+    /**
65
+     * 销售分享统计导出
66
+     *
67
+     * @param request
68
+     * @param response
69
+     * @throws IOException
70
+     */
71
+    @GetMapping("/admin/exportSales")
72
+    public void gethelpRecordExport(@RequestParam(value = "buildingId", required = false) String buildingId,
73
+                                    @RequestParam(value ="startCreateDate",required = false) String startCreateDate,
74
+                                    @RequestParam(value ="endCreateDate",required = false) String endCreateDate,
75
+                                    HttpServletRequest request,
76
+                                    HttpServletResponse response) throws IOException {
77
+        response.setContentType("application/octet-stream");
78
+        response.setCharacterEncoding("utf-8");
79
+        response.setHeader("Content-disposition", "attachment;filename=销售分享统计.xlsx");
80
+        Integer orgId = getOrgId(request);
81
+
82
+        // 设置读取的class
83
+        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), SalesExport.class).registerWriteHandler(new CustomCellWriteHandler()).build();
84
+        // 设置 sheet, 同一个sheet只需要设置一次
85
+        WriteSheet writeSheet = EasyExcel.writerSheet("销售分享统计").build();
86
+        List<SalesExport> salesList = taPersonBuildingService.selectSalesList(orgId,buildingId,startCreateDate,endCreateDate,getTaPersonBuildingListByUserId(request));
87
+        excelWriter.write(salesList, writeSheet);
88
+        // finish 会帮忙关闭流
89
+        excelWriter.finish();
90
+    }
58
 }
91
 }

+ 8
- 8
src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java Zobrazit soubor

272
     @RequestMapping(value = "/wx/activityVisitRecord", method = RequestMethod.GET)
272
     @RequestMapping(value = "/wx/activityVisitRecord", method = RequestMethod.GET)
273
     public ResponseBean wxPersonActivityVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
273
     public ResponseBean wxPersonActivityVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
274
                                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
274
                                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
275
-                                                        @RequestParam(value = "userId") Integer userId,
275
+                                                        @RequestParam(value = "personId") String personId,
276
                                                         @RequestParam(value = "targetId") String targetId,
276
                                                         @RequestParam(value = "targetId") String targetId,
277
                                                         @RequestParam(value = "eventType") String eventType,
277
                                                         @RequestParam(value = "eventType") String eventType,
278
                                                         HttpServletRequest request) {
278
                                                         HttpServletRequest request) {
279
         try {
279
         try {
280
             //使用分页插件
280
             //使用分页插件
281
             IPage<TaPersonVisitRecord> pg = new Page<>(pageNumber, pageSize);
281
             IPage<TaPersonVisitRecord> pg = new Page<>(pageNumber, pageSize);
282
-            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxActivityVisitRecordList(pg, userId, getOrgId(request), targetId, eventType);
282
+            IPage<TaPersonVisitRecord> result = iTaPersonVisitRecordService.getWxActivityVisitRecordList(pg, personId, getOrgId(request), targetId, eventType);
283
             return ResponseBean.success(result);
283
             return ResponseBean.success(result);
284
         } catch (Exception e) {
284
         } catch (Exception e) {
285
             e.printStackTrace();
285
             e.printStackTrace();
293
      *
293
      *
294
      * @param pageNumber
294
      * @param pageNumber
295
      * @param pageSize
295
      * @param pageSize
296
-     * @param userId
296
+     * @param personId
297
      * @param request
297
      * @param request
298
      * @return
298
      * @return
299
      */
299
      */
300
     @RequestMapping(value = "/wx/shareRecords", method = RequestMethod.GET)
300
     @RequestMapping(value = "/wx/shareRecords", method = RequestMethod.GET)
301
     public ResponseBean wxShareRecordsByUserId(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
301
     public ResponseBean wxShareRecordsByUserId(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
302
                                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
302
                                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
303
-                                               @RequestParam(value = "userId") Integer userId,
303
+                                               @RequestParam(value = "personId") String personId,
304
                                                HttpServletRequest request) {
304
                                                HttpServletRequest request) {
305
         ResponseBean responseBean = new ResponseBean();
305
         ResponseBean responseBean = new ResponseBean();
306
-        if (userId == null) {
306
+        if (personId == null) {
307
             return responseBean;
307
             return responseBean;
308
         }
308
         }
309
         //使用分页插件
309
         //使用分页插件
310
         IPage<TaConsultantInfo> pg = new Page<>(pageNumber, pageSize);
310
         IPage<TaConsultantInfo> pg = new Page<>(pageNumber, pageSize);
311
         QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
311
         QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
312
-        taPersonQueryWrapper.eq("user_id", userId);
312
+        taPersonQueryWrapper.eq("person_id", personId);
313
         TaPerson taPerson = taPersonService.getOne(taPersonQueryWrapper);
313
         TaPerson taPerson = taPersonService.getOne(taPersonQueryWrapper);
314
-        IPage<TaConsultantInfo> result = iTaPersonVisitRecordService.getConsultantShareInfoList(pg, taPerson.getPersonId());
314
+        IPage<TaConsultantInfo> result = iTaPersonVisitRecordService.getConsultantShareInfoList(pg, personId);
315
 
315
 
316
         List<TaConsultantInfo> taConsultantInfos = result.getRecords();
316
         List<TaConsultantInfo> taConsultantInfos = result.getRecords();
317
         taConsultantInfos.forEach(e -> {
317
         taConsultantInfos.forEach(e -> {
318
-            Integer shareNum = iTaPersonVisitRecordService.countShareNumByEventType(getOrgId(request), e.getTargetId(), userId, taPerson.getPersonId(), (CommConstant.FAVOR_PROJECT.equals(e.getEventType()) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(e.getEventType()) ? "dynamic" : e.getEventType()) + "_share");
318
+            Integer shareNum = iTaPersonVisitRecordService.countShareNumByEventType(getOrgId(request), e.getTargetId(), taPerson.getUserId(), taPerson.getPersonId(), (CommConstant.FAVOR_PROJECT.equals(e.getEventType()) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(e.getEventType()) ? "dynamic" : e.getEventType()) + "_share");
319
             switch (e.getEventType()) {
319
             switch (e.getEventType()) {
320
                 case CommConstant.FAVOR_ACTIVITY:
320
                 case CommConstant.FAVOR_ACTIVITY:
321
                     e.setActivityShareNum(shareNum);
321
                     e.setActivityShareNum(shareNum);

+ 8
- 12
src/main/java/com/huiju/estateagents/controller/TaRaiseRecordController.java Zobrazit soubor

219
                 }
219
                 }
220
                 record.setInvalidReason(raiseRecord.getInvalidReason());
220
                 record.setInvalidReason(raiseRecord.getInvalidReason());
221
                 record.setUpdateDate(LocalDateTime.now());
221
                 record.setUpdateDate(LocalDateTime.now());
222
-                record.setStatus(0);
222
+                record.setStatus(CommConstant.STATUS_UNACCALIMED);
223
 
223
 
224
                 // 更新房源认筹热度
224
                 // 更新房源认筹热度
225
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
225
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
226
 
226
 
227
-                // 如果房源状态为已锁定,则修改房源锁定状态
228
-                if (CommConstant.HOUSE_LOCKING_STATUS_LOCKED.equals(record.getHouseLockingStatus())) {
229
-                    record.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
230
-                    iTaRaiseRecordService.updateHouseLockingStatus(record.getRaiseRecordId(), CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
231
-                }
227
+                // 修改房源锁定状态为未锁定
228
+                record.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
229
+                iTaRaiseRecordService.updateHouseLockingStatus(record.getRaiseRecordId(), CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
232
 
230
 
233
                 // 发送订阅消息
231
                 // 发送订阅消息
234
                 iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(), record.getRaiseId(), "认筹通知", "认筹单已作废", "点击详情查看认筹单", "具体原因查看详情", false);
232
                 iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(), record.getRaiseId(), "认筹通知", "认筹单已作废", "点击详情查看认筹单", "具体原因查看详情", false);
277
                 // 更新房源认筹热度
275
                 // 更新房源认筹热度
278
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
276
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
279
 
277
 
280
-                // 如果房源状态为已锁定,则修改房源锁定状态
281
-                if (CommConstant.HOUSE_LOCKING_STATUS_LOCKED.equals(record.getHouseLockingStatus())) {
282
-                    record.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
283
-                    iTaRaiseRecordService.updateHouseLockingStatus(record.getRaiseRecordId(), CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
284
-                }
278
+                // 修改房源锁定状态为未锁定
279
+                record.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
280
+                iTaRaiseRecordService.updateHouseLockingStatus(record.getRaiseRecordId(), CommConstant.HOUSE_LOCKING_STATUS_UNLOCKED);
285
 
281
 
286
                 // 发送订阅消息
282
                 // 发送订阅消息
287
                 iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(), record.getRaiseId(), "认筹通知", "认筹单已作废", "点击详情查看认筹单", "具体原因查看详情", false);
283
                 iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(), record.getRaiseId(), "认筹通知", "认筹单已作废", "点击详情查看认筹单", "具体原因查看详情", false);
755
             taRaiseRecordQueryWrapper.eq(StringUtils.isNotEmpty(buildingId), "building_id", buildingId);
751
             taRaiseRecordQueryWrapper.eq(StringUtils.isNotEmpty(buildingId), "building_id", buildingId);
756
             taRaiseRecordQueryWrapper.eq(null != salesBatchId, "sales_batch_id", salesBatchId);
752
             taRaiseRecordQueryWrapper.eq(null != salesBatchId, "sales_batch_id", salesBatchId);
757
             taRaiseRecordQueryWrapper.eq(StringUtils.isNotEmpty(houseLockingStatus), "house_locking_status", houseLockingStatus);
753
             taRaiseRecordQueryWrapper.eq(StringUtils.isNotEmpty(houseLockingStatus), "house_locking_status", houseLockingStatus);
758
-            taRaiseRecordQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
754
+            taRaiseRecordQueryWrapper.ne("status", CommConstant.STATUS_DELETE);
759
             taRaiseRecordQueryWrapper.orderByDesc("create_date");
755
             taRaiseRecordQueryWrapper.orderByDesc("create_date");
760
             IPage<TaRaiseRecord> page = iTaRaiseRecordService.page(pg, taRaiseRecordQueryWrapper);
756
             IPage<TaRaiseRecord> page = iTaRaiseRecordService.page(pg, taRaiseRecordQueryWrapper);
761
             List<TaRaiseRecord> list = page.getRecords();
757
             List<TaRaiseRecord> list = page.getRecords();

+ 20
- 1
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java Zobrazit soubor

28
 import io.swagger.annotations.ApiImplicitParam;
28
 import io.swagger.annotations.ApiImplicitParam;
29
 import io.swagger.annotations.ApiImplicitParams;
29
 import io.swagger.annotations.ApiImplicitParams;
30
 import io.swagger.annotations.ApiOperation;
30
 import io.swagger.annotations.ApiOperation;
31
+import org.apache.commons.collections.CollectionUtils;
31
 import org.springframework.beans.factory.annotation.Autowired;
32
 import org.springframework.beans.factory.annotation.Autowired;
32
 import org.springframework.context.ApplicationContext;
33
 import org.springframework.context.ApplicationContext;
33
 import org.springframework.format.annotation.DateTimeFormat;
34
 import org.springframework.format.annotation.DateTimeFormat;
413
         }
414
         }
414
     }
415
     }
415
 
416
 
417
+    /**
418
+     * 批量分配置业顾问
419
+     */
420
+    @RequestMapping(value="/admin/customer/consultant/batchAssist",method= RequestMethod.POST)
421
+    public ResponseBean batchAssistConsultant (@RequestBody TaUser taUser, HttpServletRequest request){
422
+        if (CollectionUtils.isEmpty(taUser.getPersonIds())){
423
+            return ResponseBean.error("请至少选择一条数据", ResponseBean.ERROR_UNAVAILABLE);
424
+        }
425
+        try{
426
+            Integer orgId = getOrgId(request);
427
+            taRecommendCustomerService.batchConsultantAssist(taUser, orgId);
428
+            return ResponseBean.success("");
429
+        }catch (Exception e){
430
+            e.printStackTrace();
431
+            return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
432
+        }
433
+    }
434
+
416
     @GetMapping("/admin/customer/recommend/{customerId}")
435
     @GetMapping("/admin/customer/recommend/{customerId}")
417
     public ResponseBean getCustomersIRecommended (@RequestParam int pageNumber, @RequestParam int pageSize, @PathVariable String customerId,HttpServletRequest request){
436
     public ResponseBean getCustomersIRecommended (@RequestParam int pageNumber, @RequestParam int pageSize, @PathVariable String customerId,HttpServletRequest request){
418
         Integer orgId = getOrgId(request);
437
         Integer orgId = getOrgId(request);
800
 //            pageCount = count % pageSize == 0 ? count / pageSize : (count / pageSize) + 1;
819
 //            pageCount = count % pageSize == 0 ? count / pageSize : (count / pageSize) + 1;
801
 //            List<PublicCustomerExport> publicList = null;
820
 //            List<PublicCustomerExport> publicList = null;
802
 //            do {
821
 //            do {
803
-                List<PublicCustomerExport> publicList = taRecommendCustomerMapper.getPublicCustomerExportList(pageCode * pageSize, pageSize, buildingId, name, tel,  entryType, verifyStatus, sex, orgId,consultTel,sceneType);
822
+                List<PublicCustomerExport> publicList = taRecommendCustomerMapper.getPublicCustomerExportList(pageCode * pageSize, pageSize, buildingId, name, tel,  entryType, verifyStatus, sex, orgId,consultTel,sceneType,getTaPersonBuildingListByUserId(request));
804
                 excelWriter.write(publicList, writeSheet);
823
                 excelWriter.write(publicList, writeSheet);
805
 
824
 
806
 //                pageCode ++;
825
 //                pageCode ++;

+ 7
- 5
src/main/java/com/huiju/estateagents/entity/ExtendContent.java Zobrazit soubor

1
 package com.huiju.estateagents.entity;
1
 package com.huiju.estateagents.entity;
2
 
2
 
3
-import com.baomidou.mybatisplus.annotation.TableField;
4
-import com.baomidou.mybatisplus.annotation.TableName;
5
-import com.baomidou.mybatisplus.annotation.IdType;
6
-import com.baomidou.mybatisplus.annotation.TableId;
3
+import com.baomidou.mybatisplus.annotation.*;
4
+
7
 import java.time.LocalDateTime;
5
 import java.time.LocalDateTime;
8
 import java.io.Serializable;
6
 import java.io.Serializable;
9
 import lombok.Data;
7
 import lombok.Data;
101
 
99
 
102
     private Integer cityId;
100
     private Integer cityId;
103
 
101
 
104
-
102
+    /**
103
+     * 排序
104
+     */
105
+    @TableField(strategy = FieldStrategy.IGNORED)
106
+    private Integer orderNo;
105
 }
107
 }

+ 14
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java Zobrazit soubor

189
      */
189
      */
190
     private String idcard;
190
     private String idcard;
191
 
191
 
192
+    /**
193
+     * 项目id
194
+     */
195
+    private String buildingId;
196
+    /**
197
+     * 授权手机号时间
198
+     */
199
+    private LocalDateTime authPhoneTime;
200
+
201
+    /**
202
+     * 授权昵称时间
203
+     */
204
+    private LocalDateTime authNicknameTime;
205
+
192
     /**
206
     /**
193
      * 访问记录
207
      * 访问记录
194
      */
208
      */

+ 5
- 0
src/main/java/com/huiju/estateagents/entity/TaRaiseRecord.java Zobrazit soubor

114
      */
114
      */
115
     private String refundReason;
115
     private String refundReason;
116
 
116
 
117
+    /**
118
+     * 退费失败原因
119
+     */
120
+    private String refundFailReason;
121
+
117
     /**
122
     /**
118
      * 创建时间
123
      * 创建时间
119
      */
124
      */

+ 37
- 3
src/main/java/com/huiju/estateagents/excel/PrivateCustomerExport.java Zobrazit soubor

14
      * 姓名
14
      * 姓名
15
      */
15
      */
16
     @ColumnWidth(15)
16
     @ColumnWidth(15)
17
-    @ExcelProperty(value = "姓名", index = 0)
17
+    @ExcelProperty(value = "客户昵称", index = 0)
18
     private String name;
18
     private String name;
19
 
19
 
20
     /**
20
     /**
21
      * 电话
21
      * 电话
22
      */
22
      */
23
     @ColumnWidth(15)
23
     @ColumnWidth(15)
24
-    @ExcelProperty(value = "电话", index = 1)
24
+    @ExcelProperty(value = "手机号码", index = 1)
25
     private String phone;
25
     private String phone;
26
 
26
 
27
     /**
27
     /**
28
      * 性别
28
      * 性别
29
      */
29
      */
30
     @ColumnWidth(15)
30
     @ColumnWidth(15)
31
-    @ExcelProperty(value = "性别", index = 2)
31
+    @ExcelProperty(value = "性别", index = 9)
32
     private String sex;
32
     private String sex;
33
 
33
 
34
     /**
34
     /**
52
     @ExcelProperty(value = "项目名称", index = 5)
52
     @ExcelProperty(value = "项目名称", index = 5)
53
     private String buildingName;
53
     private String buildingName;
54
 
54
 
55
+    /**
56
+     * 用户注册时间
57
+     */
58
+    @ColumnWidth(15)
59
+    @ExcelProperty(value = "关注时间(用户注册时间)", index = 2)
60
+    private String createDate;
61
+
62
+    /**
63
+     * 国家
64
+     */
65
+    @ColumnWidth(15)
66
+    @ExcelProperty(value = "归属地", index = 6)
67
+    private String province;
68
+
69
+//    /**
70
+//     * 省份
71
+//     */
72
+//    @ColumnWidth(15)
73
+//    @ExcelProperty(value = "省份", index = 8)
74
+//    private String province;
75
+
76
+    /**
77
+     * 来访方式
78
+     */
79
+    @ColumnWidth(15)
80
+    @ExcelProperty(value = "来访方式(场景渠道)", index = 7)
81
+    private String sceneType;
82
+
83
+    /**
84
+     * 意向度
85
+     */
86
+    @ColumnWidth(15)
87
+    @ExcelProperty(value = "意向度(意向值)", index = 8)
88
+    private String intention ;
55
 }
89
 }

+ 44
- 3
src/main/java/com/huiju/estateagents/excel/PublicCustomerExport.java Zobrazit soubor

14
      * 姓名
14
      * 姓名
15
      */
15
      */
16
     @ColumnWidth(15)
16
     @ColumnWidth(15)
17
-    @ExcelProperty(value = "姓名", index = 0)
17
+    @ExcelProperty(value = "客户昵称", index = 0)
18
     private String nickname;
18
     private String nickname;
19
 
19
 
20
     /**
20
     /**
21
      * 电话
21
      * 电话
22
      */
22
      */
23
     @ColumnWidth(15)
23
     @ColumnWidth(15)
24
-    @ExcelProperty(value = "电话", index = 1)
24
+    @ExcelProperty(value = "手机号码", index = 1)
25
     private String phone;
25
     private String phone;
26
 
26
 
27
     /**
27
     /**
28
      * 性别
28
      * 性别
29
      */
29
      */
30
     @ColumnWidth(15)
30
     @ColumnWidth(15)
31
-    @ExcelProperty(value = "性别", index = 2)
31
+    @ExcelProperty(value = "性别", index = 7)
32
     private String sex;
32
     private String sex;
33
 
33
 
34
+    /**
35
+     * 关注时间
36
+     */
37
+    @ColumnWidth(15)
38
+    @ExcelProperty(value = "关注时间(用户注册时间)", index = 2)
39
+    private String createDate;
40
+
41
+    /**
42
+     * 归属地
43
+     */
44
+    @ColumnWidth(15)
45
+    @ExcelProperty(value = "归属地", index = 4)
46
+    private String province;
47
+
48
+//    /**
49
+//     * 省份
50
+//     */
51
+//    @ColumnWidth(15)
52
+//    @ExcelProperty(value = "省份", index = 5)
53
+//    private String province;
54
+
55
+    /**
56
+     * 来访方式
57
+     */
58
+    @ColumnWidth(15)
59
+    @ExcelProperty(value = "来访方式(场景渠道)", index = 5)
60
+    private String sceneType;
61
+
62
+    /**
63
+     * 意向度
64
+     */
65
+    @ColumnWidth(15)
66
+    @ExcelProperty(value = "意向度(意向值)", index = 6)
67
+    private String intention;
68
+
69
+    /**
70
+     * 项目名称
71
+     */
72
+    @ColumnWidth(15)
73
+    @ExcelProperty(value = "项目名称", index = 3)
74
+    private String buildingName;
34
 }
75
 }

+ 55
- 0
src/main/java/com/huiju/estateagents/excel/SalesExport.java Zobrazit soubor

1
+package com.huiju.estateagents.excel;
2
+
3
+import com.alibaba.excel.annotation.ExcelIgnore;
4
+import com.alibaba.excel.annotation.ExcelProperty;
5
+import com.alibaba.excel.annotation.format.DateTimeFormat;
6
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
7
+import lombok.Data;
8
+
9
+import java.util.Date;
10
+
11
+/**
12
+ * <p>
13
+ * 助力活动发起人员记录
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-10-17
18
+ */
19
+@Data
20
+public class SalesExport {
21
+
22
+    /**
23
+     * 项目名称
24
+     */
25
+    @ColumnWidth(15)
26
+    @ExcelProperty(value = "项目名称", index = 0)
27
+    private String buildingName;
28
+
29
+    /**
30
+     * 置业顾问
31
+     */
32
+    @ColumnWidth(15)
33
+    @ExcelProperty(value = "置业顾问", index = 1)
34
+    private String consultantName;
35
+
36
+    /**
37
+     * 分享次数
38
+     */
39
+    @ColumnWidth(15)
40
+    @ExcelProperty(value = "分享次数", index = 2)
41
+    private int shareCount;
42
+
43
+    /**
44
+     * 点击人数
45
+     */
46
+    @ColumnWidth(15)
47
+    @ExcelProperty(value = "点击人数", index = 3)
48
+    private int clickNum;
49
+
50
+    @ExcelIgnore
51
+    private String personId;
52
+
53
+    @ExcelIgnore
54
+    private Integer userId;
55
+}

+ 3
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonBuildingMapper.java Zobrazit soubor

4
 import com.huiju.estateagents.entity.TaPersonBuilding;
4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
 import com.huiju.estateagents.entity.TaPointsExchange;
6
 import com.huiju.estateagents.entity.TaPointsExchange;
7
+import com.huiju.estateagents.excel.SalesExport;
7
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Param;
9
 import org.apache.ibatis.annotations.Param;
9
 
10
 
20
 @Mapper
21
 @Mapper
21
 public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
22
 public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
22
     List<TaPersonBuilding> selectListByParams(Page page, @Param("orgId")Integer orgId, @Param("buildingId") String buildingId, @Param("startCreateDate") String startCreateDate, @Param("endCreateDate") String endCreateDate, @Param("personBuildingList")List<TaPersonBuilding> taPersonBuildingList);
23
     List<TaPersonBuilding> selectListByParams(Page page, @Param("orgId")Integer orgId, @Param("buildingId") String buildingId, @Param("startCreateDate") String startCreateDate, @Param("endCreateDate") String endCreateDate, @Param("personBuildingList")List<TaPersonBuilding> taPersonBuildingList);
24
+
25
+    List<SalesExport> selectSalesList(@Param("orgId") Integer orgId,@Param("buildingId") String buildingId, @Param("startCreateDate")  String startCreateDate,@Param("endCreateDate") String endCreateDate, @Param("personBuildingList") List<TaPersonBuilding> taPersonBuildingList);
23
 }
26
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java Zobrazit soubor

119
      * @param consultTel
119
      * @param consultTel
120
      * @return
120
      * @return
121
      */
121
      */
122
-    List<PublicCustomerExport> getPublicCustomerExportList(@Param("pageCode") Integer pageCode, @Param("pageSize") Integer pageSize, @Param("buildingId")String buildingId, @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);
122
+    List<PublicCustomerExport> getPublicCustomerExportList(@Param("pageCode") Integer pageCode, @Param("pageSize") Integer pageSize, @Param("buildingId")String buildingId, @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,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
123
 
123
 
124
     /**
124
     /**
125
      * 导出数据 私客总数
125
      * 导出数据 私客总数

+ 2
- 2
src/main/java/com/huiju/estateagents/service/ITaHousingResourcesService.java Zobrazit soubor

162
     ResponseBean listHouseByRaiseRecordId(Integer raiseRecordId, Integer orgId, Integer pageNumber, Integer pageSize);
162
     ResponseBean listHouseByRaiseRecordId(Integer raiseRecordId, Integer orgId, Integer pageNumber, Integer pageSize);
163
 
163
 
164
     /**
164
     /**
165
-     * 更新房源锁定状态
165
+     * 更新房源状态
166
      *
166
      *
167
      * @param houseId
167
      * @param houseId
168
      * @param type
168
      * @param type
170
      * @param personId
170
      * @param personId
171
      * @return
171
      * @return
172
      */
172
      */
173
-    ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId);
173
+    ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId, Integer userId);
174
 
174
 
175
     /**
175
     /**
176
      * 校验房源的认筹状态
176
      * 校验房源的认筹状态

+ 11
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonBuildingService.java Zobrazit soubor

3
 import com.huiju.estateagents.base.ResponseBean;
3
 import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.entity.TaPersonBuilding;
4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.estateagents.excel.SalesExport;
6
 
7
 
7
 import java.util.List;
8
 import java.util.List;
8
 
9
 
16
  */
17
  */
17
 public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
18
 public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
18
     ResponseBean selectList(Integer pageNum, Integer pageSize, Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> getTaPersonBuildingListByUserId);
19
     ResponseBean selectList(Integer pageNum, Integer pageSize, Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> getTaPersonBuildingListByUserId);
20
+
21
+    /**
22
+     * 导出
23
+     * @param buildingId
24
+     * @param startCreateDate
25
+     * @param endCreateDate
26
+     * @param taPersonBuildingListByUserId
27
+     * @return
28
+     */
29
+    List<SalesExport> selectSalesList(Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> taPersonBuildingListByUserId);
19
 }
30
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITaPersonService.java Zobrazit soubor

23
 public interface ITaPersonService extends IService<TaPerson> {
23
 public interface ITaPersonService extends IService<TaPerson> {
24
     TaPerson mergePersonWxInfo(WxMaUserInfo userInfo);
24
     TaPerson mergePersonWxInfo(WxMaUserInfo userInfo);
25
 
25
 
26
-    TaPerson updatePersonPhone(String miniOpenid, String phone, Integer orgId);
26
+    TaPerson updatePersonPhone(String miniOpenid, String phone, String buildingId, Integer orgId);
27
 
27
 
28
     IPage<Map<String, Object>> getCardList(int pageNumber, int pageSize, String buildingId, Integer orgId, TaPerson person);
28
     IPage<Map<String, Object>> getCardList(int pageNumber, int pageSize, String buildingId, Integer orgId, TaPerson person);
29
 
29
 

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java Zobrazit soubor

45
 	 * @param orgId
45
 	 * @param orgId
46
 	 * @return
46
 	 * @return
47
 	 */
47
 	 */
48
-	IPage<TaPersonVisitRecord> getWxActivityVisitRecordList(IPage<TaPersonVisitRecord> pg, Integer userId, Integer orgId, String targetId, String eventType);
48
+	IPage<TaPersonVisitRecord> getWxActivityVisitRecordList(IPage<TaPersonVisitRecord> pg, String personId, Integer orgId, String targetId, String eventType);
49
 
49
 
50
 	/**
50
 	/**
51
 	 * 获取这个人的活动数据列表
51
 	 * 获取这个人的活动数据列表

+ 1
- 0
src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java Zobrazit soubor

58
 
58
 
59
     ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId);
59
     ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId);
60
 
60
 
61
+    ResponseBean batchConsultantAssist(TaUser taUser, Integer orgId);
61
     /**
62
     /**
62
      * 导出数据(推荐客户)
63
      * 导出数据(推荐客户)
63
      * @param orgId
64
      * @param orgId

+ 2
- 0
src/main/java/com/huiju/estateagents/service/impl/ExtendContentServiceImpl.java Zobrazit soubor

86
         extendContentQuery.eq(null != cityId && cityId != 0, "city_id", cityId);
86
         extendContentQuery.eq(null != cityId && cityId != 0, "city_id", cityId);
87
         extendContentQuery.eq("status","1");
87
         extendContentQuery.eq("status","1");
88
         extendContentQuery.eq("org_id",orgId);
88
         extendContentQuery.eq("org_id",orgId);
89
+        extendContentQuery.orderByDesc("order_no");
90
+        extendContentQuery.orderByDesc("create_date");
89
         List<ExtendContent> taExtendContent = extendContentMapper.selectList(extendContentQuery);
91
         List<ExtendContent> taExtendContent = extendContentMapper.selectList(extendContentQuery);
90
         responseBean.addSuccess(taExtendContent);
92
         responseBean.addSuccess(taExtendContent);
91
         return responseBean;
93
         return responseBean;

+ 1
- 2
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java Zobrazit soubor

949
                 QueryWrapper<TaBuildingImg> buildingImgQueryWrapper = new QueryWrapper<>();
949
                 QueryWrapper<TaBuildingImg> buildingImgQueryWrapper = new QueryWrapper<>();
950
                 buildingImgQueryWrapper.eq("img_id", img.getImgId());
950
                 buildingImgQueryWrapper.eq("img_id", img.getImgId());
951
                 buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
951
                 buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
952
-                buildingImgQueryWrapper.orderByAsc("order_no");
953
                 return taBuildingImgMapper.selectOne(buildingImgQueryWrapper);
952
                 return taBuildingImgMapper.selectOne(buildingImgQueryWrapper);
954
-            }).collect(Collectors.toList());
953
+            }).sorted(Comparator.comparing(TaBuildingImg::getOrderNo)).collect(Collectors.toList());
955
 
954
 
956
             e.setBuildingImgList(buildingImag);
955
             e.setBuildingImgList(buildingImag);
957
 
956
 

+ 5
- 3
src/main/java/com/huiju/estateagents/service/impl/TaHousingResourcesServiceImpl.java Zobrazit soubor

650
     }
650
     }
651
 
651
 
652
     @Override
652
     @Override
653
-    public ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId) {
654
-        logger.info("updateLockingStatus 接收参数:houseId:{},type:{},orgId:{},raiseHouseId:{},personId:{}",
655
-                houseId, type, orgId, raiseHouseId, personId);
653
+    public ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId, Integer userId) {
654
+        logger.info("updateLockingStatus 接收参数:houseId:{},type:{},orgId:{},raiseHouseId:{},personId:{},userId:{}",
655
+                houseId, type, orgId, raiseHouseId, personId, userId);
656
         ResponseBean responseBean = new ResponseBean();
656
         ResponseBean responseBean = new ResponseBean();
657
 
657
 
658
         // 获取房源信息
658
         // 获取房源信息
685
             housingResources.setHouseLockingPerson(personId);
685
             housingResources.setHouseLockingPerson(personId);
686
             housingResources.setUpdateDate(LocalDateTime.now());
686
             housingResources.setUpdateDate(LocalDateTime.now());
687
             housingResources.setHouseLockingPerson(raiseRecord.getPersonId());
687
             housingResources.setHouseLockingPerson(raiseRecord.getPersonId());
688
+            housingResources.setUpdateUser(userId);
688
             updateById(housingResources);
689
             updateById(housingResources);
689
 
690
 
690
             //更新认筹单房源锁定状态
691
             //更新认筹单房源锁定状态
715
             housingResources.setHouseLockingStatus("unlocked");
716
             housingResources.setHouseLockingStatus("unlocked");
716
             housingResources.setHouseLockingPerson("");
717
             housingResources.setHouseLockingPerson("");
717
             housingResources.setUpdateDate(LocalDateTime.now());
718
             housingResources.setUpdateDate(LocalDateTime.now());
719
+            housingResources.setUpdateUser(userId);
718
             updateById(housingResources);
720
             updateById(housingResources);
719
 
721
 
720
             //更新认筹单房源锁定状态
722
             //更新认筹单房源锁定状态

+ 24
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonBuildingServiceImpl.java Zobrazit soubor

7
 import com.huiju.estateagents.entity.TaPerson;
7
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaPersonBuilding;
8
 import com.huiju.estateagents.entity.TaPersonBuilding;
9
 import com.huiju.estateagents.entity.TaShareCount;
9
 import com.huiju.estateagents.entity.TaShareCount;
10
+import com.huiju.estateagents.excel.SalesExport;
10
 import com.huiju.estateagents.mapper.TaPersonBuildingMapper;
11
 import com.huiju.estateagents.mapper.TaPersonBuildingMapper;
11
 import com.huiju.estateagents.mapper.TaPersonMapper;
12
 import com.huiju.estateagents.mapper.TaPersonMapper;
12
 import com.huiju.estateagents.mapper.TaShareCountMapper;
13
 import com.huiju.estateagents.mapper.TaShareCountMapper;
61
         page.setRecords(list);
62
         page.setRecords(list);
62
         return ResponseBean.success(page);
63
         return ResponseBean.success(page);
63
     }
64
     }
65
+
66
+    /**
67
+     * 导出
68
+     *
69
+     * @param buildingId
70
+     * @param startCreateDate
71
+     * @param endCreateDate
72
+     * @param taPersonBuildingList
73
+     * @return
74
+     */
75
+    @Override
76
+    public List<SalesExport> selectSalesList(Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> taPersonBuildingList) {
77
+        List<SalesExport> list = taPersonBuildingMapper.selectSalesList(orgId, buildingId, startCreateDate, endCreateDate, taPersonBuildingList);
78
+        for (SalesExport salesExport : list) {
79
+            if (StringUtils.isEmpty(salesExport.getPersonId())){
80
+                salesExport.setClickNum(0);
81
+                continue;
82
+            }
83
+
84
+            salesExport.setClickNum(taSharePersonFromMapper.countViewNum(salesExport.getUserId(), orgId, salesExport.getPersonId(), startCreateDate, endCreateDate));
85
+        }
86
+        return list;
87
+    }
64
 }
88
 }

+ 6
- 1
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Zobrazit soubor

127
             wrapper.set("language",userInfo.getLanguage());
127
             wrapper.set("language",userInfo.getLanguage());
128
             wrapper.set("union_id",userInfo.getUnionId());
128
             wrapper.set("union_id",userInfo.getUnionId());
129
             wrapper.set("country",userInfo.getCountry());
129
             wrapper.set("country",userInfo.getCountry());
130
+            wrapper.set("auth_nickname_time", LocalDateTime.now());
130
             taPersonMapper.update(person, wrapper);
131
             taPersonMapper.update(person, wrapper);
131
 
132
 
132
             person.setAvatarurl(userInfo.getAvatarUrl());
133
             person.setAvatarurl(userInfo.getAvatarUrl());
157
     }
158
     }
158
 
159
 
159
     @Override
160
     @Override
160
-    public TaPerson updatePersonPhone(String miniOpenid, String phone,Integer orgId) {
161
+    public TaPerson updatePersonPhone(String miniOpenid, String phone, String buildingId, Integer orgId) {
161
         // 先查询是否存在用户
162
         // 先查询是否存在用户
162
         TaPerson person = null;
163
         TaPerson person = null;
163
         List<TaPerson> taPersons = getPersonsByOpenId(miniOpenid);
164
         List<TaPerson> taPersons = getPersonsByOpenId(miniOpenid);
179
 
180
 
180
         UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
181
         UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
181
         wrapper.set("phone", phone);
182
         wrapper.set("phone", phone);
183
+        wrapper.set("auth_phone_time", LocalDateTime.now());
184
+        if (!StringUtils.isEmpty(buildingId)){
185
+            wrapper.set("building_id", buildingId);
186
+        }
182
 
187
 
183
         if (CommConstant.PERSON_ESTATE_DRIFT.equals(person.getPersonType())) {
188
         if (CommConstant.PERSON_ESTATE_DRIFT.equals(person.getPersonType())) {
184
             wrapper.set("person_type",CommConstant.PERSON_ESTATE_CUSTOMER);
189
             wrapper.set("person_type",CommConstant.PERSON_ESTATE_CUSTOMER);

+ 3
- 3
src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java Zobrazit soubor

304
 	 * @return
304
 	 * @return
305
 	 */
305
 	 */
306
 	@Override
306
 	@Override
307
-	public IPage<TaPersonVisitRecord> getWxActivityVisitRecordList(IPage<TaPersonVisitRecord> pg, Integer userId, Integer orgId, String targetId, String eventType) {
307
+	public IPage<TaPersonVisitRecord> getWxActivityVisitRecordList(IPage<TaPersonVisitRecord> pg, String personId, Integer orgId, String targetId, String eventType) {
308
 		//根据userId获取用户信息
308
 		//根据userId获取用户信息
309
 		QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
309
 		QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
310
-		taPersonQueryWrapper.eq("user_id",userId);
310
+		taPersonQueryWrapper.eq("person_id",personId);
311
 		taPersonQueryWrapper.eq("org_id",orgId);
311
 		taPersonQueryWrapper.eq("org_id",orgId);
312
 		TaPerson taPerson = taPersonMapper.selectOne(taPersonQueryWrapper);
312
 		TaPerson taPerson = taPersonMapper.selectOne(taPersonQueryWrapper);
313
 		//获取我的访问客户列表
313
 		//获取我的访问客户列表
314
-		IPage<TaPersonVisitRecord> result = personVisitRecordMapper.getWxActivityVisitRecordList(pg,userId,orgId, targetId,taPerson.getPersonId(), (CommConstant.FAVOR_PROJECT.equals(eventType) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(eventType) ? "dynamic" : eventType)  + "_share");
314
+		IPage<TaPersonVisitRecord> result = personVisitRecordMapper.getWxActivityVisitRecordList(pg, taPerson.getUserId(), orgId, targetId, personId, (CommConstant.FAVOR_PROJECT.equals(eventType) ? "building" : CommConstant.FAVOR_ACTIVITY.equals(eventType) ? "dynamic" : eventType)  + "_share");
315
 		List<TaPersonVisitRecord> records = result.getRecords();
315
 		List<TaPersonVisitRecord> records = result.getRecords();
316
 		//判断是否我的客户状态
316
 		//判断是否我的客户状态
317
 		records.forEach(e -> {
317
 		records.forEach(e -> {

+ 11
- 0
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java Zobrazit soubor

24
 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;
25
 import com.huiju.estateagents.statistic.entity.TaCustomerFollowUpRecord;
26
 import com.huiju.estateagents.statistic.mapper.TaCustomerFollowUpRecordMapper;
26
 import com.huiju.estateagents.statistic.mapper.TaCustomerFollowUpRecordMapper;
27
+import org.apache.commons.collections.CollectionUtils;
27
 import org.springframework.beans.factory.annotation.Autowired;
28
 import org.springframework.beans.factory.annotation.Autowired;
28
 import org.springframework.stereotype.Service;
29
 import org.springframework.stereotype.Service;
29
 
30
 
751
         }
752
         }
752
     }
753
     }
753
 
754
 
755
+    @Override
756
+    public ResponseBean batchConsultantAssist(TaUser taUser, Integer orgId) {
757
+        if (CollectionUtils.isNotEmpty(taUser.getPersonIds())){
758
+            for (TaPerson taPerson : taUser.getPersonIds()){
759
+                consultantAssist(taUser, taPerson.getPersonId(), orgId);
760
+            }
761
+        }
762
+        return ResponseBean.success("操作成功");
763
+    }
764
+
754
     @Override
765
     @Override
755
     public ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId) {
766
     public ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId) {
756
         TaPerson taPerson = taPersonMapper.getById(personId);
767
         TaPerson taPerson = taPersonMapper.getById(personId);

+ 23
- 0
src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java Zobrazit soubor

66
     @Autowired
66
     @Autowired
67
     private ITaBuildingService taBuildingService;
67
     private ITaBuildingService taBuildingService;
68
 
68
 
69
+    @Autowired
70
+    private TaRaiseServiceImpl taRaiseService;
71
+
69
     @Override
72
     @Override
70
     public IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId, List<TaPersonBuilding> taPersonBuildingListByUserId) {
73
     public IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId, List<TaPersonBuilding> taPersonBuildingListByUserId) {
71
         return taSalesBatchMapper.selectByCondition(page, salesBatchName, buildingId, status, orgId, taPersonBuildingListByUserId);
74
         return taSalesBatchMapper.selectByCondition(page, salesBatchName, buildingId, status, orgId, taPersonBuildingListByUserId);
125
         Long totalHouses = null;
128
         Long totalHouses = null;
126
         BigDecimal totalRealHeat = null;
129
         BigDecimal totalRealHeat = null;
127
         BigDecimal totalHeat = null;
130
         BigDecimal totalHeat = null;
131
+        BigDecimal raiseRealNumber = null;
132
+        BigDecimal raiseNumber = null;
128
 
133
 
129
         // 获取房源预选数量
134
         // 获取房源预选数量
130
         Map<String, Object> result = taSalesBatchMapper.getTotalHousesAndHeat(salesBatchId);
135
         Map<String, Object> result = taSalesBatchMapper.getTotalHousesAndHeat(salesBatchId);
132
             totalHouses = (Long) result.get("totalHouses");
137
             totalHouses = (Long) result.get("totalHouses");
133
             totalRealHeat = (BigDecimal) result.get("totalRealHeat");
138
             totalRealHeat = (BigDecimal) result.get("totalRealHeat");
134
             totalHeat = (BigDecimal) result.get("totalHeat");
139
             totalHeat = (BigDecimal) result.get("totalHeat");
140
+            raiseRealNumber = (BigDecimal) result.get("totalRaiseRealHeat");
141
+            raiseNumber = (BigDecimal) result.get("totalRaiseHeat");
135
         }
142
         }
136
 
143
 
144
+        // 获取认筹信息
145
+        QueryWrapper<TaRaise> taRaiseQueryWrapper = new QueryWrapper<>();
146
+        taRaiseQueryWrapper.eq("sales_batch_id", salesBatch.getSalesBatchId());
147
+        taRaiseQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
148
+        TaRaise taRaise = taRaiseService.getOne(taRaiseQueryWrapper);
149
+
137
         JSONObject obj = new JSONObject();
150
         JSONObject obj = new JSONObject();
138
         obj.put("preselectionStartTime", salesBatch.getPreselectionStartTime());
151
         obj.put("preselectionStartTime", salesBatch.getPreselectionStartTime());
139
         obj.put("preselectionEndTime", salesBatch.getPreselectionEndTime());
152
         obj.put("preselectionEndTime", salesBatch.getPreselectionEndTime());
153
+        obj.put("raiseRealNumber", raiseRealNumber == null ? 0 : raiseRealNumber);
154
+        obj.put("raiseNumber", raiseNumber == null ? 0 : raiseNumber);
155
+        if(taRaise != null){
156
+            obj.put("raiseStartTime", taRaise.getRaiseStartTime());
157
+            obj.put("raiseEndTime", taRaise.getRaiseEndTime());
158
+        }else{
159
+            obj.put("raiseStartTime", "");
160
+            obj.put("raiseEndTime", "");
161
+        }
140
         obj.put("salesNumber", totalHouses == null ? 0 : totalHouses);
162
         obj.put("salesNumber", totalHouses == null ? 0 : totalHouses);
141
         obj.put("preselectionNumber", totalRealHeat == null ? 0 : totalRealHeat);
163
         obj.put("preselectionNumber", totalRealHeat == null ? 0 : totalRealHeat);
142
         obj.put("heatNumber", totalHeat == null ? 0 : totalHeat);
164
         obj.put("heatNumber", totalHeat == null ? 0 : totalHeat);
165
+
143
         responseBean.addSuccess(obj);
166
         responseBean.addSuccess(obj);
144
         return responseBean;
167
         return responseBean;
145
     }
168
     }

+ 2
- 2
src/main/java/com/huiju/estateagents/service/impl/WxPayServiceImpl.java Zobrazit soubor

214
                 if (orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
214
                 if (orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
215
                     taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_REFUNDED);
215
                     taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_REFUNDED);
216
                     if (!StringUtils.isEmpty(orderInfo.get("err_code"))){
216
                     if (!StringUtils.isEmpty(orderInfo.get("err_code"))){
217
-                        taRaiseRecord.setRefundReason(WXPayRefundReason.getMsg(orderInfo.get("err_code")));
217
+                        taRaiseRecord.setRefundFailReason(WXPayRefundReason.getMsg(orderInfo.get("err_code")));
218
                     }
218
                     }
219
                 }
219
                 }
220
                 if (!orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
220
                 if (!orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
221
                     taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_CHANGE);
221
                     taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_CHANGE);
222
-                    taRaiseRecord.setRefundReason("");
222
+                    taRaiseRecord.setRefundFailReason("");
223
                 }
223
                 }
224
 
224
 
225
                 taRaiseRecordMapper.updateById(taRaiseRecord);
225
                 taRaiseRecordMapper.updateById(taRaiseRecord);

+ 42
- 0
src/main/resources/mapper/TaPersonBuildingMapper.xml Zobrazit soubor

12
             <if test="buildingId != null and buildingId != ''">
12
             <if test="buildingId != null and buildingId != ''">
13
               and a.building_id = #{buildingId}
13
               and a.building_id = #{buildingId}
14
             </if>
14
             </if>
15
+            <if test="personBuildingList != null and personBuildingList.size > 0">
16
+                AND a.building_id in
17
+                <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
18
+                    #{personBuilding.buildingId}
19
+                </foreach>
20
+            </if>
15
             <if test="startCreateDate != null and startCreateDate != ''">
21
             <if test="startCreateDate != null and startCreateDate != ''">
16
                 and  date_format(c.create_date,'%Y-%m-%d') >= date_format(#{startCreateDate},'%Y-%m-%d')
22
                 and  date_format(c.create_date,'%Y-%m-%d') >= date_format(#{startCreateDate},'%Y-%m-%d')
17
             </if>
23
             </if>
21
         group by t.user_id
27
         group by t.user_id
22
     </select>
28
     </select>
23
 
29
 
30
+    <select id="selectSalesList" resultType="com.huiju.estateagents.excel.SalesExport">
31
+        SELECT
32
+            a.building_id,
33
+            t.user_name AS consultant_name,
34
+            d.building_name,
35
+            b.person_id,
36
+            t.user_id ,
37
+            count(c.person_id) as share_count
38
+        FROM
39
+            ta_user t
40
+        LEFT JOIN ta_person_building a ON t.user_id = a.user_id
41
+        LEFT JOIN ta_person b ON t.user_id = b.user_id
42
+        LEFT JOIN ta_share_count c ON b.person_id = c.person_id
43
+        LEFT JOIN ta_building d ON a.building_id = d.building_id
44
+        WHERE
45
+        t.org_id =  #{orgId}
46
+        AND t.is_consultant = 1
47
+        <if test="buildingId != null and buildingId != ''">
48
+            and a.building_id = #{buildingId}
49
+        </if>
50
+        <if test="personBuildingList != null and personBuildingList.size > 0">
51
+            AND a.building_id in
52
+            <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
53
+                #{personBuilding.buildingId}
54
+            </foreach>
55
+        </if>
56
+        <if test="startCreateDate != null and startCreateDate != ''">
57
+            and  date_format(c.create_date,'%Y-%m-%d') >= date_format(#{startCreateDate},'%Y-%m-%d')
58
+        </if>
59
+        <if test="endCreateDate != null and endCreateDate != ''">
60
+            and  date_format(c.create_date,'%Y-%m-%d') &lt;= date_format(#{endCreateDate},'%Y-%m-%d')
61
+        </if>
62
+        GROUP BY
63
+        t.user_id
64
+    </select>
65
+
24
 </mapper>
66
 </mapper>

+ 4
- 4
src/main/resources/mapper/TaPersonVisitRecordMapper.xml Zobrazit soubor

123
 
123
 
124
     <select id="getWxActivityVisitRecordList" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">
124
     <select id="getWxActivityVisitRecordList" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">
125
         SELECT
125
         SELECT
126
-            t.share_from_id, t.share_person as consultant_id, t.share_person_type, t.person_id, t.target_type, t.target_id, t.create_date as visit_time, t.org_id ,building_id, t.status, t.is_first_time,
126
+            t.share_from_id, t.share_person as consultant_id, t.share_person_type, t.person_id, t.target_type, t.target_id, t.create_date as visit_time, t.org_id ,t.building_id, t.status, t.is_first_time,
127
 	        p.`name` as user_name,
127
 	        p.`name` as user_name,
128
 	        p.`nickname` as nickname,
128
 	        p.`nickname` as nickname,
129
 	        p.avatarurl
129
 	        p.avatarurl
384
         select count(DISTINCT t.person_id)  from ta_share_person_from t
384
         select count(DISTINCT t.person_id)  from ta_share_person_from t
385
         left join ta_person a on t.person_id = a.person_id
385
         left join ta_person a on t.person_id = a.person_id
386
         where
386
         where
387
-        (t.share_person = #{userId}
388
-        <if test="personId != null and personId != ''">
389
-            or t.share_person = #{personId}
387
+        (t.share_person = #{personId}
388
+        <if test="userId != null and userId != ''">
389
+            or t.share_person = #{userId}
390
         </if>
390
         </if>
391
         )
391
         )
392
         and t.org_id = #{orgId}
392
         and t.org_id = #{orgId}

+ 27
- 10
src/main/resources/mapper/TaRecommendCustomerMapper.xml Zobrazit soubor

244
         SELECT
244
         SELECT
245
         b.*,
245
         b.*,
246
         IF
246
         IF
247
-        ( IFNULL( tpp.NAME, '' ) != '', tpp.NAME, tpp.nickname ) AS sharePersonName
247
+        ( IFNULL( b.NAME, '' ) != '', b.NAME, b.nickname ) AS sharePersonName
248
         FROM
248
         FROM
249
         ta_person b
249
         ta_person b
250
-        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}
251
-        LEFT JOIN ta_person tpp ON r.share_person_id = tpp.person_id
252
-        left join td_wx_dict d on r.scene_id = d.scene_id
250
+        LEFT JOIN ta_person_from_record r ON r.share_person_id = b.person_id AND r.is_first_time = 1 and r.org_id = #{orgId}
251
+        LEFT JOIN td_wx_dict d ON r.scene_id = d.scene_id
253
         <where>
252
         <where>
254
             b.status > 0
253
             b.status > 0
255
             and b.org_id = #{orgId}
254
             and b.org_id = #{orgId}
280
                 and b.tel like CONCAT('%',#{consultTel}, '%')
279
                 and b.tel like CONCAT('%',#{consultTel}, '%')
281
             </if>
280
             </if>
282
             <if test="buildingId != null and buildingId !=''">
281
             <if test="buildingId != null and buildingId !=''">
283
-                AND r.building_id = #{buildingId}
282
+                AND b.building_id = #{buildingId}
284
             </if>
283
             </if>
285
-            and NOT EXISTS ( select * from ta_recommend_customer a where a.org_id = #{orgId} and a.recommend_person = b.person_id)
284
+<!--            and NOT EXISTS ( select * from ta_recommend_customer a where a.org_id = #{orgId} and a.recommend_person = b.person_id)-->
286
             <if test="personBuildingList != null and personBuildingList.size > 0">
285
             <if test="personBuildingList != null and personBuildingList.size > 0">
287
-                AND r.building_id in
286
+                AND b.building_id in
288
                 <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
287
                 <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
289
                     #{personBuilding.buildingId}
288
                     #{personBuilding.buildingId}
290
                 </foreach>
289
                 </foreach>
546
         SELECT
545
         SELECT
547
           b.nickname as nickname,
546
           b.nickname as nickname,
548
           b.phone as phone,
547
           b.phone as phone,
549
-          if(b.gender = 1, '男', if(b.gender = 2, '女', '未知')) as sex
548
+          if(b.gender = 1, '男', if(b.gender = 2, '女', '未知')) as sex,
549
+          b.create_date,
550
+          concat(b.country, b.province) as province,
551
+          z.intention,
552
+          d.scene_alias as sceneType,
553
+          t.building_name
550
         FROM
554
         FROM
551
         ta_person b
555
         ta_person b
552
         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}
556
         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}
557
+        left join ta_building t on b.building_id = t.building_id
558
+        left join (select sum(t.intention) as intention,t.person_id From ta_person_intention_record t where t.org_id = #{orgId} group by t.person_id) z on z.person_id = b.person_id
553
         left join td_wx_dict d on r.scene_id = d.scene_id
559
         left join td_wx_dict d on r.scene_id = d.scene_id
554
         <where>
560
         <where>
555
             b.status > 0
561
             b.status > 0
558
                 and b.nickname like CONCAT('%',#{name}, '%')
564
                 and b.nickname like CONCAT('%',#{name}, '%')
559
             </if>
565
             </if>
560
             <if test="buildingId != null and buildingId !=''">
566
             <if test="buildingId != null and buildingId !=''">
561
-                AND r.building_id = #{buildingId}
567
+                AND b.building_id = #{buildingId}
568
+            </if>
569
+            <if test="personBuildingList != null and personBuildingList.size > 0">
570
+                AND b.building_id in
571
+                <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
572
+                    #{personBuilding.buildingId}
573
+                </foreach>
562
             </if>
574
             </if>
563
             <if test="tel != null and tel!=''">
575
             <if test="tel != null and tel!=''">
564
                 and b.phone like CONCAT('%',#{tel}, '%')
576
                 and b.phone like CONCAT('%',#{tel}, '%')
650
         WHEN b.tel IS NULL THEN
662
         WHEN b.tel IS NULL THEN
651
         d.phone ELSE b.tel
663
         d.phone ELSE b.tel
652
         END AS consultTel,
664
         END AS consultTel,
653
-        t.building_name
665
+        t.building_name,
666
+        z.intention,
667
+        a.create_date,
668
+        concat(a.country,a.province) as province,
669
+        w.scene_alias as scene_type
654
         FROM
670
         FROM
655
         ta_recommend_customer a
671
         ta_recommend_customer a
656
         LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
672
         LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
659
         LEFT JOIN ta_person_from_record p ON a.person_id = p.person_id AND p.is_first_time = 1 and p.org_id = #{orgId}
675
         LEFT JOIN ta_person_from_record p ON a.person_id = p.person_id AND p.is_first_time = 1 and p.org_id = #{orgId}
660
         left join ta_building t on a.building_id = t.building_id
676
         left join ta_building t on a.building_id = t.building_id
661
         LEFT JOIN td_wx_dict w ON p.scene_id = w.scene_id
677
         LEFT JOIN td_wx_dict w ON p.scene_id = w.scene_id
678
+        left join (select sum(t.intention) as intention,t.person_id From ta_person_intention_record t where t.org_id = #{orgId} group by t.person_id) z on z.person_id = a.person_id
662
         <where>
679
         <where>
663
             a.status > 0
680
             a.status > 0
664
             and a.verify_status = 1
681
             and a.verify_status = 1

+ 3
- 1
src/main/resources/mapper/TaSalesBatchMapper.xml Zobrazit soubor

47
         SELECT
47
         SELECT
48
             count( * ) totalHouses,
48
             count( * ) totalHouses,
49
             sum( t.real_heat ) totalRealHeat,
49
             sum( t.real_heat ) totalRealHeat,
50
-            sum( t.heat) totalHeat
50
+            sum( t.heat) totalHeat,
51
+            sum( t.raise_real_heat ) totalRaiseRealHeat,
52
+	        sum( t.raise_heat ) totalRaiseHeat
51
         FROM
53
         FROM
52
             ta_housing_resources t
54
             ta_housing_resources t
53
         WHERE
55
         WHERE

+ 2
- 5
src/main/resources/mapper/TaUserMapper.xml Zobrazit soubor

56
     FROM
56
     FROM
57
         ta_user
57
         ta_user
58
     WHERE
58
     WHERE
59
-    <if test="orgId != null and orgId != ''">
60
-        org_id = #{orgId} and
61
-    </if>
62
-         (phone = #{phone}
63
-        OR login_Name = #{loginName})
59
+        org_id = #{orgId}
60
+        and phone = #{phone}
64
     </select>
61
     </select>
65
     <select id="seleUserList" resultType="com.huiju.estateagents.center.taUser.entity.TaUser">
62
     <select id="seleUserList" resultType="com.huiju.estateagents.center.taUser.entity.TaUser">
66
         SELECT
63
         SELECT