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 | 298 ++++++++++++++++++++++++----------------------------------- 1 files changed, 122 insertions(+), 176 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 f276d42..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 @@ -1829,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); @@ -3076,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); // 如果列表不为空 @@ -3155,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); @@ -3201,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); // 如果列表不为空 @@ -3362,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; } @@ -3871,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()); @@ -3972,6 +3992,17 @@ } } } + //数据权限 + 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); @@ -4200,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()){ @@ -4210,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()); @@ -4317,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); @@ -4387,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; } @@ -4448,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()); @@ -4480,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){ @@ -4533,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()){ @@ -4560,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){ @@ -5267,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); @@ -5325,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()); @@ -5539,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