From b0b52cbabf7a4bc8e00fc328d14ac05336d0221e Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期六, 15 七月 2023 20:07:44 +0800 Subject: [PATCH] 员工端 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 82 +++++++++++++++++++++++++++++----------- 1 files changed, 59 insertions(+), 23 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 6b2ad45..6120b1d 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 @@ -152,14 +152,19 @@ BigDecimal orderPayDeposit = new BigDecimal("0.00"); BigDecimal orderPayMoney = new BigDecimal("0.00"); // 遍历购买商品列表 + HashSet<String> userCouponIdSet = new HashSet<>(); for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { appSureOrderGoodsVo = new AppSureOrderGoodsVo(); + discountMoney = BigDecimal.ZERO; useCoupon = 0; goodsId = appBuyGoodsDto.getGoodsId(); buyNum = appBuyGoodsDto.getBuyNum(); memberCouponId = appBuyGoodsDto.getMemberCouponId(); // 获取商品信息 goods = remoteGoodsService.getGoods(goodsId).getData(); + if(goods.getGoodsStatus()!=1){ + throw new ServiceException(AppErrorConstant.GOODS_DOWN); + } // 设置订单商品信息 appSureOrderGoodsVo.setGoodsId(goodsId); appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); @@ -183,7 +188,7 @@ goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; // 处理优惠券 - if (memberCouponId != null) { + if (StringUtils.isNotBlank(memberCouponId)) { appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { couponType = appMemberCouponVo.getCouponType(); @@ -193,16 +198,25 @@ discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); useCoupon = 1; + userCouponIdSet.add(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId); } } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP); discountMoney = goodsRealPrice.subtract(goodsTotalPrice); useCoupon = 1; + userCouponIdSet.add(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId); } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { discountMoney = appMemberCouponVo.getDiscountMoney(); goodsRealPrice = goodsTotalPrice.subtract(discountMoney); + if(goodsRealPrice.compareTo(BigDecimal.ZERO)<0){ + goodsRealPrice = BigDecimal.ZERO; + } useCoupon = 1; + userCouponIdSet.add(memberCouponId); + appSureOrderGoodsVo.setMemberCouponId(memberCouponId); } } } @@ -220,33 +234,60 @@ couponDiscount = couponDiscount.add(discountMoney); orderPayDeposit = orderPayDeposit.add(goodsDeposit); orderPayMoney = orderPayMoney.add(goodsRealPrice); + appSureOrderGoodsVoList.add(appSureOrderGoodsVo); + } + //处理优惠券列表 + if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { // 获取商品关联优惠券 appGoodsMemberCouponVoList = new ArrayList<>(); - if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { + for(AppSureOrderGoodsVo sureOrderGoodsVo : appSureOrderGoodsVoList){ for (AppMemberCouponVo entity : appMemberCouponVoList) { if (StringUtils.isBlank(entity.getRelGoodsIds())) { if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) { moneyThreshold = entity.getMoneyThreshold(); - if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { - appGoodsMemberCouponVoList.add(entity); + if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) { + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } }else{ - appGoodsMemberCouponVoList.add(entity); + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } - } else if (entity.getRelGoodsIds().contains(goodsId)) { + } else if (entity.getRelGoodsIds().contains(sureOrderGoodsVo.getGoodsId())) { if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) { moneyThreshold = entity.getMoneyThreshold(); - if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { - appGoodsMemberCouponVoList.add(entity); + if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) { + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } }else{ - appGoodsMemberCouponVoList.add(entity); + if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + }else{ + if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){ + appGoodsMemberCouponVoList.add(entity); + } + } } } } - appSureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); + sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); } - appSureOrderGoodsVoList.add(appSureOrderGoodsVo); } // 设置订单相关金额 appSureOrderVo.setOrderGoodsMoney(orderGoodsMoney); @@ -297,6 +338,9 @@ throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); } Goods goods = remoteGoodsService.getGoods(goodsId).getData(); + if(goods.getGoodsStatus()!=1){ + throw new ServiceException(AppErrorConstant.GOODS_DOWN); + } appPanicBuyVo.setGoodsId(goodsId); appPanicBuyVo.setGoodsName(goods.getGoodsName()); appPanicBuyVo.setGoodsIntroduction(goods.getGoodsIntroduction()); @@ -913,18 +957,10 @@ */ @Override public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { - List<Long> shopIds = merHomeShopTotalVo.getShopIds(); - if (null != shopIds && shopIds.size() != 0) { - Integer todayShop = userServiceRecordMapper.countShopServicePersons(shopIds); - merHomeShopTotalVo = orderMapper.getMerHomeShopsTotalVo(shopIds); - merHomeShopTotalVo.setTodayShop(todayShop); - }else{ - Long shopId = merHomeShopTotalVo.getShopId(); - Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); - merHomeShopTotalVo.setTodayShop(todayShop); - merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); - - } + Long shopId = merHomeShopTotalVo.getShopId(); + Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); + merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); + merHomeShopTotalVo.setTodayShop(todayShop); return merHomeShopTotalVo; } -- Gitblit v1.7.1