From 7b772959ec96e54a52c1750ebaa7a4409e08e81a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 26 一月 2024 15:03:06 +0800
Subject: [PATCH] 修改数据权限bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  510 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 277 insertions(+), 233 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 7219ae5..3c3cb57 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -47,6 +47,7 @@
 import com.ruoyi.system.api.constant.DelayTaskEnum;
 import com.ruoyi.system.api.constant.SecurityConstant;
 import com.ruoyi.system.api.domain.dto.*;
+import com.ruoyi.system.api.domain.poji.activity.Activity;
 import com.ruoyi.system.api.domain.poji.activity.ActivityRecord;
 import com.ruoyi.system.api.domain.poji.config.DelayTask;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
@@ -64,6 +65,7 @@
 import lombok.extern.log4j.Log4j2;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -1354,11 +1356,104 @@
             //处理订单回显
             for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) {
                 if(member.getBindingFlag()==0&&appUserOrderPageVo.getOrderFrom()==2){
-                    appUserOrderPageVo.setShopName("全部店铺");
+                    //查询秒杀活动的参与店铺
+                    R<Activity> activity = remoteActivityService.getActivity(appUserOrderPageVo.getActivityId());
+                    if(activity.getCode() != 200){
+                        throw new RuntimeException(activity.getMsg());
+                    }
+                    Activity data = activity.getData();
+                    if(data.getAreaFlag() == 1){
+                        appUserOrderPageVo.setShopNumber(0);
+                        appUserOrderPageVo.setShopName("全部店铺");
+                    }
+                    if(data.getAreaFlag() == 2 && data.getShopFlag() == 1){
+                        String designatedArea = data.getDesignatedArea();
+                        String[] split = designatedArea.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByCityCode(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data1 = listR.getData();
+                        appUserOrderPageVo.setShopNumber(1);
+                        appUserOrderPageVo.setShopName(JSON.toJSONString(data1));
+                    }
+                    if(data.getShopFlag() == 2){
+                        String applicableShop = data.getApplicableShop();
+                        String[] split = applicableShop.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByIds(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data1 = listR.getData();
+                        appUserOrderPageVo.setShopNumber(1);
+                        appUserOrderPageVo.setShopName(JSON.toJSONString(data1));
+                    }
+                }else if(member.getBindingFlag()==1&&appUserOrderPageVo.getOrderFrom()==2){
+                    Long relationShopId = member.getRelationShopId();
+                    R<Shop> shop = remoteShopService.getShop(relationShopId);
+                    if(shop.getCode() != 200){
+                        throw new RuntimeException(shop.getMsg());
+                    }
+                    Shop data1 = shop.getData();
+                    //查询秒杀活动的参与店铺
+                    R<Activity> activity = remoteActivityService.getActivity(appUserOrderPageVo.getActivityId());
+                    if(activity.getCode() != 200){
+                        throw new RuntimeException(activity.getMsg());
+                    }
+                    Activity data = activity.getData();
+                    if(data.getAreaFlag() == 1){
+                        appUserOrderPageVo.setShopNumber(2);
+                        appUserOrderPageVo.setShopName(data1.getShopName());
+                        appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+                    }
+                    if(data.getAreaFlag() == 2 && data.getShopFlag() == 1){
+                        String designatedArea = data.getDesignatedArea();
+                        String[] split = designatedArea.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByCityCode(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data2 = listR.getData();
+                        List<Long> collect = data2.stream().map(Shop::getShopId).collect(Collectors.toList());
+                        if(collect.contains(relationShopId)){
+                            appUserOrderPageVo.setShopNumber(2);
+                            appUserOrderPageVo.setShopName(data1.getShopName());
+                            appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+                        }else{
+                            appUserOrderPageVo.setShopNumber(1);
+                            appUserOrderPageVo.setShopName(JSON.toJSONString(data2));
+                        }
+                    }
+                    if(data.getShopFlag() == 2){
+                        String applicableShop = data.getApplicableShop();
+                        String[] split = applicableShop.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByIds(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data2 = listR.getData();
+                        List<Long> collect = data2.stream().map(Shop::getShopId).collect(Collectors.toList());
+                        if(collect.contains(relationShopId)){
+                            appUserOrderPageVo.setShopNumber(2);
+                            appUserOrderPageVo.setShopName(data1.getShopName());
+                            appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+                        }else{
+                            appUserOrderPageVo.setShopNumber(1);
+                            appUserOrderPageVo.setShopName(JSON.toJSONString(data2));
+                        }
+                    }
+
+
+
                 }else{
                     simpleShopVo = shopMap.get(appUserOrderPageVo.getShopId());
                     appUserOrderPageVo.setShopName(simpleShopVo.getShopName());
                     appUserOrderPageVo.setShopServicePhone(simpleShopVo.getShopServicePhone());
+                    appUserOrderPageVo.setShopNumber(2);
                     if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) {
                         appUserOrderPageVo.setSameShop(1);
                     } else {
@@ -1556,20 +1651,10 @@
         //判断用户是否绑定
         if(member.getBindingFlag()==1){
             //绑定用户判断核销商户
-            if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
-                if (!member.getRelationShopId().equals(shopId)) {
-                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                }
-                //未绑定时下的活动订单只需要判断店铺是否支持
-                String activityId = order.getActivityId();
-                MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
-                merActivityShopDto.setShopId(shopId);
-                merActivityShopDto.setActivityId(activityId);
-                Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
-                if(!judge){
-                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
-                }
-            }else{
+            if (order.getOrderFrom()==2&&!member.getRelationShopId().equals(shopId)) {
+                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+            }
+            if(order.getOrderFrom() == 1){
                 //商城订单和绑定后活动订单判断核销商户和订单商户和用户关联商户是否统一
                 if (!order.getShopId().equals(shopId)) {
                     throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
@@ -1707,12 +1792,16 @@
         //获取核销商户
         ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyOrderDto.getUserId()).getData();
         Long shopId = shopRelUserVo.getShopId();
+        log.info("当前核销员工【" + shopRelUserVo.getUserName() + "】门店ID:" + shopId);
         //获取订单商品列表
         List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
         //绑定用户判断核销商户
         if(member.getBindingFlag()==1){
             //未绑定的活动订单只需要判断店铺是否支持
-            if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
+            if(order.getOrderFrom()==2 && !member.getRelationShopId().equals(shopId)){
+                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+            }
+            if(order.getOrderFrom()==2 && member.getRelationShopId().equals(shopId)){
                 String activityId = order.getActivityId();
                 MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
                 merActivityShopDto.setShopId(shopId);
@@ -1720,11 +1809,6 @@
                 Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
                 if(!judge){
                     throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
-                }
-            }else{
-                //绑定用户需直接判断商户一致
-                if (!order.getShopId().equals(shopId)) {
-                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                 }
             }
         }else{
@@ -1745,53 +1829,6 @@
                     throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
                 }
             }
-            //未绑定用户需判断核销商城订单判断商品单价和优惠券
-            /*StringJoiner goodsIdSJ = new StringJoiner(",");
-            for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
-                goodsIdSJ.add(appUserOrderGoodsPageVo.getGoodsId());
-            }
-            //获取商品列表
-            List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIdSJ.toString()).getData();
-            Map<String, Goods> goodsMap = goodsList.stream()
-                    .collect(Collectors.toMap(Goods::getGoodsId, Function.identity()));
-            Goods goods;
-            ShopGoods shopGoods;
-            AppShopGoodsGetDto appShopGoodsGetDto;
-            for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
-                appShopGoodsGetDto= new AppShopGoodsGetDto();
-                appShopGoodsGetDto.setShopId(shopId);
-                appShopGoodsGetDto.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
-                shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
-                goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId());
-                //当商户定制价格不为空时判断商品定制价格否则判断商品价格是否一致
-                if(shopGoods!=null){
-                    if(shopGoods.getSalesPrice().compareTo(appUserOrderGoodsPageVo.getGoodsPrice())!=0){
-                        throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                    }
-                    if(appUserOrderGoodsPageVo.getCycleNumFlag()==0){
-                        if(shopGoods.getServiceNum()!=null){
-                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                        }
-                    }else{
-                        if(shopGoods.getServiceNum()!=appUserOrderGoodsPageVo.getServiceNum()){
-                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                        }
-                    }
-                }else{
-                    if(goods.getSalesPrice().compareTo(appUserOrderGoodsPageVo.getGoodsPrice())!=0){
-                        throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                    }
-                    if(appUserOrderGoodsPageVo.getCycleNumFlag()==0){
-                        if(goods.getServiceNum()!=null){
-                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                        }
-                    }else{
-                        if(goods.getServiceNum()!=appUserOrderGoodsPageVo.getServiceNum()){
-                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                        }
-                    }
-                }
-            }*/
         }
         order.setShopId(shopId);
         order.setOrderStatus(3);
@@ -2582,10 +2619,6 @@
         OrderGoods orderGoods;
         String orderGoodsId;
         GoodsFile goodsFile;
-        //BigDecimal cycleMoney = new BigDecimal("0.00");
-        //BigDecimal experienceMoney = new BigDecimal("0.00");
-        //BigDecimal serviceMoney = new BigDecimal("0.00");
-        //BigDecimal goodsMoney = new BigDecimal("0.00");
         List<OrderGoods> orderGoodsList = new ArrayList<>();
         ConsumerGoods consumerGoods;
         String consumerGoodsId;
@@ -2726,24 +2759,6 @@
                     consumerGoodsList.add(consumerGoods);
                 }
             }
-
-            //商户变更计算
-            /*switch (orderGoods.getGoodsType()) {
-                case 1:
-                    cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                case 2:
-                    serviceMoney = serviceMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                case 3:
-                    experienceMoney = experienceMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                case 4:
-                    goodsMoney = goodsMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                default:
-                    break;
-            }*/
         }
         //创建订单
         Order order = new Order();
@@ -2810,15 +2825,6 @@
         memberTotalChangeDto.setUserId(order.getUserId());
         memberTotalChangeDto.setConsumeTime(nowTime);
         remoteMemberService.changeMemberTotal(memberTotalChangeDto);
-        //更新商户统计
-        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
-        shopTotalChangeDto.setShopId(order.getShopId());
-        shopTotalChangeDto.setOrderType(1);
-        shopTotalChangeDto.setCycleMoney(cycleMoney);
-        shopTotalChangeDto.setServiceMoney(serviceMoney);
-        shopTotalChangeDto.setExperienceMoney(experienceMoney);
-        shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         //创建支付记录
         PayRecord payRecord = new PayRecord();
         payRecord.setDelFlag(0);
@@ -3023,6 +3029,24 @@
                 mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
             }
         }
+        //数据权限
+        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        if (!shops.isEmpty()) {
+            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
+            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
+            String shopIds = mgtShopOrderPageDto.getShopIds();
+            if(StringUtils.isNotEmpty(shopIds)){
+                shopIds = shopIds + "," + join;
+            }else{
+                shopIds = join;
+            }
+            mgtShopOrderPageDto.setShopIds(shopIds);
+        }
+
+
         // 从数据库中获取活动订单列表
         List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto);
         // 如果列表不为空
