From 2e7f787f8e0859d0a9a6ff1eab6aeadac7934c50 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 25 九月 2023 12:55:18 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  129 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 105 insertions(+), 24 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 b3cc1d8..1574553 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
@@ -1,5 +1,5 @@
 package com.ruoyi.member.service.impl.member;
-
+import com.google.common.collect.Lists;
 import cn.binarywang.wx.miniapp.api.WxMaService;
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import com.alibaba.fastjson.JSONObject;
@@ -20,6 +20,7 @@
 import com.ruoyi.member.domain.pojo.member.IntegralRecord;
 import com.ruoyi.member.domain.pojo.member.MemberArchive;
 import com.ruoyi.member.domain.pojo.member.MemberTotal;
+import com.ruoyi.member.domain.vo.MerMemberTotalVo;
 import com.ruoyi.member.domain.vo.*;
 import com.ruoyi.member.mapper.member.MemberMapper;
 import com.ruoyi.member.service.member.IntegralRecordService;
@@ -291,7 +292,6 @@
     }
 
     public static String getMobileByWX(String accessToken, String code) throws Exception {
-        String method = "POST";
         Map<String, String> headers = new HashMap<>(16);
         headers.put("Content-Type", "application/json");
         headers.put("Accept", "application/json");
@@ -320,6 +320,7 @@
         appUserInfoVo.setNickName(member.getNickName());
         appUserInfoVo.setRealName(member.getRealName());
         appUserInfoVo.setPhonenumber(member.getMobile());
+        //绑定会员显示绑定店铺
         if (member.getRelationShopId() != null && member.getBindingFlag() == 1) {
             appUserInfoVo.setRelationShopId(member.getRelationShopId());
             Shop shop = shopService.getShop(member.getRelationShopId()).getData();
@@ -329,9 +330,11 @@
         appUserInfoVo.setBirthday(member.getBirthday());
         appUserInfoVo.setGender(member.getGender());
         appUserInfoVo.setAvatar(member.getAvatar());
+        //待支付待核销统计
         AppOrderTotalVo appOrderTotalVo = orderService.getAppOrderTotal(userId).getData();
         appUserInfoVo.setNoPayCount(appOrderTotalVo.getNoPayCount());
         appUserInfoVo.setNoUseCount(appOrderTotalVo.getNoUseCount());
+        //积分
         MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
         appUserInfoVo.setIntegral(memberTotal.getUseableIntegral());
         return appUserInfoVo;
@@ -476,16 +479,16 @@
         MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
         // 设置MerMemberInfoVo对象的属性值
         merMemberInfoVo.setSurpNumber(memberTotal.getUseableServiceCount());
-        merMemberInfoVo.setUserNumber(memberTotal.getTotalPayCount());
-        merMemberInfoVo.setPayMoney(memberTotal.getTotalPayMoney());
         // 创建MerBaseDto对象
         MerBaseDto merBaseDto = new MerBaseDto();
         // 设置MerBaseDto对象的属性值
         merBaseDto.setShopId(merBaseGetDto.getShopId());
         merBaseDto.setUserId(userId);
         // 获取未支付订单金额
-        BigDecimal unpaidMoney = remoteOrderService.getMemberUnpaidOrder(merBaseDto).getData();
-        merMemberInfoVo.setUnpaidMoney(unpaidMoney);
+        MerMemberSimpleTotalVo memberSimpleTotalVo = remoteOrderService.getMerMemberSimpleTotalVo(merBaseDto).getData();
+        merMemberInfoVo.setUserNumber(memberSimpleTotalVo.getUserNumber());
+        merMemberInfoVo.setPayMoney(memberSimpleTotalVo.getPayMoney());
+        merMemberInfoVo.setUnpaidMoney(memberSimpleTotalVo.getUnpaidMoney());
         // 获取最近的会员任务
         MemberTaskSimpleVo memberTaskSimpleVo = remoteShopService.getLastMemberTask(userId).getData();
         if (memberTaskSimpleVo != null) {
@@ -494,7 +497,7 @@
         }
         // 设置MerMemberInfoVo对象的属性值
         merMemberInfoVo.setNextTaskTime(memberTotal.getNextTaskTime());
-        merMemberInfoVo.setLastPayTime(memberTotal.getLastPayTime());
+        merMemberInfoVo.setLastPayTime(memberTotal.getLastConsumeTime());
         // 返回MerMemberInfoVo对象
         return merMemberInfoVo;
     }
@@ -868,6 +871,7 @@
         memberTotal.setShopSuggestFlag(0);
         memberTotal.setSignFlag(0);
         memberTotal.setBuyFlag(0);
+        memberTotal.setTotalConsumeCount(0);
         memberTotalService.saveOrUpdate(memberTotal);
     }
 
