From 57f0ac728903401fd0123ee300eb178bb569a08e Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 22 三月 2024 14:44:11 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 132 +++++++++++++++++-------------------------- 1 files changed, 53 insertions(+), 79 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 3c3cb57..a4e598f 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 @@ -196,7 +196,7 @@ String goodsId; Integer buyNum; BigDecimal buyNumBig; - String memberCouponId; + Long memberCouponId; Goods goods; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; @@ -226,7 +226,7 @@ BigDecimal orderPayDeposit = new BigDecimal("0.00"); BigDecimal orderPayMoney = new BigDecimal("0.00"); // 遍历购买商品列表 - HashSet<String> userCouponIdSet = new HashSet<>(); + HashSet<Long> userCouponIdSet = new HashSet<>(); for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { appSureOrderGoodsVo = new AppSureOrderGoodsVo(); discountMoney = BigDecimal.ZERO; @@ -263,8 +263,11 @@ goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; // 处理优惠券 - if (StringUtils.isNotBlank(memberCouponId)) { - appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + if (null != memberCouponId) { + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId.toString()); + System.err.println(JSON.toJSONString(appMemberCouponVoMap)); + System.err.println(memberCouponId); + System.err.println(JSON.toJSONString(appMemberCouponVo)); if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { couponType = appMemberCouponVo.getCouponType(); if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { @@ -274,7 +277,7 @@ goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; userCouponIdSet.add(memberCouponId); - appSureOrderGoodsVo.setMemberCouponId(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId.toString()); } } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { discountPercent = appMemberCouponVo.getDiscountPercent(); @@ -282,7 +285,7 @@ discountMoney = goodsTotalPrice.subtract(goodsRealPrice); useCoupon = 1; userCouponIdSet.add(memberCouponId); - appSureOrderGoodsVo.setMemberCouponId(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId.toString()); } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { discountMoney = appMemberCouponVo.getDiscountMoney(); if (goodsTotalPrice.compareTo(discountMoney) > 0) { @@ -292,7 +295,7 @@ } useCoupon = 1; userCouponIdSet.add(memberCouponId); - appSureOrderGoodsVo.setMemberCouponId(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId.toString()); } } } @@ -559,7 +562,7 @@ BigDecimal buyNumBig; Integer serviceNum; Integer goodsNum = 0; - String memberCouponId; + Long memberCouponId; Goods goods = null; GoodsFile goodsFile; BigDecimal goodsPrice; @@ -636,7 +639,7 @@ goodsRealPrice = goodsTotalPrice; // 如果使用了优惠券,计算优惠后的价格 if (memberCouponId != null) { - appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); + appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId.toString()); // 如果优惠券适用于该商品 if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { couponType = appMemberCouponVo.getCouponType(); @@ -663,7 +666,7 @@ discountMoney = goodsTotalPrice; } } - memberCouponSJ.add(memberCouponId); + memberCouponSJ.add(memberCouponId + ""); } appSureOrderGoodsVo.setUseCoupon(useCoupon); appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); @@ -2237,7 +2240,11 @@ @Transactional @GlobalTransactional(rollbackFor = Exception.class) public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) { - MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData(); + R<MerVerifyCouponGetVo> verifyCoupon = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()); + if(verifyCoupon.getCode() != 200){ + throw new ServiceException(verifyCoupon.getMsg()); + } + MerVerifyCouponGetVo verifyCouponGetVo = verifyCoupon.getData(); MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyCouponDto.getUserId()).getData(); Long userId = verifyCouponGetVo.getUserId(); @@ -2591,7 +2598,7 @@ BigDecimal buyNumBig; Integer serviceNum; Integer goodsNum = 0; - String memberCouponId; + Long memberCouponId; Goods goods; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; @@ -2668,7 +2675,7 @@ goodsRealPrice = BigDecimal.ZERO; discountMoney = goodsTotalPrice.subtract(goodsRealPrice); } - memberCouponSJ.add(memberCouponId); + memberCouponSJ.add(memberCouponId + ","); } } goodsDeposit = goods.getSubscription(); @@ -3870,7 +3877,7 @@ userIdList.add(mgtBasePlatformDto.getUserId()); } else { MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept(); - mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId()); + mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId()); mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData(); userIdList = mgtUserIdByDept.getUserIdList(); } @@ -3903,8 +3910,10 @@ MgtSimpleShopVo simpleShopVo; HashSet<String> set = new HashSet<>(); // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 - for (Long entity : shopIdList) { - set.add(entity.toString()); + if(null != shopIdList){ + for (Long entity : shopIdList) { + set.add(entity.toString()); + } } String joinedString = String.join(",", set); MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); @@ -3944,63 +3953,25 @@ List<Long> userIdList = new ArrayList<>(); if (mgtBasePlatformDto.getUserId() != null) { userIdList.add(mgtBasePlatformDto.getUserId()); - } - 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(); - } + } else { + List<SysUser> data = remoteUserService.getUsersByDeptId(mgtBasePlatformDto.getDeptId()).getData(); + userIdList.addAll(data.stream().map(SysUser::getUserId).collect(Collectors.toList())); } 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; + if(null != userIds){ + if(null != userIdList){ + userIdList.addAll(userIds); + }else{ + userIdList = userIds; + } + mgtBasePlatformDto.setUserIdList(userIdList); } - mgtBasePlatformDto.setUserIdList(userIdList); MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo(); @@ -4232,6 +4203,17 @@ return totalActivityTotalVo; } + //数据权限 + List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId(); + if(null != userIds){ + List<Long> userIdList = mgtBasePlatformDto.getUserIdList(); + if(null == userIdList){ + userIdList = new ArrayList<>(); + } + userIdList.addAll(userIds); + 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()){ @@ -4242,20 +4224,8 @@ shopIdList = new ArrayList<>(); shopIdList.add(mgtBasePlatformDto.getShopId()); } - //数据权限 - 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); - } + mgtBasePlatformDto.setShopIdList(shopIdList); + //获取基础统计 MgtPlTotalActivityTotalVo mgtTotalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto); totalActivityTotalVo.setOrderTotal(mgtTotalActivityTotalVo.getOrderTotal()); @@ -4636,7 +4606,11 @@ // 创建MerVerifyCouponVo对象 MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 - MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData(); + R<MerVerifyCouponGetVo> verifyCoupon = remoteCouponService.getVerifyCoupon(Long.valueOf(verifyCode)); + if(verifyCoupon.getCode() != 200){ + throw new ServiceException(verifyCoupon.getMsg()); + } + MerVerifyCouponGetVo verifyCouponGetVo = verifyCoupon.getData(); MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); // 检查优惠券状态 int couponStatus = memberCoupon.getCouponStatus(); -- Gitblit v1.7.1