@@ -3102,6 +3126,22 @@
                 mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
             }
         }
+        //数据权限
+        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        if (!shops.isEmpty()) {
+            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
+            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
+            String shopIds = mgtShopOrderPageDto.getShopIds();
+            if(StringUtils.isNotEmpty(shopIds)){
+                shopIds = shopIds + "," + join;
+            }else{
+                shopIds = join;
+            }
+            mgtShopOrderPageDto.setShopIds(shopIds);
+        }
         MgtOrderTotal mgtOrderTotal = new MgtOrderTotal();
         MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(mgtShopOrderPageDto);
         MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto);
@@ -3148,6 +3188,22 @@
             if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) {
                 mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
             }
+        }
+        //数据权限
+        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        if (!shops.isEmpty()) {
+            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
+            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
+            String shopIds = mgtShopOrderPageDto.getShopIds();
+            if(StringUtils.isNotEmpty(shopIds)){
+                shopIds = shopIds + "," + join;
+            }else{
+                shopIds = join;
+            }
+            mgtShopOrderPageDto.setShopIds(shopIds);
         }
         List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto);
         // 如果列表不为空
@@ -3309,9 +3365,13 @@
      * @date 2023/6/18 17:20
      */
     @Override
-    public MgtBulletinBoardVo boardOrderTotal() {
-        MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal();
-        Integer activityUserTotal = orderMapper.activityUserTotal();
+    public MgtBulletinBoardVo boardOrderTotal(List<Long> userIds) {
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userIds);
+        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
+        MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(collect);
+        Integer activityUserTotal = orderMapper.activityUserTotal(collect);
         mgtBulletinBoardVo.setActivityUserTotal(activityUserTotal);
         return mgtBulletinBoardVo;
     }