@@ -1227,10 +1231,36 @@
     @Override
     public MgtTotalMemberTotalVo getTotalMemberTotal(MgtBaseShopDto mgtBaseShopDto) {
         Date nowDay = DateUtils.getNowDate();
+        MgtTotalMemberTotalVo mgtTotalMemberTotalVo = new MgtTotalMemberTotalVo();
+        mgtTotalMemberTotalVo.setMemberTotal(0);
+        mgtTotalMemberTotalVo.setOnlineTotal(0);
+        mgtTotalMemberTotalVo.setOfflineTotal(0);
+        mgtTotalMemberTotalVo.setIntroduceTotal(0);
+        mgtTotalMemberTotalVo.setCycleTotal(0);
+        mgtTotalMemberTotalVo.setExperienceTotal(0);
+        mgtTotalMemberTotalVo.setServiceTotal(0);
+        mgtTotalMemberTotalVo.setManTotal(0);
+        mgtTotalMemberTotalVo.setManPercent(new BigDecimal("0"));
+        mgtTotalMemberTotalVo.setWomenTotal(0);
+        mgtTotalMemberTotalVo.setWomenPercent(new BigDecimal("0"));
+        mgtTotalMemberTotalVo.setAgeKey(new String[0]);
+        mgtTotalMemberTotalVo.setAgeValue(new Integer[0]);
+        mgtTotalMemberTotalVo.setNurseTotalVos(Lists.newArrayList());
+        mgtTotalMemberTotalVo.setMemberLevelTotalVos(Lists.newArrayList());
+        mgtTotalMemberTotalVo.setGoodsTypeTotalVos(Lists.newArrayList());
+        mgtTotalMemberTotalVo.setActivenessList(Lists.newArrayList());
+        mgtTotalMemberTotalVo.setCustomerSourceList(Lists.newArrayList());
+        mgtTotalMemberTotalVo.setMemberPayList(Lists.newArrayList());
         // 获取店铺ID
         Long shopId = mgtBaseShopDto.getShopId();
         // 获取总会员数和不同年龄段的会员数
-        MgtTotalMemberTotalVo mgtTotalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto);
+        MgtTotalMemberTotalVo totalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto);
+        mgtTotalMemberTotalVo.setMemberTotal(totalMemberTotalVo.getMemberTotal());
+        mgtTotalMemberTotalVo.setOnlineTotal(totalMemberTotalVo.getOnlineTotal());
+        mgtTotalMemberTotalVo.setOfflineTotal(totalMemberTotalVo.getOfflineTotal());
+        mgtTotalMemberTotalVo.setCycleTotal(totalMemberTotalVo.getCycleTotal());
+        mgtTotalMemberTotalVo.setExperienceTotal(totalMemberTotalVo.getExperienceTotal());
+        mgtTotalMemberTotalVo.setServiceTotal(totalMemberTotalVo.getServiceTotal());
         MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getTotalMemberTotalAge(mgtBaseShopDto);
         Integer manTotal = mgtAgeTotalVo.getManTotal();
         Integer womenTotal = mgtAgeTotalVo.getWomenTotal();
@@ -1242,6 +1272,9 @@
         BigDecimal bigTen = new BigDecimal("100.00");
         BigDecimal menPercent = new BigDecimal("100.00");
         BigDecimal womenPercent = new BigDecimal("100.00");
+        if(personTotal==0){
+            personTotalBig = bigTen;
+        }
         if(manTotal==0&&womenTotal==0){
             menPercent = new BigDecimal("50.00");
             womenPercent = new BigDecimal("50.00");
@@ -1252,7 +1285,7 @@
             menPercent = new BigDecimal("100.00");
             womenPercent = new BigDecimal("0.00");
         }else{
-            menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
+            menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
             womenPercent = bigTen.subtract(menPercent);
         }
         mgtTotalMemberTotalVo.setManPercent(menPercent);
