| | |
| | | // 获取不同护理类型的会员数 |
| | | List<MgtMapTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto); |
| | | if (nurseTotalVos != null && nurseTotalVos.size() > 0) { |
| | | String[] nurseKey = new String[nurseTotalVos.size()]; |
| | | Integer[] nurseValue = new Integer[nurseTotalVos.size()]; |
| | | // 遍历不同护理类型的会员数列表,设置护理类型数组和对应的会员数数组 |
| | | for (int i = 0; i < nurseTotalVos.size(); i++) { |
| | | nurseKey[i] = nurseTotalVos.get(i).getMapKey(); |
| | | nurseValue[i] = nurseTotalVos.get(i).getMapValue(); |
| | | } |
| | | mgtTotalMemberTotalVo.setNurseKey(nurseKey); |
| | | mgtTotalMemberTotalVo.setNurseValue(nurseValue); |
| | | nurseTotalVos = listRemoveNull(nurseTotalVos); |
| | | mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); |
| | | } |
| | | // 获取不同商品类型的会员数 |
| | | List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); |
| | | if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { |
| | | String[] goodsTypeKey = new String[goodsTypeTotalVos.size()]; |
| | | Integer[] goodsTypeValue = new Integer[goodsTypeTotalVos.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < goodsTypeTotalVos.size(); i++) { |
| | | goodsTypeKey[i] = goodsTypeTotalVos.get(i).getMapKey(); |
| | | goodsTypeValue[i] = goodsTypeTotalVos.get(i).getMapValue(); |
| | | } |
| | | mgtTotalMemberTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalMemberTotalVo.setGoodsTypeValue(goodsTypeValue); |
| | | goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); |
| | | mgtTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); |
| | | } |
| | | // 获取不同活跃度的会员数 |
| | | List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); |
| | | if (activenessList != null && !activenessList.isEmpty()) { |
| | | String[] activenessKey = new String[activenessList.size()]; |
| | | Integer[] activenessValue = new Integer[activenessList.size()]; |
| | | Activeness activeness; |
| | | String actStartDate; |
| | | String actEndDate; |
| | | Integer count; |
| | | List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>(); |
| | | MgtMapTotalVo mgtMapTotalVo; |
| | | // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 |
| | | for (int i = 0; i < activenessList.size(); i++) { |
| | | activeness = activenessList.get(i); |
| | | actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); |
| | | actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); |
| | | count = memberMapper.getTotalMemberTotalActiveness(shopId, actStartDate, actEndDate); |
| | | activenessKey[i] = activeness.getActivenessName(); |
| | | activenessValue[i] = count; |
| | | mgtMapTotalVo = new MgtMapTotalVo(); |
| | | mgtMapTotalVo.setMapKey(activeness.getActivenessName()); |
| | | mgtMapTotalVo.setMapValue(count); |
| | | mgtMapTotalVoList.add(mgtMapTotalVo); |
| | | } |
| | | mgtTotalMemberTotalVo.setActivenessKey(activenessKey); |
| | | mgtTotalMemberTotalVo.setActivenessValue(activenessValue); |
| | | mgtTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList); |
| | | } |
| | | //获取会员消费排名 |
| | | List<MgtMapTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto); |
| | | if (memberPayList != null && memberPayList.size() > 0) { |
| | | String[] memberPayKey = new String[memberPayList.size()]; |
| | | Integer[] memberPayValue = new Integer[memberPayList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < memberPayList.size(); i++) { |
| | | memberPayKey[i] = memberPayList.get(i).getMapKey(); |
| | | memberPayValue[i] = memberPayList.get(i).getMapValue(); |
| | | } |
| | | mgtTotalMemberTotalVo.setOrderRankKey(memberPayKey); |
| | | mgtTotalMemberTotalVo.setOrderRankValue(memberPayValue); |
| | | memberPayList = listRemoveNull(memberPayList); |
| | | mgtTotalMemberTotalVo.setMemberPayList(memberPayList); |
| | | } |
| | | //获取来源渠道排名 |
| | | List<MgtMapTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto); |
| | | if (customerSourceList != null && customerSourceList.size() > 0) { |
| | | String[] customerSourceKey = new String[customerSourceList.size()]; |
| | | Integer[] customerSourceValue = new Integer[customerSourceList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < customerSourceList.size(); i++) { |
| | | customerSourceKey[i] = customerSourceList.get(i).getMapKey(); |
| | | customerSourceValue[i] = customerSourceList.get(i).getMapValue(); |
| | | } |
| | | mgtTotalMemberTotalVo.setCustomerSourceKey(customerSourceKey); |
| | | mgtTotalMemberTotalVo.setCustomerSourceValue(customerSourceValue); |
| | | customerSourceList = listRemoveNull(customerSourceList); |
| | | mgtTotalMemberTotalVo.setCustomerSourceList(customerSourceList); |
| | | } |
| | | // 返回总会员数和不同类型会员数的统计结果 |
| | | return mgtTotalMemberTotalVo; |
| | |
| | | //获取基础统计 |
| | | MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto); |
| | | MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto); |
| | | plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal()); |
| | | plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal()); |
| | | if(mgtAgeTotalVo!=null){ |
| | | plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal()); |
| | | plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal()); |
| | | }else{ |
| | | plTotalMemberTotalVo.setManTotal(0); |
| | | plTotalMemberTotalVo.setWomenTotal(0); |
| | | } |
| | | |
| | | // 年龄段数组 |
| | | String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; |
| | | // 不同年龄段的会员数数组 |
| | |
| | | // 设置年龄段数组和不同年龄段的会员数数组 |
| | | plTotalMemberTotalVo.setAgeKey(ageKey); |
| | | plTotalMemberTotalVo.setAgeValue(ageValue); |
| | | // 获取不同护理类型的会员数 |
| | | // 获取不同调理类型的会员数 |
| | | List<MgtMapTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto); |
| | | if (nurseTotalVos != null && nurseTotalVos.size() > 0) { |
| | | String[] nurseKey = new String[nurseTotalVos.size()]; |
| | | Integer[] nurseValue = new Integer[nurseTotalVos.size()]; |
| | | // 遍历不同护理类型的会员数列表,设置护理类型数组和对应的会员数数组 |
| | | for (int i = 0; i < nurseTotalVos.size(); i++) { |
| | | nurseKey[i] = nurseTotalVos.get(i).getMapKey(); |
| | | nurseValue[i] = nurseTotalVos.get(i).getMapValue(); |
| | | } |
| | | plTotalMemberTotalVo.setNurseKey(nurseKey); |
| | | plTotalMemberTotalVo.setNurseValue(nurseValue); |
| | | nurseTotalVos = listRemoveNull(nurseTotalVos); |
| | | plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); |
| | | } |
| | | // 获取不同商品类型的会员数 |
| | | List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto); |
| | | if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { |
| | | String[] goodsTypeKey = new String[goodsTypeTotalVos.size()]; |
| | | Integer[] goodsTypeValue = new Integer[goodsTypeTotalVos.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < goodsTypeTotalVos.size(); i++) { |
| | | goodsTypeKey[i] = goodsTypeTotalVos.get(i).getMapKey(); |
| | | goodsTypeValue[i] = goodsTypeTotalVos.get(i).getMapValue(); |
| | | } |
| | | plTotalMemberTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | plTotalMemberTotalVo.setGoodsTypeValue(goodsTypeValue); |
| | | goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); |
| | | plTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); |
| | | } |
| | | // 获取不同活跃度的会员数 |
| | | List<Long> shopIdList = mgtBasePlatformDto.getShopIdList(); |
| | | List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); |
| | | if (activenessList != null && !activenessList.isEmpty()) { |
| | | String[] activenessKey = new String[activenessList.size()]; |
| | | Integer[] activenessValue = new Integer[activenessList.size()]; |
| | | Activeness activeness; |
| | | String actStartDate; |
| | | String actEndDate; |
| | | Integer count; |
| | | List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>(); |
| | | MgtMapTotalVo mgtMapTotalVo; |
| | | // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 |
| | | for (int i = 0; i < activenessList.size(); i++) { |
| | | activeness = activenessList.get(i); |
| | | actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); |
| | | actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); |
| | | count = memberMapper.getPlTotalMemberTotalActiveness(shopIdList, actStartDate, actEndDate); |
| | | activenessKey[i] = activeness.getActivenessName(); |
| | | activenessValue[i] = count; |
| | | if(StringUtils.isNotBlank(activeness.getActivenessName())){ |
| | | mgtMapTotalVo = new MgtMapTotalVo(); |
| | | mgtMapTotalVo.setMapKey(activeness.getActivenessName()); |
| | | mgtMapTotalVo.setMapValue(count); |
| | | mgtMapTotalVoList.add(mgtMapTotalVo); |
| | | } |
| | | } |
| | | plTotalMemberTotalVo.setActivenessKey(activenessKey); |
| | | plTotalMemberTotalVo.setActivenessValue(activenessValue); |
| | | plTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList); |
| | | } |
| | | //获取会员消费排名 |
| | | List<MgtMapTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto); |
| | | if (memberPayList != null && memberPayList.size() > 0) { |
| | | String[] memberPayKey = new String[memberPayList.size()]; |
| | | Integer[] memberPayValue = new Integer[memberPayList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < memberPayList.size(); i++) { |
| | | memberPayKey[i] = memberPayList.get(i).getMapKey(); |
| | | memberPayValue[i] = memberPayList.get(i).getMapValue(); |
| | | } |
| | | plTotalMemberTotalVo.setOrderRankKey(memberPayKey); |
| | | plTotalMemberTotalVo.setOrderRankValue(memberPayValue); |
| | | memberPayList = listRemoveNull(memberPayList); |
| | | plTotalMemberTotalVo.setMemberPayList(memberPayList); |
| | | } |
| | | //获取来源渠道排名 |
| | | List<MgtMapTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto); |
| | | if (customerSourceList != null && customerSourceList.size() > 0) { |
| | | String[] customerSourceKey = new String[customerSourceList.size()]; |
| | | Integer[] customerSourceValue = new Integer[customerSourceList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < customerSourceList.size(); i++) { |
| | | customerSourceKey[i] = customerSourceList.get(i).getMapKey(); |
| | | customerSourceValue[i] = customerSourceList.get(i).getMapValue(); |
| | | } |
| | | plTotalMemberTotalVo.setCustomerSourceKey(customerSourceKey); |
| | | plTotalMemberTotalVo.setCustomerSourceValue(customerSourceValue); |
| | | customerSourceList = listRemoveNull(customerSourceList); |
| | | plTotalMemberTotalVo.setCustomerSourceList(customerSourceList); |
| | | } |
| | | //获取商铺会员排名 |
| | | List<MgtMapTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto); |
| | | if (shopMemberRankList != null && shopMemberRankList.size() > 0) { |
| | | String[] shopMemberRankKey = new String[shopMemberRankList.size()]; |
| | | Integer[] shopMemberRankValue = new Integer[shopMemberRankList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < shopMemberRankList.size(); i++) { |
| | | shopMemberRankKey[i] = shopMemberRankList.get(i).getMapKey(); |
| | | shopMemberRankValue[i] = shopMemberRankList.get(i).getMapValue(); |
| | | } |
| | | plTotalMemberTotalVo.setMemberRankKey(shopMemberRankKey); |
| | | plTotalMemberTotalVo.setMemberRankValue(shopMemberRankValue); |
| | | shopMemberRankList = listRemoveNull(shopMemberRankList); |
| | | plTotalMemberTotalVo.setShopMemberRankList(shopMemberRankList); |
| | | } |
| | | List<MgtMapTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData(); |
| | | if (memberGoodsRankList != null && memberGoodsRankList.size() > 0) { |
| | | String[] shopMemberRankKey = new String[memberGoodsRankList.size()]; |
| | | Integer[] shopMemberRankValue = new Integer[memberGoodsRankList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < memberGoodsRankList.size(); i++) { |
| | | shopMemberRankKey[i] = memberGoodsRankList.get(i).getMapKey(); |
| | | shopMemberRankValue[i] = memberGoodsRankList.get(i).getMapValue(); |
| | | } |
| | | plTotalMemberTotalVo.setGoodsRankKey(shopMemberRankKey); |
| | | plTotalMemberTotalVo.setGoodsRankValue(shopMemberRankValue); |
| | | memberGoodsRankList = listRemoveNull(memberGoodsRankList); |
| | | plTotalMemberTotalVo.setMemberGoodsRankList(memberGoodsRankList); |
| | | } |
| | | return plTotalMemberTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 去除空字符串 |
| | | * @author jqs |
| | | * @date 2023/6/27 17:35 |
| | | * @param mgtMapTotalVos |
| | | * @return List<MgtMapTotalVo> |
| | | */ |
| | | private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){ |
| | | for (int i = 0; i < mgtMapTotalVos.size(); i++) { |
| | | if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){ |
| | | mgtMapTotalVos.remove(i); |
| | | } |
| | | } |
| | | return mgtMapTotalVos; |
| | | } |
| | | |
| | | /** |
| | | * @description 通过shopId获取userId |
| | | * @author jqs |
| | | * @date 2023/6/21 17:11 |