浏览代码

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

魏超 5 年前
父节点
当前提交
4a7a5185f3

+ 24
- 5
src/main/java/com/huiju/estateagents/controller/MiniAppController.java 查看文件

@@ -199,15 +199,21 @@ public class MiniAppController extends BaseController {
199 199
             personQueryWrapper.eq("org_id",orgId);
200 200
             int count = taPersonService.count(personQueryWrapper);
201 201
 
202
-            if(null!=from&&from.contains("share") && StringUtils.isNotBlank(recommender) && count>0){
203
-                // 添加积分
204
-                 applicationContext.publishEvent(new EventBus(recommender, EventBus.EventType.SharePosterAll, orgId));
205
-            }
206
-
207 202
             TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(), orgId);
208 203
             if (null == taPerson) {
209 204
                 return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
210 205
             }
206
+
207
+            if(null!=from&&from.contains("share") && StringUtils.isNotBlank(recommender) && count>0){
208
+                // 校验是否点击过此人的分享
209
+                boolean checkPoint = checkSharePersonFrom(from,taPerson.getPersonId(),targetId,orgId);
210
+                if (checkPoint){
211
+                    // 添加积分
212
+                    applicationContext.publishEvent(new EventBus(recommender, EventBus.EventType.SharePosterAll, orgId));
213
+                }
214
+            }
215
+
216
+
211 217
             Map<Object,Object> map = new HashMap<>();
212 218
             map.put("openId",session.getOpenid());
213 219
             map.put("orgId",orgId);
@@ -323,6 +329,19 @@ public class MiniAppController extends BaseController {
323 329
         }
324 330
     }
325 331
 
332
+    private boolean checkSharePersonFrom(String from, String personId, String targetId, Integer orgId) {
333
+        QueryWrapper<TaSharePersonFrom> queryWrapper =  new QueryWrapper<>();
334
+        queryWrapper.eq("target_type",from);
335
+        queryWrapper.eq("person_id",personId);
336
+        queryWrapper.eq("target_id",targetId);
337
+        queryWrapper.eq("org_id",orgId);
338
+        List<TaSharePersonFrom> list = taSharePersonFromService.list(queryWrapper);
339
+        if (list.size() > 0){
340
+            return false;
341
+        }
342
+        return true;
343
+    }
344
+
326 345
     /**
327 346
      * 登陆接口
328 347
      */

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

@@ -61,7 +61,7 @@ public class TaPersonFromRecordServiceImpl extends ServiceImpl<TaPersonFromRecor
61 61
         queryWrapper.eq("person_id",taPersonVisitRecord.getPersonId());
62 62
         int count = taPersonFromRecordMapper.selectCount(queryWrapper);
63 63
         if(count > 0){
64
-            taPersonFromRecord.setIsFirstTime(false);
64
+            return;
65 65
         }else {
66 66
             taPersonFromRecord.setIsFirstTime(true);
67 67
         }

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

@@ -109,17 +109,13 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
109 109
 			return;
110 110
 		}
111 111
 
112
-		// 发放积分
113
-		TaPerson person = taPersonMapper.selectById(recommenderId);
114 112
 		String[] params = {
115 113
 				"openUser="+recommenderId
116 114
 		};
117 115
 		String changeParams = String.join("&", params);
118
-		boolean hasJoined = isPointsRecordsExist(person.getPersonId(), changeType, changeParams);
119
-		if (hasJoined) {
120
-			return;
121
-		}
122 116
 
117
+		// 发放积分
118
+		TaPerson person = taPersonMapper.selectById(recommenderId);
123 119
 		if (savePoints(person, changeType, changeParams, pointsAmount, orgId)) {
124 120
 			taPersonMapper.setFieldIncrement(person.getPersonId(), "points", pointsAmount);
125 121
 		}

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

@@ -88,9 +88,15 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
88 88
     @Autowired
89 89
     private TaUserMapper taUserMapper;
90 90
 
