| | |
| | | * @date 2023/6/13 17:53 |
| | | */ |
| | | @Override |
| | | public List<Long> listIdBySendType(Integer sendType) { |
| | | public List<Long> listIdBySendType(Integer sendType,Long shopId) { |
| | | //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 |
| | | return memberMapper.listIdBySendType(sendType); |
| | | return memberMapper.listIdBySendType(sendType,shopId); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | memberTotalService.saveOrUpdate(memberTotal); |
| | | } |
| | | |
| | | /** |
| | | * @description 商户获取会员统计 |
| | | * @author jqs |
| | | * @date 2023/7/3 17:16 |
| | | * @param merTotalDto |
| | | * @return MerMemberTotalVo |
| | | */ |
| | | @Override |
| | | public MerMemberTotalVo getMerMemberTotal(MerTotalDto merTotalDto){ |
| | | if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MerMemberTotalVo merMemberTotalVo = memberMapper.getMerMemberTotal(merTotalDto); |
| | | return merMemberTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 商户获取会员固定统计 |
| | | * @author jqs |
| | | * @date 2023/7/3 18:34 |
| | | * @param merTotalDto |
| | | * @return MerMemberFixedTotalVo |
| | | */ |
| | | @Override |
| | | public MerMemberFixedTotalVo getMerMemberFixedTotal(MerTotalDto merTotalDto){ |
| | | MerMemberFixedTotalVo memberFixedTotalVo = new MerMemberFixedTotalVo(); |
| | | Date nowDay = DateUtils.getNowDate(); |
| | | if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ |
| | | List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); |
| | | merTotalDto.setShopIdList(shopIdList); |
| | | merTotalDto.setShopId(null); |
| | | } |
| | | MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getMerMemberTotalAge(merTotalDto); |
| | | // 年龄段数组 |
| | | String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; |
| | | // 不同年龄段的会员数数组 |
| | | Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()}; |
| | | // 设置年龄段数组和不同年龄段的会员数数组 |
| | | memberFixedTotalVo.setAgeKey(ageKey); |
| | | memberFixedTotalVo.setAgeValue(ageValue); |
| | | // 获取不同护理类型的会员数 |
| | | List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getMerMemberTotalNurse(merTotalDto); |
| | | if (nurseTotalVos != null && nurseTotalVos.size() > 0) { |
| | | nurseTotalVos = listRemoveNull(nurseTotalVos); |
| | | memberFixedTotalVo.setNurseTotalVos(nurseTotalVos); |
| | | } |
| | | // 获取不同商品类型的会员数 |
| | | List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getMerMemberTotalGoodsType(merTotalDto); |
| | | if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { |
| | | goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); |
| | | memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); |
| | | } |
| | | // 获取不同活跃度的会员数 |
| | | List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); |
| | | if (activenessList != null && !activenessList.isEmpty()) { |
| | | Activeness activeness; |
| | | String actStartDate; |
| | | String actEndDate; |
| | | Integer count; |
| | | List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>(); |
| | | MgtMapIntTotalVo MgtMapIntTotalVo; |
| | | // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 |
| | | 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())); |
| | | merTotalDto.setStartDate(actStartDate); |
| | | merTotalDto.setEndDate(actEndDate); |
| | | count = memberMapper.getMerMemberTotalActiveness(merTotalDto); |
| | | MgtMapIntTotalVo = new MgtMapIntTotalVo(); |
| | | MgtMapIntTotalVo.setMapKey(activeness.getActivenessName()); |
| | | MgtMapIntTotalVo.setMapValue(count); |
| | | MgtMapIntTotalVoList.add(MgtMapIntTotalVo); |
| | | } |
| | | memberFixedTotalVo.setActivenessList(MgtMapIntTotalVoList); |
| | | } |
| | | //获取会员消费排名 |
| | | List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto); |
| | | if (memberPayList != null && memberPayList.size() > 0) { |
| | | memberPayList = listRemoveNull(memberPayList); |
| | | memberFixedTotalVo.setMemberPayList(memberPayList); |
| | | } |
| | | return memberFixedTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 商会获取会员来源统计 |
| | | * @author jqs |
| | | * @date 2023/7/3 19:09 |
| | | * @param merTotalDto |
| | | * @return MerMemberSourceTotalVo |
| | | */ |
| | | @Override |
| | | public MerMemberSourceTotalVo getMerMemberSourceTotal(MerTotalDto merTotalDto){ |
| | | MerMemberSourceTotalVo memberSourceTotalVo = new MerMemberSourceTotalVo(); |
| | | //获取来源渠道排名 |
| | | List<MgtMapIntTotalVo> customerSourceList = memberMapper.getMerMemberCustomerSourceRank(merTotalDto); |
| | | if (customerSourceList != null && customerSourceList.size() > 0) { |
| | | customerSourceList = listRemoveNull(customerSourceList); |
| | | memberSourceTotalVo.setCustomerSourceList(customerSourceList); |
| | | } |
| | | |
| | | return memberSourceTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 商会获取会员推荐排名 |
| | | * @author jqs |
| | | * @date 2023/7/3 19:14 |
| | | * @param merTotalDto |
| | | * @return MerMemberRecommendTotalVo |
| | | */ |
| | | @Override |
| | | public MerMemberRecommendTotalVo getMerMemberRecommendTotal(MerTotalDto merTotalDto){ |
| | | MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo(); |
| | | //获取会员推荐排名 |
| | | List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto); |
| | | if (recommendList != null && recommendList.size() > 0) { |
| | | recommendList = listRemoveNull(recommendList); |
| | | memberRecommendTotalVo.setRecommendList(recommendList); |
| | | } |
| | | return memberRecommendTotalVo; |
| | | } |
| | | } |