Explorar el Código

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

# Conflicts:
#	src/main/java/com/huiju/estateagents/service/ITaPersonService.java
魏超 hace 5 años
padre
commit
482bda13af

+ 2
- 0
src/main/java/com/huiju/estateagents/base/BaseController.java Ver fichero

@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
10 10
 
11 11
 import javax.servlet.http.HttpServletRequest;
12 12
 import java.util.ArrayList;
13
+import java.util.Enumeration;
13 14
 import java.util.List;
14 15
 import java.util.Map;
15 16
 
@@ -140,3 +141,4 @@ public class BaseController {
140 141
         return taPersonBuildingList;
141 142
     }
142 143
 }
144
+

+ 35
- 18
src/main/java/com/huiju/estateagents/controller/MiniAppController.java Ver fichero

@@ -12,6 +12,7 @@ import com.huiju.estateagents.center.taUser.entity.TaUser;
12 12
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
13 13
 import com.huiju.estateagents.common.CommConstant;
14 14
 import com.huiju.estateagents.common.JWTUtils;
15
+import com.huiju.estateagents.common.StringUtils;
15 16
 import com.huiju.estateagents.drainage.entity.TaDrainage;
16 17
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
17 18
 import com.huiju.estateagents.entity.*;
@@ -22,7 +23,6 @@ import com.huiju.estateagents.service.*;
22 23
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
23 24
 import me.chanjar.weixin.common.error.WxErrorException;
24 25
 import org.apache.commons.collections.CollectionUtils;
25
-import org.apache.commons.lang3.StringUtils;
26 26
 import org.apache.http.HttpStatus;
27 27
 import org.slf4j.Logger;
28 28
 import org.slf4j.LoggerFactory;
