jiangqs
2023-07-11 7109e2fefaa46caffcd36b44828f48e0f8a790ba
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -240,12 +240,14 @@
            member.setCreateTime(new Date());
            member.setMobile(mobile);
            initMemberTotal(memberId);
            log.info("sysUser01-----------------" + sysUser.toString());
        } else {
            sysUser = sysUserService.getSysUser(member.getUserId()).getData();
            log.info("sysUser02-----------------" + sysUser.toString());
        }
        member.setWxUnionid(appUserRegisterDto.getWxUnionid());
        member.setMiniOpenid(appUserRegisterDto.getMiniOpenid());
        log.info("member-----------------" + member.toString());
        log.info("member02-----------------" + member.toString());
        this.saveOrUpdate(member);
        appUserRegisterVo.setMobile(mobile);
        appUserRegisterVo.setNickName(member.getNickName());
@@ -964,6 +966,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());
@@ -1069,6 +1072,31 @@
        // 获取总会员数和不同年龄段的会员数
        MgtTotalMemberTotalVo mgtTotalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto);
        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getTotalMemberTotalAge(mgtBaseShopDto);
        Integer manTotal = mgtAgeTotalVo.getManTotal();
        Integer womenTotal = mgtAgeTotalVo.getWomenTotal();
        mgtTotalMemberTotalVo.setManTotal(manTotal);
        mgtTotalMemberTotalVo.setWomenTotal(womenTotal);
        Integer personTotal = manTotal + womenTotal;
        BigDecimal manTotalBig = new BigDecimal(manTotal);
        BigDecimal personTotalBig = new BigDecimal(personTotal);
        BigDecimal bigTen = new BigDecimal("100.00");
        BigDecimal menPercent = new BigDecimal("100.00");
        BigDecimal womenPercent = new BigDecimal("100.00");
        if(manTotal==0&&womenTotal==0){
            menPercent = new BigDecimal("50.00");
            womenPercent = new BigDecimal("50.00");
        }else if(manTotal==0&&womenTotal>0){
            menPercent = new BigDecimal("0.00");
            womenPercent = new BigDecimal("100.00");
        }else if(manTotal>0&&womenTotal==0){
            menPercent = new BigDecimal("100.00");
            womenPercent = new BigDecimal("0.00");
        }else{
            menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
            womenPercent = bigTen.subtract(menPercent);
        }
        mgtTotalMemberTotalVo.setManPercent(menPercent);
        mgtTotalMemberTotalVo.setWomenPercent(womenPercent);
        // 年龄段数组
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
@@ -1388,6 +1416,11 @@
     */
    @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){
@@ -1396,6 +1429,31 @@
            merTotalDto.setShopId(null);
        }
        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getMerMemberTotalAge(merTotalDto);
        Integer manTotal = mgtAgeTotalVo.getManTotal();
        Integer womenTotal = mgtAgeTotalVo.getWomenTotal();
        memberFixedTotalVo.setManTotal(manTotal);
        memberFixedTotalVo.setWomenTotal(womenTotal);
        Integer personTotal = manTotal + womenTotal;
        BigDecimal manTotalBig = new BigDecimal(manTotal);
        BigDecimal personTotalBig = new BigDecimal(personTotal);
        BigDecimal bigTen = new BigDecimal("100.00");
        BigDecimal menPercent = new BigDecimal("100.00");
        BigDecimal womenPercent = new BigDecimal("100.00");
        if(manTotal==0&&womenTotal==0){
            menPercent = new BigDecimal("50.00");
            womenPercent = new BigDecimal("50.00");
        }else if(manTotal==0&&womenTotal>0){
            menPercent = new BigDecimal("0.00");
            womenPercent = new BigDecimal("100.00");
        }else if(manTotal>0&&womenTotal==0){
            menPercent = new BigDecimal("100.00");
            womenPercent = new BigDecimal("0.00");
        }else{
            menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
            womenPercent = bigTen.subtract(menPercent);
        }
        memberFixedTotalVo.setManPercent(menPercent);
        memberFixedTotalVo.setWomenPercent(womenPercent);
        // 年龄段数组
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
@@ -1414,6 +1472,12 @@
        if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) {
            goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos);
            memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
        }
        //获取会员消费排名
        List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto);
        if (memberPayList != null && memberPayList.size() > 0) {
            memberPayList = listRemoveNull(memberPayList);
            memberFixedTotalVo.setMemberPayList(memberPayList);
        }
        // 获取不同活跃度的会员数
        List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
@@ -1439,12 +1503,6 @@
            }
            memberFixedTotalVo.setActivenessList(MgtMapIntTotalVoList);
        }
        //获取会员消费排名
        List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto);
        if (memberPayList != null && memberPayList.size() > 0) {
            memberPayList = listRemoveNull(memberPayList);
            memberFixedTotalVo.setMemberPayList(memberPayList);
        }
        return memberFixedTotalVo;
    }
@@ -1457,6 +1515,11 @@
     */
    @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);
@@ -1477,6 +1540,11 @@
     */
    @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);
@@ -1486,4 +1554,59 @@
        }
        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()));
    }
}