添加红包校验逻辑

This commit is contained in:
liaozetao
2023-10-26 15:38:08 +08:00
parent a273a9425b
commit ebaa1522ec
2 changed files with 13 additions and 0 deletions

View File

@@ -333,6 +333,15 @@ public class RedEnvelopeService extends ServiceImpl<RedEnvelopeMapper, RedEnvelo
log.info("redEnvelopeId : {} 不存在", redEnvelopeId);
return;
}
Integer state = redEnvelope.getState();
if (RedEnvelopStateEnum.REMAIN_ZERO.getCode() == state) {
log.info("redEnvelopeId : {} 红包已抢光", redEnvelopeId);
return;
}
if (RedEnvelopStateEnum.TIME_OUT_BACK.getCode() == state) {
log.info("redEnvelopeId : {} 红包已退完", redEnvelopeId);
return;
}
Objects.requireNonNull(RedEnvelopeFactory.INSTANCE.getInstance(redEnvelope.getKind())).back(context);
}

View File

@@ -175,6 +175,10 @@ abstract class RedEnvelopeStrategy {
val redEnvelopeStrategy = SpringContextHolder.getBean(this::class.java)
val calculateBackGold = redEnvelopeStrategy.calculateBackGold(redEnvelopeId)
log.info("红包${redEnvelopeId}计算的退款金额为${calculateBackGold}")
if (calculateBackGold == 0L) {
log.info("$redEnvelopeId 该红包已退完")
return
}
redEnvelopeStrategy.doBackRecord(redEnvelopeId, calculateBackGold)
val redEnvelopeService = SpringContextHolder.getBean(RedEnvelopeService::class.java)
val redEnvelope = redEnvelopeService.getById(redEnvelopeId)