From f19155dcda0413563963d545eed3045364814c0d Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期六, 12 八月 2023 05:14:27 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   99 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 64 insertions(+), 35 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 865eb95..5815a6a 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
@@ -312,15 +312,19 @@
                 for (AppMemberCouponVo entity : appMemberCouponVoList) {
                     if (StringUtils.isBlank(entity.getRelGoodsIds()) || entity.getRelGoodsIds().contains(sureOrderGoodsVo.getGoodsId())) {
                         if (entity.getCouponType() == 1) {
-                            if (entity.getMoneyThreshold().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) < 0 && entity.getDiscountMoney().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) < 0) {
+                            if (entity.getMoneyThreshold().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) <= 0) {
                                 appGoodsMemberCouponVoList.add(entity);
                             }
+                            /*if (entity.getMoneyThreshold().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) < 0 && entity.getDiscountMoney().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) < 0) {
+                                appGoodsMemberCouponVoList.add(entity);
+                            }*/
                         } else if (entity.getCouponType() == 2) {
                             appGoodsMemberCouponVoList.add(entity);
                         } else if (entity.getCouponType() == 3) {
-                            if (entity.getDiscountMoney().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) < 0) {
+                            appGoodsMemberCouponVoList.add(entity);
+                            /*if (entity.getDiscountMoney().compareTo(sureOrderGoodsVo.getGoodsTotalPrice()) < 0) {
                                 appGoodsMemberCouponVoList.add(entity);
-                            }
+                            }*/
                         }
 
                     }
@@ -616,6 +620,10 @@
                         goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                         useCoupon = 1;
                     }
+                    if(goodsRealPrice.compareTo(BigDecimal.ZERO)<0){
+                        goodsRealPrice = BigDecimal.ZERO;
+                        discountMoney = goodsTotalPrice;
+                    }
                 }
                 memberCouponSJ.add(memberCouponId);
             }
@@ -695,12 +703,14 @@
         order.setDiscountMoney(couponDiscount);
         order.setReceivableMoney(orderPayMoney);
         order.setReceivableDeposit(orderPayDeposit);
+        order.setOfflinePayMoney(BigDecimal.ZERO);
         // 根据支付类型计算支付金额
         if (appPlaceOrderDto.getPayType() == 1) {
             order.setPayMoney(orderPayMoney);
             order.setOnlinePayMoney(orderPayMoney);
             appPlaceOrderVo.setPayMoney(orderPayMoney);
             appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
+            order.setChangeReceivableMoney(orderGoodsMoney.subtract(couponDiscount));
             order.setPayType(1);
             order.setCloseFlag(1);
         } else if (appPlaceOrderDto.getPayType() == 2) {
@@ -708,10 +718,10 @@
             order.setOnlinePayMoney(orderPayDeposit);
             appPlaceOrderVo.setPayMoney(orderPayDeposit);
             appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
+            order.setChangeReceivableMoney(orderGoodsMoney.subtract(couponDiscount).subtract(orderPayDeposit));
             order.setPayType(2);
             order.setCloseFlag(0);
         }
-        order.setChangeReceivableMoney(appPlaceOrderVo.getUnpaidMoney());
         order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
@@ -1031,6 +1041,7 @@
         order.setReceivableDeposit(orderPayDeposit);
         order.setActivityId(activityId);
         order.setActivityName(activityGoodsGetVo.getActivityName());
+        order.setOfflinePayMoney(BigDecimal.ZERO);
         // 根据支付类型设置订单支付金额,在线支付金额,订单支付金额,未支付金额,关闭标志
         if (appPlaceActivityDto.getPayType() == 1) {
             order.setPayMoney(orderPayMoney);
@@ -1309,7 +1320,7 @@
         merVerifyOrderVo.setCouponDiscount(order.getCouponMoney());
         merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit());
         if(order.getPayType()==1){
-            merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney()));
+            merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney());
         }else{
             merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit()));
         }
@@ -1669,6 +1680,7 @@
             consumerGoods.setSourceFrom(1);
             consumerGoodsList.add(consumerGoods);
         }
+        remoteCouponService.useMemberCoupon(memberCoupon.getId());
         consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
         merVerifyCouponVo.setVerifyStatus(2);
         return merVerifyCouponVo;
@@ -1691,10 +1703,38 @@
             throw new ServiceException(AppErrorConstant.COUPON_USED);
         }
         ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyPrizeDto.getUserId()).getData();
-        if (!shopRelUserVo.getShopId().equals(memberGiftRecord.getShopId())) {
+        Shop shop = remoteShopService.getShop(shopRelUserVo.getShopId()).getData();
+        if (memberGiftRecord.getGiftFrom() == 1) {
+            BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
+            if(birthdayCard!=null){
+                //判断指定区域全部店铺
+                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())){
+                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+                }
+            }else{
+                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+            }
+        }
+        if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shop.getShopId())) {
             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) {
@@ -1752,13 +1792,14 @@
                 break;
         }
         merVerifyAwardVo.setCreateTime(memberGiftRecord.getCreateTime());
