From a8e56f03a22c722ccf3f67a408919e6c8f256de3 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期四, 10 八月 2023 01:45:01 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |   61 ++++++++++++++++++++++++------
 1 files changed, 49 insertions(+), 12 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 791b67c..865eb95 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
@@ -41,6 +41,7 @@
 import com.ruoyi.system.api.domain.poji.goods.Goods;
 import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
 import com.ruoyi.system.api.domain.poji.goods.ShopGoods;
+import com.ruoyi.system.api.domain.poji.member.BirthdayCard;
 import com.ruoyi.system.api.domain.poji.member.Member;
 import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord;
@@ -694,7 +695,6 @@
         order.setDiscountMoney(couponDiscount);
         order.setReceivableMoney(orderPayMoney);
         order.setReceivableDeposit(orderPayDeposit);
-        order.setChangeReceivableMoney(orderPayMoney);
         // 根据支付类型计算支付金额
         if (appPlaceOrderDto.getPayType() == 1) {
             order.setPayMoney(orderPayMoney);
@@ -711,6 +711,7 @@
             order.setPayType(2);
             order.setCloseFlag(0);
         }
+        order.setChangeReceivableMoney(appPlaceOrderVo.getUnpaidMoney());
         order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
@@ -1028,7 +1029,6 @@
         order.setDiscountMoney(couponDiscount);
         order.setReceivableMoney(orderPayMoney);
         order.setReceivableDeposit(orderPayDeposit);
-        order.setChangeReceivableMoney(orderPayMoney);
         order.setActivityId(activityId);
         order.setActivityName(activityGoodsGetVo.getActivityName());
         // 根据支付类型设置订单支付金额,在线支付金额,订单支付金额,未支付金额,关闭标志
@@ -1039,6 +1039,7 @@
             appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
             order.setPayType(1);
             order.setCloseFlag(1);
+            order.setChangeReceivableMoney(orderGoodsMoney.subtract(couponDiscount));
         } else if (appPlaceActivityDto.getPayType() == 2) {
             order.setPayMoney(orderPayDeposit);
             order.setOnlinePayMoney(orderPayDeposit);
@@ -1046,6 +1047,7 @@
             appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
             order.setPayType(2);
             order.setCloseFlag(0);
+            order.setChangeReceivableMoney(orderGoodsMoney.subtract(couponDiscount).subtract(orderPayDeposit));
         }
         // 设置订单备注,商品数量,创建时间
         order.setOrderRemark(appPlaceActivityDto.getOrderRemark());
@@ -1306,7 +1308,11 @@
         merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney());
         merVerifyOrderVo.setCouponDiscount(order.getCouponMoney());
         merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit());
-        merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney());
+        if(order.getPayType()==1){
+            merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney()));
+        }else{
+            merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit()));
+        }
         merVerifyOrderVo.setPayMoney(order.getPayMoney());
         merVerifyOrderVo.setOrderRemark(order.getOrderRemark());
         merVerifyOrderVo.setCreateTime(order.getCreateTime());
@@ -1324,7 +1330,7 @@
                 merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO);
             }
         }
-        merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney()));
+        merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(merVerifyOrderVo.getReceiveMoney()));
         // 根据订单用户ID获取用户信息
         Member member = remoteMemberService.getMember(order.getUserId()).getData();
         merVerifyOrderVo.setUserId(order.getUserId());
@@ -1450,7 +1456,11 @@
         merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney());
         merVerifyOrderVo.setCouponDiscount(order.getCouponMoney());
         merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit());
-        merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney());
+        if(order.getPayType()==1){
+            merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getPayMoney()));
+        }else{
+            merVerifyOrderVo.setReceivableMoney(order.getOrderMoney().subtract(order.getCouponMoney()).subtract(order.getReceivableDeposit()));
+        }
         merVerifyOrderVo.setPayMoney(order.getPayMoney());
         merVerifyOrderVo.setOrderRemark(order.getOrderRemark());
         merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
@@ -1468,7 +1478,7 @@
                 merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO);
             }
         }
-        merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney()));
+        merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(merVerifyOrderVo.getReceiveMoney()));
         Member member = remoteMemberService.getMember(order.getUserId()).getData();
         merVerifyOrderVo.setUserId(order.getUserId());
         merVerifyOrderVo.setUserName(member.getRealName());
@@ -3189,10 +3199,39 @@
         if (memberGiftRecord == null || memberGiftRecord.getVerifyStatus() != 1) {
             throw new ServiceException(AppErrorConstant.COUPON_USED);
         }
+        Shop shop = null;
+        if (memberGiftRecord.getGiftFrom() == 1) {
+            BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
+            if(birthdayCard!=null){
+                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(),shopId.toString())){
+                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+                }
+            }else{
+                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+            }
+        }
         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) {
@@ -3200,8 +3239,8 @@
         } else {
             merVerifyAwardVo.setGiftFrom("商户生日卡");
         }
-
         merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
+        //礼物类型1优惠券2商品3现金4实物
         switch (memberGiftRecord.getGiftType()) {
             case 1:
                 merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
@@ -3260,11 +3299,6 @@
      */
     @Override
     public MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto) {
-        if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) {
-            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
-            merTotalDto.setShopIdList(shopIdList);
-            merTotalDto.setShopId(null);
-        }
         if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) {
             List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
             merTotalDto.setShopIdList(shopIdList);
@@ -3675,6 +3709,7 @@
             goodsTotalChangeDtoList.add(goodsTotalChangeDto);
         }
         //更新商品统计
+        remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
         // 更新商户统计信息
         ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setShopId(order.getShopId());
@@ -3695,6 +3730,8 @@
             Integer integral = Integer.valueOf(integralBig.toString());
             memberTotalChangeDto.setChangeIntegral(integral);
             memberTotalChangeDto.setTypeIntegral(1);
+            memberTotalChangeDto.setOrderId(orderId);
+            memberTotalChangeDto.setOrderNo(order.getOrderNo());
         }
         // 设置会员支付金额和支付时间
         memberTotalChangeDto.setPayMoney(order.getPayMoney());

--
Gitblit v1.7.1