刘帅
2026-09-21 7a8af8c19b40b8028e25ee0b669463d06f723a30
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -895,6 +895,7 @@
            siteBooking.setPayMoney(BigDecimal.ZERO.doubleValue());
            siteBooking.setPayTime(new Date());
            siteBookingService.updateById(siteBooking);
            consumeCouponAfterSuccessfulPayment(siteBooking);
            HashMap<String, String> map = new HashMap<>();
            map.put("siteBooking", siteBooking.getId().toString());
            return ResultUtil.success(map);
@@ -1043,9 +1044,25 @@
        siteBooking.setPayTime(new Date());
        siteBooking.setStatus(1);
        siteBookingService.updateById(siteBooking);
        consumeCouponAfterSuccessfulPayment(siteBooking);
        HashMap<String, String> map = new HashMap<>();
        map.put("siteBooking", siteBooking.getId().toString());
        return ResultUtil.success(map);
    }
    /**
     * 场地订单实际支付成功后才核销所选优惠券;避免仅创建待支付订单就提前消耗优惠券。
     */
    private void consumeCouponAfterSuccessfulPayment(SiteBooking siteBooking) {
        if (siteBooking.getUserCouponId() == null || siteBooking.getUserCouponId() == 0) {
            return;
        }
        UserCoupon userCoupon = userCouponClient.queryUserCouponById(
                new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(), siteBooking.getAppUserId()));
        if (userCoupon != null && Integer.valueOf(1).equals(userCoupon.getStatus())) {
            userCoupon.setStatus(2);
            userCouponClient.updateUserCoupon(userCoupon);
        }
    }
@@ -1285,12 +1302,6 @@
            userCoupon.setStatus(2);
            userCouponClient.updateUserCoupon(userCoupon);
        }
        if (null != couponId && payType == 3) {
            UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(), appUser.getId()));
            userCoupon.setStatus(1);
            userCouponClient.updateUserCoupon(userCoupon);
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        siteBooking.setOrderNo(sdf.format(new Date()) + UUIDUtil.getNumberRandom(3));
@@ -1299,9 +1310,6 @@
            siteBooking.setPayMoney(playCoin.doubleValue());
        } else {
            siteBooking.setPayMoney(money.doubleValue());
        }
        if (payType == 3) {
            siteBooking.setUserCouponId(null);
        }
        siteBookingService.updateById(siteBooking);
        if (payType == 1) {//微信支付