diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCreditHistoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCreditHistoryController.java index fbd1509aa..ea844fc14 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCreditHistoryController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCreditHistoryController.java @@ -63,5 +63,14 @@ public class WxCreditHistoryController extends BaseController return new ResultData(Result.SUCCESS,"查询成功",wxCreditHistoryService.getById(id)); } + /** + * 根据A端设置的【每自然年末扣除前N年用户积分】规则,扣减用户积分 + * @return + */ + public ResultData clearCreditByYear(){ + logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::clearCreditByYear"); + wxCreditHistoryService.clearCreditByYear(); + return new ResultData(Result.SUCCESS); + } } diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 004d52cd9..5c23739d4 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -280,7 +280,7 @@ public enum ErrorCode{ CREDIT_ZERO(13100,"本次操作积分为零"), CREDIT_NOT_ENOUGH(13101, "积分不够扣减值"), USER_NOT_MEMBER(13102, "该用户不是小程序会员"), - CREDIT_TOO_MUCH(13103, "超出最大积分"), + OUT_OF_CREDIT(13103, "超出最大积分"), /** diff --git a/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java b/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java index bd5ae6088..a1bec2513 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java @@ -52,5 +52,5 @@ public interface WxCreditHistoryService { Map findByMerchantIdAndSpend(Long merchantId, String spendStr, String tenantId); - + void clearCreditByYear(); } 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 2f31a9da5..80186f602 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -11,6 +11,7 @@ import com.iformall.common.IdWorker; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxCreditHistoryVo; import com.iformall.enums.EnumBusiness; +import com.iformall.enums.EnumScoreRules; import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumUserType; import com.iformall.exception.MallinkException; @@ -62,6 +63,14 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { @Autowired RedisLock redisLock; + @Override + public void clearCreditByYear() { + WxScoreRules wxScoreRules = new WxScoreRules(); + wxScoreRules.setType(EnumScoreRules.CREDIT.getCode()); + + + } + @Override public PageInfo listAsPage(WxCreditHistory record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCreditHistoryMapper.findList(record)); @@ -165,7 +174,7 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { if (creditChangeNum != 0) { Long total = Long.valueOf(currentCreditAmount) + Long.valueOf(creditChangeNum); if (total > Integer.MAX_VALUE) { - throw new MallinkException(ErrorCode.CREDIT_TOO_MUCH); + throw new MallinkException(ErrorCode.OUT_OF_CREDIT); } if (total < 0) { throw new MallinkException(ErrorCode.CREDIT_NOT_ENOUGH); @@ -323,8 +332,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { } private int spendCredit(WxCreditHistory record) { - int spendCredit = record.getCreditNum(); - return spendCredit; + //根据商户id和花费金额计算需要新增的积分 + Map map = findByMerchantIdAndSpend(record.getMerchantId(),record.getSpendStr(),record.getTenantId()); + return map.get("credit"); } private int changeCredit(WxCreditHistory record) {