From 970e58a0ceb0bfcd52affad3f08c53d30c29ab8d Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 29 五月 2021 18:14:43 +0800 Subject: [PATCH] 礼金创建优化 --- service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java | 313 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 232 insertions(+), 81 deletions(-) diff --git a/service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java b/service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java index 49b1ab3..2d6d175 100644 --- a/service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java +++ b/service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java @@ -3,9 +3,11 @@ import com.ks.lijin.exception.*; import com.ks.lijin.mapper.LiJinExpendRecordMapper; import com.ks.lijin.pojo.DO.LiJinExpendRecord; -import com.ks.lijin.pojo.DO.LiJinProviderAccount; +import com.ks.lijin.pojo.DO.LiJinProviderTaoKeAccount; import com.ks.lijin.pojo.DO.LiJinProviderNotice; import com.ks.lijin.pojo.DTO.LiJinCreateParam; +import com.ks.lijin.pojo.DTO.MoneyInfo; +import com.ks.lijin.pojo.DTO.TaoLijinCreateResultDTO; import com.ks.lijin.pojo.DTO.taobao.TaoKeAppInfo; import com.ks.lijin.pojo.DTO.taobao.TaoLiJinDTO; import com.ks.lijin.pojo.Enums.NoticeTypeEnum; @@ -13,23 +15,33 @@ import com.ks.lijin.service.LiJinProviderAccountService; import com.ks.lijin.service.LiJinProviderNoticeService; import com.ks.lijin.service.LijinCreateService; +import com.ks.lijin.service.manager.LiJinProviderTaoKeAccountManager; +import com.ks.lijin.service.manager.LijinGoodsManager; +import com.ks.lijin.util.Constant; import com.ks.lijin.utils.taobao.TaoBaoUtil; import com.ks.lijin.utils.taobao.TaoKeApiUtil; import com.ks.vip.pojo.DO.VipGradePotence; import com.ks.vip.pojo.Enums.VIPEnum; import com.ks.vip.service.VipCenterService; import com.ks.vip.service.VipGradePotenceService; +import com.ks.vip.service.VipGradeService; import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import org.apache.dubbo.config.annotation.Reference; import org.apache.dubbo.config.annotation.Service; import org.springframework.core.task.TaskExecutor; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.transaction.annotation.Transactional; import org.yeshi.utils.MoneyBigDecimalUtil; +import org.yeshi.utils.StringUtil; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.List; +import java.util.concurrent.TimeUnit; @Service(version = "1.0") @@ -47,18 +59,69 @@ @Resource private LiJinProviderAccountService liJinProviderAccountService; - @Resource + @Reference(version = "1.0") private VipCenterService vipCenterService; - @Resource + @Reference(version = "1.0") private VipGradePotenceService vipGradePotenceService; + + @Reference(version = "1.0") + private VipGradeService vipGradeService; @Resource private LiJinExpendRecordService liJinExpendRecordService; + @Resource + private LiJinProviderTaoKeAccountManager liJinProviderTaoKeAccountManager; + + @Resource + private RedisTemplate redisTemplate; + + @Resource + private LijinGoodsManager lijinGoodsManager; + + @Override + public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList) { + VIPEnum vipRank = null; + if (!StringUtil.isNullOrEmpty(uid)) { + vipRank = vipCenterService.getVIPEnumByUid(uid); + } + if (vipRank == null) { + vipRank = vipGradeService.getDefaultGrade().getIdentity(); + } + VipGradePotence potence = vipGradePotenceService.getPotenceByVipEnum(vipRank); + List<MoneyInfo> list = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : goodsBriefList) { + MoneyInfo moneyInfo = new MoneyInfo(); + moneyInfo.setGoodsId(goods.getAuctionId() + ""); + moneyInfo.setGoodsType(1); + try { + moneyInfo.setLijinAmount(getTBLijinAmount(goods, vipRank)); + } catch (LiJinGoodsException e) { + e.printStackTrace(); + } catch (LiJinAmountException e) { + e.printStackTrace(); + } + //璁$畻杩斿埄姣斾緥 + BigDecimal rebateRate = potence.getRebatePercent(); + BigDecimal fanliMoney = TaoBaoUtil.getGoodsHongBaoMoney(goods, rebateRate, false); + moneyInfo.setFanliAmount(fanliMoney); + moneyInfo.setFirstOrderAmount(null); + list.add(moneyInfo); + } + + //鑾峰彇 + return list; + } @Override public BigDecimal getTBLijinAmount(Long actionId, String uid) throws LiJinGoodsException, LiJinUserException, LiJinAmountException { + + if (!lijinGoodsManager.todayCanCreate(actionId)) { + throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_CREATED_FULL, "浠婃棩绀奸噾鍒涘缓娆℃暟宸茶揪涓婇檺"); + } + + // 鑾峰彇鐢ㄦ埛绛夌骇 VIPEnum vipRank = vipCenterService.getVIPEnumByUid(uid); if (vipRank == null) { @@ -67,6 +130,10 @@ // 1銆佸垽鏂晢鍝� 骞惰绠楅噾棰� BigDecimal money = getTBLijinAmount(actionId, vipRank); + + if (!lijinGoodsManager.isLijinMoneyAvaiable(money)) { + throw new LiJinAmountException(LiJinAmountException.CODE_LIJIN_AMOUNT_OUTOFRANGE, "绀奸噾鏈湪瑙勫畾鑼冨洿鍐�"); + } // 2銆佸垽鏂敤鎴� boolean result = userCanCreateTBLijin(uid, money); @@ -78,11 +145,15 @@ @Override - public BigDecimal getTBLijinAmount(Long actionId, VIPEnum vipRank) throws LiJinGoodsException,LiJinAmountException { + public BigDecimal getTBLijinAmount(Long actionId, VIPEnum vipRank) throws LiJinGoodsException, LiJinAmountException { + if (!lijinGoodsManager.todayCanCreate(actionId)) { + throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_CREATED_FULL, "浠婃棩绀奸噾鍒涘缓娆℃暟宸茶揪涓婇檺"); + } + //鑾峰彇鍟嗗搧鍙垱寤虹殑娣樼ぜ閲戦潰棰濓紝鑻ヤ笉鑳藉垱寤洪渶瑕佹姏鍑虹浉鍏崇殑寮傚父锛�1.鍟嗗搧涓嶆敮鎸佺ぜ閲戝垱寤猴級 BigDecimal money = null; // 1銆佸垽鏂晢鍝� - try{ + try { TaoBaoGoodsBrief goods = TaoKeApiUtil.searchGoodsDetail(actionId); if (goods == null) { throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_OFFLINE, "鍟嗗搧涓嬬嚎"); @@ -95,17 +166,17 @@ //鍒稿悗浠� * 鍟嗗搧浣i噾姣斾緥 * 杩斿埄姣斾緥 VipGradePotence potence = vipGradePotenceService.getPotenceByVipEnum(vipRank); - if (potence != null && potence.getRebatePercent()!= null) { - money = TaoBaoUtil.getGoodsHongBaoMoney(goods,potence.getRebatePercent(),false); + if (potence != null && potence.getTaolijinPercent() != null) { + money = TaoBaoUtil.getGoodsHongBaoMoney(goods, potence.getTaolijinPercent(), false); } - } catch (TaoBaoGoodsDownException e){ + } catch (TaoBaoGoodsDownException e) { throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_OFFLINE, "鍟嗗搧涓嬬嚎"); } - // 閲戦涓虹┖ 鎴栬�呭皬浜庨浂 鍒欐姏鍑哄紓甯� - if (money == null || money.compareTo(BigDecimal.valueOf(0)) <= 0) { - throw new LiJinAmountException(LiJinAmountException.CODE_LIJIN_AMOUNT_OUTOFRANGE,"绀奸噾鍒涘缓鐨勯噾棰濊秴鍑鸿瀹氳寖鍥�"); + if (!lijinGoodsManager.isLijinMoneyAvaiable(money)) { + throw new LiJinAmountException(LiJinAmountException.CODE_LIJIN_AMOUNT_OUTOFRANGE, "绀奸噾鏈湪瑙勫畾鑼冨洿鍐�"); } + return money; } @@ -119,8 +190,8 @@ // 姣忔棩鏈�澶ф鏁板垽鏂� Integer numMax = potence.getTaolijinMaxNumber(); - if(numMax == null || numMax.intValue() <= 0) { - throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑娆℃暟瓒呴檺"); + if (numMax == null || numMax.intValue() <= 0) { + throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑娆℃暟瓒呴檺"); } // 姣忔棩鏈�澶ч噾棰濆垽鏂� @@ -131,13 +202,13 @@ // 浣跨敤娆℃暟宸茬粡瓒呰繃鏈�澶ф鏁� int numExpend = liJinExpendRecordService.countTodayNumByExpend(uid); - if (numMax.intValue() < numExpend){ + if (numMax.intValue() <= numExpend) { throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑娆℃暟瓒呴檺"); } // 缁熻宸蹭娇鐢ㄩ噾棰� BigDecimal moneyExpend = liJinExpendRecordService.countTodayMoneyByExpend(uid); - if(moneyExpend != null) { + if (moneyExpend != null) { moneyExpend = BigDecimal.valueOf(0); } // 娑堣�楅噾棰濆凡缁忚秴杩囨渶澶ч噾棰� @@ -146,7 +217,6 @@ } return true; } - @Override @@ -158,25 +228,25 @@ // 姣忔棩鏈�澶ф鏁板垽鏂� Integer numMax = potence.getTaolijinMaxNumber(); - if(numMax == null || numMax.intValue() <= 0) { + if (numMax == null || numMax.intValue() <= 0) { throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑娆℃暟瓒呴檺"); } // 姣忔棩鏈�澶ч噾棰濆垽鏂� BigDecimal moneyMax = potence.getTaolijinMaxMoney(); - if (moneyMax == null || moneyMax.compareTo(BigDecimal.valueOf(0)) <= 0 || moneyMax.compareTo(money) <= 0 ) { + if (moneyMax == null || moneyMax.compareTo(BigDecimal.valueOf(0)) <= 0 || moneyMax.compareTo(money) <= 0) { throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_MONEY_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑閲戦瓒呴檺"); } // 浣跨敤娆℃暟宸茬粡瓒呰繃鏈�澶ф鏁� int numExpend = liJinExpendRecordService.countTodayNumByExpend(uid); - if (numMax.intValue() < numExpend){ + if (numMax.intValue() < numExpend) { throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑娆℃暟瓒呴檺"); } // 缁熻宸蹭娇鐢ㄩ噾棰� BigDecimal moneyExpend = liJinExpendRecordService.countTodayMoneyByExpend(uid); - if(moneyExpend != null) { + if (moneyExpend != null) { moneyExpend = BigDecimal.valueOf(0); } // 鍔犱笂鏈闇�瑕佷娇鐢ㄩ噾棰� @@ -190,21 +260,27 @@ } - @Override @Transactional(rollbackFor = Exception.class) public LiJinExpendRecord createTBLijin(String uid, Long goodsId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException { + + userCanCreateTBLijin(uid); + // 鑾峰彇鐢ㄦ埛绛夌骇 VIPEnum vipRank = vipCenterService.getVIPEnumByUid(uid); + if (vipRank == null) { + vipRank = vipGradeService.getDefaultGrade().getIdentity(); + } + if (vipRank == null) { throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "鐢ㄦ埛鍒涘缓娣樼ぜ閲戠殑娆℃暟瓒呴檺"); } //娣樼ぜ閲戝垱寤� TaoBaoGoodsBrief goods = null; - try{ + try { goods = TaoKeApiUtil.searchGoodsDetail(goodsId); - } catch (TaoBaoGoodsDownException e){ + } catch (TaoBaoGoodsDownException e) { throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_OFFLINE, "鍟嗗搧涓嬬嚎"); } if (goods == null) { @@ -215,77 +291,151 @@ BigDecimal lijinAmount = getTBLijinAmount(goods, vipRank); // 鎵ц鍒涘缓娣樼ぜ閲� - LiJinCreateParam params = getLiJinCreateParam(); + LiJinCreateParam params = getLiJinCreateBaseParam(); - // TODO - // params.setAppkey(); - // params.setAppsecret(); - - - TaoLiJinDTO taoLiJinDTO = executeTaoLiJinAPI(uid, goodsId, lijinAmount, params); - if (taoLiJinDTO == null) { - throw new LiJinException(1, "娣樺疂API鎺ㄥ箍绾㈠寘鍒涘缓澶辫触"); + //鐢ㄦ埛鍒涘缓娣樼ぜ閲戜负鍗曠嚎绋嬫搷浣� + String key = "createtblijin-" + uid; + if (redisTemplate.opsForValue().setIfAbsent(key, "1", 120, TimeUnit.SECONDS)) { + Date now = new Date(); + try { + TaoLijinCreateResultDTO taoLiJinDTO = executeTaoLiJin(goodsId, lijinAmount, params); + if (taoLiJinDTO == null) { + throw new LiJinException(1, "娣樺疂API鎺ㄥ箍绾㈠寘鍒涘缓澶辫触"); + } + //娣诲姞璐﹀彿鐨� + return addCreateSuccessRecord(uid, goodsId, lijinAmount, params.getTitle(), params.getNum(), taoLiJinDTO); + } catch (LiJinGoodsException e) { + if (e.getCode() == LiJinGoodsException.CODE_GOODS_CREATED_FULL) { + lijinGoodsManager.createdFullToday(goodsId, now); + } + throw e; + } finally { + redisTemplate.delete(key); + } + } else { + throw new LiJinException(LiJinException.CODE_SERVER_BUSY, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�"); } + } + /** + * 娣诲姞鍒涘缓璁板綍 + * + * @param uid + * @param goodsId + * @param lijinAmount + * @param title + * @param num + * @param taoLiJinDTO + */ + private LiJinExpendRecord addCreateSuccessRecord(String uid, Long goodsId, BigDecimal lijinAmount, String title, int num, TaoLijinCreateResultDTO taoLiJinDTO) { + Date now = new Date(); // 淇濆瓨璁板綍 LiJinExpendRecord record = new LiJinExpendRecord(); record.setUid(uid); record.setGoodsId(goodsId + ""); - record.setTitle(params.getTitle()); - record.setNum(params.getNum()); + record.setTitle(title); + record.setNum(num); record.setMoney(lijinAmount); - record.setRightsId(taoLiJinDTO.getRightsId()); - record.setSendUrl(taoLiJinDTO.getSendUrl()); + record.setAccountId(taoLiJinDTO.getAccount().getId()); + record.setRightsId(taoLiJinDTO.getTaoLiJin().getRightsId()); + record.setSendUrl(taoLiJinDTO.getTaoLiJin().getSendUrl()); record.setCreateTime(new Date()); liJinExpendRecordMapper.insertSelective(record); + //娣诲姞 + liJinProviderTaoKeAccountManager.createLijinSuccess(taoLiJinDTO.getAccount().getId(), goodsId, lijinAmount.multiply(new BigDecimal(num)), now); return record; } - // 鍒涘缓娣樼ぜ閲� - private TaoLiJinDTO executeTaoLiJinAPI(String uid, Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException { - String appkey =params.getAppkey(); - String appsecret = params.getAppsecret(); - - // 鍒涘缓娣樼ぜ閲戠孩鍖� - TaoLiJinDTO taoLiJinDTO = null; - try { - taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(goodsId, params.getTitle(), lijinAmount, - params.getNum(), params.getSendStartTime(), params.getSendEndTime(), - params.getUseStartTime(), params.getUseEndTime(), new TaoKeAppInfo(appkey, appsecret, params.getPid())); - } catch (LiJinException e) { - // 閫氱煡鐩稿簲渚涘簲鍟� TODO - executor.execute(new Runnable() { - @Override - public void run() { - LiJinProviderAccount account = liJinProviderAccountService.getByAppInfo(appkey, appsecret); - if (account == null) { - return; - } - LiJinProviderNotice notice = new LiJinProviderNotice(); - notice.setRead(false); - notice.setProviderId(account.getProviderId()); - - if (e.getCode() == LiJinException.CODE_TLJ_FORBIDDEN) { - // 璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖� - } else if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) { - // 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻 - notice.setTitle("鐜╂硶閽卞寘浣欓涓嶈冻"); - notice.setContent("璐﹀彿锛�"+ appkey +"瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻"); - notice.setType(NoticeTypeEnum.noMoney.name()); - liJinProviderNoticeService.save(notice); - } else if (e.getCode() == LiJinException.CODE_TLJ_UN_PAID) { - // 鏈垱寤鸿处鎴� - } - } - }); + /** + * 璋冪敤璐﹀彿浠ュ強娣樺疂API + * + * @param goodsId + * @param lijinAmount + * @param params + * @return + * @throws LiJinGoodsException + * @throws LiJinException + */ + private TaoLijinCreateResultDTO executeTaoLiJin(Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException, LiJinException, LiJinAmountException { + // 鏌ヨ渚涘簲鍟嗚处鍙蜂俊鎭� + List<LiJinProviderTaoKeAccount> listAccount = liJinProviderAccountService.listValidByProviderId(Constant.PROVIDER_DEFAULT_ID, LiJinProviderTaoKeAccount.ERROR_CODE_NORMAL); + if (listAccount == null || listAccount.size() == 0) { + throw new LiJinException(1, "娌℃湁鍙敤鐨勪緵搴斿晢璐﹀彿"); } - return taoLiJinDTO; + + // 閬嶅巻璐﹀彿 鐢ㄥ彲浣跨敤璐﹀彿 + for (LiJinProviderTaoKeAccount account : listAccount) { + params.setAppkey(account.getAppKey()); + params.setAppsecret(account.getAppSecret()); + params.setPid(account.getPid()); + try { + //鍒涘缓绀奸噾 + return new TaoLijinCreateResultDTO(account, executeTaoLiJinAPI(goodsId, lijinAmount, params)); + } catch (LiJinAccountException e) {// 璐﹀彿闂 + //鏇存柊璐﹀彿鐨勯敊璇俊鎭� + LiJinProviderTaoKeAccount update = new LiJinProviderTaoKeAccount(); + update.setId(account.getId()); + if (e.getCode() == LiJinAccountException.CODE_TLJ_NO_MONEY) { + //璧勯噾涓嶈冻 + update.setErrorCode(LiJinProviderTaoKeAccount.ERROR_CODE_MONEY_NOT_ENOUGH); + } else if (e.getCode() == LiJinAccountException.CODE_TLJ_NO_GOODS) { + //鍟嗗搧鏁伴噺涓嶈冻 + update.setErrorCode(LiJinProviderTaoKeAccount.ERROR_CODE_GOODS_NOT_ENOUGH); + } else { + //璐﹀彿寮傚父 + update.setErrorCode(LiJinProviderTaoKeAccount.ERROR_CODE_OTHER); + } + update.setErrorMsg(e.getMsg()); + update.setUpdateTime(new Date()); + liJinProviderAccountService.updateByPrimaryKeySelective(update); + + // 閫氱煡鐩稿簲渚涘簲鍟� TODO + executor.execute(new Runnable() { + @Override + public void run() { + LiJinProviderNotice notice = new LiJinProviderNotice(); + notice.setRead(false); + notice.setProviderId(account.getProviderId()); + if (e.getCode() == LiJinAccountException.CODE_TLJ_NO_MONEY) { + // 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻 + notice.setTitle("鐜╂硶閽卞寘浣欓涓嶈冻"); + notice.setContent("璐﹀彿锛�" + account.getAccountName() + "瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻"); + notice.setType(NoticeTypeEnum.noMoney.name()); + liJinProviderNoticeService.save(notice); + } else if (e.getCode() == LiJinAccountException.CODE_TLJ_UN_PAID) { + // 鏈垱寤鸿处鎴� + } + } + }); + } + } + throw new LiJinException(1, "娌℃湁鍙敤鐨勪緵搴斿晢璐﹀彿"); } - private BigDecimal getTBLijinAmount(TaoBaoGoodsBrief goods, VIPEnum vipRank) throws LiJinGoodsException,LiJinAmountException { + private TaoLiJinDTO executeTaoLiJinAPI(Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinException, LiJinGoodsException, LiJinAccountException, LiJinAmountException { + return TaoKeApiUtil.createTaoLiJin(goodsId, params.getTitle(), lijinAmount, + params.getNum(), params.getSendStartTime(), params.getSendEndTime(), + params.getUseStartTime(), params.getUseEndTime(), new TaoKeAppInfo(params.getAppkey(), params.getAppsecret(), params.getPid())); + } + + + /** + * 鑾峰彇鍟嗗搧鍙垱寤虹殑绀奸噾閲戦 + * + * @param goods 鍟嗗搧 + * @param vipRank 浼氬憳绛夌骇 + * @return + * @throws LiJinGoodsException + * @throws LiJinAmountException + */ + private BigDecimal getTBLijinAmount(TaoBaoGoodsBrief goods, VIPEnum vipRank) throws + LiJinGoodsException, LiJinAmountException { + if (!lijinGoodsManager.todayCanCreate(goods.getAuctionId())) { + throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_CREATED_FULL, "浠婃棩绀奸噾鍒涘缓娆℃暟宸茶揪涓婇檺"); + } //鑾峰彇鍟嗗搧鍙垱寤虹殑娣樼ぜ閲戦潰棰濓紝鑻ヤ笉鑳藉垱寤洪渶瑕佹姏鍑虹浉鍏崇殑寮傚父锛�1.鍟嗗搧涓嶆敮鎸佺ぜ閲戝垱寤猴級 BigDecimal money = null; @@ -296,22 +446,23 @@ //鍒稿悗浠� * 鍟嗗搧浣i噾姣斾緥 * 杩斿埄姣斾緥 VipGradePotence potence = vipGradePotenceService.getPotenceByVipEnum(vipRank); - if (potence != null && potence.getRebatePercent()!= null) { - money = TaoBaoUtil.getGoodsHongBaoMoney(goods,potence.getRebatePercent(),false); + if (potence != null && potence.getTaolijinPercent() != null) { + money = TaoBaoUtil.getGoodsHongBaoMoney(goods, potence.getTaolijinPercent(), false); } - // 閲戦涓虹┖ 鎴栬�呭皬浜庨浂 鍒欐姏鍑哄紓甯� - if (money == null || money.compareTo(BigDecimal.valueOf(0)) <= 0) { - throw new LiJinAmountException(LiJinAmountException.CODE_LIJIN_AMOUNT_OUTOFRANGE,"绀奸噾鍒涘缓鐨勯噾棰濊秴鍑鸿瀹氳寖鍥�"); + if (!lijinGoodsManager.isLijinMoneyAvaiable(money)) { + throw new LiJinAmountException(LiJinAmountException.CODE_LIJIN_AMOUNT_OUTOFRANGE, "绀奸噾鏈湪瑙勫畾鑼冨洿鍐�"); } + return money; } /** * 鍒涘缓娣樼ぜ閲戝熀鏈弬鏁� + * * @return */ - private LiJinCreateParam getLiJinCreateParam() { + private LiJinCreateParam getLiJinCreateBaseParam() { Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -- Gitblit v1.8.0