@@ -1319,7 +1352,7 @@
         //获取会员消费排名
         List<MgtMapIntTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto);
         if (memberPayList != null && memberPayList.size() > 0) {
-            memberPayList = listRemoveNull(memberPayList);
+            //memberPayList = listRemoveNull(memberPayList);
             mgtTotalMemberTotalVo.setMemberPayList(memberPayList);
         }
         //获取来源渠道排名
@@ -1355,6 +1388,25 @@
      */
     @Override
     public MgtPlTotalMemberTotalVo getPlTotalMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) {
+        MgtPlTotalMemberTotalVo plTotalMemberTotalVo = new MgtPlTotalMemberTotalVo();
+        plTotalMemberTotalVo.setMemberTotal(0);
+        plTotalMemberTotalVo.setMemberYesterday(0);
+        plTotalMemberTotalVo.setMemberSeven(0);
+        plTotalMemberTotalVo.setManTotal(0);
+        plTotalMemberTotalVo.setManPercent(new BigDecimal("0"));
+        plTotalMemberTotalVo.setWomenTotal(0);
+        plTotalMemberTotalVo.setWomenPercent(new BigDecimal("0"));
+        plTotalMemberTotalVo.setAgeKey(new String[0]);
+        plTotalMemberTotalVo.setAgeValue(new Integer[0]);
+        plTotalMemberTotalVo.setAgePercent(new BigDecimal[0]);
+        plTotalMemberTotalVo.setNurseTotalVos(Lists.newArrayList());
+        plTotalMemberTotalVo.setMemberLevelTotalVos(Lists.newArrayList());
+        plTotalMemberTotalVo.setGoodsTypeTotalVos(Lists.newArrayList());
+        plTotalMemberTotalVo.setActivenessList(Lists.newArrayList());
+        plTotalMemberTotalVo.setCustomerSourceList(Lists.newArrayList());
+        plTotalMemberTotalVo.setMemberPayList(Lists.newArrayList());
+        plTotalMemberTotalVo.setMemberGoodsRankList(Lists.newArrayList());
+        plTotalMemberTotalVo.setShopMemberRankList(Lists.newArrayList());
         Date nowDay = DateUtils.getNowDate();
         //如果区域代码不为null获取对应的商户id
         if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
@@ -1363,15 +1415,21 @@
             mgtShopIdByCodeDto.setShopCityCode(mgtBasePlatformDto.getShopCityCode());
             mgtShopIdByCodeDto.setShopAreaCode(mgtBasePlatformDto.getShopAreaCode());
             MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
+            List<Long> list = new ArrayList<>();
             if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) {
-                List<Long> list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
+                list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
                         .map(Long::valueOf)
                         .collect(Collectors.toList());
-                mgtBasePlatformDto.setShopIdList(list);
+            }else{
+                return plTotalMemberTotalVo;
             }
+            mgtBasePlatformDto.setShopIdList(list);
         }
         //获取基础统计
-        MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
+        MgtPlTotalMemberTotalVo plTotalMemberTotalByDayVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
+        plTotalMemberTotalVo.setMemberTotal(plTotalMemberTotalByDayVo.getMemberTotal());
+        plTotalMemberTotalVo.setMemberYesterday(plTotalMemberTotalByDayVo.getMemberYesterday());
+        plTotalMemberTotalVo.setMemberSeven(plTotalMemberTotalByDayVo.getMemberSeven());
         MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto);
         if (mgtAgeTotalVo != null) {
             Integer manTotal = mgtAgeTotalVo.getManTotal();
@@ -1382,6 +1440,9 @@
             BigDecimal bigTen = new BigDecimal("100.00");
             BigDecimal menPercent = new BigDecimal("100.00");
             BigDecimal womenPercent = new BigDecimal("100.00");
+            if(personTotal==0){
+                personTotalBig = bigTen;
+            }
             if(manTotal==0&&womenTotal==0){
                 menPercent = new BigDecimal("50.00");
                 womenPercent = new BigDecimal("50.00");
@@ -1392,7 +1453,7 @@
                 menPercent = new BigDecimal("100.00");
                 womenPercent = new BigDecimal("0.00");
             }else{
-                menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
+                menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
                 womenPercent = bigTen.subtract(menPercent);
             }
             plTotalMemberTotalVo.setManTotal(manTotal);
@@ -1632,6 +1693,11 @@
         if (memberTotalChangeDto.getGoodsOrderChange() != null) {
             memberTotal.setTotalGoodsOrder(memberTotal.getTotalGoodsOrder() + memberTotalChangeDto.getGoodsOrderChange());
         }
+        //消费记录
+        if(memberTotalChangeDto.getConsumeTime()!=null){
+            memberTotal.setTotalConsumeCount(memberTotal.getTotalConsumeCount()+1);
+            memberTotal.setLastConsumeTime(memberTotalChangeDto.getConsumeTime());
+        }
         memberTotalService.saveOrUpdate(memberTotal);
     }
 
