From b4882b114f082e010d4cc3359d78d18095ef3b83 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 26 六月 2023 19:49:38 +0800
Subject: [PATCH] 商户端和管理台联调bug

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  456 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 418 insertions(+), 38 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 d2ed66f..87aab84 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
@@ -25,17 +25,13 @@
 import com.ruoyi.member.util.HttpUtils;
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.constant.SecurityConstant;
-import com.ruoyi.system.api.domain.dto.AppEditUserDto;
-import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
-import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
-import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
+import com.ruoyi.system.api.domain.dto.*;
 import com.ruoyi.system.api.domain.poji.config.Activeness;
 import com.ruoyi.system.api.domain.poji.config.SysTag;
 import com.ruoyi.system.api.domain.poji.member.Member;
 import com.ruoyi.system.api.domain.poji.shop.Shop;
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
-import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
-import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
+import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.model.AppMiniLoginDto;
 import com.ruoyi.system.api.model.AppMiniLoginVo;
 import com.ruoyi.system.api.service.RemoteConfigService;
@@ -106,6 +102,11 @@
     @Resource
     private MemberArchiveService memberArchiveService;
 
+    @Resource
+    private RemoteShopService remoteShopService;
+
+    @Resource
+    private RemoteOrderService remoteOrderService;
 
     /**
      * @description: TODO
@@ -395,6 +396,9 @@
     @Override
     public void updateMemberBinding(AppMemberBindingDto appMemberBindingDto){
         Member member = this.getByUserId(appMemberBindingDto.getUserId());
+        if(member.getBindingFlag()==0){
+            member.setBindingTime(new Date());
+        }
         member.setBindingFlag(appMemberBindingDto.getBindingFlag());
         member.setRelationShopId(appMemberBindingDto.getShopId());
         member.setRelationShopName(appMemberBindingDto.getShopName());
@@ -512,7 +516,9 @@
             member.setWxUnionid(null);
             member.setMiniOpenid(null);
             member.setBindingFlag(1);
-            member.setRelationShopId(merMemberAddDto.getShopId());
+            member.setBindingTime(new Date());
+            Shop shop = remoteShopService.getShop(merMemberAddDto.getShopId()).getData();
+            member.setRelationShopName(shop.getShopName());
             member.setCustomerSource("商户添加");
             member.setCreateTime(new Date());
             log.info("member-----------------"+member.toString());
@@ -645,7 +651,7 @@
      * @return
      */
     private String createMemberNo(){
-        int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>().eq(Member::getDelFlag, 0));
+        int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>());
         String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal+1));
         return memberNo;
     }
@@ -661,14 +667,20 @@
     public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){
         List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         Date nowDay = new Date();
-        //处理活跃度筛选
-        activenessList.stream()
-                .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId()))
-                .findFirst()
-                .ifPresent(activeness -> {
-                    merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay()));
-                    merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay()));
-                });
+        if(merMemberPageDto.getActivenessId()!=null){
+            //处理活跃度筛选
+            activenessList.stream()
+                    .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId()))
+                    .findFirst()
+                    .ifPresent(activeness -> {
+                        merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getEndDay())));
+                        merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getStartDay())));
+                    });
+        }
+        //处理标签为正则表达
+        if(StringUtils.isNotBlank(merMemberPageDto.getMemberTags())){
+            merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",","|"));
+        }
         //查询获取结果列表
         List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto);
         //处理活跃度返回
@@ -711,14 +723,21 @@
      */
     @Override
     public void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto){
-        Member member = this.getByUserId(mgtMemberRelEditDto.getMemberUserId());
-        Shop shop = shopService.getShop(mgtMemberRelEditDto.getShopId()).getData();
-        member.setRelationShopId(shop.getShopId());
-        member.setRelationShopName(shop.getShopName());
-        member.setBindingFlag(1);
-        member.setUpdateTime(new Date());
-        member.setUpdateUserId(mgtMemberRelEditDto.getUserId());
-        this.saveOrUpdate(member);
+        if(StringUtils.isNotBlank(mgtMemberRelEditDto.getMemberUserIds())){
+            Shop shop = shopService.getShop(mgtMemberRelEditDto.getShopId()).getData();
+            String memberUserIds = mgtMemberRelEditDto.getMemberUserIds();
+            String[] memberUserIdArr = memberUserIds.split(",");
+            for(String str : memberUserIdArr){
+                Member member = this.getByUserId(Long.valueOf(str));
+                member.setRelationShopId(shop.getShopId());
+                member.setRelationShopName(shop.getShopName());
+                member.setBindingFlag(1);
+                member.setBindingTime(new Date());
+                member.setUpdateTime(new Date());
+                member.setUpdateUserId(mgtMemberRelEditDto.getUserId());
+                this.saveOrUpdate(member);
+            }
+        }
     }
 
 
