From bb95ec391d10f04702822705ecb82c027e849b98 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 15 八月 2023 19:16:09 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 127 +++++++++++++++++++++++++++++------------- 1 files changed, 87 insertions(+), 40 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 6da268a..498dc32 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 @@ -164,7 +164,7 @@ .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); Boolean haveDeposit = false; for (Goods goods : goodsList) { - if (goods.getSubscription() != null && goods.getSubscription().compareTo(BigDecimal.ZERO) > 0) { + if (goods.getSubscriptionFlag()==1&&goods.getSubscription() != null && goods.getSubscription().compareTo(BigDecimal.ZERO) > 0) { haveDeposit = true; } } @@ -219,6 +219,7 @@ appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); appSureOrderGoodsVo.setGoodsIntroduction(goods.getGoodsIntroduction()); appSureOrderGoodsVo.setGoodsType(goods.getGoodsType()); + appSureOrderGoodsVo.setGoodsTag(goods.getGoodsTags()); // 获取商品图片 goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); @@ -275,9 +276,9 @@ appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); appSureOrderGoodsVo.setCouponDiscount(discountMoney); appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); - // 获取商品押金 + // 获取商品订金 goodsDeposit = goods.getSubscription(); - if (goodsDeposit != null && goodsDeposit.compareTo(BigDecimal.ZERO) > 0) { + if (goods.getSubscriptionFlag()==1 && goodsDeposit != null && goodsDeposit.compareTo(BigDecimal.ZERO) > 0) { goodsDeposit = goodsDeposit.multiply(buyNumBig); } else { if (haveDeposit) { @@ -448,6 +449,7 @@ appPanicBuyVo.setGoodsName(goods.getGoodsName()); appPanicBuyVo.setGoodsIntroduction(goods.getGoodsIntroduction()); appPanicBuyVo.setGoodsType(goods.getGoodsType()); + appPanicBuyVo.setGoodsTag(goods.getGoodsTags()); //商品图片 goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); appPanicBuyVo.setGoodsPicture(goodsFile.getFileUrl()); @@ -1301,6 +1303,9 @@ public MerVerifyOrderVo verifyOrder(String orderId, Long shopId) { // 创建返回对象 MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + if(orderId.contains("+")){ + orderId = orderId.substring(0, orderId.indexOf("+")); + } // 根据订单ID获取订单信息 Order order = this.getById(orderId); if (order.getOrderStatus() != 2) { @@ -1602,22 +1607,41 @@ @Transactional public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) { MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData(); + MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyCouponDto.getUserId()).getData(); - if (!shopRelUserVo.getShopId().equals(verifyCouponGetVo.getMemberCoupon().getShopId())) { - throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + Long userId = verifyCouponGetVo.getUserId(); + Long shopId = shopRelUserVo.getShopId(); + Shop shop = remoteShopService.getShop(shopId).getData(); + // 调用remoteMemberService的getMember方法获取Member对象 + Member member = remoteMemberService.getMember(userId).getData(); + //如果是商户优惠券,验证商户一致 + if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) { + if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + if(memberCoupon.getShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } } + //如果是平台优惠券,当用户绑定商户时验证商户一致 + if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) { + if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + if(memberCoupon.getShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + } + memberCoupon.setShopId(shopId); // 创建MerVerifyCouponVo对象 MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 List<Goods> goodsList = verifyCouponGetVo.getGoodsList(); - Long userId = verifyCouponGetVo.getUserId(); - // 调用remoteMemberService的getMember方法获取Member对象 - Member member = remoteMemberService.getMember(userId).getData(); merVerifyCouponVo.setUserName(member.getRealName()); merVerifyCouponVo.setUserMobile(member.getMobile()); merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom()); - merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName()); - merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime()); + merVerifyCouponVo.setCouponName(memberCoupon.getCouponName()); + merVerifyCouponVo.setCreateTime(memberCoupon.getReceiveTime()); // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性 List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream() .map(goods -> { @@ -1639,7 +1663,6 @@ .collect(Collectors.toList()); // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList merVerifyCouponVo.setGoodsList(merCouponGoodsList); - MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); //生成服务 ConsumerGoods consumerGoods; String consumerGoodsId; @@ -1680,8 +1703,19 @@ consumerGoods.setSourceFrom(1); consumerGoodsList.add(consumerGoods); } - remoteCouponService.useMemberCoupon(memberCoupon.getId()); + MerVerifyMemberCouponDto merVerifyMemberCouponDto = new MerVerifyMemberCouponDto(); + merVerifyMemberCouponDto.setCouponId(memberCoupon.getId()); + merVerifyMemberCouponDto.setShopId(shopId); + remoteCouponService.sureMemberCoupon(merVerifyMemberCouponDto); consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); + if (member.getBindingFlag() != 1) { + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setBindingFlag(1); + appMemberBindingDto.setShopId(shop.getShopId()); + appMemberBindingDto.setShopName(shop.getShopName()); + appMemberBindingDto.setUserId(memberCoupon.getUserId()); + remoteMemberService.updateMemberBinding(appMemberBindingDto); + } merVerifyCouponVo.setVerifyStatus(2); return merVerifyCouponVo; } @@ -1703,38 +1737,32 @@ throw new ServiceException(AppErrorConstant.COUPON_USED); } ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyPrizeDto.getUserId()).getData(); - Shop shop = remoteShopService.getShop(shopRelUserVo.getShopId()).getData(); + Long shopId = shopRelUserVo.getShopId(); + Shop shop = remoteShopService.getShop(shopId).getData(); + //平台奖品判断 if (memberGiftRecord.getGiftFrom() == 1) { BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData(); - if(birthdayCard!=null){ + //判断生日活动状态 + if(birthdayCard!=null&&birthdayCard.getCardStatus()==1){ + shop = remoteShopService.getShop(shopId).getData(); //判断指定区域全部店铺 if(birthdayCard.getAreaFlag()==2&&birthdayCard.getShopFlag()==1&&!StringUtils.checkString(birthdayCard.getDesignatedArea(),shop.getShopCityCode())){ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } //判断指定店铺 - if(birthdayCard.getShopFlag()==2&&!StringUtils.checkString(birthdayCard.getApplicableShop(),shop.getShopId().toString())){ + if(birthdayCard.getShopFlag()==2&&!StringUtils.checkString(birthdayCard.getApplicableShop(),shopId.toString())){ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } }else{ - throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR); } } - if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shop.getShopId())) { + //商户奖品判断 + if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) { throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData(); - if(member.getBindingFlag()==0){ - //绑定用户 - if(shop==null){ - shop = remoteShopService.getShop(shop.getShopId()).getData(); - } - AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); - appMemberBindingDto.setBindingFlag(1); - appMemberBindingDto.setShopId(shop.getShopId()); - appMemberBindingDto.setShopName(shop.getShopName()); - appMemberBindingDto.setUserId(memberGiftRecord.getUserId()); - remoteMemberService.updateMemberBinding(appMemberBindingDto); - } + merVerifyAwardVo.setUserName(member.getRealName()); merVerifyAwardVo.setUserMobile(member.getMobile()); if (memberGiftRecord.getGiftFrom() == 1) { @@ -1799,9 +1827,9 @@ if (member.getBindingFlag() != 1) { AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); appMemberBindingDto.setBindingFlag(1); - appMemberBindingDto.setShopId(merVerifyPrizeDto.getShopId()); + appMemberBindingDto.setShopId(shop.getShopId()); appMemberBindingDto.setShopName(shop.getShopName()); - appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId()); + appMemberBindingDto.setUserId(memberGiftRecord.getUserId()); remoteMemberService.updateMemberBinding(appMemberBindingDto); } merVerifyAwardVo.setPrizeId(merVerifyPrizeDto.getPrizeId()); @@ -3192,17 +3220,28 @@ } else if (couponStatus != 1) { throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); } + Long userId = verifyCouponGetVo.getUserId(); + Member member = remoteMemberService.getMember(userId).getData(); + //如果是商户优惠券,验证商户一致 if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) { - throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + if(memberCoupon.getShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } } - //如果是平台优惠券 - if (memberCoupon.getCouponFrom() == 1 && memberCoupon.getShopId() == null) { - memberCoupon.setShopId(shopId); + //如果是平台优惠券,当用户绑定商户时验证商户一致 + if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) { + if(!memberCoupon.getShopId().equals(member.getRelationShopId())){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + if(memberCoupon.getShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } } List<Goods> goodsList = verifyCouponGetVo.getGoodsList(); - Long userId = verifyCouponGetVo.getUserId(); // 调用remoteMemberService的getMember方法获取Member对象 - Member member = remoteMemberService.getMember(userId).getData(); merVerifyCouponVo.setUserName(member.getRealName()); merVerifyCouponVo.setUserMobile(member.getMobile()); merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom()); @@ -3252,9 +3291,17 @@ } Shop shop = null; Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData(); + //判断是否在绑定店铺核销 + if(member.getBindingFlag()==1){ + if(!member.getRelationShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } + } + //平台奖品判断 if (memberGiftRecord.getGiftFrom() == 1) { BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData(); - if(birthdayCard!=null){ + //判断生日活动状态 + if(birthdayCard!=null&&birthdayCard.getCardStatus()==1){ shop = remoteShopService.getShop(shopId).getData(); //判断指定区域全部店铺 if(birthdayCard.getAreaFlag()==2&&birthdayCard.getShopFlag()==1&&!StringUtils.checkString(birthdayCard.getDesignatedArea(),shop.getShopCityCode())){ @@ -3265,13 +3312,13 @@ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } }else{ - throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR); } } + //商户奖品判断 if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) { throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } - merVerifyAwardVo.setUserName(member.getRealName()); merVerifyAwardVo.setUserMobile(member.getMobile()); -- Gitblit v1.7.1