Bladeren bron

Merge branch 'dev'

魏超 5 jaren geleden
bovenliggende
commit
49f29470bf
37 gewijzigde bestanden met toevoegingen van 442 en 83 verwijderingen
  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 Bestand weergeven

@@ -226,4 +226,10 @@ public class TaUser implements Serializable {
226 226
      */
227 227
     @TableField(exist = false)
228 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 Bestand weergeven

@@ -26,7 +26,7 @@ public interface TaUserMapper extends BaseMapper<TaUser> {
26 26
 	
27 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 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 Bestand weergeven

@@ -402,8 +402,13 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
402 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 414
         boolean weightCount = validateWeight(taUser, "add");
@@ -411,9 +416,9 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
411 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 420
         if (null != taUserList && taUserList.size() > 0) {
416
-            throw new Exception("电话号码或登录名重复");
421
+            throw new Exception("电话号码重复");
417 422
         }
418 423
         taUser.setLoginPassword(MD5Utils.md5(MD5Utils.md5("123456")));
419 424
         taUser.setStatus(CommConstant.STATUS_NORMAL);
@@ -481,8 +486,15 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
481 486
         if (StringUtils.isEmpty(taUser.getWeight())) {
482 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 500
         boolean weightCount = validateWeight(taUser, "update");
@@ -491,12 +503,13 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
491 503
         }
492 504
 
493 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 508
         wrapper.eq("org_id", taUser.getOrgId());
496 509
         wrapper.ne("user_id", taUser.getUserId());
497 510
         List<TaUser> taUserList = this.list(wrapper);
498 511
         if (null != taUserList && taUserList.size() > 0) {
499
-            throw new Exception("电话号码或登录名重复");
512
+            throw new Exception("电话号码重复");
500 513
         }
501 514
         if (taUserMapper.updateById(taUser) < 1) {
502 515
             throw new Exception("更新用户信息失败");

+ 1
- 0
src/main/java/com/huiju/estateagents/controller/ExtendContentController.java Bestand weergeven

@@ -105,6 +105,7 @@ public class ExtendContentController extends BaseController {
105 105
             queryWrapper.eq(status != null, "status", status);
106 106
             queryWrapper.eq( "org_id", getOrgId(request));
107 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 109
             queryWrapper.orderByDesc("create_date");
109 110
             IPage<ExtendContent> result = iExtendContentService.page(pg, queryWrapper);
110 111
 

+ 2
- 1
src/main/java/com/huiju/estateagents/controller/MiniAppController.java Bestand weergeven

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

+ 1
- 1
src/main/java/com/huiju/estateagents/controller/TaHousingResourcesController.java Bestand weergeven

@@ -529,7 +529,7 @@ public class TaHousingResourcesController extends BaseController {
529 529
                                             HttpServletRequest request) {
530 530
         ResponseBean responseBean = new ResponseBean();
531 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 533
             logger.info("updateLockingStatus 返回结果:", JSONObject.toJSONString(responseBean));
534 534
         } catch (Exception e) {
535 535
             logger.error("updateLockingStatus 异常:", e);

+ 37
- 4
src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java Bestand weergeven

@@ -1,18 +1,24 @@
1 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 7
 import com.huiju.estateagents.base.BaseController;
5 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 12
 import com.huiju.estateagents.service.ITaPersonBuildingService;
7 13
 import org.slf4j.Logger;
8 14
 import org.slf4j.LoggerFactory;
9 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 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 24
  * <p>
@@ -55,4 +61,31 @@ public class TaPersonBuildingController extends BaseController {
55 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 Bestand weergeven

@@ -272,14 +272,14 @@ public class TaPersonVisitRecordController extends BaseController {
272 272
     @RequestMapping(value = "/wx/activityVisitRecord", method = RequestMethod.GET)
273 273
     public ResponseBean wxPersonActivityVisitRecordList(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
274 274
                                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
275
-                                                        @RequestParam(value = "userId") Integer userId,
275
+                                                        @RequestParam(value = "personId") String personId,
276 276
                                                         @RequestParam(value = "targetId") String targetId,
277 277
                                                         @RequestParam(value = "eventType") String eventType,
278 278
                                                         HttpServletRequest request) {
279 279
         try {
280 280
             //使用分页插件
281 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 283
             return ResponseBean.success(result);
284 284
         } catch (Exception e) {
285 285
             e.printStackTrace();
@@ -293,29 +293,29 @@ public class TaPersonVisitRecordController extends BaseController {
293 293
      *
294 294
      * @param pageNumber
295 295
      * @param pageSize
296
-     * @param userId
296
+     * @param personId
297 297
      * @param request
298 298
      * @return
299 299
      */
300 300
     @RequestMapping(value = "/wx/shareRecords", method = RequestMethod.GET)
301 301
     public ResponseBean wxShareRecordsByUserId(@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber,
302 302
                                                @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
303
-                                               @RequestParam(value = "userId") Integer userId,
303
+                                               @RequestParam(value = "personId") String personId,
304 304
                                                HttpServletRequest request) {
305 305
         ResponseBean responseBean = new ResponseBean();
306
-        if (userId == null) {
306
+        if (personId == null) {
307 307
             return responseBean;
308 308
         }
309 309
         //使用分页插件
310 310
         IPage<TaConsultantInfo> pg = new Page<>(pageNumber, pageSize);
311 311
         QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
312
-        taPersonQueryWrapper.eq("user_id", userId);
312
+        taPersonQueryWrapper.eq("person_id", personId);
313 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 316
         List<TaConsultantInfo> taConsultantInfos = result.getRecords();
317 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 319
             switch (e.getEventType()) {
320 320
                 case CommConstant.FAVOR_ACTIVITY:
321 321
                     e.setActivityShareNum(shareNum);

+ 8
- 12
src/main/java/com/huiju/estateagents/controller/TaRaiseRecordController.java Bestand weergeven

@@ -219,16 +219,14 @@ public class TaRaiseRecordController extends BaseController {
219 219
                 }
220 220
                 record.setInvalidReason(raiseRecord.getInvalidReason());
221 221
                 record.setUpdateDate(LocalDateTime.now());
222
-                record.setStatus(0);
222
+                record.setStatus(CommConstant.STATUS_UNACCALIMED);
223 223
 
224 224
                 // 更新房源认筹热度
225 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 232
                 iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(), record.getRaiseId(), "认筹通知", "认筹单已作废", "点击详情查看认筹单", "具体原因查看详情", false);
@@ -277,11 +275,9 @@ public class TaRaiseRecordController extends BaseController {
277 275
                 // 更新房源认筹热度
278 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 283
                 iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(), record.getRaiseId(), "认筹通知", "认筹单已作废", "点击详情查看认筹单", "具体原因查看详情", false);
@@ -755,7 +751,7 @@ public class TaRaiseRecordController extends BaseController {
755 751
             taRaiseRecordQueryWrapper.eq(StringUtils.isNotEmpty(buildingId), "building_id", buildingId);
756 752
             taRaiseRecordQueryWrapper.eq(null != salesBatchId, "sales_batch_id", salesBatchId);
757 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 755
             taRaiseRecordQueryWrapper.orderByDesc("create_date");
760 756
             IPage<TaRaiseRecord> page = iTaRaiseRecordService.page(pg, taRaiseRecordQueryWrapper);
761 757
             List<TaRaiseRecord> list = page.getRecords();

+ 20
- 1
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java Bestand weergeven

@@ -28,6 +28,7 @@ import io.swagger.annotations.Api;
28 28
 import io.swagger.annotations.ApiImplicitParam;
29 29
 import io.swagger.annotations.ApiImplicitParams;
30 30
 import io.swagger.annotations.ApiOperation;
31
+import org.apache.commons.collections.CollectionUtils;
31 32
 import org.springframework.beans.factory.annotation.Autowired;
32 33
 import org.springframework.context.ApplicationContext;
33 34
 import org.springframework.format.annotation.DateTimeFormat;
@@ -413,6 +414,24 @@ public class TaRecommendCustomerController extends BaseController {
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 435
     @GetMapping("/admin/customer/recommend/{customerId}")
417 436
     public ResponseBean getCustomersIRecommended (@RequestParam int pageNumber, @RequestParam int pageSize, @PathVariable String customerId,HttpServletRequest request){
418 437
         Integer orgId = getOrgId(request);
@@ -800,7 +819,7 @@ public class TaRecommendCustomerController extends BaseController {
800 819
 //            pageCount = count % pageSize == 0 ? count / pageSize : (count / pageSize) + 1;
801 820
 //            List<PublicCustomerExport> publicList = null;
802 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 823
                 excelWriter.write(publicList, writeSheet);
805 824
 
806 825
 //                pageCode ++;

+ 7
- 5
src/main/java/com/huiju/estateagents/entity/ExtendContent.java Bestand weergeven

@@ -1,9 +1,7 @@
1 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 5
 import java.time.LocalDateTime;
8 6
 import java.io.Serializable;
9 7
 import lombok.Data;
@@ -101,5 +99,9 @@ public class ExtendContent implements Serializable {
101 99
 
102 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 Bestand weergeven

@@ -189,6 +189,20 @@ public class TaPerson implements Serializable {
189 189
      */
190 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 Bestand weergeven

@@ -114,6 +114,11 @@ public class TaRaiseRecord implements Serializable {
114 114
      */
115 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 Bestand weergeven

@@ -14,21 +14,21 @@ public class PrivateCustomerExport {
14 14
      * 姓名
15 15
      */
16 16
     @ColumnWidth(15)
17
-    @ExcelProperty(value = "姓名", index = 0)
17
+    @ExcelProperty(value = "客户昵称", index = 0)
18 18
     private String name;
19 19
 
20 20
     /**
21 21
      * 电话
22 22
      */
23 23
     @ColumnWidth(15)
24
-    @ExcelProperty(value = "电话", index = 1)
24
+    @ExcelProperty(value = "手机号码", index = 1)
25 25
     private String phone;
26 26
 
27 27
     /**
28 28
      * 性别
29 29
      */
30 30
     @ColumnWidth(15)
31
-    @ExcelProperty(value = "性别", index = 2)
31
+    @ExcelProperty(value = "性别", index = 9)
32 32
     private String sex;
33 33
 
34 34
     /**
@@ -52,4 +52,38 @@ public class PrivateCustomerExport {
52 52
     @ExcelProperty(value = "项目名称", index = 5)
53 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 Bestand weergeven

@@ -14,21 +14,62 @@ public class PublicCustomerExport {
14 14
      * 姓名
15 15
      */
16 16
     @ColumnWidth(15)
17
-    @ExcelProperty(value = "姓名", index = 0)
17
+    @ExcelProperty(value = "客户昵称", index = 0)
18 18
     private String nickname;
19 19
 
20 20
     /**
21 21
      * 电话
22 22
      */
23 23
     @ColumnWidth(15)
24
-    @ExcelProperty(value = "电话", index = 1)
24
+    @ExcelProperty(value = "手机号码", index = 1)
25 25
     private String phone;
26 26
 
27 27
     /**
28 28
      * 性别
29 29
      */
30 30
     @ColumnWidth(15)
31
-    @ExcelProperty(value = "性别", index = 2)
31
+    @ExcelProperty(value = "性别", index = 7)
32 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 Bestand weergeven

@@ -0,0 +1,55 @@
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 Bestand weergeven

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5 5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6 6
 import com.huiju.estateagents.entity.TaPointsExchange;
7
+import com.huiju.estateagents.excel.SalesExport;
7 8
 import org.apache.ibatis.annotations.Mapper;
8 9
 import org.apache.ibatis.annotations.Param;
9 10
 
@@ -20,4 +21,6 @@ import java.util.List;
20 21
 @Mapper
21 22
 public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
22 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 Bestand weergeven

@@ -119,7 +119,7 @@ public interface TaRecommendCustomerMapper extends BaseMapper<TaRecommendCustome
119 119
      * @param consultTel
120 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 Bestand weergeven

@@ -162,7 +162,7 @@ public interface ITaHousingResourcesService extends IService<TaHousingResources>
162 162
     ResponseBean listHouseByRaiseRecordId(Integer raiseRecordId, Integer orgId, Integer pageNumber, Integer pageSize);
163 163
 
164 164
     /**
165
-     * 更新房源锁定状态
165
+     * 更新房源状态
166 166
      *
167 167
      * @param houseId
168 168
      * @param type
@@ -170,7 +170,7 @@ public interface ITaHousingResourcesService extends IService<TaHousingResources>
170 170
      * @param personId
171 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 Bestand weergeven

@@ -3,6 +3,7 @@ package com.huiju.estateagents.service;
3 3
 import com.huiju.estateagents.base.ResponseBean;
4 4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5 5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.estateagents.excel.SalesExport;
6 7
 
7 8
 import java.util.List;
8 9
 
@@ -16,4 +17,14 @@ import java.util.List;
16 17
  */
17 18
 public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
18 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 Bestand weergeven

@@ -23,7 +23,7 @@ import java.util.Map;
23 23
 public interface ITaPersonService extends IService<TaPerson> {
24 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 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 Bestand weergeven

@@ -45,7 +45,7 @@ public interface ITaPersonVisitRecordService extends IService<TaPersonVisitRecor
45 45
 	 * @param orgId
46 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 Bestand weergeven

@@ -58,6 +58,7 @@ public interface ITaRecommendCustomerService extends IService<TaRecommendCustome
58 58
 
59 59
     ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId);
60 60
 
61
+    ResponseBean batchConsultantAssist(TaUser taUser, Integer orgId);
61 62
     /**
62 63
      * 导出数据(推荐客户)
63 64
      * @param orgId

+ 2
- 0
src/main/java/com/huiju/estateagents/service/impl/ExtendContentServiceImpl.java Bestand weergeven

@@ -86,6 +86,8 @@ public class ExtendContentServiceImpl extends ServiceImpl<ExtendContentMapper, E
86 86
         extendContentQuery.eq(null != cityId && cityId != 0, "city_id", cityId);
87 87
         extendContentQuery.eq("status","1");
88 88
         extendContentQuery.eq("org_id",orgId);
89
+        extendContentQuery.orderByDesc("order_no");
90
+        extendContentQuery.orderByDesc("create_date");
89 91
         List<ExtendContent> taExtendContent = extendContentMapper.selectList(extendContentQuery);
90 92
         responseBean.addSuccess(taExtendContent);
91 93
         return responseBean;

+ 1
- 2
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java Bestand weergeven

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

+ 5
- 3
src/main/java/com/huiju/estateagents/service/impl/TaHousingResourcesServiceImpl.java Bestand weergeven

@@ -650,9 +650,9 @@ public class TaHousingResourcesServiceImpl extends ServiceImpl<TaHousingResource
650 650
     }
651 651
 
652 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 656
         ResponseBean responseBean = new ResponseBean();
657 657
 
658 658
         // 获取房源信息
@@ -685,6 +685,7 @@ public class TaHousingResourcesServiceImpl extends ServiceImpl<TaHousingResource
685 685
             housingResources.setHouseLockingPerson(personId);
686 686
             housingResources.setUpdateDate(LocalDateTime.now());
687 687
             housingResources.setHouseLockingPerson(raiseRecord.getPersonId());
688
+            housingResources.setUpdateUser(userId);
688 689
             updateById(housingResources);
689 690
 
690 691
             //更新认筹单房源锁定状态
@@ -715,6 +716,7 @@ public class TaHousingResourcesServiceImpl extends ServiceImpl<TaHousingResource
715 716
             housingResources.setHouseLockingStatus("unlocked");
716 717
             housingResources.setHouseLockingPerson("");
717 718
             housingResources.setUpdateDate(LocalDateTime.now());
719
+            housingResources.setUpdateUser(userId);
718 720
             updateById(housingResources);
719 721
 
720 722
             //更新认筹单房源锁定状态

+ 24
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonBuildingServiceImpl.java Bestand weergeven

@@ -7,6 +7,7 @@ import com.huiju.estateagents.common.StringUtils;
7 7
 import com.huiju.estateagents.entity.TaPerson;
8 8
 import com.huiju.estateagents.entity.TaPersonBuilding;
9 9
 import com.huiju.estateagents.entity.TaShareCount;
10
+import com.huiju.estateagents.excel.SalesExport;
10 11
 import com.huiju.estateagents.mapper.TaPersonBuildingMapper;
11 12
 import com.huiju.estateagents.mapper.TaPersonMapper;
12 13
 import com.huiju.estateagents.mapper.TaShareCountMapper;
@@ -61,4 +62,27 @@ public class TaPersonBuildingServiceImpl extends ServiceImpl<TaPersonBuildingMap
61 62
         page.setRecords(list);
62 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 Bestand weergeven

@@ -127,6 +127,7 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
127 127
             wrapper.set("language",userInfo.getLanguage());
128 128
             wrapper.set("union_id",userInfo.getUnionId());
129 129
             wrapper.set("country",userInfo.getCountry());
130
+            wrapper.set("auth_nickname_time", LocalDateTime.now());
130 131
             taPersonMapper.update(person, wrapper);
131 132
 
132 133
             person.setAvatarurl(userInfo.getAvatarUrl());
@@ -157,7 +158,7 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
157 158
     }
158 159
 
159 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 163
         TaPerson person = null;
163 164
         List<TaPerson> taPersons = getPersonsByOpenId(miniOpenid);
@@ -179,6 +180,10 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
179 180
 
180 181
         UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
181 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 188
         if (CommConstant.PERSON_ESTATE_DRIFT.equals(person.getPersonType())) {
184 189
             wrapper.set("person_type",CommConstant.PERSON_ESTATE_CUSTOMER);

+ 3
- 3
src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java Bestand weergeven

@@ -304,14 +304,14 @@ public class TaPersonVisitRecordServiceImpl extends ServiceImpl<TaPersonVisitRec
304 304
 	 * @return
305 305
 	 */
306 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 308
 		//根据userId获取用户信息
309 309
 		QueryWrapper<TaPerson> taPersonQueryWrapper = new QueryWrapper<>();
310
-		taPersonQueryWrapper.eq("user_id",userId);
310
+		taPersonQueryWrapper.eq("person_id",personId);
311 311
 		taPersonQueryWrapper.eq("org_id",orgId);
312 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 315
 		List<TaPersonVisitRecord> records = result.getRecords();
316 316
 		//判断是否我的客户状态
317 317
 		records.forEach(e -> {

+ 11
- 0
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java Bestand weergeven

@@ -24,6 +24,7 @@ import com.huiju.estateagents.service.ITaRecommendCustomerService;
24 24
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
25 25
 import com.huiju.estateagents.statistic.entity.TaCustomerFollowUpRecord;
26 26
 import com.huiju.estateagents.statistic.mapper.TaCustomerFollowUpRecordMapper;
27
+import org.apache.commons.collections.CollectionUtils;
27 28
 import org.springframework.beans.factory.annotation.Autowired;
28 29
 import org.springframework.stereotype.Service;
29 30
 
@@ -751,6 +752,16 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
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 765
     @Override
755 766
     public ResponseBean consultantAssist(TaUser taUser, String personId, Integer orgId) {
756 767
         TaPerson taPerson = taPersonMapper.getById(personId);

+ 23
- 0
src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java Bestand weergeven

@@ -66,6 +66,9 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
66 66
     @Autowired
67 67
     private ITaBuildingService taBuildingService;
68 68
 
69
+    @Autowired
70
+    private TaRaiseServiceImpl taRaiseService;
71
+
69 72
     @Override
70 73
     public IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId, List<TaPersonBuilding> taPersonBuildingListByUserId) {
71 74
         return taSalesBatchMapper.selectByCondition(page, salesBatchName, buildingId, status, orgId, taPersonBuildingListByUserId);
@@ -125,6 +128,8 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
125 128
         Long totalHouses = null;
126 129
         BigDecimal totalRealHeat = null;
127 130
         BigDecimal totalHeat = null;
131
+        BigDecimal raiseRealNumber = null;
132
+        BigDecimal raiseNumber = null;
128 133
 
129 134
         // 获取房源预选数量
130 135
         Map<String, Object> result = taSalesBatchMapper.getTotalHousesAndHeat(salesBatchId);
@@ -132,14 +137,32 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
132 137
             totalHouses = (Long) result.get("totalHouses");
133 138
             totalRealHeat = (BigDecimal) result.get("totalRealHeat");
134 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 150
         JSONObject obj = new JSONObject();
138 151
         obj.put("preselectionStartTime", salesBatch.getPreselectionStartTime());
139 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 162
         obj.put("salesNumber", totalHouses == null ? 0 : totalHouses);
141 163
         obj.put("preselectionNumber", totalRealHeat == null ? 0 : totalRealHeat);
142 164
         obj.put("heatNumber", totalHeat == null ? 0 : totalHeat);
165
+
143 166
         responseBean.addSuccess(obj);
144 167
         return responseBean;
145 168
     }

+ 2
- 2
src/main/java/com/huiju/estateagents/service/impl/WxPayServiceImpl.java Bestand weergeven

@@ -214,12 +214,12 @@ public class WxPayServiceImpl implements IWxPayService {
214 214
                 if (orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
215 215
                     taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_REFUNDED);
216 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 220
                 if (!orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
221 221
                     taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_CHANGE);
222
-                    taRaiseRecord.setRefundReason("");
222
+                    taRaiseRecord.setRefundFailReason("");
223 223
                 }
224 224
 
225 225
                 taRaiseRecordMapper.updateById(taRaiseRecord);

+ 42
- 0
src/main/resources/mapper/TaPersonBuildingMapper.xml Bestand weergeven

@@ -12,6 +12,12 @@
12 12
             <if test="buildingId != null and buildingId != ''">
13 13
               and a.building_id = #{buildingId}
14 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 21
             <if test="startCreateDate != null and startCreateDate != ''">
16 22
                 and  date_format(c.create_date,'%Y-%m-%d') >= date_format(#{startCreateDate},'%Y-%m-%d')
17 23
             </if>
@@ -21,4 +27,40 @@
21 27
         group by t.user_id
22 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 66
 </mapper>

+ 4
- 4
src/main/resources/mapper/TaPersonVisitRecordMapper.xml Bestand weergeven

@@ -123,7 +123,7 @@
123 123
 
124 124
     <select id="getWxActivityVisitRecordList" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">
125 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 127
 	        p.`name` as user_name,
128 128
 	        p.`nickname` as nickname,
129 129
 	        p.avatarurl
@@ -384,9 +384,9 @@
384 384
         select count(DISTINCT t.person_id)  from ta_share_person_from t
385 385
         left join ta_person a on t.person_id = a.person_id
386 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 390
         </if>
391 391
         )
392 392
         and t.org_id = #{orgId}

+ 27
- 10
src/main/resources/mapper/TaRecommendCustomerMapper.xml Bestand weergeven

@@ -244,12 +244,11 @@ FROM
244 244
         SELECT
245 245
         b.*,
246 246
         IF
247
-        ( IFNULL( tpp.NAME, '' ) != '', tpp.NAME, tpp.nickname ) AS sharePersonName
247
+        ( IFNULL( b.NAME, '' ) != '', b.NAME, b.nickname ) AS sharePersonName
248 248
         FROM
249 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 252
         <where>
254 253
             b.status > 0
255 254
             and b.org_id = #{orgId}
@@ -280,11 +279,11 @@ FROM
280 279
                 and b.tel like CONCAT('%',#{consultTel}, '%')
281 280
             </if>
282 281
             <if test="buildingId != null and buildingId !=''">
283
-                AND r.building_id = #{buildingId}
282
+                AND b.building_id = #{buildingId}
284 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 285
             <if test="personBuildingList != null and personBuildingList.size > 0">
287
-                AND r.building_id in
286
+                AND b.building_id in
288 287
                 <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
289 288
                     #{personBuilding.buildingId}
290 289
                 </foreach>
@@ -546,10 +545,17 @@ FROM
546 545
         SELECT
547 546
           b.nickname as nickname,
548 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 554
         FROM
551 555
         ta_person b
552 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 559
         left join td_wx_dict d on r.scene_id = d.scene_id
554 560
         <where>
555 561
             b.status > 0
@@ -558,7 +564,13 @@ FROM
558 564
                 and b.nickname like CONCAT('%',#{name}, '%')
559 565
             </if>
560 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 574
             </if>
563 575
             <if test="tel != null and tel!=''">
564 576
                 and b.phone like CONCAT('%',#{tel}, '%')
@@ -650,7 +662,11 @@ FROM
650 662
         WHEN b.tel IS NULL THEN
651 663
         d.phone ELSE b.tel
652 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 670
         FROM
655 671
         ta_recommend_customer a
656 672
         LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
@@ -659,6 +675,7 @@ FROM
659 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 676
         left join ta_building t on a.building_id = t.building_id
661 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 679
         <where>
663 680
             a.status > 0
664 681
             and a.verify_status = 1

+ 3
- 1
src/main/resources/mapper/TaSalesBatchMapper.xml Bestand weergeven

@@ -47,7 +47,9 @@
47 47
         SELECT
48 48
             count( * ) totalHouses,
49 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 53
         FROM
52 54
             ta_housing_resources t
53 55
         WHERE

+ 2
- 5
src/main/resources/mapper/TaUserMapper.xml Bestand weergeven

@@ -56,11 +56,8 @@
56 56
     FROM
57 57
         ta_user
58 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 61
     </select>
65 62
     <select id="seleUserList" resultType="com.huiju.estateagents.center.taUser.entity.TaUser">
66 63
         SELECT