rk
8 小时以前 77fc61a25c14071584e45731476207959137d6b6
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -857,12 +857,14 @@
            if(!Constants.equalsInteger(goods.getStatus(),Constants.ZERO)||!Constants.equalsInteger(goods.getIsdeleted(),Constants.ZERO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在商品已删除或已下架,无法下单");
            }
            if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在商品库存不足,无法下单!");
            if(Objects.nonNull(goodsSku.getStock())){
                if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"存在商品库存不足,无法下单!");
                }
                //商品库存扣除
                goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum()))));
                goodsSkuMapper.updateById(goodsSku);
            }
            //商品库存扣除
            goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum()))));
            goodsSkuMapper.updateById(goodsSku);
            GoodsorderDetail goodsOrderDetail = new GoodsorderDetail();
            goodsOrderDetail.setCreator(member.getId());
            goodsOrderDetail.setCreateDate(new Date());
@@ -1443,6 +1445,7 @@
        orderPayConfirmResponse.setCouponAmount(couponAmount);
        //获取可以使用的优惠券
        List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(request.getPayDetailRequestList(),request.getMemberId());
        if(CollectionUtils.isNotEmpty(memberCouponList)){
            orderPayConfirmResponse.setMemberCouponList(memberCouponList);
            if(Objects.nonNull(request.getCouponId())&&Constants.equalsInteger(request.getCouponId(),-Constants.ONE)&&Objects.nonNull(memberCouponList)){
@@ -1456,11 +1459,11 @@
                }
                memberCoupon = memberCoupons.get(Constants.ZERO);
                couponAmount = memberCoupon.getValidAmount();
                memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
//                memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
                orderPayConfirmResponse.setMemberCoupon(memberCoupon);
            }
        }else {
            if(Objects.nonNull(request.getCouponId())){
            if(Objects.nonNull(request.getCouponId())&&!Constants.equalsInteger(request.getCouponId(),-Constants.ONE)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"无可用优惠券,请刷新查看");
            }
        }
@@ -1533,7 +1536,7 @@
            orderPayConfirmResponse.setIntegralAmount(integralAmount);
        }
        //使用优惠券 减去优惠券抵扣金额
        if(Objects.nonNull(request.getCouponId())){
        if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){
            orderPayConfirmResponse.setCouponAmount(couponAmount);
        }
        //实际支付金额 减去优惠券、积分抵扣金额
@@ -2285,6 +2288,7 @@
        List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
                .eq(Goodsorder::getIsdeleted,Constants.ZERO)
                .eq(Goodsorder::getReceiveType,Constants.ONE)
                .isNotNull(Goodsorder::getExchangeCode)
                .in(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey(),
                Constants.OrderStatus.WAIT_PAY.getKey(),
                Constants.OrderStatus.PAY_DONE.getKey())
@@ -2325,7 +2329,7 @@
        List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
                .eq(Goodsorder::getIsdeleted, Constants.ZERO)
                .eq(Goodsorder::getStatus, Constants.OrderStatus.WAIT_PAY.getKey())
                .ge(Goodsorder::getCreateDate, "DATE_SUB(NOW(), INTERVAL 15 MINUTE)")
                        .apply(" CREATE_DATE >  DATE_SUB(NOW(), INTERVAL 15 MINUTE) ")
        );
        if(CollectionUtils.isNotEmpty(goodsorderList)){
            for (Goodsorder goodsorder:goodsorderList) {