jiangqs
2023-07-03 b3ed26028083bbf66bb47601d11f42cad802b903
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;
    }
}