Commit 670f2ef5da6b02259e09e1344cce50612bcece3f

Authored by 芋道源码
Committed by Gitee
2 parents b69d4e08 11ad7ad5

!603 mall: 优惠券退还优化

Merge pull request !603 from 疯狂的世界/mall_order_cancel
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponServiceImpl.java
@@ -115,12 +115,14 @@ public class CouponServiceImpl implements CouponService { @@ -115,12 +115,14 @@ public class CouponServiceImpl implements CouponService {
115 } 115 }
116 116
117 // 退还 117 // 退还
118 - // TODO @疯狂:最好 where status,避免可能存在的并发问题  
119 Integer status = LocalDateTimeUtils.beforeNow(coupon.getValidEndTime()) 118 Integer status = LocalDateTimeUtils.beforeNow(coupon.getValidEndTime())
120 // 退还时可能已经过期了 119 // 退还时可能已经过期了
121 ? CouponStatusEnum.EXPIRE.getStatus() 120 ? CouponStatusEnum.EXPIRE.getStatus()
122 : CouponStatusEnum.UNUSED.getStatus(); 121 : CouponStatusEnum.UNUSED.getStatus();
123 - couponMapper.updateById(new CouponDO().setId(id).setStatus(status)); 122 + int updateCount = couponMapper.updateByIdAndStatus(id, CouponStatusEnum.UNUSED.getStatus(), new CouponDO().setStatus(status));
  123 + if (updateCount == 0) {
  124 + throw exception(COUPON_STATUS_NOT_USED);
  125 + }
124 126
125 // TODO 增加优惠券变动记录? 127 // TODO 增加优惠券变动记录?
126 } 128 }