Commit 670f2ef5da6b02259e09e1344cce50612bcece3f
Committed by
Gitee
!603 mall: 优惠券退还优化
Merge pull request !603 from 疯狂的世界/mall_order_cancel
Showing
1 changed file
with
4 additions
and
2 deletions
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 | } |