bug
jiangqs
2023-08-16 2e9c442b4961dc30423e8b8fa1361c45e63ef620
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;
@@ -174,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;
            }
        }
@@ -229,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());
@@ -285,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) {
@@ -322,15 +313,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);
                            }
                            }*/
                        }
                    }
@@ -454,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());
@@ -626,6 +622,10 @@
                        goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                        useCoupon = 1;
                    }
                    if(goodsRealPrice.compareTo(BigDecimal.ZERO)<0){
                        goodsRealPrice = BigDecimal.ZERO;
                        discountMoney = goodsTotalPrice;
                    }
                }
                memberCouponSJ.add(memberCouponId);
            }
@@ -705,13 +705,14 @@
        order.setDiscountMoney(couponDiscount);
        order.setReceivableMoney(orderPayMoney);
        order.setReceivableDeposit(orderPayDeposit);
        order.setChangeReceivableMoney(orderPayMoney);
        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) {
@@ -719,6 +720,7 @@
            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);
        }
@@ -743,9 +745,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 +784,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 +859,7 @@
        } catch (WxPayException e) {
            throw new ServiceException(e.getMessage());
        }
    }
    }*/
    /**
@@ -1039,9 +1041,9 @@
        order.setDiscountMoney(couponDiscount);
        order.setReceivableMoney(orderPayMoney);
        order.setReceivableDeposit(orderPayDeposit);
        order.setChangeReceivableMoney(orderPayMoney);
        order.setActivityId(activityId);
        order.setActivityName(activityGoodsGetVo.getActivityName());
        order.setOfflinePayMoney(BigDecimal.ZERO);
        // 根据支付类型设置订单支付金额,在线支付金额,订单支付金额,未支付金额,关闭标志
        if (appPlaceActivityDto.getPayType() == 1) {
            order.setPayMoney(orderPayMoney);
@@ -1050,6 +1052,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 +1060,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());
@@ -1299,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) {
@@ -1317,7 +1324,11 @@
        merVerifyOrderVo.setOrderGoodsMoney(order.getOrderMoney());
        merVerifyOrderVo.setCouponDiscount(order.getCouponMoney());
        merVerifyOrderVo.setReceivableDeposit(order.getReceivableDeposit());
        merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney());
        if(order.getPayType()==1){
            merVerifyOrderVo.setReceivableMoney(order.getReceivableMoney());
        }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 +1346,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 +1472,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 +1494,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());
@@ -1489,20 +1506,21 @@
        }
        //创建支付记录
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(order.getOrderId());
        payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney());
        payRecord.setPayTime(new Date());
        payRecord.setPayType(merVerifyOrderDto.getPayType());
        payRecordService.save(payRecord);
        submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOrderMoney());
        if(merVerifyOrderDto.getRelPayMoney().compareTo(BigDecimal.ZERO)>0){
            PayRecord payRecord = new PayRecord();
            payRecord.setDelFlag(0);
            payRecord.setOrderId(order.getOrderId());
            payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney());
            payRecord.setPayTime(new Date());
            payRecord.setPayType(merVerifyOrderDto.getPayType());
            payRecordService.save(payRecord);
        }
        //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 +1595,7 @@
        // 保存分账信息
        paymentMessageService.savePaymentMessage("4", orderId, sendMessage, resultMessage);
    }
    }*/
    /**
     * @param merVerifyCouponDto
@@ -1590,22 +1608,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.BLINDING_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 -> {
@@ -1627,7 +1664,6 @@
                .collect(Collectors.toList());
        // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
        merVerifyCouponVo.setGoodsList(merCouponGoodsList);
        MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon();
        //生成服务
        ConsumerGoods consumerGoods;
        String consumerGoodsId;
@@ -1668,7 +1704,19 @@
            consumerGoods.setSourceFrom(1);
            consumerGoodsList.add(consumerGoods);
        }
        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;
    }
@@ -1690,10 +1738,32 @@
            throw new ServiceException(AppErrorConstant.COUPON_USED);
        }
        ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyPrizeDto.getUserId()).getData();
        if (!shopRelUserVo.getShopId().equals(memberGiftRecord.getShopId())) {
        Long shopId = shopRelUserVo.getShopId();
        Shop shop = remoteShopService.getShop(shopId).getData();
        //平台奖品判断
        if (memberGiftRecord.getGiftFrom() == 1) {
            BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
            //判断生日活动状态
            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(),shopId.toString())){
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                }
            }else{
                throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR);
            }
        }
        //商户奖品判断
        if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) {
            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
        }
        Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData();
        merVerifyAwardVo.setUserName(member.getRealName());
        merVerifyAwardVo.setUserMobile(member.getMobile());
        if (memberGiftRecord.getGiftFrom() == 1) {
@@ -1751,15 +1821,16 @@
                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.setShopId(shop.getShopId());
            appMemberBindingDto.setShopName(shop.getShopName());
            appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId());
            appMemberBindingDto.setUserId(memberGiftRecord.getUserId());
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
        }
        merVerifyAwardVo.setPrizeId(merVerifyPrizeDto.getPrizeId());
@@ -1778,15 +1849,17 @@
    @Override
    public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) {
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto.getMemberUserId());
        /*if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) {
        if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) {
            BigDecimal zeroBig = new BigDecimal("0.00");
            for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) {
                merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney()));
                if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
                    merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                }
                if(merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig)<0){
                    merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                }
            }
        }*/
        }
        return merMemberNoClearOrderVoList;
    }
