From 14b3dd223d4a148a4ca681a5c542901dfe74f029 Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期五, 26 九月 2025 17:49:08 +0800 Subject: [PATCH] 店铺优惠卷调整 --- framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponClaimRecordServiceImpl.java | 37 ++++++++++++++++++++++++++++++------- 1 files changed, 30 insertions(+), 7 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponClaimRecordServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponClaimRecordServiceImpl.java index 12e0755..3b40116 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponClaimRecordServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponClaimRecordServiceImpl.java @@ -6,6 +6,7 @@ import cn.lili.modules.lmk.domain.entity.StoreCoupon; import cn.lili.modules.lmk.domain.entity.StoreCouponSingle; import cn.lili.modules.lmk.enums.general.PrizeStatusEnum; +import cn.lili.modules.lmk.enums.general.StoreCouponStausEnum; import cn.lili.modules.lmk.service.StoreCouponService; import cn.lili.modules.lmk.service.StoreCouponSingleService; import cn.lili.modules.order.order.entity.enums.ClaimStatusEnum; @@ -14,6 +15,7 @@ import cn.lili.rocketmq.RocketmqSendCallbackBuilder; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import cn.lili.modules.lmk.domain.entity.StoreCouponClaimRecord; import cn.lili.modules.lmk.mapper.StoreCouponClaimRecordMapper; @@ -186,16 +188,26 @@ storeCouponSingle.setClaimUserName(nickName); storeCouponSingleService.updateById(storeCouponSingle); //鏍¢獙鏄惁鍦ㄥ崟鍝佸嵎绫婚鍙栬繃 - + LambdaQueryWrapper<StoreCoupon> storeCoupQuery = Wrappers.<StoreCoupon>lambdaQuery() + .eq(StoreCoupon::getId, storeCouponSingle.getStoreCoupRef()).last("FOR UPDATE"); + StoreCoupon storeCoupon = storeCouponService.getOne(storeCoupQuery); + if (storeCoupon == null) { + throw new ServiceException("褰撳墠搴楅摵浼樻儬鍗蜂笉瀛樺湪"); + } + if (!StoreCouponStausEnum.ENABLE.name().equals(storeCoupon.getStatus())) { + throw new ServiceException("褰撳墠搴楅摵浼樻儬鍗风姸鎬佸紓甯�"); + } //棰嗗彇瀵瑰簲鐨勪紭鎯犲嵎鍐欏叆璁板綍 memberCouponService.receiveCoupon(storeCouponSingle.getCouponId(),userId , nickName); - StoreCouponClaimRecord storeCouponClaimRecord = new StoreCouponClaimRecord(); - storeCouponClaimRecord.setCouponId(storeCouponSingle.getCouponId()); - storeCouponClaimRecord.setCouponName(storeCouponSingle.getCouponName()); - storeCouponClaimRecord.setStoreId(storeCouponSingle.getStoreId()); - storeCouponClaimRecord.setStoreName(storeCouponSingle.getStoreName()); - storeCouponClaimRecord.setUserId(userId); + StoreCouponClaimRecord storeCouponClaimRecord = getStoreCouponClaimRecord(storeCouponSingle, userId); this.save(storeCouponClaimRecord); + LambdaUpdateWrapper<StoreCoupon> updateStoreCoupon = Wrappers.<StoreCoupon>lambdaUpdate().eq(StoreCoupon::getId, storeCoupon.getId()) + .set(StoreCoupon::getCouponClaimNum, storeCoupon.getCouponClaimNum() + 1) + .gt(StoreCoupon::getCouponClaimNum, storeCoupon.getCouponClaimNum() + 1); + boolean update = storeCouponService.update(updateStoreCoupon); + if (!update) { + throw new ServiceException("鏇存柊澶辫触"); + } //棰嗗彇鎴愬姛杩斿洖浼樻儬鍗穒d鐢ㄤ簬璺宠浆璐墿浣跨敤 return Result.ok().data(storeCouponSingle.getCouponId()); @@ -220,4 +232,15 @@ } } + + private static StoreCouponClaimRecord getStoreCouponClaimRecord(StoreCouponSingle storeCouponSingle, String userId) { + StoreCouponClaimRecord storeCouponClaimRecord = new StoreCouponClaimRecord(); + storeCouponClaimRecord.setCouponId(storeCouponSingle.getCouponId()); + storeCouponClaimRecord.setCouponName(storeCouponSingle.getCouponName()); + storeCouponClaimRecord.setStoreId(storeCouponSingle.getStoreId()); + storeCouponClaimRecord.setStoreName(storeCouponSingle.getStoreName()); + storeCouponClaimRecord.setUserId(userId); + storeCouponClaimRecord.setStoreCouponId(storeCouponSingle.getStoreCoupRef()); + return storeCouponClaimRecord; + } } -- Gitblit v1.8.0