From b3ed26028083bbf66bb47601d11f42cad802b903 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 03 七月 2023 19:21:37 +0800
Subject: [PATCH] 商户端会员统计

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  130 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 2 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..46ae84e 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
@@ -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;
+    }
 }

--
Gitblit v1.7.1