bug
jiangqs
2023-08-12 f19155dcda0413563963d545eed3045364814c0d
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) {