k94314517
2024-07-25 a75b18a4157ab486e0b51c438ac165ab3a08e3e0
server/service/src/main/java/com/doumee/service/business/impl/CustomerUserServiceImpl.java
@@ -182,32 +182,54 @@
        request.setPageSize(100);
        request.setTiming(Constants.ONE+"");
        request.setCreationDate(date);
        this.syncData(request);
    }
    @Override
    @Transactional
    public void syncByPhone(String phone) {
        CrmDaogouBindListRequest request = new CrmDaogouBindListRequest();
        request.setPage(0);
        request.setPageSize(100);
        request.setTiming(Constants.ZERO+"");
        request.setKeyWords(phone);
        this.syncData(request);
    }
    public void syncData(CrmDaogouBindListRequest request){
        boolean hasMore = true;
        int currentNum = 0;
        Date cdate = new Date();
        List<CRMDaogouBindListResponse> allList = new ArrayList<>();
        while (hasMore){
            try {
                request.setPage(request.getPage()+1);
                currentNum += currentNum;
                CRMBaseResponse<List<CRMDaogouBindListResponse>> response = zbomCRMService.getDaogouBindList(request);
                if(response==null
                        || !StringUtils.equals(response.getCode(), CRMConstants.CODE_SUCCESS)
                        || response.getData() ==null
                        || response.getData().size() ==0){
                    hasMore = false;
                }else{
                    allList.addAll(response.getData());
                    currentNum += response.getTotal();
                }
                if(currentNum >= response.getTotal()){
                    hasMore = false;
                }
                dealSyncDataBiz(cdate,response.getData());
            }catch (Exception e){
               hasMore = false;
                hasMore = false;
            }
        }
        dealSyncDataBiz(cdate,allList);
    }
    private void dealSyncDataBiz(Date date,List<CRMDaogouBindListResponse> list) {
        if(list ==null && list.size()==0){
            return;
        }
        List<CustomerUser> addList = new ArrayList<>();
        List<String> phoneList = new ArrayList<>();
        for(CRMDaogouBindListResponse data : list){
            if(StringUtils.isBlank(data.getCustomerPhone())){
                continue;
@@ -222,15 +244,8 @@
            if(member == null){
                continue;
            }
            /**
             * 删除老得数据
             */
            customerUserMapper.update(null,new UpdateWrapper<CustomerUser>().lambda()
                    .eq(CustomerUser::getPhone,data.getDgPhone() )
                    .eq(CustomerUser::getUsername,data.getUseName() )
                    .eq(CustomerUser::getIsdeleted,Constants.ZERO)
                    .set(CustomerUser::getIsdeleted,Constants.ONE)
            );
            phoneList.add(data.getCustomerPhone());
            CustomerUser model = new CustomerUser();
            model.setCreateDate(date);
            model.setIsdeleted(Constants.ZERO);
@@ -240,12 +255,26 @@
            model.setOrgName(data.getOrgName());
            model.setCustomerName(data.getCustomerName());
            model.setCustomerPhone(data.getCustomerPhone());
            model.setUsername(data.getUseName());
            model.setUsername(data.getUserName());
            model.setSource(Constants.ONE);
            model.setZtStatus(Constants.ONE);
            model.setZtInfo("crm同步");
            model.setIamUserId(data.getUserId());
            model.setUserId(user== null?null:user.getId());
            model.setCreationDate(data.getCreationDate());
            addList.add(model);
        }
        if(phoneList.size()>0){
            /**
             * 删除老得数据
             */
            customerUserMapper.update(null,new UpdateWrapper<CustomerUser>().lambda()
                    .in(CustomerUser::getPhone,phoneList)
                    .eq(CustomerUser::getZtStatus,Constants.ONE)
                    .eq(CustomerUser::getIsdeleted,Constants.ZERO)
                    .set(CustomerUser::getIsdeleted,Constants.ONE)
            );
        }
        if(addList .size() >0){
            int temp = 0;
            while(temp < addList.size()){