91
+    @Autowired
92
+    private TaPersonFromRecordMapper taPersonFromRecordMapper;
93
+
91 94
     @Autowired
92 95
     private TdPersonFromMapper tdPersonFromMapper;
93 96
 
97
+    @Autowired
98
+    private TdWxDictMapper tdWxDictMapper;
99
+
94 100
     @Override
95 101
     public ResponseBean getMyCustList(String openid, String keywords, int pageNumber, int pageSize) {
96 102
         List<TaPerson> taPersons = getPersonsByOpenId(openid);
@@ -571,16 +577,6 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
571 577
             taRecommendCustomer.setVisitRecords(taPersonVisitRecordIPage);
572 578
             taRecommendCustomer.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
573 579
             taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
574
-            Map<String,String>geoInfo = new HashMap<>();
575
-            geoInfo.put("provience",person.getProvince());
576
-            geoInfo.put("country",person.getCountry());
577
-            TdCity city = cityMapper.selectById(person.getCity());
578
-            if(null!=city){
579
-                geoInfo.put("city",city.getName());
580
-            }else {
581
-                geoInfo.put("city","未知");
582
-            }
583
-            taRecommendCustomer.setGeoInfo(geoInfo);
584 580
         }
585 581
         if(!StringUtils.isEmpty(taRecommendCustomer.getRealtyConsultant())){
586 582
             TaPerson consultant =  taPersonMapper.getById(taRecommendCustomer.getRealtyConsultant());
@@ -600,11 +596,29 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
600 596
         }
601 597
         //构造来源类型
602 598
         taRecommendCustomer.setPersonFrom("");
603
-        if (null != person && null != person.getFromCode()){
604
-            QueryWrapper<TdPersonFrom> tdPersonFromQueryWrapper = new QueryWrapper<>();
605
-            tdPersonFromQueryWrapper.eq("from_code",person.getFromCode());
606
-            TdPersonFrom tdPersonFrom = tdPersonFromMapper.selectOne(tdPersonFromQueryWrapper);
607
-            taRecommendCustomer.setPersonFrom(null != tdPersonFrom ? tdPersonFrom.getFromName() : "");
599
+        if (null != person){
600
+            Map<String,String>geoInfo = new HashMap<>();
601
+            geoInfo.put("provience",person.getProvince());
602
+            geoInfo.put("country",person.getCountry());
603
+            TdCity city = cityMapper.selectById(person.getCity());
604
+            if(null!=city){
605
+                geoInfo.put("city",city.getName());
606
+            }else {
607
+                geoInfo.put("city","未知");
608
+            }
609
+            taRecommendCustomer.setGeoInfo(geoInfo);
610
+
611
+            QueryWrapper<TaPersonFromRecord> queryWrapper = new QueryWrapper<>();
612
+            queryWrapper.eq("org_id",person.getOrgId());
613
+            queryWrapper.eq("person_id",person.getPersonId());
614
+            queryWrapper.eq("is_first_time",1);
615
+            List<TaPersonFromRecord> taPersonFromRecords = taPersonFromRecordMapper.selectList(queryWrapper);
616
+            if (taPersonFromRecords.size() > 0){
617
+                QueryWrapper<TdWxDict> tdWxDictQueryWrapper = new QueryWrapper<>();
618
+                tdWxDictQueryWrapper.eq("scene_id",taPersonFromRecords.get(0).getSceneId());
619
+                TdWxDict tdWxDict = tdWxDictMapper.selectOne(tdWxDictQueryWrapper);
620
+                taRecommendCustomer.setPersonFrom(null != tdWxDict ? tdWxDict.getSceneAlias() : "");
621
+            }
608 622
         }
609 623
 
610 624
         return taRecommendCustomer;
@@ -612,7 +626,7 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
612 626
 
613 627
     @Override
614 628
     public TaPerson getPublicCustomerDetail(String personId,int pageNumber, int pageSize,List<TaPersonBuilding> taPersonBuildingList,String buildingId){
615
-        TaPerson taRecommendCustomer = taPersonMapper.getById(personId);
629
+        TaPerson taPerson = taPersonMapper.getById(personId);
616 630
         if(!StringUtils.isEmpty(personId)){
617 631
             IPage<TaPersonVisitRecord>page = new Page<>(pageNumber,pageSize);
618 632
             IPage<TaPersonVisitRecord> taPersonVisitRecordIPage = taPersonVisitRecordMapper.visitRecordByPersonId(page,personId,taPersonBuildingList,buildingId);
@@ -656,26 +670,33 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
656 670
                 }
657 671
             });