@@ -3818,6 +3878,19 @@
                 mgtBasePlatformDto.setUserIdList(userIdList);
             }
         }
+        //数据权限
+        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
+        if(null != userIds){
+            List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
+            if(null != userIdList){
+                userIdList.addAll(userIds);
+            }else{
+                userIdList = userIds;
+            }
+            mgtBasePlatformDto.setUserIdList(userIdList);
+        }
+
+
         List<Long> shopIdList = new ArrayList<>();
         if(mgtBasePlatformDto.getShopId()!=null){
             shopIdList.add(mgtBasePlatformDto.getShopId());
@@ -3871,16 +3944,65 @@
             List<Long> userIdList = new ArrayList<>();
             if (mgtBasePlatformDto.getUserId() != null) {
                 userIdList.add(mgtBasePlatformDto.getUserId());
-            } else {
-                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
-                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
-                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
-                userIdList = mgtUserIdByDept.getUserIdList();
+            }
+            else {
+                // 如果当前登陆人的可视权限是仅个人 只选择了部门也只能看自己的数据
+                SysUser sysUser = SecurityUtils.getSysUser();
+                if (sysUser.getDataScope().equals("5")){
+                    userIdList.add(sysUser.getUserId());
+                }else{
+                    MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
+                    mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId());
+                    mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
+                    userIdList = mgtUserIdByDept.getUserIdList();
+                }
             }
             if (!userIdList.isEmpty()) {
                 mgtBasePlatformDto.setUserIdList(userIdList);
             }