@@ -1669,11 +1735,6 @@
         }
         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();
@@ -1685,6 +1746,9 @@
         BigDecimal bigTen = new BigDecimal("100.00");
         BigDecimal menPercent = new BigDecimal("100.00");
         BigDecimal womenPercent = new BigDecimal("100.00");
+        if(personTotal==0){
+            personTotalBig = bigTen;
+        }
         if(manTotal==0&&womenTotal==0){
             menPercent = new BigDecimal("50.00");
             womenPercent = new BigDecimal("50.00");
@@ -1725,11 +1789,17 @@
         if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
             nurseTotalVos = listRemoveNull(nurseTotalVos);
             memberFixedTotalVo.setNurseTotalVos(nurseTotalVos);
+        }else{
+            nurseTotalVos = new ArrayList<>();
+            memberFixedTotalVo.setNurseTotalVos(nurseTotalVos);
         }
         //获取不同等级的会员数
         List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getMerMemberTotalLevel(merTotalDto);
         if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) {
             memberLevelTotalVos = listRemoveNull(memberLevelTotalVos);
+            memberFixedTotalVo.setMemberLevelTotalVos(memberLevelTotalVos);
+        }else{
+            memberLevelTotalVos = new ArrayList<>();
             memberFixedTotalVo.setMemberLevelTotalVos(memberLevelTotalVos);
         }
         // 获取不同商品类型的会员数
@@ -1737,11 +1807,17 @@
         if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) {
             goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos);
             memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
+        }else{
+            goodsTypeTotalVos = new ArrayList<>();
+            memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos);
         }
         //获取会员消费排名
         List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto);
         if (memberPayList != null && memberPayList.size() > 0) {
             memberPayList = listRemoveNull(memberPayList);
+            memberFixedTotalVo.setMemberPayList(memberPayList);
+        }else{
+            memberPayList = new ArrayList<>();
             memberFixedTotalVo.setMemberPayList(memberPayList);
         }
         // 获取不同活跃度的会员数
@@ -1751,7 +1827,7 @@
             String actStartDate;
             String actEndDate;
             Integer count;
-            List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>();
+            List<MgtMapIntTotalVo> mgtMapIntTotalVoList = new ArrayList<>();
             MgtMapIntTotalVo MgtMapIntTotalVo;
             // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
             for (int i = 0; i < activenessList.size(); i++) {
@@ -1764,9 +1840,12 @@
                 MgtMapIntTotalVo = new MgtMapIntTotalVo();
                 MgtMapIntTotalVo.setMapKey(activeness.getActivenessName());
                 MgtMapIntTotalVo.setMapValue(count);
-                MgtMapIntTotalVoList.add(MgtMapIntTotalVo);
+                mgtMapIntTotalVoList.add(MgtMapIntTotalVo);
             }
-            memberFixedTotalVo.setActivenessList(MgtMapIntTotalVoList);
+            memberFixedTotalVo.setActivenessList(mgtMapIntTotalVoList);
+        }else{
+            List<MgtMapIntTotalVo> mgtMapIntTotalVoList = new ArrayList<>();
+            memberFixedTotalVo.setActivenessList(mgtMapIntTotalVoList);
         }
         return memberFixedTotalVo;
     }
@@ -1812,11 +1891,13 @@
         }
         MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo();
         //获取会员推荐排名
-        List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto);
+        /*List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto);
         if (recommendList != null && recommendList.size() > 0) {
             recommendList = listRemoveNull(recommendList);
             memberRecommendTotalVo.setRecommendList(recommendList);
-        }
+        }*/
+        List<MgtMapIntTotalVo> recommendList = new ArrayList<>();
+        memberRecommendTotalVo.setRecommendList(recommendList);
         return memberRecommendTotalVo;
     }
 

--
Gitblit v1.7.1