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 | 115 | } |
| 116 | 116 | |
| 117 | 117 | // 退还 |
| 118 | - // TODO @疯狂:最好 where status,避免可能存在的并发问题 | |
| 119 | 118 | Integer status = LocalDateTimeUtils.beforeNow(coupon.getValidEndTime()) |
| 120 | 119 | // 退还时可能已经过期了 |
| 121 | 120 | ? CouponStatusEnum.EXPIRE.getStatus() |
| 122 | 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 | 127 | // TODO 增加优惠券变动记录? |
| 126 | 128 | } | ... | ... |