jiangqs
2023-07-08 c71055635df3d75e5dc838a9b66036c591913a13
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -964,6 +964,7 @@
        mgtMemberGetVo.setMemberNo(member.getMemberNo());
        mgtMemberGetVo.setRealName(member.getRealName());
        mgtMemberGetVo.setNickName(member.getNickName());
        mgtMemberGetVo.setAvatar(member.getAvatar());
        mgtMemberGetVo.setMobile(member.getMobile());
        mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null);
        mgtMemberGetVo.setBirthday(member.getBirthday());
@@ -1002,9 +1003,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 +1361,200 @@
        }
        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){
        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
            merTotalDto.setShopIdList(shopIdList);
            merTotalDto.setShopId(null);
        }
        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){
        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
            merTotalDto.setShopIdList(shopIdList);
            merTotalDto.setShopId(null);
        }
        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){
        if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){
            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
            merTotalDto.setShopIdList(shopIdList);
            merTotalDto.setShopId(null);
        }
        MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo();
        //获取会员推荐排名
        List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto);
        if (recommendList != null && recommendList.size() > 0) {
            recommendList = listRemoveNull(recommendList);
            memberRecommendTotalVo.setRecommendList(recommendList);
        }
        return memberRecommendTotalVo;
    }
    /**
     * @description  获取各年龄层用户
     * @author  jqs
     * @date    2023/7/4 9:50
     * @param merTotalDto
     * @return  MerOrderAgeUserVo
     */
    @Override
    public List<MerOrderAgeUserVo> listOrderAgeUser(MerTotalDto merTotalDto){
        List<MerOrderAgeUserVo> orderAgeUserVoList = new ArrayList<>();
        MerOrderAgeUserVo merOrderAgeUserVo = new MerOrderAgeUserVo();
        merTotalDto.setAgeType(1);
        List<Long> userIdList = memberMapper.listOrderAgeUser(merTotalDto);
        merOrderAgeUserVo.setAgeType(1);
        merOrderAgeUserVo.setUserIdList(userIdList);
        orderAgeUserVoList.add(merOrderAgeUserVo);
        merOrderAgeUserVo = new MerOrderAgeUserVo();
        merTotalDto.setAgeType(2);
        userIdList = memberMapper.listOrderAgeUser(merTotalDto);
        merOrderAgeUserVo.setAgeType(2);
        merOrderAgeUserVo.setUserIdList(userIdList);
        orderAgeUserVoList.add(merOrderAgeUserVo);
        merOrderAgeUserVo = new MerOrderAgeUserVo();
        merTotalDto.setAgeType(3);
        userIdList = memberMapper.listOrderAgeUser(merTotalDto);
        merOrderAgeUserVo.setAgeType(3);
        merOrderAgeUserVo.setUserIdList(userIdList);
        orderAgeUserVoList.add(merOrderAgeUserVo);
        merOrderAgeUserVo = new MerOrderAgeUserVo();
        merTotalDto.setAgeType(4);
        userIdList = memberMapper.listOrderAgeUser(merTotalDto);
        merOrderAgeUserVo.setAgeType(4);
        merOrderAgeUserVo.setUserIdList(userIdList);
        orderAgeUserVoList.add(merOrderAgeUserVo);
        merOrderAgeUserVo = new MerOrderAgeUserVo();
        merTotalDto.setAgeType(5);
        userIdList = memberMapper.listOrderAgeUser(merTotalDto);
        merOrderAgeUserVo.setAgeType(4);
        merOrderAgeUserVo.setUserIdList(userIdList);
        orderAgeUserVoList.add(merOrderAgeUserVo);
        return orderAgeUserVoList;
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/7/5 21:18
     * @param mgtBaseGetDto
     * @return  void
     */
    @Override
    public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){
        sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId()));
    }
}