From efe79e640c4598f52c2d1032fcead000edf8049e Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期三, 28 六月 2023 10:29:53 +0800
Subject: [PATCH] 统计bug和验证优化

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |   58 ++++++++++++++++------------------------------------------
 1 files changed, 16 insertions(+), 42 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 ff6b573..960f653 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
@@ -981,75 +981,48 @@
         // 获取不同护理类型的会员数
         List<MgtMapTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto);
         if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
-            String[] nurseKey = new String[nurseTotalVos.size()];
-            Integer[] nurseValue = new Integer[nurseTotalVos.size()];
-            // 遍历不同护理类型的会员数列表,设置护理类型数组和对应的会员数数组
-            for (int i = 0; i < nurseTotalVos.size(); i++) {
-                nurseKey[i] = nurseTotalVos.get(i).getMapKey();
-                nurseValue[i] = nurseTotalVos.get(i).getMapValue();
-            }
-            mgtTotalMemberTotalVo.setNurseKey(nurseKey);
-            mgtTotalMemberTotalVo.setNurseValue(nurseValue);
+            nurseTotalVos = listRemoveNull(nurseTotalVos);
+            mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos);
         }
         // 获取不同商品类型的会员数
         List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto);
         if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) {
-            String[] goodsTypeKey = new String[goodsTypeTotalVos.size()];
-            Integer[] goodsTypeValue = new Integer[goodsTypeTotalVos.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < goodsTypeTotalVos.size(); i++) {
-                goodsTypeKey[i] = goodsTypeTotalVos.get(i).getMapKey();
-                goodsTypeValue[i] = goodsTypeTotalVos.get(i).getMapValue();
-            }
-            mgtTotalMemberTotalVo.setGoodsTypeKey(goodsTypeKey);
-            mgtTotalMemberTotalVo.setGoodsTypeValue(goodsTypeValue);
+            goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos);
+            mgtTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
         }
         // 获取不同活跃度的会员数
         List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         if (activenessList != null && !activenessList.isEmpty()) {
-            String[] activenessKey = new String[activenessList.size()];
-            Integer[] activenessValue = new Integer[activenessList.size()];
             Activeness activeness;
             String actStartDate;
             String actEndDate;
             Integer count;
+            List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>();
+            MgtMapTotalVo mgtMapTotalVo;
             // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
             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()));
                 count = memberMapper.getTotalMemberTotalActiveness(shopId, actStartDate, actEndDate);
-                activenessKey[i] = activeness.getActivenessName();
-                activenessValue[i] = count;
+                mgtMapTotalVo = new MgtMapTotalVo();
+                mgtMapTotalVo.setMapKey(activeness.getActivenessName());
+                mgtMapTotalVo.setMapValue(count);
+                mgtMapTotalVoList.add(mgtMapTotalVo);
             }
-            mgtTotalMemberTotalVo.setActivenessKey(activenessKey);
-            mgtTotalMemberTotalVo.setActivenessValue(activenessValue);
+            mgtTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList);
         }
         //获取会员消费排名
         List<MgtMapTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto);
         if (memberPayList != null && memberPayList.size() > 0) {
-            String[] memberPayKey = new String[memberPayList.size()];
-            Integer[] memberPayValue = new Integer[memberPayList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < memberPayList.size(); i++) {
-                memberPayKey[i] = memberPayList.get(i).getMapKey();
-                memberPayValue[i] = memberPayList.get(i).getMapValue();
-            }
-            mgtTotalMemberTotalVo.setOrderRankKey(memberPayKey);
-            mgtTotalMemberTotalVo.setOrderRankValue(memberPayValue);
+            memberPayList = listRemoveNull(memberPayList);
+            mgtTotalMemberTotalVo.setMemberPayList(memberPayList);
         }
         //获取来源渠道排名
         List<MgtMapTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto);
         if (customerSourceList != null && customerSourceList.size() > 0) {
-            String[] customerSourceKey = new String[customerSourceList.size()];
-            Integer[] customerSourceValue = new Integer[customerSourceList.size()];
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < customerSourceList.size(); i++) {
-                customerSourceKey[i] = customerSourceList.get(i).getMapKey();
-                customerSourceValue[i] = customerSourceList.get(i).getMapValue();
-            }
-            mgtTotalMemberTotalVo.setCustomerSourceKey(customerSourceKey);
-            mgtTotalMemberTotalVo.setCustomerSourceValue(customerSourceValue);
+            customerSourceList = listRemoveNull(customerSourceList);
+            mgtTotalMemberTotalVo.setCustomerSourceList(customerSourceList);
         }
         // 返回总会员数和不同类型会员数的统计结果
         return mgtTotalMemberTotalVo;
@@ -1143,6 +1116,7 @@
                     mgtMapTotalVo = new MgtMapTotalVo();
                     mgtMapTotalVo.setMapKey(activeness.getActivenessName());
                     mgtMapTotalVo.setMapValue(count);
+                    mgtMapTotalVoList.add(mgtMapTotalVo);
                 }
             }
             plTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList);

--
Gitblit v1.7.1