From 43a604467d91ef42148bfb3b5526618e91ea4adc Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 五月 2021 19:05:33 +0800 Subject: [PATCH] 礼金创建修改 --- service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java | 73 ++++++++++++++++++++++++------------ 1 files changed, 49 insertions(+), 24 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 7ed1037..dd90b7a 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,10 +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; @@ -14,6 +15,7 @@ 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.util.Constant; import com.ks.lijin.utils.taobao.TaoBaoUtil; import com.ks.lijin.utils.taobao.TaoKeApiUtil; @@ -32,7 +34,6 @@ import javax.annotation.Resource; import java.math.BigDecimal; -import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -68,6 +69,9 @@ private LiJinExpendRecordService liJinExpendRecordService; + @Resource + private LiJinProviderTaoKeAccountManager liJinProviderTaoKeAccountManager; + @Override public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList) { VIPEnum vipRank = null; @@ -93,7 +97,7 @@ //璁$畻杩斿埄姣斾緥 BigDecimal rebateRate = potence.getRebatePercent(); BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods); - BigDecimal fanliMoney = TaoBaoUtil.getGoodsHongBaoMoney(goods,rebateRate,false); + BigDecimal fanliMoney = TaoBaoUtil.getGoodsHongBaoMoney(goods, rebateRate, false); moneyInfo.setFanliAmount(fanliMoney); moneyInfo.setFirstOrderAmount(null); list.add(moneyInfo); @@ -259,25 +263,45 @@ BigDecimal lijinAmount = getTBLijinAmount(goods, vipRank); // 鎵ц鍒涘缓娣樼ぜ閲� - LiJinCreateParam params = getLiJinCreateParam(); + LiJinCreateParam params = getLiJinCreateBaseParam(); - TaoLiJinDTO taoLiJinDTO = executeTaoLiJinAPI(uid, goodsId, lijinAmount, params); + TaoLijinCreateResultDTO taoLiJinDTO = executeTaoLiJin(goodsId, lijinAmount, params); if (taoLiJinDTO == null) { throw new LiJinException(1, "娣樺疂API鎺ㄥ箍绾㈠寘鍒涘缓澶辫触"); } + //娣诲姞璐﹀彿鐨� + return addCreateSuccessRecord(uid, goodsId, lijinAmount, params.getTitle(), params.getNum(), taoLiJinDTO); + } + + + /** + * 娣诲姞鍒涘缓璁板綍 + * + * @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; } @@ -285,7 +309,6 @@ /** * 璋冪敤璐﹀彿浠ュ強娣樺疂API * - * @param uid * @param goodsId * @param lijinAmount * @param params @@ -293,24 +316,22 @@ * @throws LiJinGoodsException * @throws LiJinException */ - private TaoLiJinDTO executeTaoLiJinAPI(String uid, Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException, LiJinException { + private TaoLijinCreateResultDTO executeTaoLiJin(Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException, LiJinException { // 鏌ヨ渚涘簲鍟嗚处鍙蜂俊鎭� - List<LiJinProviderAccount> listAccount = liJinProviderAccountService.listByProviderId(Constant.PROVIDER_DEFAULT_ID); + List<LiJinProviderTaoKeAccount> listAccount = liJinProviderAccountService.listByProviderId(Constant.PROVIDER_DEFAULT_ID); if (listAccount == null || listAccount.size() == 0) { - throw new LiJinException(1, "渚涘簲鍟嗚处鍙蜂笉瀛樺湪"); + throw new LiJinException(1, "娌℃湁鍙敤鐨勪緵搴斿晢璐﹀彿"); } - TaoLiJinDTO taoLiJinDTO = null; // 閬嶅巻璐﹀彿 鐢ㄥ彲浣跨敤璐﹀彿 - for (LiJinProviderAccount account : listAccount) { + for (LiJinProviderTaoKeAccount account : listAccount) { params.setAppkey(account.getAppKey()); params.setAppsecret(account.getAppSecret()); + params.setPid(account.getPid()); try { - taoLiJinDTO = executeTaoLiJinAPI(uid, goodsId, lijinAmount, params); - if (taoLiJinDTO != null) { - break; - } - } catch (LiJinException e) { + //鍒涘缓绀奸噾 + return new TaoLijinCreateResultDTO(account, executeTaoLiJinAPI(goodsId, lijinAmount, params)); + } catch (LiJinAccountException e) {// 璐﹀彿闂 // 閫氱煡鐩稿簲渚涘簲鍟� TODO executor.execute(new Runnable() { @Override @@ -318,25 +339,29 @@ LiJinProviderNotice notice = new LiJinProviderNotice(); notice.setRead(false); notice.setProviderId(account.getProviderId()); - if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) { + 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() == LiJinException.CODE_TLJ_UN_PAID) { + } else if (e.getCode() == LiJinAccountException.CODE_TLJ_UN_PAID) { // 鏈垱寤鸿处鎴� } } }); } } + throw new LiJinException(1, "娌℃湁鍙敤鐨勪緵搴斿晢璐﹀彿"); + } - // 鍒涘缓娣樼ぜ閲戠孩鍖� + + private TaoLiJinDTO executeTaoLiJinAPI(Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinException, LiJinGoodsException, LiJinAccountException { 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())); } + /** * 鑾峰彇鍟嗗搧鍙垱寤虹殑绀奸噾閲戦 @@ -375,7 +400,7 @@ * * @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