From 25ef12504f10cb066db53541bd7bc7bac4c09ac4 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 11 七月 2023 18:39:10 +0800
Subject: [PATCH] 管理台bug和用户端

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 101 insertions(+), 14 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 a400294..ffa4cfc 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());
@@ -353,17 +355,52 @@
      */
     @Override
     public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto) {
+        List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         if (StringUtils.isNotBlank(merMemberPageDto.getMemberActiveness())) {
-            Activeness activeness = remoteConfigService.getActivenessByName(merMemberPageDto.getMemberActiveness()).getData();
-            if (activeness != null) {
-                Date nowDay = DateUtils.getNowDate();
-                String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
-                String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
-                merMemberPageDto.setActStartDate(actStartDate);
-                merMemberPageDto.setActEndDate(actEndDate);
+            if(!activenessList.isEmpty()){
+                for(Activeness activeness : activenessList){
+                    if(activeness.getActivenessName().equals(merMemberPageDto.getMemberActiveness())){
+                        Date nowDay = DateUtils.getNowDate();
+                        String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
+                        String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
+                        merMemberPageDto.setActStartDate(actStartDate);
+                        merMemberPageDto.setActEndDate(actEndDate);
+                        break;
+                    }
+                }
             }
         }
         List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page, merMemberPageDto);
+        //处理活跃度返回
+        if (merMemberPageVoList != null && !merMemberPageVoList.isEmpty()) {
+            if (activenessList != null && !activenessList.isEmpty()) {
+                //生成活跃度时间段列表
+                List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>();
+                MgtActivenessJudgeVo mgtActivenessJudgeVo;
+                for (Activeness activeness : activenessList) {
+                    mgtActivenessJudgeVo = new MgtActivenessJudgeVo();
+                    mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), activeness.getEndDay()));
+                    mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), activeness.getStartDay() - 1));
+                    mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName());
+                }
+                //活跃度赋值
+                Date lastPayTime;
+                for (MerMemberPageVo mgtMemberPageVo : merMemberPageVoList) {
+                    lastPayTime = mgtMemberPageVo.getLastPayTime();
+                    StringJoiner sj = new StringJoiner(",");
+                    if (lastPayTime != null) {
+                        for (MgtActivenessJudgeVo entity : mgtActivenessJudgeVoList) {
+                            if (lastPayTime.compareTo(entity.getStartDay()) >= 0 && lastPayTime.compareTo(entity.getEndDay()) <= 0) {
+                                sj.add(entity.getActivenessName());
+                            }
+                        }
+                        if (sj.length() > 0) {
+                            mgtMemberPageVo.setMemberActiveness(sj.toString());
+                        }
+                    }
+                }
+            }
+        }
         return merMemberPageVoList;
     }
 
@@ -1070,6 +1107,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"};
         // 不同年龄段的会员数数组
@@ -1402,6 +1464,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"};
         // 不同年龄段的会员数数组
@@ -1420,6 +1507,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();
@@ -1444,12 +1537,6 @@
                 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;
     }

--
Gitblit v1.7.1