From 11c95afd1e44bcd3d70dbcf77e790596ec80a53e Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 24 九月 2024 18:54:59 +0800
Subject: [PATCH] fix: 剔除加价限制条件
---
src/main/java/com/mzl/flower/service/point/PointGoodsService.java | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
index 27ad4dc..e56ab9f 100644
--- a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
+++ b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
@@ -19,6 +19,7 @@
import com.mzl.flower.mapper.point.PointGoodsRecordMapper;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.payment.RedisLockService;
+import com.mzl.flower.utils.DateUtils;
import com.mzl.flower.utils.UUIDGenerator;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.util.List;
@Service
@@ -114,6 +116,12 @@
continue;
}
+ if(Constants.POINT_GOODS_STATUS.A.name().equals(status)){
+ if(p.getStock() == null || p.getStock() <= 0){
+ throw new ValidationException("商品" + p.getName() + "库存为0不能上架");
+ }
+ }
+
p.setStatus(status);
p.update(SecurityUtils.getUserId());
pointGoodsMapper.updateById(p);
@@ -135,7 +143,7 @@
if(!Constants.POINT_GOODS_STATUS.A.name().equals(p.getStatus())){
throw new ValidationException("商品未上架");
}
- if(p.getStock()< dto.getNum()){
+ if(p.getStock() <=0 || p.getStock()< dto.getNum()){
throw new ValidationException("商品库存不足");
}
CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>()
@@ -157,6 +165,10 @@
record.setCover(p.getCover());
record.setRedeemCode(UUIDGenerator.getUUID());
record.setStatus(Constants.POINT_GOODS_RECORD_STATUS.A.name());//未使用
+ LocalDate expireDate = LocalDate.now().plusYears(1);
+ String expireDateStr = DateUtils.toString(expireDate,"yyyy-MM-dd");
+ record.setExpireTime(DateUtils.dateToLocalDateTime(expireDateStr,false));
+ record.create(SecurityUtils.getUserId());
pointGoodsRecordMapper.insert(record);
//更新积分汇总
@@ -178,8 +190,6 @@
//更新库存
p.setStock(p.getStock()- dto.getNum());
pointGoodsMapper.updateById(p);
- }catch (Exception e){
- throw new ValidationException("兑换失败");
}finally {
lockService.releaseObjectLock(key,"");
}
@@ -208,6 +218,7 @@
record.setOrderId(orderId);
pointGoodsRecordMapper.updateById(record);
}
+
public void revertExchangeGoods(Long recordId) {
PointGoodsRecord record = pointGoodsRecordMapper.selectById(recordId);
if(record == null){
@@ -216,7 +227,7 @@
if(!Constants.POINT_GOODS_RECORD_STATUS.U.name().equals(record.getStatus())){
throw new ValidationException("兑换券未使用或过期");
}
- if(!SecurityUtils.getUserId().equals(record.getUserId())){
+ if(SecurityUtils.getUserId() != null && !SecurityUtils.getUserId().equals(record.getUserId())){
throw new ValidationException("兑换券不属于当前用户");
}
record.setStatus(Constants.POINT_GOODS_RECORD_STATUS.A.name());
--
Gitblit v1.9.3