@@ -1802,9 +1875,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);
        //创建支付记录
@@ -1901,6 +1974,12 @@
        BigDecimal experienceMoney = new BigDecimal("0.00");
        BigDecimal serviceMoney = new BigDecimal("0.00");
        BigDecimal goodsMoney = new BigDecimal("0.00");
        List<OrderGoods> orderGoodsList = new ArrayList<>();
        ConsumerGoods consumerGoods;
        String consumerGoodsId;
        List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
        //使用优惠券
        StringJoiner memberCouponSJ = new StringJoiner(",");
        for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) {
            goodsId = appBuyGoodsDto.getGoodsId();
            memberCouponId = appBuyGoodsDto.getMemberCouponId();
@@ -1935,14 +2014,18 @@
                    } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) {
                        discountPercent = appMemberCouponVo.getDiscountPercent();
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN, 2, BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                        discountMoney = goodsTotalPrice.subtract(goodsRealPrice);
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
                        discountMoney = appMemberCouponVo.getDiscountMoney();
                        goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                    }
                    if(goodsRealPrice.compareTo(BigDecimal.ZERO)<0){
                        goodsRealPrice = BigDecimal.ZERO;
                        discountMoney = goodsTotalPrice.subtract(goodsRealPrice);
                    }
                    memberCouponSJ.add(memberCouponId);
                }
            }
            goodsDeposit = goods.getSubscription();
            if (goodsDeposit == null || goodsDeposit.compareTo(BigDecimal.ZERO) == 0) {
                goodsDeposit = new BigDecimal("0.00");
@@ -1954,6 +2037,7 @@
            couponDiscount = couponDiscount.add(discountMoney);
            orderPayDeposit = orderPayDeposit.add(goodsDeposit);
            orderPayMoney = orderPayMoney.add(goodsRealPrice);
            //创建OrderGoods
            orderGoods = new OrderGoods();
            orderGoodsId = IdUtils.simpleUUID();
@@ -1975,7 +2059,63 @@
            orderGoods.setGoodsName(goods.getGoodsName());
            orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
            orderGoods.setGoodsPicture(goodsFile.getFileUrl());
            orderGoodsService.save(orderGoods);
            orderGoodsList.add(orderGoods);
            //创建服务
            Integer buyGoodsNum = orderGoods.getBuyNum();
            //判断是否确认次数
            if (orderGoods.getCycleNumFlag() == 0) {
                consumerGoods = new ConsumerGoods();
                consumerGoodsId = IdUtils.simpleUUID();
                consumerGoods.setConsumerGoodsId(consumerGoodsId);
                consumerGoods.setDelFlag(0);
                consumerGoods.setServiceStatus(1);
                consumerGoods.setShopId(shopId);
                consumerGoods.setUserId(userId);
                consumerGoods.setOrderId(orderId);
                consumerGoods.setOrderGoodsId(orderGoodsId);
                consumerGoods.setGoodsId(orderGoods.getGoodsId());
                consumerGoods.setGoodsName(orderGoods.getGoodsName());
                consumerGoods.setCycleNumFlag(orderGoods.getCycleNumFlag());
                consumerGoods.setServiceNum(orderGoods.getServiceNum());
                consumerGoods.setUsedNum(0);
                consumerGoods.setGoodsType(orderGoods.getGoodsType());
                consumerGoods.setGoodsTag(orderGoods.getGoodsTag());
                consumerGoods.setCreateTime(nowTime);
                consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
                consumerGoods.setGoodsPicture(orderGoods.getGoodsPicture());
                consumerGoods.setGoodsNurses(goods.getGoodsNurses());
                consumerGoods.setSourceFrom(1);
                consumerGoods.setSureNum(buyGoodsNum);
                consumerGoodsList.add(consumerGoods);
            } else {
                for (int i = 0; i < buyGoodsNum; i++) {
                    consumerGoods = new ConsumerGoods();
                    consumerGoodsId = IdUtils.simpleUUID();
                    consumerGoods.setConsumerGoodsId(consumerGoodsId);
                    consumerGoods.setDelFlag(0);
                    consumerGoods.setServiceStatus(1);
                    consumerGoods.setShopId(shopId);
                    consumerGoods.setUserId(userId);
                    consumerGoods.setOrderId(orderId);
                    consumerGoods.setOrderGoodsId(orderGoodsId);
                    consumerGoods.setGoodsId(orderGoods.getGoodsId());
                    consumerGoods.setGoodsName(orderGoods.getGoodsName());
                    consumerGoods.setCycleNumFlag(orderGoods.getCycleNumFlag());
                    consumerGoods.setServiceNum(orderGoods.getServiceNum());
                    consumerGoods.setUsedNum(0);
                    consumerGoods.setGoodsType(orderGoods.getGoodsType());
                    consumerGoods.setGoodsTag(orderGoods.getGoodsTag());
                    consumerGoods.setCreateTime(nowTime);
                    consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
                    consumerGoods.setGoodsPicture(orderGoods.getGoodsPicture());
                    consumerGoods.setGoodsNurses(goods.getGoodsNurses());
                    consumerGoods.setSourceFrom(1);
                    consumerGoodsList.add(consumerGoods);
                }
            }
            //商户变更计算
            switch (orderGoods.getGoodsType()) {
                case 1:
                    cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney());
@@ -2006,16 +2146,14 @@
        order.setCouponMoney(couponDiscount);
        order.setDiscountMoney(couponDiscount);
        order.setReceivableMoney(orderPayMoney);
        order.setReceivableDeposit(new BigDecimal("0.00"));
        order.setReceivableDeposit(orderPayDeposit);
        order.setPayType(1);
        //判断实收金额
        if (merNewOrderDto.getChangeMoney() != null) {
            order.setChangeReceivableMoney(merNewOrderDto.getChangeMoney());
        } else {
            order.setChangeReceivableMoney(orderPayMoney);
        }
        order.setPayMoney(orderPayMoney);
        order.setOnlinePayMoney(new BigDecimal("0.00"));
        order.setOfflinePayMoney(orderPayMoney);
        order.setOrderRemark(merNewOrderDto.getOrderRemark());
        order.setGoodsNum(goodsNum);
        order.setCreateTime(nowTime);
@@ -2024,75 +2162,24 @@
        order.setPayMoney(merNewOrderDto.getPayMoney());
        order.setOnlinePayMoney(new BigDecimal("0.00"));
        order.setOfflinePayMoney(merNewOrderDto.getPayMoney());
        order.setPayMoney(merNewOrderDto.getPayMoney());
        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);
        //创建服务
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        ConsumerGoods consumerGoods;
        String consumerGoodsId;
        List<ConsumerGoods> consumerGoodsList = new ArrayList<>();
        for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
            Integer buyGoodsNum = appUserOrderGoodsPageVo.getBuyNum();
            if (appUserOrderGoodsPageVo.getCycleNumFlag() == 0) {
                consumerGoods = new ConsumerGoods();
                goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
                consumerGoodsId = IdUtils.simpleUUID();
                consumerGoods.setConsumerGoodsId(consumerGoodsId);
                consumerGoods.setDelFlag(0);
                consumerGoods.setServiceStatus(1);
                consumerGoods.setShopId(order.getShopId());
                consumerGoods.setUserId(order.getUserId());
                consumerGoods.setOrderId(orderId);
                consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
                consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
                consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
                consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
                consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
                consumerGoods.setUsedNum(0);
                consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
                consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag());
                consumerGoods.setCreateTime(nowTime);
                consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
                consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
                consumerGoods.setGoodsNurses(goods.getGoodsNurses());
                consumerGoods.setSourceFrom(1);
                consumerGoods.setSureNum(buyGoodsNum);
                consumerGoodsList.add(consumerGoods);
            } else {
                for (int i = 0; i < buyGoodsNum; i++) {
                    consumerGoods = new ConsumerGoods();
                    goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
                    consumerGoodsId = IdUtils.simpleUUID();
                    consumerGoods.setConsumerGoodsId(consumerGoodsId);
                    consumerGoods.setDelFlag(0);
                    consumerGoods.setServiceStatus(1);
                    consumerGoods.setShopId(order.getShopId());
                    consumerGoods.setUserId(order.getUserId());
                    consumerGoods.setOrderId(orderId);
                    consumerGoods.setOrderGoodsId(appUserOrderGoodsPageVo.getOrderGoodsId());
                    consumerGoods.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
                    consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName());
                    consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag());
                    consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
                    consumerGoods.setUsedNum(0);
                    consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
                    consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag());
                    consumerGoods.setCreateTime(nowTime);
                    consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
                    consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
                    consumerGoods.setGoodsNurses(goods.getGoodsNurses());
                    consumerGoods.setSourceFrom(1);
                    consumerGoodsList.add(consumerGoods);
                }
            }
        }
        orderGoodsService.saveBatch(orderGoodsList);
        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
        //减去优惠券
        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
        }
        //用户未绑定则绑定商户
        Member member = remoteMemberService.getMember(userId).getData();
        if (member != null && member.getBindingFlag() != 1) {
            //绑定商户
@@ -2103,6 +2190,7 @@
            appMemberBindingDto.setBindingFlag(1);
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
        }
        //更新商户统计
        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        shopTotalChangeDto.setShopId(order.getShopId());
        shopTotalChangeDto.setOrderType(1);