+        }else{
+            // 没有选择筛选部门和员工 获取当前登陆人的可视权限
+            SysUser sysUser = SecurityUtils.getSysUser();
+            // 如果当前登陆人是查看个人数据
+            Long userId1  = null;
+            // 如果当前登陆人权限是查看部门数据
+            List<Long> userList = 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":
+                                // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
+                                mgtUserIdByDept.setDeptId(sysUser.getDeptId());
+                                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
+                                userList = mgtUserIdByDept.getUserIdList();
+                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
+                                mgtBasePlatformDto.setUserIdList(userList);
+                            case "5":
+                                // 仅个人数据 查询当前登陆人关联店铺下的用户
+                                userId1 = sysUser.getUserId();
+                                userList.add(userId1);
+                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
+                                mgtBasePlatformDto.setUserIdList(userList);
+                                break;
+                        }
+                    }
+                }
+            }
         }
+        //数据权限
+        List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
+        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
+        if(null != userIdList){
+            userIdList.addAll(userIds);
+        }else{
+            userIdList = userIds;
+        }
+        mgtBasePlatformDto.setUserIdList(userIdList);
+
+
         MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo();
         mgtTotalOrderTotalVo.setOrderTotal(0);
         mgtTotalOrderTotalVo.setOnlineTotal(0);
@@ -3889,6 +4011,7 @@
         mgtTotalOrderTotalVo.setCycleTotal(0);
         mgtTotalOrderTotalVo.setExperienceTotal(0);
         mgtTotalOrderTotalVo.setServiceTotal(0);
+        mgtTotalOrderTotalVo.setItemTotal(0);
         mgtTotalOrderTotalVo.setOrderMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setOnlineMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setOfflineMoney(new BigDecimal("0"));
@@ -3896,6 +4019,7 @@
         mgtTotalOrderTotalVo.setCycleMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setExperienceMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setServiceMoney(new BigDecimal("0"));
+        mgtTotalOrderTotalVo.setItemMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setOrderTotalKey(new String[0]);
         mgtTotalOrderTotalVo.setOrderTotalValue(new Integer[0]);
         mgtTotalOrderTotalVo.setOrderMoneyValue(new BigDecimal[0]);
@@ -3903,6 +4027,7 @@
         mgtTotalOrderTotalVo.setGoodsTypeMoneyList(Lists.newArrayList());
         mgtTotalOrderTotalVo.setGoodsRankList(Lists.newArrayList());
         mgtTotalOrderTotalVo.setOrderFromRankList(Lists.newArrayList());
+
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         if (mgtBasePlatformDto.getUserId() != null || StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
             if(shopIdList==null||shopIdList.isEmpty()){
@@ -3932,6 +4057,8 @@
         mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO);
         mgtTotalOrderTotalVo.setServiceTotal(0);
         mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO);
+        mgtTotalOrderTotalVo.setItemTotal(0);
+        mgtTotalOrderTotalVo.setItemMoney(BigDecimal.ZERO);
         mgtTotalOrderTotalVo.setExperienceTotal(0);
         mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO);
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
@@ -3968,6 +4095,8 @@
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
                     mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    mgtTotalOrderTotalVo.setItemTotal(mgtTotalOrderTotalVo.getItemTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setItemMoney(mgtTotalOrderTotalVo.getItemMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
                     noGoods = false;
                 }
                 goodsTypeTotalList.add(mgtMapIntTotalVo);
@@ -4102,6 +4231,7 @@
         if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
             return totalActivityTotalVo;
         }
