| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 客户导购关联表Service实现 |
| | |
| | | request.setPageSize(100); |
| | | request.setTiming(Constants.ONE+""); |
| | | request.setCreationDate(date); |
| | | this.syncData(request,null); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void syncByPhone(Member member) { |
| | | if(member ==null){ |
| | | return; |
| | | } |
| | | CrmDaogouBindListRequest request = new CrmDaogouBindListRequest(); |
| | | request.setPage(0); |
| | | request.setPageSize(100); |
| | | request.setTiming(Constants.ZERO+""); |
| | | request.setKeyWords(member.getPhone()); |
| | | this.syncData(request,member); |
| | | } |
| | | |
| | | public void syncData(CrmDaogouBindListRequest request,Member member){ |
| | | 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,member); |
| | | } |
| | | |
| | | private void dealSyncDataBiz(Date date,List<CRMDaogouBindListResponse> list) { |
| | | private void dealSyncDataBiz(Date date,List<CRMDaogouBindListResponse> list,Member member) { |
| | | if(list ==null && list.size()==0){ |
| | | return; |
| | | } |
| | | List<CustomerUser> addList = new ArrayList<>(); |
| | | List<String> phoneList = new ArrayList<>(); |
| | | List<Long> memberIds = new ArrayList<>(); |
| | | for(CRMDaogouBindListResponse data : list){ |
| | | if(StringUtils.isBlank(data.getCustomerPhone())){ |
| | | continue; |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getPhone,data.getCustomerPhone() ) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1" )); |
| | | if(member == null){ |
| | | member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getPhone,data.getCustomerPhone() ) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1" )); |
| | | } |
| | | Users user = usersMapper.selectOne(new QueryWrapper<Users>().lambda() |
| | | .eq(Users::getIamId,data.getUserId() ) |
| | | .eq(Users::getIamId,data.getIamId() ) |
| | | .last("limit 1" )); |
| | | if(member == null){ |
| | | continue; |
| | | } |
| | | if(Objects.isNull(user)){ |
| | | continue; |
| | | } |
| | | memberIds.add(member.getId()); |
| | | phoneList.add(data.getCustomerPhone()); |
| | | |
| | | CustomerUser model = new CustomerUser(); |
| | |
| | | model.setZtStatus(Constants.ONE); |
| | | model.setZtInfo("crm同步"); |
| | | model.setIamUserId(data.getUserId()); |
| | | model.setMemberId(member==null?null:member.getId()); |
| | | model.setUserId(user== null?null:user.getId()); |
| | | model.setCreationDate(data.getCreationDate()); |
| | | addList.add(model); |
| | |
| | | customerUserMapper.insert(addList.subList(temp,index)); |
| | | temp = index; |
| | | } |
| | | Member update = new Member(); |
| | | update.setAuthStatus(Constants.TWO); |
| | | update.setEditDate(new Date()); |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda(). |
| | | set(Member::getAuthStatus,Constants.TWO). |
| | | set(Member::getEditDate,new Date()) |
| | | .in(Member::getId,memberIds)); |
| | | } |
| | | } |
| | | } |