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