+
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
             if(shopIdList==null||shopIdList.isEmpty()){
@@ -4112,7 +4242,20 @@
             shopIdList = new ArrayList<>();
             shopIdList.add(mgtBasePlatformDto.getShopId());
         }
-        mgtBasePlatformDto.setShopIdList(shopIdList);
+        //数据权限
+        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
+        if(null != userIds){
+            BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+            boardMemberTotalDto.setUserIds(userIds);
+            List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+            List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
+            if(null != shopIdList){
+                shopIdList.addAll(collect);
+            }else{
+                shopIdList = collect;
+            }
+            mgtBasePlatformDto.setShopIdList(shopIdList);
+        }
         //获取基础统计
         MgtPlTotalActivityTotalVo mgtTotalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto);
         totalActivityTotalVo.setOrderTotal(mgtTotalActivityTotalVo.getOrderTotal());
@@ -4219,8 +4362,10 @@
         }
         HashSet<String> set = new HashSet<>();
         // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
-        for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
-            set.add(shopId.toString());
+        if(null != mgtBasePlatformDto.getShopIdList()){
+            for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
+                set.add(shopId.toString());
+            }
         }
         // 将set中的shopId转换为逗号分隔的字符串
         String joinedString = String.join(",", set);
@@ -4289,52 +4434,6 @@
             totalActivityTotalVo.setOrderTotalValue(orderTotalValue);
             totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
         }
-
-        //参与人数  2023-09-06 另开接口
-        /*List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto);
-        // 将查询结果转为Map
-        Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>();
-        if (joinList != null && !joinList.isEmpty()) {
-            mgtMapIntTotalVoMap = joinList.stream()
-                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
-        }
-        // 获取日期范围
-        List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate());
-        int size = dateList.size();
-        // 创建日期和成员总数的数组
-        String[] joinMemberTotalKey = new String[size];
-        Integer[] joinMemberTotalValue = new Integer[size];
-        // 遍历日期列表,设置日期和成员总数的数组
-        String str;
-        Integer value;
-        for (int i = 0; i < size; i++) {
-            str = dateList.get(i);
-            joinMemberTotalKey[i] = str;
-            value = mgtMapIntTotalVoMap.get(str);
-            joinMemberTotalValue[i] = (value != null) ? value : 0;
-        }
-        totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey);
-        totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue);
-        //获客人数
-        List<MgtMapIntTotalVo> getList = orderMapper.getMgtActivityGetMemberTotal(mgtBasePlatformDto);
-        // 将查询结果转为Map
-        Map<String, Integer> getMemberMap = new HashMap<>();
-        if (getList != null && !getList.isEmpty()) {
-            getMemberMap = getList.stream()
-                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
-        }
-        // 创建日期和成员总数的数组
-        String[] getMemberTotalKey = new String[size];
-        Integer[] getMemberTotalValue = new Integer[size];
-        // 遍历日期列表,设置日期和成员总数的数组
-        for (int i = 0; i < size; i++) {
-            str = dateList.get(i);
-            getMemberTotalKey[i] = str;
-            value = getMemberMap.get(str);
-            getMemberTotalValue[i] = (value != null) ? value : 0;
-        }
-        totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey);
-        totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue);*/
         return totalActivityTotalVo;
     }
 
@@ -4350,24 +4449,6 @@
         if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
             return totalActivityTotalVo;
         }
-        /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){
-            return new MgtPlTotalActivityTotalVo();
-        }*/
-        //获取需要关联的用户id集合
-        /*if (mgtBasePlatformDto.getDeptId() != null) {
-            List<Long> userIdList = new ArrayList<>();
-            if (mgtBasePlatformDto.getUserId() != null) {
-                userIdList.add(mgtBasePlatformDto.getUserId());
-            } else {
-                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
-                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
-                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
-                userIdList = mgtUserIdByDept.getUserIdList();
-            }
-            if (!userIdList.isEmpty()) {
-                mgtBasePlatformDto.setUserIdList(userIdList);
-            }
-        }*/
 
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         log.info("shopIdList1-----"+shopIdList.toString());
@@ -4382,6 +4463,17 @@
         if(mgtBasePlatformDto.getShopId()!=null){
             shopIdList = new ArrayList<>();
             shopIdList.add(mgtBasePlatformDto.getShopId());
+        }
+
+        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userIds);
+        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
+        if(null != shopIdList){
+            shopIdList.addAll(collect);
+        }else{
+            shopIdList = collect;
         }
         mgtBasePlatformDto.setShopIdList(shopIdList);
         if(mgtBasePlatformDto.getAgeType()!=null){
@@ -4435,24 +4527,6 @@
         if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
             return totalActivityTotalVo;
         }
