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