From 93ec40fd435a6ab85f8bb4bc34375003068b1881 Mon Sep 17 00:00:00 2001 From: Caps <452713115@qq.com> Date: Fri, 24 Apr 2020 22:21:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=9B=9E=E8=B0=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OpSellerCustomerRelationDOMapper.java | 7 ++ .../service/RetailCompanyService.java | 83 +++++++++++++------ .../OpSellerCustomerRelationDOMapper.xml | 38 +++++++++ .../resources/mapper/PoiStoreDOMapper.xml | 1 - 4 files changed, 102 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java b/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java index 9b002ee..36a70c2 100644 --- a/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java +++ b/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Repository; import java.util.Date; import java.util.List; +import java.util.Map; /** * 导购客户 @@ -33,4 +34,10 @@ public interface OpSellerCustomerRelationDOMapper extends BaseMapper> selectAllCustomer(@Param("ids") List ids); + List> selectAllCustomer1(@Param("ids") List ids); + + List> selectAllCustomerShop(@Param("ids") List ids); + List> selectAllCustomerShop1(@Param("ids") List ids); } 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 e6d3d2e..ef666bc 100644 --- a/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java +++ b/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java @@ -91,8 +91,8 @@ public class RetailCompanyService { PrivilageOrganizational p = new PrivilageOrganizational(); List pm = organizationalMemberMapper.selectList(wrapper1); QueryWrapper wrapper = new QueryWrapper<>(); - if(check(userId)){ - wrapper.eq("level",level).eq("type",1).eq("status", 1); + if (check(userId)) { + wrapper.eq("level", level).eq("type", 1).eq("status", 1); return retailCompanyMapper.selectList(wrapper); } if (pm.isEmpty()) { @@ -116,7 +116,7 @@ public class RetailCompanyService { wrapper1.eq("user_id", userId); List pm = organizationalMemberMapper.selectList(wrapper1); QueryWrapper wrapper = new QueryWrapper<>(); - if(check(userId)){ + if (check(userId)) { wrapper.eq("type", 1).eq("level", 1).eq("status", 1); return retailCompanyMapper.selectList(wrapper); } @@ -146,8 +146,8 @@ public class RetailCompanyService { QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.eq("user_id", userId); List pm = organizationalMemberMapper.selectList(wrapper1); - if(check(userId)){ - return retailCompanyMapper.selectList(null); + if (check(userId)) { + return retailCompanyMapper.selectList(null); } if (pm.isEmpty()) { return new ArrayList<>(); @@ -192,7 +192,7 @@ public class RetailCompanyService { wrapper1.eq("user_id", userId); List pm = organizationalMemberMapper.selectList(wrapper1); QueryWrapper wrapper = new QueryWrapper<>(); - if(check(userId)){ + if (check(userId)) { wrapper.eq("type", 2).eq("level", 2).eq("status", 1); return retailCompanyMapper.selectList(wrapper); } @@ -277,7 +277,7 @@ public class RetailCompanyService { List listOfOrg = retailCompanyMapper.selectList(wrapper); List list = new ArrayList<>(); - listOfOrg.forEach(org -> { + listOfOrg.parallelStream().forEach(org -> { RetailOrganizationalVO organizationalVO = new RetailOrganizationalVO(); organizationalVO.setRetailCompany(org.getName()); @@ -444,23 +444,34 @@ public class RetailCompanyService { PageHelper.startPage(pageNum, pageSize); List list = retailCompanyMapper.selectShopIdByRetail(orgId, shopId); + List shopIds = list.stream().map(CompanyStoreDO::getShopId).collect(Collectors.toList()); + //查询所有的店铺信息 + QueryWrapper poiStoreQueryWrapper = new QueryWrapper<>(); + poiStoreQueryWrapper.in("id", shopIds); + List list2 = poiStoreDOMapper.selectList(poiStoreQueryWrapper); + + Map map = list2.stream().collect(Collectors.toMap(PoiStore::getId, p -> p)); + + //所有的导购客户个数 + List> map1 = opSellerCustomerRelationDOMapper.selectAllCustomerShop(shopIds); + Map collect = map1 == null ? new HashMap<>() : map1.stream().collect(Collectors.toMap(m -> Long.parseLong(m.get("store_id").toString()), m1 -> m1.get("count"))); + + List> map2 = opSellerCustomerRelationDOMapper.selectAllCustomerShop1(shopIds); + Map collect1 = map2 == null ? new HashMap<>() : map2.stream().collect(Collectors.toMap(m -> Long.parseLong(m.get("store_id").toString()), m1 -> m1.get("count"))); List list1 = new ArrayList<>(); - list.forEach(li -> { - StoreOrganizationalVO storeOrganizationalVO = new StoreOrganizationalVO(); + list.stream().parallel().forEach(li -> { + StoreOrganizationalVO storeOrganizationalVO = new StoreOrganizationalVO(); + long count = 0; //查询所有的客户 - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("store_id", li.getShopId()); - long count = opSellerCustomerRelationDOMapper.selectCount(wrapper); + count = collect.get(li) == null ? 0 : Long.parseLong(collect.get(li).toString()); + long countAble = 0; //查询所有的有效客户 - QueryWrapper wrapper2 = new QueryWrapper<>(); - wrapper2.eq("store_id", li.getShopId()); - wrapper2.eq("type", 1); - long countAble = opSellerCustomerRelationDOMapper.selectCount(wrapper2); + countAble = collect1.get(li) == null ? 0 : Long.parseLong(collect1.get(li).toString()); //计算新客户数据 newCustomerStore(startTime, endTime, storeOrganizationalVO, Collections.singletonList(li.getShopId())); //查询店铺的名称 - PoiStore poiStore = poiStoreDOMapper.selectById(li.getShopId()); + PoiStore poiStore = map.get(li.getShopId()); //被拉黑的客户数 QueryWrapper wrapper3 = new QueryWrapper<>(); @@ -507,19 +518,38 @@ public class RetailCompanyService { PageHelper.startPage(pageNum, pageSize); List sellerIds = retailCompanyMapper.selectSellerIdsByShop(orgId, shopId, sellerId); List list = new ArrayList<>(); - sellerIds.forEach(seller -> { - SellerOrganizationalVO sellerOrganizationalVO = new SellerOrganizationalVO(); + //查询所有的店铺信息 + QueryWrapper poiStoreQueryWrapper = new QueryWrapper<>(); + poiStoreQueryWrapper.in("id", sellerIds); + List list2 = privilageUserDOMapper.selectList(poiStoreQueryWrapper); + + Map map = list2.stream().collect(Collectors.toMap(PrivilageUserDO::getId, p -> p)); + + //所有的导购客户个数 + List> map1 = opSellerCustomerRelationDOMapper.selectAllCustomer(sellerIds); + Map collect = map1 == null ? new HashMap<>() : map1.stream().collect(Collectors.toMap(m -> Long.parseLong(m.get("user_id").toString()), m1 -> m1.get("count"))); + + List> map3 = opSellerCustomerRelationDOMapper.selectAllCustomer1(sellerIds); + Map collect1 = map3 == null ? new HashMap<>() : map3.stream().collect(Collectors.toMap(m -> Long.parseLong(m.get("store_id").toString()), m1 -> m1.get("count"))); + + QueryWrapper wrapper1 = new QueryWrapper<>(); + wrapper1.in("user_id", sellerIds); + + List list1 = poiStoreStaffDOMapper.selectList(wrapper1); + Map map2 = list1.stream().collect(Collectors.toMap(PoiStoreStaff::getId, p -> p)); + + sellerIds.stream().parallel().forEach(seller -> { + SellerOrganizationalVO sellerOrganizationalVO = new SellerOrganizationalVO(); + long count = 0; //查询所有的客户 - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("user_id", seller); - long count = opSellerCustomerRelationDOMapper.selectCount(wrapper); + count = collect.get(seller) == null ? 0 : Long.parseLong(collect.get(seller).toString()); + long countAble = 0; + countAble = collect1.get(seller) == null ? 0 : Long.parseLong(collect1.get(seller).toString()); //查询导购信息 - PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(seller); - QueryWrapper wrapper1 = new QueryWrapper<>(); - wrapper1.eq("user_id", seller).last("limit 1"); - PoiStoreStaff poiStoreStaff = poiStoreStaffDOMapper.selectOne(wrapper1); + PrivilageUserDO privilageUserDO = map.get(seller); + PoiStoreStaff poiStoreStaff = map2.get(seller); //计算新客户数据 newCustomerUser(startTime, endTime, sellerOrganizationalVO, Collections.singletonList(seller)); //查询导购所属公司门店 @@ -530,6 +560,7 @@ public class RetailCompanyService { sellerOrganizationalVO.setCompanyName(companyStoreDO == null ? null : companyStoreDO.getCompanyName()); sellerOrganizationalVO.setSellerName(privilageUserDO == null ? null : privilageUserDO.getName()); sellerOrganizationalVO.setAllCustomer((int) count); + sellerOrganizationalVO.setEffectiveCustomer((int) countAble); list.add(sellerOrganizationalVO); }); diff --git a/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml b/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml index 1bec19c..7308155 100644 --- a/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml +++ b/src/main/resources/mapper/OpSellerCustomerRelationDOMapper.xml @@ -50,4 +50,42 @@ and DATE_FORMAT(t1.create_time,'%Y-%m-%d') <= DATE_FORMAT(#{endDate},'%Y-%m-%d') + + + + diff --git a/src/main/resources/mapper/PoiStoreDOMapper.xml b/src/main/resources/mapper/PoiStoreDOMapper.xml index 192fc60..a21103e 100644 --- a/src/main/resources/mapper/PoiStoreDOMapper.xml +++ b/src/main/resources/mapper/PoiStoreDOMapper.xml @@ -70,7 +70,6 @@ where t1.domain_id = t2.domain_id and t2.entity_id = t3.id and t2.type = 3 - and and t1.org_id in