@@ -728,11 +747,17 @@
      */
     @Override
     public void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto){
-        Member member = this.getById(mgtMemberRelDelDto.getMemberUserId());
-        member.setBindingFlag(0);
-        member.setUpdateTime(new Date());
-        member.setUpdateUserId(mgtMemberRelDelDto.getUserId());
-        this.saveOrUpdate(member);
+        if(StringUtils.isNotBlank(mgtMemberRelDelDto.getMemberUserIds())) {
+            String memberUserIds = mgtMemberRelDelDto.getMemberUserIds();
+            String[] memberUserIdArr = memberUserIds.split(",");
+            for(String str : memberUserIdArr) {
+                Member member = this.getByUserId(Long.valueOf(str));
+                member.setBindingFlag(0);
+                member.setUpdateTime(new Date());
+                member.setUpdateUserId(mgtMemberRelDelDto.getUserId());
+                this.saveOrUpdate(member);
+            }
+        }
     }
 
     /**
@@ -741,15 +766,22 @@
      */
     @Override
     public void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto){
-        MemberIntegralChangeDto memberIntegralChangeDto = new MemberIntegralChangeDto();
-        Member member = this.getByUserId(mgtMemberIntEditDto.getMemberUserId());
-        memberIntegralChangeDto.setUserId(mgtMemberIntEditDto.getMemberUserId());
-        memberIntegralChangeDto.setMemberId(member.getMemberId());
-        memberIntegralChangeDto.setChangeType(1);
-        memberIntegralChangeDto.setRecordType(3);
-        memberIntegralChangeDto.setIntegral(mgtMemberIntEditDto.getIntegral());
-        //调用积分变动
-        memberIntegralChange(memberIntegralChangeDto);
+        if(StringUtils.isNotBlank(mgtMemberIntEditDto.getMemberUserIds())) {
+            String memberUserIds = mgtMemberIntEditDto.getMemberUserIds();
+            String[] memberUserIdArr = memberUserIds.split(",");
+            MemberIntegralChangeDto memberIntegralChangeDto;
+            for(String str : memberUserIdArr) {
+                memberIntegralChangeDto = new MemberIntegralChangeDto();
+                Member member = this.getByUserId(Long.valueOf(str));
+                memberIntegralChangeDto.setUserId(Long.valueOf(str));
+                memberIntegralChangeDto.setMemberId(member.getMemberId());
+                memberIntegralChangeDto.setChangeType(1);
+                memberIntegralChangeDto.setRecordType(3);
+                memberIntegralChangeDto.setIntegral(mgtMemberIntEditDto.getIntegral());
+                //调用积分变动
+                memberIntegralChange(memberIntegralChangeDto);
+            }
+        }
     }
 
 
@@ -863,4 +895,352 @@
     public void deleteMemberTag(String memberTag){
         memberMapper.deleteMemberTag(memberTag);
     }
