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 |  104 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 66 insertions(+), 38 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 c1b14d1..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
@@ -1,21 +1,13 @@
 package com.ruoyi.order.service.impl.order;
 
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.binarywang.wxpay.bean.ecommerce.*;
-import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingRequest.Receiver;
-import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum;
+import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult;
+import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
 import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
-import com.github.binarywang.wxpay.config.WxPayConfig;
-import com.github.binarywang.wxpay.exception.WxPayException;
-import com.github.binarywang.wxpay.service.WxPayService;
-import com.google.common.base.Joiner;
-import com.google.gson.Gson;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -23,7 +15,6 @@
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.CodeFactoryUtil;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.order.config.WxPayConfiguration;
 import com.ruoyi.order.domain.dto.*;
 import com.ruoyi.order.domain.pojo.account.OrderPayment;
 import com.ruoyi.order.domain.pojo.account.OrderRefund;
@@ -50,11 +41,11 @@
 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;
 import com.ruoyi.system.api.domain.poji.shop.Shop;
-import com.ruoyi.system.api.domain.poji.shop.ShopProportionVo;
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
@@ -67,7 +58,6 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -132,8 +122,8 @@
     @Autowired
     private RedissonClient redissonClient;
 
-    @Autowired
-    private WxPayService wxService;
+    /*@Autowired
+    private WxPayService wxService;*/
 
     @Resource
     private PaymentMessageService paymentMessageService;
@@ -705,7 +695,6 @@
         order.setDiscountMoney(couponDiscount);
         order.setReceivableMoney(orderPayMoney);
         order.setReceivableDeposit(orderPayDeposit);
-        order.setChangeReceivableMoney(orderPayMoney);
         // 根据支付类型计算支付金额
         if (appPlaceOrderDto.getPayType() == 1) {
             order.setPayMoney(orderPayMoney);
@@ -722,6 +711,7 @@
             order.setPayType(2);
             order.setCloseFlag(0);
         }
+        order.setChangeReceivableMoney(appPlaceOrderVo.getUnpaidMoney());
         order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
@@ -743,9 +733,9 @@
         }
 
         // 小程序微信下单支付
-        createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo,
+        /*createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo,
                 orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
-                appPlaceOrderDto.getSpbillCreateIp(), goodsNameList);
+                appPlaceOrderDto.getSpbillCreateIp(), goodsNameList);*/
 
 
         //减去优惠券
@@ -782,7 +772,7 @@
      * @param payerClientIp
      * @param goodsNameList
      */
-    private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
+    /*private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                  String goodsName, String orderNo,
                                  String orderId, BigDecimal payMoney,
                                  String openid, String payerClientIp, List<String> goodsNameList){
@@ -857,7 +847,7 @@
         } catch (WxPayException e) {
             throw new ServiceException(e.getMessage());
         }
-    }
+    }*/
 
 
     /**
@@ -1039,7 +1029,6 @@
         order.setDiscountMoney(couponDiscount);
         order.setReceivableMoney(orderPayMoney);
         order.setReceivableDeposit(orderPayDeposit);
-        order.setChangeReceivableMoney(orderPayMoney);
         order.setActivityId(activityId);
         order.setActivityName(activityGoodsGetVo.getActivityName());
         // 根据支付类型设置订单支付金额,在线支付金额,订单支付金额,未支付金额,关闭标志
@@ -1050,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);
@@ -1057,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());
@@ -1317,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());
@@ -1335,9 +1330,10 @@
                 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());
         merVerifyOrderVo.setUserName(member.getRealName());
         merVerifyOrderVo.setUserMobile(member.getMobile());
         merVerifyOrderVo.setCloseFlag(order.getCloseFlag());
@@ -1460,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);
@@ -1478,8 +1478,9 @@
                 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());
         merVerifyOrderVo.setUserMobile(member.getMobile());
         merVerifyOrderVo.setCloseFlag(order.getCloseFlag());
@@ -1497,12 +1498,12 @@
         payRecord.setPayType(merVerifyOrderDto.getPayType());
         payRecordService.save(payRecord);
 
-        submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOrderMoney());
+        //submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOrderMoney());
 
         return merVerifyOrderVo;
     }
 
-    private void submitProfitSharing(String orderId, String orderNo, Long shopId, BigDecimal orderMoney) {
+    /*private void submitProfitSharing(String orderId, String orderNo, Long shopId, BigDecimal orderMoney) {
         String sendMessage = "";
         String resultMessage = "";
         try {
@@ -1577,7 +1578,7 @@
 
         // 保存分账信息
         paymentMessageService.savePaymentMessage("4", orderId, sendMessage, resultMessage);
-    }
+    }*/
 
     /**
      * @param merVerifyCouponDto
@@ -3198,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) {
@@ -3209,8 +3239,8 @@
         } else {
             merVerifyAwardVo.setGiftFrom("商户生日卡");
         }
-
         merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
+        //礼物类型1优惠券2商品3现金4实物
         switch (memberGiftRecord.getGiftType()) {
             case 1:
                 merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
@@ -3269,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);
@@ -3684,6 +3709,7 @@
             goodsTotalChangeDtoList.add(goodsTotalChangeDto);
         }
         //更新商品统计
+        remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
         // 更新商户统计信息
         ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setShopId(order.getShopId());
@@ -3700,10 +3726,12 @@
         if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) {
             Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL);
             BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue);
-            BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney());
+            BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney()).setScale(0,BigDecimal.ROUND_HALF_UP);
             Integer integral = Integer.valueOf(integralBig.toString());
             memberTotalChangeDto.setChangeIntegral(integral);
             memberTotalChangeDto.setTypeIntegral(1);
+            memberTotalChangeDto.setOrderId(orderId);
+            memberTotalChangeDto.setOrderNo(order.getOrderNo());
         }
         // 设置会员支付金额和支付时间
         memberTotalChangeDto.setPayMoney(order.getPayMoney());
@@ -3918,7 +3946,7 @@
         BigDecimal onlinePayMoney = order.getOnlinePayMoney();
         if(BigDecimal.ZERO.compareTo(onlinePayMoney) < 0){
             // 订单支付金额大于0,可发起退款
-            orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund);
+            //orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund);
         }
 
         orderRefund.setRefundStatus(1);
@@ -3928,7 +3956,7 @@
     /**
      * 申请退款API
      */
-    private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){
+    /*private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){
         try {
             // 创建支付订单
             OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId);
@@ -3967,7 +3995,7 @@
         } catch (WxPayException e) {
             throw new ServiceException(e.getMessage());
         }
-    }
+    }*/
 
     /**
      * @param staffTotalDto

--
Gitblit v1.7.1