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