From 07fb617c686699435cde29e8147f11a125d7d618 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期一, 23 六月 2025 11:10:12 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |  125 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 111 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 62f8472..1161275 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,4 @@
 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 +7,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.google.common.collect.Lists;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
@@ -21,7 +21,6 @@
 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;
@@ -114,6 +113,12 @@
 
     @Resource
     private RemoteOrderService remoteOrderService;
+
+    @Resource
+    private RemoteUserService remoteUserService;
+
+
+
 
     /**
      * @description: TODO
@@ -625,8 +630,15 @@
         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);
+            oldMember.setBindingType(8);
+            this.updateById(oldMember);
+            return oldMember.getUserId();
         }
         // Get the sysUser by mobile number
         SysUser sysUser = sysUserService.getSysUserByMobile(phoneNumber).getData();
@@ -897,6 +909,7 @@
      */
     @Override
     public List<MgtMemberPageVo> pageMgtMember(Page page, MgtMemberPageDto merMemberPageDto) {
+
         List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         Date nowDay = new Date();
         if (merMemberPageDto.getActivenessId() != null) {
@@ -926,8 +939,46 @@
             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();
+                            if (data.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data);
+                            }
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.getShopIdsByUserIds(longs).getData();
+                            if (data1.size()==0){
+                                scope.add(0L);
+                            }else{
+                                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()) {
@@ -943,7 +994,7 @@
                 //活跃度赋值
                 Date lastPayTime;
                 for (MgtMemberPageVo mgtMemberPageVo : memberPageVoList) {
-                    if(null != mgtMemberPageVo.getRelationShopId()){
+                    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();
@@ -1154,7 +1205,6 @@
                     mgtMemberGetVo.setRelationShopName(data.getShopName());
                 }
             }
-
         }
         mgtMemberGetVo.setIntegral(memberTotal.getTotalIntegral());
         mgtMemberGetVo.setMemberFrom(member.getCustomerSource());
@@ -1190,6 +1240,13 @@
         //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
         return memberMapper.listIdBySendType(sendType,shopId);
     }
+
+
+    public List<Long> listIdBySendType2(Long shopId) {
+        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
+        return memberMapper.listIdBySendType2(shopId);
+    }
+
 
     /**
      * @param userIds
@@ -1231,10 +1288,10 @@
      * @date 2023/6/18 16:45
      */
     @Override
-    public MgtBulletinBoardVo boardMemberTotal() {
+    public MgtBulletinBoardVo boardMemberTotal(List<Long> shopIds) {
         MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo();
-        mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal());
-        mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday());
+        mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal(shopIds));
+        mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday(shopIds));
         return mgtBulletinBoardVo;
     }
 
@@ -1426,13 +1483,14 @@
         plTotalMemberTotalVo.setShopMemberRankList(Lists.newArrayList());
         Date nowDay = DateUtils.getNowDate();
         //如果区域代码不为null获取对应的商户id
+        List<Long> list = new ArrayList<>();
         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();
-            List<Long> list = new ArrayList<>();
+
             if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) {
                 list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
                         .map(Long::valueOf)
@@ -1440,8 +1498,17 @@
             }else{
                 return plTotalMemberTotalVo;
             }
-            mgtBasePlatformDto.setShopIdList(list);
         }
+        //数据权限
+        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
+        list.addAll(collect);
+        mgtBasePlatformDto.setShopIdList(list);
+
+
         //获取基础统计
         MgtPlTotalMemberTotalVo plTotalMemberTotalByDayVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
         plTotalMemberTotalVo.setMemberTotal(plTotalMemberTotalByDayVo.getMemberTotal());
@@ -2186,16 +2253,46 @@
      */
     @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);
                 }
             }
         }
     }
+    
+    
+    /**
+     * 手动添加用户积分
+     *
+     * @param integral
+     * @param userId
+     * @return
+     */
+    @Override
+    public R addIntegralRecord(Integer integral, Long userId, String orderId) {
+        Member member = this.getByUserId(userId);
+        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
+        IntegralRecord integralRecord = new IntegralRecord();
+        integralRecord.setDelFlag(0);
+        integralRecord.setUserId(userId);
+        integralRecord.setChangeType(6);
+        integralRecord.setChangeIntegral(integral);
+        integralRecord.setSurpIntegral(memberTotal.getUseableIntegral() + integral);
+        integralRecord.setCreateTime(new Date());
+        integralRecord.setOrderId(orderId);
+        integralRecord.setChangeReason("抽奖活动获得");
+        integralRecordService.save(integralRecord);
+        memberTotal.setTotalIntegral(memberTotal.getTotalIntegral() + integral);
+        memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + integral);
+        memberTotal.setPlSuggestFlag(1);
+        memberTotalService.saveOrUpdate(memberTotal);
+        return R.ok();
+    }
 }

--
Gitblit v1.7.1