@@ -2116,8 +2204,8 @@
        payRecord.setDelFlag(0);
        payRecord.setOrderId(orderId);
        payRecord.setPayMoney(order.getPayMoney());
        payRecord.setPayTime(order.getPayTime());
        payRecord.setPayType(2);
        payRecord.setPayTime(order.getOffPayTime());
        payRecord.setPayType(merNewOrderDto.getPayType());
        payRecordService.save(payRecord);
    }
@@ -2156,7 +2244,6 @@
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    } else if(orderFrom == 2){
                        orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")";
                    } else {
                        orderFromDesc = "线下创建";
@@ -2165,8 +2252,10 @@
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney()));
                if (merOrderPageVo.getUnPaidMoney() == null) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
                if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
            }
@@ -2194,13 +2283,15 @@
     * @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(),merMemberNoClearOrderDto.getShopId());
        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);
                }
                if(merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig)<0){
                    merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                }
            }
@@ -3128,6 +3219,9 @@
     */
    @Override
    public MerVerifyCouponVo verifyCoupon(String verifyCode, Long shopId) {
        if(verifyCode.contains("+")){
            verifyCode = verifyCode.substring(0, verifyCode.indexOf("+"));
        }
        // 创建MerVerifyCouponVo对象
        MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo();
        // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象
@@ -3142,28 +3236,40 @@
        } 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.BLINDING_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());
        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 -> {
                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
                    merCouponGoods.setGoodsId(goods.getGoodsId());
                    merCouponGoods.setGoodsName(goods.getGoodsName());
                    merCouponGoods.setGoodsNum(1);
                    if (goods.getGoodsType() == 1) {
                        merCouponGoods.setGoodsType("周期");
                    } else if (goods.getGoodsType() == 2) {
@@ -3180,6 +3286,7 @@
        // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
        merVerifyCouponVo.setGoodsList(merCouponGoodsList);
        merVerifyCouponVo.setVerifyStatus(1);
        merVerifyCouponVo.setMemberCouponId(memberCoupon.getId());
        return merVerifyCouponVo;
    }
@@ -3198,10 +3305,37 @@
        if (memberGiftRecord == null || memberGiftRecord.getVerifyStatus() != 1) {
            throw new ServiceException(AppErrorConstant.COUPON_USED);
        }
        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&&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(),shopId.toString())){
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                }
            }else{
                throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR);
            }
        }
        //商户奖品判断
        if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) {
            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
        }
        Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData();
        merVerifyAwardVo.setUserName(member.getRealName());
        merVerifyAwardVo.setUserMobile(member.getMobile());
        if (memberGiftRecord.getGiftFrom() == 1) {
@@ -3209,8 +3343,8 @@
        } else {
            merVerifyAwardVo.setGiftFrom("商户生日卡");
        }
        merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
        //礼物类型1优惠券2商品3现金4实物
        switch (memberGiftRecord.getGiftType()) {
            case 1:
                merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
@@ -3269,11 +3403,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 +3813,7 @@
            goodsTotalChangeDtoList.add(goodsTotalChangeDto);
        }
        //更新商品统计
        remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
        // 更新商户统计信息
        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        shopTotalChangeDto.setShopId(order.getShopId());
@@ -3700,10 +3830,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 +4050,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 +4060,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 +4099,7 @@
        } catch (WxPayException e) {
            throw new ServiceException(e.getMessage());
        }
    }
    }*/
    /**
     * @param staffTotalDto
@@ -4374,6 +4506,9 @@
                if (merOrderPageVo.getUnPaidMoney() == null) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
                if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
            }
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(userIdSj.toString());