From 01e773cf27e572b8fb83538d85f31130930d93d1 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期四, 15 八月 2019 15:57:23 +0800 Subject: [PATCH] 券赠送 --- fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java | 37 ++++++++++++++++++++++++++++--------- 1 files changed, 28 insertions(+), 9 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java index 220ef2c..6ae6cf5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java @@ -21,6 +21,7 @@ import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service; import com.yeshi.fanli.service.inter.integral.CodePublishRecordService; +import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService; import com.yeshi.fanli.service.inter.integral.IntegralExchangeService; import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; @@ -58,6 +59,9 @@ @Resource private CodePublishRecordService codePublishRecordService; + + @Resource + private IntegralExchangeRecordService integralExchangeRecordService; @@ -99,6 +103,14 @@ exchangeTip.setType(type.name()); return exchangeTip; } + + int upperLimit = exchange.getUpperLimit(); + // 浠婃棩鍏戞崲鎯呭喌 + long exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid); + if (exchangeCount >= upperLimit) { + throw new IntegralExchangeException(1, "浠婃棩鍏戞崲宸茶揪涓婇檺"); + } + Integer goldCoinHas = extraVO.getGoldCoin(); if (goldCoin.intValue() > goldCoinHas.intValue()) { @@ -150,6 +162,13 @@ if (exchange == null) throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�"); + int upperLimit = exchange.getUpperLimit(); + // 浠婃棩鍏戞崲鎯呭喌 + long exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid); + if (exchangeCount >= upperLimit) { + throw new IntegralExchangeException(1, "浠婃棩鍏戞崲宸茶揪涓婇檺"); + } + Integer goldCoin = exchange.getGoldCoin(); Integer goldCoinHas = extraVO.getGoldCoin(); if (goldCoin.intValue() > goldCoinHas.intValue()) { @@ -158,16 +177,12 @@ try { ExchangeTypeEnum type = exchange.getType(); - if (ExchangeTypeEnum.freeCouponBuy == type) { - // 鑷喘鍏嶅崟鍒� - userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, false, null); - } else if (ExchangeTypeEnum.freeCouponGive == type) { - // 璧犻�佸厤鍗曞埜 - userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, true, null); + if (ExchangeTypeEnum.freeCouponBuy == type || ExchangeTypeEnum.freeCouponGive == type) { + // 鑷喘鍏嶅崟鍒搞�佽禒閫佸厤鍗曞埜 + userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, null); } else if (ExchangeTypeEnum.rebatePercentCoupon == type) { // 濂栧姳鍏嶅崟鍒� - userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, true, - new BigDecimal(10)); + userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, new BigDecimal(10)); } else if (ExchangeTypeEnum.inviteCodePublish == type) { // 閭�璇风爜鍙戝竷 if(codePublishRecordService.countValidRecord(uid) > 0) @@ -201,9 +216,10 @@ throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�"); } + exchangeCount ++; String progress = exchange.getProgress(); if (!StringUtil.isNullOrEmpty(progress)) - progress = progress.replace("{宸插厬鎹", 1 + "").replace("{涓婇檺鏁皚", exchange.getUpperLimit() + ""); + progress = progress.replace("{宸插厬鎹",exchangeCount + "").replace("{涓婇檺鏁皚", exchange.getUpperLimit() + ""); exchange.setProgress(progress); // 鏇存柊閲戝竵 @@ -211,6 +227,9 @@ extraUpdate.setId(extraVO.getId()); extraUpdate.setGoldCoin(goldCoinHas.intValue() - goldCoin.intValue()); userInfoExtraService.saveUserInfoExtra(extraUpdate); + + exchange.setUserGoldCoin(extraUpdate.getGoldCoin() + "鏋�"); + return exchange; } catch (Exception e) { LogHelper.errorDetailInfo(e); -- Gitblit v1.8.0