-        /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){
-            return new MgtPlTotalActivityTotalVo();
-        }*/
-        //获取需要关联的用户id集合
-        /*if (mgtBasePlatformDto.getDeptId() != null) {
-            List<Long> userIdList = new ArrayList<>();
-            if (mgtBasePlatformDto.getUserId() != null) {
-                userIdList.add(mgtBasePlatformDto.getUserId());
-            } else {
-                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
-                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
-                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
-                userIdList = mgtUserIdByDept.getUserIdList();
-            }
-            if (!userIdList.isEmpty()) {
-                mgtBasePlatformDto.setUserIdList(userIdList);
-            }
-        }*/
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
             if(shopIdList==null||shopIdList.isEmpty()){
@@ -4462,6 +4536,17 @@
         if(mgtBasePlatformDto.getShopId()!=null){
             shopIdList = new ArrayList<>();
             shopIdList.add(mgtBasePlatformDto.getShopId());
+        }
+        //数据权限
+        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userIds);
+        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
+        if(null != shopIdList){
+            shopIdList.addAll(collect);
+        }else{
+            shopIdList = collect;
         }
         mgtBasePlatformDto.setShopIdList(shopIdList);
         if(mgtBasePlatformDto.getAgeType()!=null){
@@ -5169,7 +5254,6 @@
     @GlobalTransactional(rollbackFor = Exception.class)
     public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) {
         log.info("订单支付回调---"+transaction.toString());
-        // Order order = this.getById(orderId);
         // 更新订单状态 outTradeNo
         String outTradeNo = transaction.getOutTradeNo();
         Order order = this.getByOutTradeNo(outTradeNo);
@@ -5227,31 +5311,9 @@
         }
         //更新商品统计
         remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
-        // 更新商户统计信息
-        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
-        shopTotalChangeDto.setShopId(order.getShopId());
-        shopTotalChangeDto.setOrderType(1);
-        shopTotalChangeDto.setCycleMoney(cycleMoney);
-        shopTotalChangeDto.setServiceMoney(serviceMoney);
-        shopTotalChangeDto.setExperienceMoney(experienceMoney);
-        shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         // 初始化会员统计信息
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
         memberTotalChangeDto.setUserId(order.getUserId());
-        // 如果存在积分兑换比例,则计算积分 2023-09-14改为核销后获取积分
-        /*if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) {
-            Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL);
-            BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue);
-            BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney()).setScale(0,BigDecimal.ROUND_HALF_UP);
-            Integer integral = Integer.valueOf(integralBig.toString());
-            if(integral>0){
-                memberTotalChangeDto.setChangeIntegral(integral);
-                memberTotalChangeDto.setTypeIntegral(1);
-                memberTotalChangeDto.setOrderId(orderId);
-                memberTotalChangeDto.setOrderNo(order.getOrderNo());
-            }
-        }*/
         // 设置会员支付金额和支付时间
         memberTotalChangeDto.setPayMoney(order.getPayMoney());
         memberTotalChangeDto.setPayTime(new Date());
@@ -5441,27 +5503,9 @@
                 remoteCouponService.backMemberCoupon(memberCouponSJ.toString());
             }
         }
-        // 更新商户统计信息
-        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
-        shopTotalChangeDto.setOrderType(2);
-        shopTotalChangeDto.setShopId(order.getShopId());
-        shopTotalChangeDto.setCycleMoney(cycleMoney);
-        shopTotalChangeDto.setServiceMoney(serviceMoney);
-        shopTotalChangeDto.setExperienceMoney(experienceMoney);
-        shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         // 初始化会员统计信息
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
         memberTotalChangeDto.setUserId(order.getUserId());
-        // 如果存在积分兑换比例,则计算积分 2023-09-14改为核销后获取积分
-        /*if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) {
-            Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL);
-            BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue);
-            BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney());
-            Integer integral = Integer.valueOf(integralBig.toString());
-            memberTotalChangeDto.setChangeIntegral(integral);
-            memberTotalChangeDto.setTypeIntegral(2);
-        }*/
         // 设置会员支付金额和支付时间
         memberTotalChangeDto.setPayMoney(order.getPayMoney().negate());
         // 根据商品存在状态,设置会员统计信息

--
Gitblit v1.7.1