From 7109e2fefaa46caffcd36b44828f48e0f8a790ba Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 11 七月 2023 09:36:50 +0800
Subject: [PATCH] 管理台bug和用户端

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  255 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 252 insertions(+), 3 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..b6e59dd 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
@@ -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());
@@ -1002,9 +1005,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);
     }
 
     /**
@@ -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"};
         // 不同年龄段的会员数数组
@@ -1360,4 +1388,225 @@
         }
         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);
+        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"};
+        // 不同年龄段的会员数数组
+        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<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto);
+        if (memberPayList != null && memberPayList.size() > 0) {
+            memberPayList = listRemoveNull(memberPayList);
+            memberFixedTotalVo.setMemberPayList(memberPayList);
+        }
+        // 获取不同活跃度的会员数
+        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);
+        }
+        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()));
+    }
 }

--
Gitblit v1.7.1