-        memberGiftRecord.setVerifyStatus(2);
-        memberGiftRecord.setVerifyTime(new Date());
+        MerVerifyPrizeFinalDto merVerifyPrizeFinalDto = new MerVerifyPrizeFinalDto();
+        merVerifyPrizeFinalDto.setPrizeId(memberGiftRecord.getPrizeId());
+        merVerifyPrizeFinalDto.setShopId(shop.getShopId());
+        remoteMemberService.verifyPrize(merVerifyPrizeFinalDto);
         if (member.getBindingFlag() != 1) {
             AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
             appMemberBindingDto.setBindingFlag(1);
             appMemberBindingDto.setShopId(merVerifyPrizeDto.getShopId());
-            Shop shop = remoteShopService.getShop(merVerifyPrizeDto.getShopId()).getData();
             appMemberBindingDto.setShopName(shop.getShopName());
             appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId());
             remoteMemberService.updateMemberBinding(appMemberBindingDto);
@@ -1803,9 +1844,9 @@
         order.setOffPayTime(new Date());
         order.setPayMoney(order.getPayMoney().add(merCloseOrderDto.getPayMoney()));
         if (order.getPayMoney().compareTo(order.getChangeReceivableMoney()) >= 0) {
-            order.setCloseFlag(0);
-        } else {
             order.setCloseFlag(1);
+        } else {
+            order.setCloseFlag(0);
         }
         this.saveOrUpdate(order);
         //创建支付记录
@@ -2028,9 +2069,9 @@
         order.setOffPayTime(nowTime);
         order.setPayType(1);
         if (order.getPayMoney().compareTo(order.getChangeReceivableMoney()) >= 0) {
-            order.setCloseFlag(0);
-        } else {
             order.setCloseFlag(1);
+        } else {
+            order.setCloseFlag(0);
         }
         this.save(order);
         //创建服务
@@ -2117,7 +2158,7 @@
         payRecord.setDelFlag(0);
         payRecord.setOrderId(orderId);
         payRecord.setPayMoney(order.getPayMoney());
-        payRecord.setPayTime(order.getPayTime());
+        payRecord.setPayTime(order.getOffPayTime());
         payRecord.setPayType(2);
         payRecordService.save(payRecord);
     }
@@ -2157,7 +2198,6 @@
                     if (orderFrom == 1) {
                         orderFromDesc = "商城订单";
                     } else if(orderFrom == 2){
-
                         orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")";
                     } else {
                         orderFromDesc = "线下创建";
@@ -2166,7 +2206,6 @@
                     orderFromDesc = "商城订单";
                 }
                 merOrderPageVo.setOrderFromDesc(orderFromDesc);
-                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney()));
                 if (merOrderPageVo.getUnPaidMoney() == null) {
                     merOrderPageVo.setUnPaidMoney(zeroBig);
                 }
@@ -2195,12 +2234,11 @@
      * @return
      */
     @Override
-    public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) {
-        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page, merMemberNoClearOrderDto.getMemberUserId());
+    public List<MerMemberOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) {
+        List<MerMemberOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page, merMemberNoClearOrderDto.getMemberUserId());
         if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) {
             BigDecimal zeroBig = new BigDecimal("0.00");
-            for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) {
-                merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney()));
+            for (MerMemberOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) {
                 if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
                     merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                 }
@@ -3157,8 +3195,8 @@
         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 -> {
@@ -3181,6 +3219,7 @@
         // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
         merVerifyCouponVo.setGoodsList(merCouponGoodsList);
         merVerifyCouponVo.setVerifyStatus(1);
+        merVerifyCouponVo.setMemberCouponId(memberCoupon.getId());
         return merVerifyCouponVo;
     }
 
@@ -3200,6 +3239,7 @@
             throw new ServiceException(AppErrorConstant.COUPON_USED);
         }
         Shop shop = null;
+        Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData();
         if (memberGiftRecord.getGiftFrom() == 1) {
             BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
             if(birthdayCard!=null){
@@ -3219,19 +3259,8 @@
         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(shopId).getData();
-            }
-            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
-            appMemberBindingDto.setBindingFlag(1);
-            appMemberBindingDto.setShopId(shopId);
-            appMemberBindingDto.setShopName(shop.getShopName());
-            appMemberBindingDto.setUserId(memberGiftRecord.getUserId());
-            remoteMemberService.updateMemberBinding(appMemberBindingDto);
-        }
+
+
         merVerifyAwardVo.setUserName(member.getRealName());
         merVerifyAwardVo.setUserMobile(member.getMobile());
         if (memberGiftRecord.getGiftFrom() == 1) {

--
Gitblit v1.7.1