@@ -194,10 +194,10 @@ public class MiniAppController extends BaseController {
194 194
             HttpServletRequest request) {
195 195
         String appid = request.getHeader("appid");
196 196
 
197
-        if (StringUtils.isBlank(code)) {
197
+        if (StringUtils.isEmpty(code)) {
198 198
             return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
199 199
         }
200
-        if (StringUtils.isBlank(appid)) {
200
+        if (StringUtils.isEmpty(appid)) {
201 201
             return ResponseBean.error("Header 参数 appid 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
202 202
         }
203 203
 
@@ -254,8 +254,8 @@ public class MiniAppController extends BaseController {
254 254
             // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
255 255
 //            ExecutorService threadPool = Executors.newCachedThreadPool();
256 256
 //            threadPool.execute(() -> {
257
-////                if (null != from && from.contains("share") && !com.huiju.estateagents.common.StringUtils.isEmpty(recommender) && count > 0) {
258
-//                if (null != from && from.contains("share") && !com.huiju.estateagents.common.StringUtils.isEmpty(recommender)) {
257
+////                if (null != from && from.contains("share") && !StringUtils.isEmpty(recommender) && count > 0) {
258
+//                if (null != from && from.contains("share") && !StringUtils.isEmpty(recommender)) {
259 259
 //                    // 校验是否点击过此人的分享
260 260
 //                    boolean checkPoint = checkSharePersonFrom(from, taPerson.getPersonId(), targetId, orgId);
261 261
 //                    if (checkPoint) {
@@ -265,7 +265,7 @@ public class MiniAppController extends BaseController {
265 265
 //                }
266 266
 //            });
267 267
 
268
-            if (StringUtils.isNotBlank(from) && StringUtils.isNotBlank(recommender) && StringUtils.isNotBlank(targetId)) {
268
+            if (!StringUtils.isEmpty(from) && !StringUtils.isEmpty(recommender) && !StringUtils.isEmpty(targetId)) {
269 269
                 TaSharePersonFrom taSharePersonFrom = new TaSharePersonFrom();
270 270
                 TaPerson recommenderPerson = taPersonService.getById(recommender);
271 271
                 taSharePersonFrom.setCreateDate(LocalDateTime.now());
@@ -486,7 +486,7 @@ public class MiniAppController extends BaseController {
486 486
     /**
487 487
      * 获取用户绑定手机号信息
488 488
      */
489
-    @PostMapping("/userPhone")
489
+    @PostMapping("Phone")
490 490
     public ResponseBean phone(@RequestBody String paramStr, HttpServletRequest request) {
491 491
         String appid = request.getHeader("appid");
492 492
         JSONObject params = JSONObject.parseObject(paramStr);
@@ -502,19 +502,25 @@ public class MiniAppController extends BaseController {
502 502
         // 楼盘ID
503 503
         String buildingId = params.getString("buildingId");
504 504
         // 场景ID
505
-        String sceneId = params.getString("sceneId");
505
+        String sceneId = StringUtils.ifNull(params.getString("sceneId"), request.getHeader("x-sceneId"));
506 506
         // 访问目标
507
-        String targetType = params.getString("targetType");
507
+        String targetType = StringUtils.ifNull(params.getString("targetType"), request.getHeader("x-targetType"));
508 508
         // 目标ID
509
-        String targetId = params.getString("targetId");
509
+        String targetId = StringUtils.ifNull(params.getString("targetId"), request.getHeader("x-targetId"));
510 510
         // 目标名称
511
-        String targetName = params.getString("targetName");
511
+        String targetName = StringUtils.ifNull(params.getString("targetName"), request.getHeader("x-targetName"));
512 512
         // 推广用户
513
-        String promoter = params.getString("promoter");
513
+        String promoter = StringUtils.ifNull(params.getString("promoter"), request.getHeader("x-recommender"));
514
+        // 置业顾问
515
+        String consultantPersonId = request.getHeader("x-consultant");
516
+        // 渠道ID
517
+        String channelId = params.getString("channelId");
518
+        // 推广码ID
519
+        String qrCodeId = params.getString("qrCodeId");
514 520
 
515 521
         // 解密
516 522
         WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv, appid);
517
-        if (null == phoneNoInfo || com.huiju.estateagents.common.StringUtils.isEmpty(phoneNoInfo.getPhoneNumber())) {
523
+        if (null == phoneNoInfo || StringUtils.isEmpty(phoneNoInfo.getPhoneNumber())) {
518 524
             ResponseBean.error("解析用户手机号码出错", ResponseBean.ERROR_UNAVAILABLE);
519 525
         }
520 526
 
@@ -522,17 +528,28 @@ public class MiniAppController extends BaseController {
522 528
         Integer orgId = getOrgId(request);
523 529
         String phone = phoneNoInfo.getPhoneNumber();
524 530
 
531
+        TaCustomerFrom customerFrom = new TaCustomerFrom();
532
+        customerFrom.setTargetType(targetType);
533
+        customerFrom.setTargetId(targetId);
534
+        customerFrom.setTargetName(targetName);
535
+        customerFrom.setOrgId(orgId);
536
+        customerFrom.setSceneId(sceneId);
537
+        if (!StringUtils.isEmpty(channelId)) {
538
+            customerFrom.setChannelId(Integer.valueOf(channelId));
539
+        }
540
+        if (!StringUtils.isEmpty(qrCodeId)) {
541
+            customerFrom.setQrCodeId(Integer.valueOf(qrCodeId));
542
+        }
543
+
525 544
         try {
526 545
             taPersonService.authPhone(
527 546
                     orgId,
528 547
                     openid,
529 548
                     phone,
530 549
                     buildingId,
531
-                    sceneId,
532
-                    targetType,
533
-                    targetId,
534
-                    targetName,
535
-                    promoter);
550
+                    promoter,
551
+                    consultantPersonId,
552
+                    customerFrom);
536 553
 
537 554
             return ResponseBean.success(phoneNoInfo);
538 555
         } catch (Exception e) {

+ 9
- 0
src/main/java/com/huiju/estateagents/entity/TaCustomerFrom.java Ver fichero

@@ -140,4 +140,13 @@ public class TaCustomerFrom implements Serializable {
140 140
     @TableField(exist = false)
141 141
     private LocalDateTime registerTime;
142 142
 
143
+    /**
144
+     * 渠道 ID
145
+     */
146
+    private Integer channelId;
147
+
148
+    /**
149
+     * 推广码ID
150
+     */
151
+    private Integer qrCodeId;
143 152
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java Ver fichero

@@ -330,4 +330,14 @@ public class TaPerson implements Serializable {
330 330
      */
331 331
     @TableField(exist = false)
332 332
     private String targetName;
333
+
334
+    /**
335
+     * 渠道 ID
336
+     */
337
+    private Integer channelId;
338
+
339
+    /**
340
+     * 推广码ID
341
+     */
342
+    private Integer qrCodeId;
333 343
 }

+ 1
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonService.java Ver fichero

@@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.huiju.estateagents.base.ResponseBean;
6 6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
7
+import com.huiju.estateagents.entity.TaCustomerFrom;
7 8
 import com.huiju.estateagents.entity.TaPerson;
8 9
 import com.baomidou.mybatisplus.extension.service.IService;
9 10
 import com.huiju.estateagents.entity.TaPersonBuilding;

+ 27
- 17
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Ver fichero

@@ -881,66 +881,76 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
881 881
      * @param openid
882 882
      * @param phone
883 883
      * @param buildingId
884
-     * @param sceneId
885
-     * @param targetType
886
-     * @param targetId
887
-     * @param targetName
888 884
      * @param promoter
885
+     * @param customerFrom
889 886
      * @throws Exception
890 887
      */
891 888
     @Override
892
-    public void authPhone(Integer orgId, String openid, String phone, String buildingId, String sceneId, String targetType, String targetId, String targetName, String promoter) throws Exception {
893
-        log.info("orgId={},openid={},phone={},buildingId={},sceneId={},targetType={},targetId={},targetName={},promoter={}",
894
-                orgId,openid,phone,buildingId,sceneId,targetType,targetId,targetName,promoter);
889
+    public void authPhone(Integer orgId,
890
+                          String openid,
891
+                          String phone,
892
+                          String buildingId,
893
+                          String promoter,
894
+                          String consultantPersonId,
895
+                          TaCustomerFrom customerFrom) throws Exception {
896
+        log.info("orgId={},openid={},phone={},buildingId={},promoter={}, customerFrom={}",
897
+                orgId,openid,phone,buildingId,promoter, JSONObject.toJSONString(customerFrom));
895 898
         //
896 899
         LocalDateTime now = LocalDateTime.now();
897 900
 
898
-        // 更新人员手机号
901
+        // 当前人员
899 902
         List<TaPerson> persons = getPersonsByOpenId(openid);
900 903
         if (null == persons || persons.size() != 1) {
901 904
             throw new Exception("当前人员 openid 异常");
902 905
         }
903 906
         TaPerson person = persons.get(0);
907
+        // 更新手机号
904 908
         person.setPhone(phone);
909
+        // 更新授权时间
905 910
         person.setAuthPhoneTime(now);
906 911
         if (StringUtils.isEmpty(person.getBuildingId())) {
912
+            // 更新楼盘
907 913
             person.setBuildingId(buildingId);
908 914
         }
909 915
         if (CommConstant.PERSON_ESTATE_DRIFT.equals(person.getPersonType())) {
916
+            // 更新人员身份
910 917
             person.setPersonType(CommConstant.PERSON_ESTATE_CUSTOMER);
911 918
         }
919
+        if (null != customerFrom.getChannelId() && null == person.getChannelId()) {
920
+            // 更新渠道
921
+            person.setChannelId(customerFrom.getChannelId());
922
+        }
923
+        if (null != customerFrom.getQrCodeId() && null == person.getQrCodeId()) {
924
+            // 更新推广码
925
+            person.setQrCodeId(customerFrom.getQrCodeId());
926
+        }
912 927
         updateById(person);
913 928
 
914 929
         // 关联推荐客户
915 930
         fixCustomerPersonId(person);
916 931
 
917 932
         // 客户来源
918
-        TaCustomerFrom customerFrom = new TaCustomerFrom();
919 933
         customerFrom.setPersonId(person.getPersonId());
920 934
         customerFrom.setPersonName(StringUtils.ifNull(person.getName(), person.getNickname()));
921
-        customerFrom.setTargetType(targetType);
922
-        customerFrom.setTargetId(targetId);
923
-        customerFrom.setTargetName(targetName);
924
-        customerFrom.setOrgId(orgId);
925
-        customerFrom.setSceneId(sceneId);
926 935
         customerFrom.setCreateDate(now);
927 936
 
928 937
         // 推广人
929 938
         TaPerson recPerson = StringUtils.isEmpty(promoter) ? null : taPersonMapper.getById(promoter);
930 939
         // 推荐楼盘
931 940
         TaBuilding building = StringUtils.isEmpty(buildingId) ? null : taBuildingMapper.selectById(buildingId);
932
-        // 是否置业顾问
941
+        // 置业顾问
933 942
         boolean isConsultant = null != recPerson && CommConstant.PERSON_REALTY_CONSULTANT.equals(recPerson.getPersonType());
943
+        TaPerson consultant = null != consultantPersonId ? getById(consultantPersonId) : (isConsultant ? recPerson : null);
934 944
 
935 945
         try {
936
-            List<TaRecommendCustomer> customerList = iTaRecommendCustomerService.newCustomer(orgId, person, recPerson, isConsultant ? recPerson : null, building, customerFrom);
946
+            List<TaRecommendCustomer> customerList = iTaRecommendCustomerService.newCustomer(orgId, person, recPerson, consultant, building, customerFrom);
937 947
             if (customerList.size() > 0) {
938 948
                 // 发放积分
939 949
                 applicationContext.publishEvent(new EventBus(person, EventBus.EventType.SignUpAgent, orgId));
940 950
 
941 951
                 //授权手机给推广人加积分
942 952
                 String sharePersonId = getSharePersonFrom(person);
943
-                if (validateSceneId(sceneId) && !StringUtils.isEmpty(sharePersonId)){
953
+                if (validateSceneId(customerFrom.getSceneId()) && !StringUtils.isEmpty(sharePersonId)){
944 954
                     applicationContext.publishEvent(new EventBus(promoter != null ? promoter : sharePersonId, EventBus.EventType.SharePosterAll, orgId));
945 955
                 }
946 956
             }