+
+    /**
+     * @description  通过发送类型获取userId
+     * @author  jqs
+     * @date    2023/6/13 17:53
+     * @param sendType
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listIdBySendType(Integer sendType){
+        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
+        return memberMapper.listIdBySendType(sendType);
+    }
+
+    /**
+     * @description  通过ids获取用户简易返回
+     * @author  jqs
+     * @date    2023/6/16 11:06
+     * @param userIds
+     * @return  List<MgtSimpleMemberVo>
+     */
+    @Override
+    public List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds){
+        return memberMapper.listSimpleVoByIds(userIds);
+    }
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/6/16 12:41
+     * @param mgtUserIdByKeywordDto
+     * @return  MgtUserIdByKeywordVo
+     */
+    @Override
+    public MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto){
+        MgtUserIdByKeywordVo mgtUserIdByKeywordVo = new MgtUserIdByKeywordVo();
+        List<Long> userIdList = memberMapper.getUserIdByKeyword(mgtUserIdByKeywordDto);
+        if(userIdList!=null&&!userIdList.isEmpty()){
+            String userIdStr = userIdList.stream()
+                    .map(Object::toString)
+                    .collect(Collectors.joining(","));
+            mgtUserIdByKeywordVo.setUserIds(userIdStr);
+        }
+        return mgtUserIdByKeywordVo;
+    }
+
+    /**
+     * @description boardMemberTotal
+     * @param
+     * @return MgtBulletinBoardVo
+     * @author jqs34
+     * @date 2023/6/18 16:45
+     */
+    @Override
+    public MgtBulletinBoardVo boardMemberTotal(){
+        MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo();
+        mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal());
+        mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday());
+        return mgtBulletinBoardVo;
+    }
+
+    /**
+     * @description  会员人数统计
+     * @author  jqs
+     * @date    2023/6/19 15:26
+     * @param
+     * @return  MgtTotalMemberTotalVo
+     */
+    @Override
+    public MgtTotalMemberTotalVo getTotalMemberTotal(MgtBaseShopDto mgtBaseShopDto){
+        Date nowDay = DateUtils.getNowDate();
+        // 获取店铺ID
+        Long shopId = mgtBaseShopDto.getShopId();
+        // 获取总会员数和不同年龄段的会员数
+        MgtTotalMemberTotalVo mgtTotalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto);
+        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getTotalMemberTotalAge(mgtBaseShopDto);
+        // 年龄段数组
+        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
+        // 不同年龄段的会员数数组
+        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+        // 设置年龄段数组和不同年龄段的会员数数组
+        mgtTotalMemberTotalVo.setAgeKey(ageKey);
+        mgtTotalMemberTotalVo.setAgeValue(ageValue);
+        // 获取不同护理类型的会员数
+        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);
+        }
+        // 获取不同商品类型的会员数
+        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);
+        }
+        // 获取不同活跃度的会员数
+        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;
+            // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
+            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;
+            }
+            mgtTotalMemberTotalVo.setActivenessKey(activenessKey);
+            mgtTotalMemberTotalVo.setActivenessValue(activenessValue);
+        }
+        //获取会员消费排名
+        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);
+        }
+        //获取来源渠道排名
+        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);
+        }
+        // 返回总会员数和不同类型会员数的统计结果
+        return mgtTotalMemberTotalVo;
+    }
+
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/6/20 11:42
+     * @param mgtActivityAgeDto
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listUserIdByAge(MgtActivityAgeDto mgtActivityAgeDto){
+        List<Long> userIdList = memberMapper.listUserIdByAge(mgtActivityAgeDto);
+        return userIdList;
+    }
+
+    /**
+     * @description  会员人数统计
+     * @author  jqs
+     * @date    2023/6/21 10:59
+     * @param mgtBasePlatformDto
+     * @return  MgtPlTotalMemberTotalVo
+     */
+    @Override
+    public MgtPlTotalMemberTotalVo getPlTotalMemberTotal(MgtBasePlatformDto mgtBasePlatformDto){
+        Date nowDay = DateUtils.getNowDate();
+        //如果区域代码不为null获取对应的商户id
+        if(StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode())||StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())){
+            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
+            mgtShopIdByCodeDto.setShopProvinceCode(mgtBasePlatformDto.getShopProvinceCode());
+            mgtShopIdByCodeDto.setShopCityCode(mgtBasePlatformDto.getShopCityCode());
+            mgtShopIdByCodeDto.setShopAreaCode(mgtBasePlatformDto.getShopAreaCode());
+            MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
+            if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){
+                List<Long> list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
+                        .map(Long::valueOf)
+                        .collect(Collectors.toList());
+                mgtBasePlatformDto.setShopIdList(list);
+            }
+        }
+        //获取基础统计
+        MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
+        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto);
+        plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal());
+        plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal());
+        // 年龄段数组
+        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
+        // 不同年龄段的会员数数组
+        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+        // 设置年龄段数组和不同年龄段的会员数数组
+        plTotalMemberTotalVo.setAgeKey(ageKey);
+        plTotalMemberTotalVo.setAgeValue(ageValue);
+        // 获取不同护理类型的会员数
+        List<MgtMapTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto);
+        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();
+            }
+            plTotalMemberTotalVo.setNurseKey(nurseKey);
+            plTotalMemberTotalVo.setNurseValue(nurseValue);
+        }
+        // 获取不同商品类型的会员数
+        List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto);
+        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();
+            }
+            plTotalMemberTotalVo.setGoodsTypeKey(goodsTypeKey);
+            plTotalMemberTotalVo.setGoodsTypeValue(goodsTypeValue);
+        }
+        // 获取不同活跃度的会员数
+        List<Long> shopIdList = mgtBasePlatformDto.getShopIdList();
+        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;
+            // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
+            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.getPlTotalMemberTotalActiveness(shopIdList, actStartDate, actEndDate);
+                activenessKey[i] = activeness.getActivenessName();
+                activenessValue[i] = count;
+            }
+            plTotalMemberTotalVo.setActivenessKey(activenessKey);
+            plTotalMemberTotalVo.setActivenessValue(activenessValue);
+        }
+        //获取会员消费排名
+        List<MgtMapTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto);
+        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();
+            }
+            plTotalMemberTotalVo.setOrderRankKey(memberPayKey);
+            plTotalMemberTotalVo.setOrderRankValue(memberPayValue);
+        }
+        //获取来源渠道排名
+        List<MgtMapTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto);
+        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();
+            }
+            plTotalMemberTotalVo.setCustomerSourceKey(customerSourceKey);
+            plTotalMemberTotalVo.setCustomerSourceValue(customerSourceValue);
+        }
+        //获取商铺会员排名
+        List<MgtMapTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto);
+        if (shopMemberRankList != null && shopMemberRankList.size() > 0) {
+            String[] shopMemberRankKey = new String[shopMemberRankList.size()];
+            Integer[] shopMemberRankValue = new Integer[shopMemberRankList.size()];
+            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            for (int i = 0; i < shopMemberRankList.size(); i++) {
+                shopMemberRankKey[i] = shopMemberRankList.get(i).getMapKey();
+                shopMemberRankValue[i] = shopMemberRankList.get(i).getMapValue();
+            }
+            plTotalMemberTotalVo.setMemberRankKey(shopMemberRankKey);
+            plTotalMemberTotalVo.setMemberRankValue(shopMemberRankValue);
+        }
+        List<MgtMapTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData();
+        if (memberGoodsRankList != null && memberGoodsRankList.size() > 0) {
+            String[] shopMemberRankKey = new String[memberGoodsRankList.size()];
+            Integer[] shopMemberRankValue = new Integer[memberGoodsRankList.size()];
+            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            for (int i = 0; i < memberGoodsRankList.size(); i++) {
+                shopMemberRankKey[i] = memberGoodsRankList.get(i).getMapKey();
+                shopMemberRankValue[i] = memberGoodsRankList.get(i).getMapValue();
+            }
+            plTotalMemberTotalVo.setGoodsRankKey(shopMemberRankKey);
+            plTotalMemberTotalVo.setGoodsRankValue(shopMemberRankValue);
+        }
+        return plTotalMemberTotalVo;
+    }
+
+    /**
+     * @description  通过shopId获取userId
+     * @author  jqs
+     * @date    2023/6/21 17:11
+     * @param shopIdList
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listUserIdByShopId(List<Long> shopIdList){
+        return memberMapper.listUserIdByShopId(shopIdList);
+    }
+
+    /**
+     * @description  通过shopId获取user统计
+     * @author  jqs
+     * @date    2023/6/21 17:19
+     * @param shopIdList
+     * @return  MgtShopTotalMemberVo
+     */
+    @Override
+    public MgtShopTotalMemberVo getUserTotalByShopId(List<Long> shopIdList){
+        MgtShopTotalMemberVo mgtShopTotalMemberVo = new MgtShopTotalMemberVo();
+        MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
+        mgtBasePlatformDto.setShopIdList(shopIdList);
+        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto);
+        mgtShopTotalMemberVo.setManTotal(mgtAgeTotalVo.getManTotal());
+        mgtShopTotalMemberVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal());
+        // 年龄段数组
+        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
+        // 不同年龄段的会员数数组
+        Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+        // 设置年龄段数组和不同年龄段的会员数数组
+        mgtShopTotalMemberVo.setAgeKey(ageKey);
+        mgtShopTotalMemberVo.setAgeValue(ageValue);
+        return mgtShopTotalMemberVo;
+    }
 }

--
Gitblit v1.7.1