From 299aa09f2f471ee566fe99353c5622d759f2fedf Mon Sep 17 00:00:00 2001 From: yechenhao Date: Mon, 1 Jun 2020 01:14:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AE=A2=E6=88=B7=E5=AF=BC?= =?UTF-8?q?=E8=B4=AD=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CustomerViewController.java | 17 ++++++ .../customer/service/CustomerViewService.java | 58 +++++++++++++++---- .../service/StorePromotionDataService.java | 2 + .../mapper/StorePromotionDataDOMapper.xml | 20 +++---- 4 files changed, 75 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/customer/controller/CustomerViewController.java b/src/main/java/com/kiisoo/ic/customer/controller/CustomerViewController.java index b6eb310..98ee407 100644 --- a/src/main/java/com/kiisoo/ic/customer/controller/CustomerViewController.java +++ b/src/main/java/com/kiisoo/ic/customer/controller/CustomerViewController.java @@ -55,6 +55,23 @@ public class CustomerViewController extends BaseController { } } + /** + * 客户概览main——vip + * @param userId 用户id + * @return 客户概览VO + */ + @ResponseBody + @RequestMapping(value = "/main/vip", method = RequestMethod.GET) + public Map getMainVipCount(@RequestParam("userId")Long userId){ + try{ + CustomerViewVO result = customerViewService.getMainVipCount(userId); + return data(result); + }catch (Exception e){ + log.error("查询vip数据出错", e); + return fail(); + } + } + /** * 客户概览——Top榜 * @param userId 用户id diff --git a/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java b/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java index 572d7d2..c5e6554 100644 --- a/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java +++ b/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java @@ -174,8 +174,6 @@ public class CustomerViewService { */ public CustomerViewVO selectCustomerViewMain(Long userId, String selectStartTime, String selectEndTime, String startTime, String endTime){ CustomerViewVO customerViewVO = new CustomerViewVO(); - //会员总数 - Long vipCount = 0L; //shopIds List shopIdList = new ArrayList<>(); PrivilageRoleDO privilageRoleDO = privilageRoleDOMapper.selectRoleByUserId(userId); @@ -185,7 +183,6 @@ public class CustomerViewService { //店长 if(privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_DZ.getRoleCode())) { shopIdList = poiStoreStaffDOMapper.selectByUserId(userId); - vipCount = opVipDOMapper.selectVipCountByStoreIds(shopIdList); } //运营人员 else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_YYRY.getRoleCode())) { @@ -195,12 +192,10 @@ public class CustomerViewService { //查询零售公司的门店 List list1 = retailCompanyService.selectShopByCompany(pm.get(0).getOrgId()); shopIdList = list1.stream().map(PoiStore::getId).collect(Collectors.toList()); - vipCount = opVipDOMapper.selectVipCountByStoreIds(shopIdList); } //管理员/总运营人员 else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_GLY.getRoleCode()) || privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_ALL_YYRY.getRoleCode())) { shopIdList = poiStoreStaffDOMapper.selectAllShopId(null,null); - vipCount = opVipDOMapper.selectVipCountNew(); } if(CollectionUtils.isEmpty(shopIdList)){ @@ -209,17 +204,10 @@ public class CustomerViewService { //柱状图好友趋势图 List customerList = opCustomerDOMapper.selectCustomerList(shopIdList, null, null, startTime, endTime); - - customerViewVO.setAllVipCount(vipCount); - //设置趋势柱状图list List validCustomerList = customerList.stream().filter(customerDO -> VALID.equals(customerDO.getValidType())).collect(Collectors.toList()); handleChartData(customerList, validCustomerList, customerViewVO); - //设置新增好友,新增好友(去重),vip人数 -// setCustomerViewData(customerViewVO, customerList, validCustomerList, selectStartTime, selectEndTime); - //新增好友 -// Long newCustomerCount = customerList.stream().filter(customerDO -> filterCustomerByRegisterTime(customerDO, selectStartTime, selectEndTime)).count(); Integer newCustomerCount = opCustomerDOMapper.countCustomerByDate(shopIdList,selectStartTime, selectEndTime); customerViewVO.setNewCustomer(new Long(newCustomerCount)); @@ -229,6 +217,52 @@ public class CustomerViewService { return customerViewVO; } + + /** + * 客户概览main——vip + * @param userId 用户id + * @return 客户概览VO + */ + public CustomerViewVO getMainVipCount(Long userId){ + CustomerViewVO customerViewVO = new CustomerViewVO(); + //会员总数 + Long vipCount = 0L; + //shopIds + List shopIdList = new ArrayList<>(); + PrivilageRoleDO privilageRoleDO = privilageRoleDOMapper.selectRoleByUserId(userId); + if(privilageRoleDO == null){ + return customerViewVO; + } + //店长 + if(privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_DZ.getRoleCode())) { + shopIdList = poiStoreStaffDOMapper.selectByUserId(userId); + vipCount = opVipDOMapper.selectVipCountByStoreIds(shopIdList); + } + //运营人员 + else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_YYRY.getRoleCode())) { + QueryWrapper wrapper1 = new QueryWrapper<>(); + wrapper1.eq("user_id", userId); + List pm = organizationalMemberMapper.selectList(wrapper1); + //查询零售公司的门店 + List list1 = retailCompanyService.selectShopByCompany(pm.get(0).getOrgId()); + shopIdList = list1.stream().map(PoiStore::getId).collect(Collectors.toList()); + vipCount = opVipDOMapper.selectVipCountByStoreIds(shopIdList); + } + //管理员/总运营人员 + else if (privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_GLY.getRoleCode()) || privilageRoleDO.getCode().equals(RoleEnum.ROLE_CODE_ALL_YYRY.getRoleCode())) { + shopIdList = poiStoreStaffDOMapper.selectAllShopId(null,null); + vipCount = opVipDOMapper.selectVipCountNew(); + } + + if(CollectionUtils.isEmpty(shopIdList)){ + return customerViewVO; + } + + customerViewVO.setAllVipCount(vipCount); + + return customerViewVO; + } + /** * 客户概览——Top榜 * @param userId 用户id diff --git a/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java b/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java index a2d84e9..a9af635 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StorePromotionDataService.java @@ -28,6 +28,7 @@ import com.kiisoo.ic.store.entity.*; import com.kiisoo.ic.store.mapper.PoiStoreDOMapper; import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper; import com.kiisoo.ic.store.mapper.StorePromotionDataDOMapper; +import com.kiisoo.ic.utils.DateUtils; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.cp.api.WxCpService; @@ -526,6 +527,7 @@ public class StorePromotionDataService { if (storeId == null) { return storePromotionDataDO; } + endDate = DateUtils.addDay(endDate,1); switch (roleCode) { // 店长 case Constants.WX_USER_ROLE_SHOP_MANAGER: diff --git a/src/main/resources/mapper/StorePromotionDataDOMapper.xml b/src/main/resources/mapper/StorePromotionDataDOMapper.xml index 97c781c..eeec817 100644 --- a/src/main/resources/mapper/StorePromotionDataDOMapper.xml +++ b/src/main/resources/mapper/StorePromotionDataDOMapper.xml @@ -293,10 +293,10 @@ SELECT count(t.customer_id) from op_seller_customer_relation t WHERE t.store_id = #{storeId} - and date(t.create_time) >= #{startDate} + and t.create_time >= #{startDate} - and date(t.create_time) <= #{endDate} + and t.create_time < #{endDate} group by t.store_id @@ -308,10 +308,10 @@ AND t2.user_id = #{userId} - and date(t1.create_time) >= #{startDate} + and t1.create_time >= #{startDate} - and date(t1.create_time) <= #{endDate} + and t1.create_time < #{endDate} group by t1.user_id @@ -329,10 +329,10 @@ WHERE t. store_id = #{storeId} - and date(t.create_time) >= #{startDate} + and t.create_time >= #{startDate} - and date(t.create_time) <= #{endDate} + and t.create_time < #{endDate} GROUP BY t.user_id @@ -368,10 +368,10 @@ `op_seller_customer_relation` t2 where 1=1 - and date(t2.create_time) >= #{startDate} + and t2.create_time >= #{startDate} - and date(t2.create_time) <= #{endDate} + and t2.create_time < #{endDate} GROUP BY t2.store_id @@ -390,10 +390,10 @@ poi_store_staff t1, `op_seller_customer_relation` t2 where t1.id = t2.user_id - and date(t2.create_time) >= #{startDate} + and t2.create_time >= #{startDate} - and date(t2.create_time) <= #{endDate} + and t2.create_time < #{endDate} and t1.store_id = #{storeId} and t1.type = 4