From 61b5f9863f14ab4fc9da504ca2b553a778eb2e2c Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 24 一月 2024 15:10:32 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  151 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 133 insertions(+), 18 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 47fe560..62a2f96 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;
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -292,7 +293,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");
@@ -321,6 +321,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();
@@ -330,9 +331,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;
@@ -622,8 +625,14 @@
         String phoneNumber = merMemberAddDto.getPhonenumber();
         Member oldMember = this.getByMobile(phoneNumber);
         // Check if the member already exists
-        if (oldMember != null) {
+        if (oldMember != null && oldMember.getBindingFlag() == 1) {
             throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE);
+        }
+        if (oldMember != null && oldMember.getBindingFlag() == 0) {
+            oldMember.setRelationShopId(merMemberAddDto.getShopId());
+            oldMember.setBindingFlag(1);
+            this.updateById(oldMember);
+            return oldMember.getUserId();
         }
         // Get the sysUser by mobile number
         SysUser sysUser = sysUserService.getSysUserByMobile(phoneNumber).getData();
@@ -894,6 +903,7 @@
      */
     @Override
     public List<MgtMemberPageVo> pageMgtMember(Page page, MgtMemberPageDto merMemberPageDto) {
+
         List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         Date nowDay = new Date();
         if (merMemberPageDto.getActivenessId() != null) {
@@ -923,8 +933,37 @@
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
             merMemberPageDto.setStartBirthday(startBirthday.format(formatter));
         }
+        // 获取当前登陆人的可视权限
+        SysUser sysUser = SecurityUtils.getSysUser();
+        // 店铺ids
+        List<Long> scope = new ArrayList<>();
+        if (sysUser!=null){
+            String dataScope = sysUser.getDataScope();
+            if (!sysUser.getUserName().equals("admin")){
+                if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                    switch (dataScope){
+                        case "3":
+                            // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                            // 根据用户id 查询同部门下所有员工id
+                            List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData();
+                            // 获取店铺ids
+                            List<Long> data = shopService.getShopIdsByUserIds(userIds).getData();
+                            scope.addAll(data);
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.getShopIdsByUserIds(longs).getData();
+                            scope.addAll(data1);
+                            break;
+                    }
+                }
+            }
+        }
         //查询获取结果列表
-        List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto);
+        List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto,scope);
         //处理活跃度返回
         if (memberPageVoList != null && !memberPageVoList.isEmpty()) {
             if (activenessList != null && !activenessList.isEmpty()) {
@@ -940,6 +979,15 @@
                 //活跃度赋值
                 Date lastPayTime;
                 for (MgtMemberPageVo mgtMemberPageVo : memberPageVoList) {
+                    if(null != mgtMemberPageVo.getRelationShopId() && 1 == mgtMemberPageVo.getBindingFlag()){
+                        R<Shop> shop_r = remoteShopService.getShop(mgtMemberPageVo.getRelationShopId());
+                        if(shop_r.getCode() == 200){
+                            Shop data = shop_r.getData();
+                            if(null != data){
+                                mgtMemberPageVo.setRelationShopName(data.getShopName());
+                            }
+                        }
+                    }
                     lastPayTime = mgtMemberPageVo.getLastPayTime();
                     StringJoiner sj = new StringJoiner(",");
                     if (lastPayTime != null) {
@@ -1135,7 +1183,13 @@
         mgtMemberGetVo.setLastPayTime(memberTotal.getLastPayTime());
         mgtMemberGetVo.setGoodsType(member.getGoodsType());
         if(member.getBindingFlag()==1){
-            mgtMemberGetVo.setRelationShopName(member.getRelationShopName());
+            R<Shop> shop = remoteShopService.getShop(member.getRelationShopId());
+            if(shop.getCode() == 200){
+                Shop data = shop.getData();
+                if(null != data){
+                    mgtMemberGetVo.setRelationShopName(data.getShopName());
+                }
+            }
         }
         mgtMemberGetVo.setIntegral(memberTotal.getTotalIntegral());
         mgtMemberGetVo.setMemberFrom(member.getCustomerSource());
@@ -1229,10 +1283,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();
@@ -1360,6 +1440,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())) {
@@ -1373,11 +1472,16 @@
                 list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
                         .map(Long::valueOf)
                         .collect(Collectors.toList());
+            }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();
@@ -1683,11 +1787,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();
@@ -1742,11 +1841,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);
         }
         // 获取不同商品类型的会员数
@@ -1754,11 +1859,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);
         }
         // 获取不同活跃度的会员数
@@ -1768,7 +1879,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++) {
@@ -1781,9 +1892,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;
     }
@@ -2107,12 +2221,13 @@
      */
     @Override
     public void sendBirthdayBless(){
-        List<String> mobileList = memberMapper.listTodayBirthday();
+        List<Member> mobileList = memberMapper.listTodayBirthday();
         if(mobileList!=null&&!mobileList.isEmpty()){
             log.info("生日祝福发送短信---"+mobileList.toString());
-            for(String mobile : mobileList){
+            for(Member member : mobileList){
                 try {
-                    MsgUtils.sendMsg(mobile,null,null);
+                    String msg = "{\"name\":\"" + (StringUtils.isEmpty(member.getRealName()) ? member.getNickName() : member.getRealName()) + "\"}";
+                    MsgUtils.sendMsg(member.getMobile(),null, msg);
                 } catch (Exception e) {
                     throw new RuntimeException(e);
                 }

--
Gitblit v1.7.1