添加红包校验逻辑
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user