From 6502c1a2a9aed91a717b62342c2d3c59923ca9d6 Mon Sep 17 00:00:00 2001 From: Caps <452713115@qq.com> Date: Sun, 26 Apr 2020 15:23:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E7=AE=A1=E7=90=86=E9=9B=B6?= =?UTF-8?q?=E5=94=AE=E5=85=AC=E5=8F=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/RetailCompanyService.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java b/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java index 8854338..63eacb8 100644 --- a/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java +++ b/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -277,6 +278,7 @@ public class RetailCompanyService { PageHelper.startPage(pageNum, pageSize); List listOfOrg = retailCompanyMapper.selectList(wrapper); + List list = new ArrayList<>(); listOfOrg.parallelStream().forEach(org -> { RetailOrganizationalVO organizationalVO = new RetailOrganizationalVO(); @@ -285,26 +287,28 @@ public class RetailCompanyService { //查询零售公司的门店 List list1 = selectShopByCompany(org.getId()); List stores = list1.stream().map(PoiStore::getId).collect(Collectors.toList()); - //组织成员 - QueryWrapper wrapper1 = new QueryWrapper<>(); - wrapper1.eq("org_id", org.getId()); - List memberList = organizationalMemberMapper.selectList(wrapper1); + + //根据门店查询导购人数 + QueryWrapper wrapperStaff = new QueryWrapper<>(); + wrapperStaff.in("store_id",stores); + List listStaff = poiStoreStaffDOMapper.selectList(wrapperStaff); + //组织成员的客户个数 QueryWrapper wrapper2 = new QueryWrapper<>(); - wrapper2.in("user_id", memberList.stream().map(PrivilageOrganizationalMember::getUserId).collect(Collectors.toList())); - List opRelations = memberList.size() == 0 ? new ArrayList<>() : opSellerCustomerRelationDOMapper.selectList(wrapper2); + wrapper2.in("user_id", listStaff.stream().map(PoiStoreStaff::getUserId).collect(Collectors.toList())); + List opRelations = listStaff.size() == 0 ? new ArrayList<>() : opSellerCustomerRelationDOMapper.selectList(wrapper2); long count = opRelations.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); organizationalVO.setAllCustomer((int) count); //组织成员的客户有效个数 QueryWrapper wrapper4 = new QueryWrapper<>(); - wrapper4.in("user_id", memberList.stream().map(PrivilageOrganizationalMember::getUserId).collect(Collectors.toList())); + wrapper4.in("user_id", listStaff.stream().map(PoiStoreStaff::getUserId).collect(Collectors.toList())); wrapper4.eq("type", 1); - List opRelations1 = memberList.size() == 0 ? new ArrayList<>() : opSellerCustomerRelationDOMapper.selectList(wrapper4); + List opRelations1 = listStaff.size() == 0 ? new ArrayList<>() : opSellerCustomerRelationDOMapper.selectList(wrapper4); long countAble = opRelations1.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); organizationalVO.setEffectiveCustomer((int) countAble); //计算新增客户数据 - newCustomerUser(startTime, endTime, organizationalVO, memberList.stream().map(PrivilageOrganizationalMember::getUserId).collect(Collectors.toList())); + newCustomerUser(startTime, endTime, organizationalVO, listStaff.stream().map(PoiStoreStaff::getUserId).collect(Collectors.toList())); //被拉黑的客户数 QueryWrapper wrapper3 = new QueryWrapper<>(); @@ -343,28 +347,31 @@ public class RetailCompanyService { if(userIds.size() == 0){ return; } + LocalDate l; //最初时间的总客户人数 QueryWrapper wrapper2 = new QueryWrapper<>(); wrapper2.in("user_id", userIds); - wrapper2.lt("create_time", startTime); + l = LocalDate.parse(startTime); + wrapper2.lt("create_time", l.plus(1,ChronoUnit.DAYS)); List opRelations = opSellerCustomerRelationDOMapper.selectList(wrapper2); long count = opRelations.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); //最初时间的有效总客户人数 wrapper2.in("user_id", userIds); wrapper2.eq("type", 1); - wrapper2.lt("create_time", startTime); + wrapper2.lt("create_time", l.plus(1,ChronoUnit.DAYS)); List opRelations2 = opSellerCustomerRelationDOMapper.selectList(wrapper2); long count2 = opRelations2.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); //最后时间的总客户人数 QueryWrapper wrapper3 = new QueryWrapper<>(); wrapper3.in("user_id", userIds); - wrapper3.lt("create_time", endTime); + l = LocalDate.parse(endTime); + wrapper3.lt("create_time",l.plus(1,ChronoUnit.DAYS)); List opRelationsEnd = opSellerCustomerRelationDOMapper.selectList(wrapper3); long countEnd = opRelationsEnd.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); //最后时间的有效总客户人数 wrapper3.in("user_id", userIds); wrapper3.eq("type", 1); - wrapper3.lt("create_time", endTime); + wrapper3.lt("create_time",l.plus(1,ChronoUnit.DAYS)); List opRelationsEnd2 = opSellerCustomerRelationDOMapper.selectList(wrapper3); long countEnd2 = opRelationsEnd2.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count();