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 ++++++++++++++++++++++++++++++-------
framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponServiceImpl.java | 2 +-
2 files changed, 31 insertions(+), 8 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;
+ }
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponServiceImpl.java
index 304a7cc..d385e0f 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreCouponServiceImpl.java
@@ -159,7 +159,7 @@
public Result addStoreCoupon(StoreCouponForm storeCoupon) {
StoreCoupon entity = StoreCouponForm.getEntityByForm(storeCoupon, null);
entity.setStatus(StoreCouponStausEnum.ENABLE.name());
- entity.setCouponClaimNum(storeCoupon.getCouponNum());
+ entity.setCouponClaimNum(0);
entity.setGenerateStatus(GenerateCouponStausEnum.NOT_GENERATE.name());
Coupon coupon = couponService.getById(entity.getCouponId());
Integer publishNum = coupon.getPublishNum();
--
Gitblit v1.8.0