658 672
             taPersonVisitRecordIPage.setRecords(records);
659
-            taRecommendCustomer.setVisitRecords(taPersonVisitRecordIPage);
660
-            taRecommendCustomer.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
661
-            taRecommendCustomer.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
662
-            taRecommendCustomer.setDuration(taPersonVisitRecordMapper.getDurationByPersonId(personId));
663
-            taRecommendCustomer.setVisitTime(taPersonVisitRecordMapper.getFirstVisitTimeByPersonId(personId));
664
-            TdCity city = cityMapper.selectById(taRecommendCustomer.getCity());
673
+            taPerson.setVisitRecords(taPersonVisitRecordIPage);
674
+            taPerson.setVisitTimes(taPersonVisitRecordIPage.getRecords().size());
675
+            taPerson.setIntentions(taRecommendCustomerMapper.getCustomerIntentions(personId,taPersonBuildingList));
676
+            taPerson.setDuration(taPersonVisitRecordMapper.getDurationByPersonId(personId));
677
+            taPerson.setVisitTime(taPersonVisitRecordMapper.getFirstVisitTimeByPersonId(personId));
678
+            TdCity city = cityMapper.selectById(taPerson.getCity());
665 679
             if(null != city){
666
-                taRecommendCustomer.setCity(city.getName());
680
+                taPerson.setCity(city.getName());
667 681
             }
668 682
 
669 683
             //构造来源类型
670
-            taRecommendCustomer.setPersonFrom("");
671
-            if (null != taRecommendCustomer.getFromCode()){
672
-                QueryWrapper<TdPersonFrom> tdPersonFromQueryWrapper = new QueryWrapper<>();
673
-                tdPersonFromQueryWrapper.eq("from_code",taRecommendCustomer.getFromCode());
674
-                TdPersonFrom tdPersonFrom = tdPersonFromMapper.selectOne(tdPersonFromQueryWrapper);
675
-                taRecommendCustomer.setPersonFrom(null != tdPersonFrom ? tdPersonFrom.getFromName() : "");
684
+            taPerson.setPersonFrom("");
685
+            if (null != taPerson){
686
+                QueryWrapper<TaPersonFromRecord> queryWrapper = new QueryWrapper<>();
687
+                queryWrapper.eq("org_id",taPerson.getOrgId());
688
+                queryWrapper.eq("person_id",taPerson.getPersonId());
689
+                queryWrapper.eq("is_first_time",1);
690
+                List<TaPersonFromRecord> taPersonFromRecords = taPersonFromRecordMapper.selectList(queryWrapper);
691
+                if (taPersonFromRecords.size() > 0){
692
+                    QueryWrapper<TdWxDict> tdWxDictQueryWrapper = new QueryWrapper<>();
693
+                    tdWxDictQueryWrapper.eq("scene_id",taPersonFromRecords.get(0).getSceneId());
694
+                    TdWxDict tdWxDict = tdWxDictMapper.selectOne(tdWxDictQueryWrapper);
695
+                    taPerson.setPersonFrom(null != tdWxDict ? tdWxDict.getSceneAlias() : "");
696
+                }
676 697
             }
677 698
         }
678
-        return taRecommendCustomer;
699
+        return taPerson;
679 700
     }
680 701
 
681 702
     @Override

+ 7
- 3
src/main/resources/mapper/TaPersonVisitRecordMapper.xml 查看文件

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