diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index c8c81bf25..004d52cd9 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -280,6 +280,7 @@ public enum ErrorCode{ CREDIT_ZERO(13100,"本次操作积分为零"), CREDIT_NOT_ENOUGH(13101, "积分不够扣减值"), USER_NOT_MEMBER(13102, "该用户不是小程序会员"), + CREDIT_TOO_MUCH(13103, "超出最大积分"), /** diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index 5e8e8087d..2f31a9da5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -163,7 +163,11 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { //计算出需要新增或减少的积分 int creditChangeNum = creditIncrement(record); if (creditChangeNum != 0) { - if (currentCreditAmount + creditChangeNum < 0) { + Long total = Long.valueOf(currentCreditAmount) + Long.valueOf(creditChangeNum); + if (total > Integer.MAX_VALUE) { + throw new MallinkException(ErrorCode.CREDIT_TOO_MUCH); + } + if (total < 0) { throw new MallinkException(ErrorCode.CREDIT_NOT_ENOUGH); } //如果为导入的会员 则直接覆盖总积分和操作积分明细