From fb0570eeb5315cd3a175d368450a3d32aa6bef25 Mon Sep 17 00:00:00 2001 From: kevin jiang Date: Sun, 17 May 2020 12:50:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BA=97=E5=9D=87=E6=8B=93?= =?UTF-8?q?=E5=AE=A2=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OpSellerCustomerRelationDOMapper.java | 3 ++ .../bean/RetailOrganizationalVO.java | 5 +++ .../PoiCustomerContactDataStatMapper.java | 9 ++++ .../service/RetailCompanyService.java | 42 +++++++++++++------ .../ic/store/mapper/PoiStoreDOMapper.java | 11 +++++ .../PoiCustomerContactDataStatDOMapper.xml | 9 ++++ .../resources/mapper/PoiStoreDOMapper.xml | 11 +++++ 7 files changed, 77 insertions(+), 13 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 d980a8e..29899b0 100644 --- a/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java +++ b/src/main/java/com/kiisoo/ic/customer/mapper/OpSellerCustomerRelationDOMapper.java @@ -98,4 +98,7 @@ public interface OpSellerCustomerRelationDOMapper extends BaseMapper selectSumApplyCustomer(@Param("shopIds")List storeIds, @Param("count")Integer count, @Param("startDate") Date selectStartTime, @Param("endDate")Date selectEndTime); + + /** + * 拉黑数统计 + * @param storeIds 店铺ID集合 + * @return 返回拉黑总数 + * @author dexiang.jiang + * @date 2020/05/17 12:42 + */ + Integer sumNegativeFeedbackCntByStoreIds(@Param("storeIds") List storeIds); } 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 b9f31a7..da3cff1 100644 --- a/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java +++ b/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java @@ -279,6 +279,20 @@ public class RetailCompanyService { return poiStoreDOMapper.selectShopByCustomerIds(new ArrayList<>(customerIds)); } + /** + * 查询零售公司下的店铺 + * + * @param orgId 零售公司id + * @return 门店ID集合 + * @author dexiang.jiang + * @date 2020/05/17 12:07 + */ + public List selectStoreIdListByCompanyId(Long orgId) { + //查询客户 + List storeIds = poiStoreDOMapper.selectShopIdByCustomerId(orgId); + return storeIds; + } + /** * 查询零售公司下的店铺 * @@ -334,8 +348,7 @@ public class RetailCompanyService { organizationalVO.setRetailCompany(org.getName()); //查询零售公司的门店 - List list1 = selectShopByCompany(org.getId()); - List stores = list1.stream().map(PoiStore::getId).collect(Collectors.toList()); + List stores = selectStoreIdListByCompanyId(org.getId()); if(CollectionUtils.isEmpty(stores)){ organizationalVO.setAllCustomer(0); @@ -346,6 +359,7 @@ public class RetailCompanyService { organizationalVO.setAvgNewEffectiveCustomer(0); organizationalVO.setNewCustomer(0); organizationalVO.setNewEffectiveCustomer(0); + organizationalVO.setAvgStoreCustomer(0); list.add(organizationalVO); return; } @@ -364,24 +378,26 @@ public class RetailCompanyService { QueryWrapper wrapper4 = new QueryWrapper<>(); wrapper4.in("store_id", stores); wrapper4.eq("type", 1); - List opRelations1 = opSellerCustomerRelationDOMapper.selectList(wrapper4); - long countAble = opRelations1.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); - organizationalVO.setEffectiveCustomer((int) countAble); + Integer countAble = opSellerCustomerRelationDOMapper.selectCount(wrapper4); +// long countAble = opRelations1.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); + organizationalVO.setEffectiveCustomer(countAble); //计算新增客户数据 newCustomerStore(startTime, endTime, organizationalVO, stores); //被拉黑的客户数 - QueryWrapper wrapper3 = new QueryWrapper<>(); - if (stores.isEmpty()) { - stores.add(-1L); + if (!stores.isEmpty()) { +// stores.add(-1L); + QueryWrapper wrapper3 = new QueryWrapper<>(); + wrapper3.in("store_id", stores); + Integer allAge = poiCustomerContactDataStatMapper.sumNegativeFeedbackCntByStoreIds(stores); + + organizationalVO.setDelCustomer(allAge); + organizationalVO.setDelRate(check(new Long(allAge), count)); } - wrapper3.in("store_id", stores); - List dataStats = poiCustomerContactDataStatMapper.selectList(wrapper3); - long allAge = dataStats.stream().mapToLong(PoiCustomerContactDataStat::getNegativeFeedbackCnt).sum(); - organizationalVO.setDelCustomer((int) allAge); - organizationalVO.setDelRate(check(allAge, count)); + Integer avgStoreCustomer = organizationalVO.getAllCustomer() / stores.size(); + organizationalVO.setAvgStoreCustomer(avgStoreCustomer); list.add(organizationalVO); }); OrganizationVO vo = new OrganizationVO(); diff --git a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java index 9247020..4aa1d9c 100644 --- a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java +++ b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java @@ -59,4 +59,15 @@ public interface PoiStoreDOMapper extends BaseMapper { * 查省 */ String selectProvinceName(@Param("cityId")Long cityId); + + /** + * 查询零售公司下的店铺 + * + * @param orgId 零售公司id + * @return 门店ID集合 + * @author dexiang.jiang + * @date 2020/05/17 12:07 + */ + List selectShopIdByCustomerId(@Param("orgId")Long orgId); + } diff --git a/src/main/resources/mapper/PoiCustomerContactDataStatDOMapper.xml b/src/main/resources/mapper/PoiCustomerContactDataStatDOMapper.xml index a40950c..361123b 100644 --- a/src/main/resources/mapper/PoiCustomerContactDataStatDOMapper.xml +++ b/src/main/resources/mapper/PoiCustomerContactDataStatDOMapper.xml @@ -35,4 +35,13 @@ group by store_id having sum(new_contact_cnt) <= #{count} + diff --git a/src/main/resources/mapper/PoiStoreDOMapper.xml b/src/main/resources/mapper/PoiStoreDOMapper.xml index 02b9758..046b6ca 100644 --- a/src/main/resources/mapper/PoiStoreDOMapper.xml +++ b/src/main/resources/mapper/PoiStoreDOMapper.xml @@ -172,4 +172,15 @@ + +