|
|
@ -76,14 +76,30 @@ public class ConsumeServiceImpl implements ConsumeService { |
|
|
|
boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); |
|
|
|
|
|
|
|
// 根据月份更新 free6 或 free12 |
|
|
|
if (isBeforeJune||isJune) { |
|
|
|
// 如果是六月前,更新 free6 |
|
|
|
BigDecimal free6 = userGold.getFree6().add(freeGold1); |
|
|
|
userGold.setFree6(free6); |
|
|
|
if (isBeforeJune || isJune) { |
|
|
|
// 如果是六月前,优先扣减 free6 |
|
|
|
BigDecimal free6 = userGold.getFree6(); |
|
|
|
if (free6.add(freeGold1).compareTo(BigDecimal.ZERO) >= 0) { |
|
|
|
// 如果 free6 足够扣减,直接扣减 |
|
|
|
userGold.setFree6(free6.add(freeGold1)); |
|
|
|
} else { |
|
|
|
// 如果 free6 不足,扣减 free6 到 0,剩余部分从 free12 扣减 |
|
|
|
BigDecimal remaining = free6.add(freeGold1); // 剩余需要扣减的金币 |
|
|
|
userGold.setFree6(BigDecimal.ZERO); // 将 free6 归零 |
|
|
|
userGold.setFree12(userGold.getFree12().add(remaining)); // 从 free12 扣减剩余部分 |
|
|
|
} |
|
|
|
} else if (isAfterJune) { |
|
|
|
// 如果是六月后,更新 free12 |
|
|
|
BigDecimal free12 = userGold.getFree12().add(freeGold1); |
|
|
|
userGold.setFree12(free12); |
|
|
|
// 如果是六月后,优先扣减 free12 |
|
|
|
BigDecimal free12 = userGold.getFree12(); |
|
|
|
if (free12.add(freeGold1).compareTo(BigDecimal.ZERO) >= 0) { |
|
|
|
// 如果 free12 足够扣减,直接扣减 |
|
|
|
userGold.setFree12(free12.add(freeGold1)); |
|
|
|
} else { |
|
|
|
// 如果 free12 不足,扣减 free12 到 0,剩余部分从 free6 扣减 |
|
|
|
BigDecimal remaining = free12.add(freeGold1); // 剩余需要扣减的金币 |
|
|
|
userGold.setFree12(BigDecimal.ZERO); // 将 free12 归零 |
|
|
|
userGold.setFree6(userGold.getFree6().add(remaining)); // 从 free6 扣减剩余部分 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 设置更新后的Sumgold回到user对象 |
|
|
|