Procházet zdrojové kódy

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

# Conflicts:
#	src/main/java/com/huiju/estateagents/service/ITaPersonService.java
魏超 před 5 roky
rodič
revize
482bda13af

+ 2
- 0
src/main/java/com/huiju/estateagents/base/BaseController.java Zobrazit soubor

10
 
10
 
11
 import javax.servlet.http.HttpServletRequest;
11
 import javax.servlet.http.HttpServletRequest;
12
 import java.util.ArrayList;
12
 import java.util.ArrayList;
13
+import java.util.Enumeration;
13
 import java.util.List;
14
 import java.util.List;
14
 import java.util.Map;
15
 import java.util.Map;
15
 
16
 
140
         return taPersonBuildingList;
141
         return taPersonBuildingList;
141
     }
142
     }
142
 }
143
 }
144
+

+ 35
- 18
src/main/java/com/huiju/estateagents/controller/MiniAppController.java Zobrazit soubor

12
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
12
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
13
 import com.huiju.estateagents.common.CommConstant;
13
 import com.huiju.estateagents.common.CommConstant;
14
 import com.huiju.estateagents.common.JWTUtils;
14
 import com.huiju.estateagents.common.JWTUtils;
15
+import com.huiju.estateagents.common.StringUtils;
15
 import com.huiju.estateagents.drainage.entity.TaDrainage;
16
 import com.huiju.estateagents.drainage.entity.TaDrainage;
16
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
17
 import com.huiju.estateagents.drainage.service.ITaDrainageService;
17
 import com.huiju.estateagents.entity.*;
18
 import com.huiju.estateagents.entity.*;
22
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
23
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
23
 import me.chanjar.weixin.common.error.WxErrorException;
24
 import me.chanjar.weixin.common.error.WxErrorException;
24
 import org.apache.commons.collections.CollectionUtils;
25
 import org.apache.commons.collections.CollectionUtils;
25
-import org.apache.commons.lang3.StringUtils;
26
 import org.apache.http.HttpStatus;
26
 import org.apache.http.HttpStatus;
27
 import org.slf4j.Logger;
27
 import org.slf4j.Logger;
28
 import org.slf4j.LoggerFactory;
28
 import org.slf4j.LoggerFactory;
194
             HttpServletRequest request) {
194
             HttpServletRequest request) {
195
         String appid = request.getHeader("appid");
195
         String appid = request.getHeader("appid");
196
 
196
 
197
-        if (StringUtils.isBlank(code)) {
197
+        if (StringUtils.isEmpty(code)) {
198
             return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
198
             return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
199
         }
199
         }
200
-        if (StringUtils.isBlank(appid)) {
200
+        if (StringUtils.isEmpty(appid)) {
201
             return ResponseBean.error("Header 参数 appid 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
201
             return ResponseBean.error("Header 参数 appid 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
202
         }
202
         }
203
 
203
 
254
             // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
254
             // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
255
 //            ExecutorService threadPool = Executors.newCachedThreadPool();
255
 //            ExecutorService threadPool = Executors.newCachedThreadPool();
256
 //            threadPool.execute(() -> {
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
 //                    boolean checkPoint = checkSharePersonFrom(from, taPerson.getPersonId(), targetId, orgId);
260
 //                    boolean checkPoint = checkSharePersonFrom(from, taPerson.getPersonId(), targetId, orgId);
261
 //                    if (checkPoint) {
261
 //                    if (checkPoint) {
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
                 TaSharePersonFrom taSharePersonFrom = new TaSharePersonFrom();
269
                 TaSharePersonFrom taSharePersonFrom = new TaSharePersonFrom();
270
                 TaPerson recommenderPerson = taPersonService.getById(recommender);
270
                 TaPerson recommenderPerson = taPersonService.getById(recommender);
271
                 taSharePersonFrom.setCreateDate(LocalDateTime.now());
271
                 taSharePersonFrom.setCreateDate(LocalDateTime.now());
486
     /**
486
     /**
487
      * 获取用户绑定手机号信息
487
      * 获取用户绑定手机号信息
488
      */
488
      */
489
-    @PostMapping("/userPhone")
489
+    @PostMapping("Phone")
490
     public ResponseBean phone(@RequestBody String paramStr, HttpServletRequest request) {
490
     public ResponseBean phone(@RequestBody String paramStr, HttpServletRequest request) {
491
         String appid = request.getHeader("appid");
491
         String appid = request.getHeader("appid");
492
         JSONObject params = JSONObject.parseObject(paramStr);
492
         JSONObject params = JSONObject.parseObject(paramStr);
502
         // 楼盘ID
502
         // 楼盘ID
503
         String buildingId = params.getString("buildingId");
503
         String buildingId = params.getString("buildingId");
504
         // 场景ID
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
         // 目标ID
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
         WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv, appid);
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
             ResponseBean.error("解析用户手机号码出错", ResponseBean.ERROR_UNAVAILABLE);
524
             ResponseBean.error("解析用户手机号码出错", ResponseBean.ERROR_UNAVAILABLE);
519
         }
525
         }
520
 
526
 
522
         Integer orgId = getOrgId(request);
528
         Integer orgId = getOrgId(request);
523
         String phone = phoneNoInfo.getPhoneNumber();
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
         try {
544
         try {
526
             taPersonService.authPhone(
545
             taPersonService.authPhone(
527
                     orgId,
546
                     orgId,
528
                     openid,
547
                     openid,
529
                     phone,
548
                     phone,
530
                     buildingId,
549
                     buildingId,
531
-                    sceneId,
532
-                    targetType,
533
-                    targetId,
534
-                    targetName,
535
-                    promoter);
550
+                    promoter,
551
+                    consultantPersonId,
552
+                    customerFrom);
536
 
553
 
537
             return ResponseBean.success(phoneNoInfo);
554
             return ResponseBean.success(phoneNoInfo);
538
         } catch (Exception e) {
555
         } catch (Exception e) {

+ 9
- 0
src/main/java/com/huiju/estateagents/entity/TaCustomerFrom.java Zobrazit soubor

140
     @TableField(exist = false)
140
     @TableField(exist = false)
141
     private LocalDateTime registerTime;
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 Zobrazit soubor

330
      */
330
      */
331
     @TableField(exist = false)
331
     @TableField(exist = false)
332
     private String targetName;
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 Zobrazit soubor

4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.huiju.estateagents.base.ResponseBean;
5
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
7
+import com.huiju.estateagents.entity.TaCustomerFrom;
7
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.baomidou.mybatisplus.extension.service.IService;
9
 import com.baomidou.mybatisplus.extension.service.IService;
9
 import com.huiju.estateagents.entity.TaPersonBuilding;
10
 import com.huiju.estateagents.entity.TaPersonBuilding;

+ 27
- 17
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Zobrazit soubor

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