From b3ed26028083bbf66bb47601d11f42cad802b903 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 03 七月 2023 19:21:37 +0800 Subject: [PATCH] 商户端会员统计 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 130 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 128 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 2f9d437..46ae84e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -1002,9 +1002,9 @@ * @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); } /** @@ -1360,4 +1360,130 @@ } 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; + } } -- Gitblit v1.7.1