From fe879975a3e8a0a1aa280fb839e02d159bfbcff8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 27 八月 2019 18:04:38 +0800 Subject: [PATCH] 金币任务多次获取bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java | 128 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 103 insertions(+), 25 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java index c526887..e4e4ca4 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java @@ -23,6 +23,7 @@ import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.UserShareGoodsHistoryMapper; import com.yeshi.fanli.dao.mybatis.share.PidUserMapper; +import com.yeshi.fanli.dto.taobao.TaoLiJinDTO; import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory; import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord; import com.yeshi.fanli.entity.bus.user.UserInfo; @@ -33,16 +34,21 @@ import com.yeshi.fanli.entity.taobao.TaoBaoLink; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; +import com.yeshi.fanli.entity.taobao.UserTLJBuyHistory; import com.yeshi.fanli.exception.ShareGoodsException; +import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException; import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; +import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service; +import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; -import com.yeshi.fanli.service.inter.tlj.GoodsTaoLiJinRateService; +import com.yeshi.fanli.service.inter.taobao.UserTLJBuyHistoryService; import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService; import com.yeshi.fanli.service.inter.user.TBPidService; import com.yeshi.fanli.service.inter.user.UserAccountService; @@ -55,6 +61,7 @@ import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -99,14 +106,19 @@ @Resource private UserMoneyExtraService userMoneyExtraService; - - @Resource - private GoodsTaoLiJinRateService goodsTaoLiJinRateService; - + @Resource private UserTaoLiJinRecordService userTaoLiJinRecordService; - - + + @Resource + private UserTLJBuyHistoryService userTLJBuyHistoryService; + + @Resource + private TLJBuyGoodsService tljBuyGoodsService; + + @Resource + private BusinessEmergent110Service businessEmergent110Service; + @Override public void addShareGoodsHistory(UserShareGoodsHistory history) { UserShareGoodsHistory userShareGoodsHistory = userShareGoodsHistoryMapper @@ -406,8 +418,8 @@ } TaoBaoGoodsBrief goods = null; try { - //娴嬭瘯 -// info.setAdzoneId("123"); + // 娴嬭瘯 + // info.setAdzoneId("123"); goods = TaoKeApiUtil.searchGoodsDetail(auctionId, info); } catch (TaobaoGoodsDownException e) { throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�"); @@ -564,7 +576,6 @@ return taoBaoLink; } - @Override public UserShareGoodsHistory getShareGoodsHistory(Long uid, Long auctionId) { return userShareGoodsHistoryMapper.selectByUidAndAuctionId(uid, auctionId); @@ -660,9 +671,9 @@ return tbLink; } - @Override - public TaoBaoLink getTaoLiJinLinkForBuy(Long uid, String specialId, Long auctionId) throws ShareGoodsException { + public TaoBaoLink getTaoLiJinLinkForBuy(Long uid, String specialId, Long auctionId, String pid) + throws ShareGoodsException { if (uid == null || uid <= 0) { throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); } @@ -673,30 +684,31 @@ // 鐢ㄦ埛鍓╀綑鍙互娣樼ぜ閲戦獙璇� UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid); - if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) { + if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) { throw new ShareGoodsException(101, "绾㈠寘浣欓涓嶈冻"); } - - + TaoKeAppInfo app = new TaoKeAppInfo(); app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); - app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT); + if (pid == null) + app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT); + else + app.setPid(pid); TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCoupon(auctionId, app); if (goods == null) { throw new ShareGoodsException(1, ""); } - + String taoLiJinLink = null; try { - goods.setAuctionId(auctionId); - UserTaoLiJinRecord createUserTaoLiJin = userTaoLiJinRecordService.createSelfBuyTaoLiJin(uid, 1, goods); - taoLiJinLink = createUserTaoLiJin.getSendUrl(); + goods.setAuctionId(auctionId); + UserTaoLiJinRecord createUserTaoLiJin = userTaoLiJinRecordService.createSelfBuyTaoLiJin(uid, 1, goods); + taoLiJinLink = createUserTaoLiJin.getSendUrl(); } catch (UserTaoLiJinRecordException e) { throw new ShareGoodsException(e.getCode(), e.getMsg()); } - - + TaoBaoLink taoBaoLink = new TaoBaoLink(); taoBaoLink.setAuctionId(auctionId); taoBaoLink.setClickUrl(goods.getAuctionUrl()); @@ -705,8 +717,7 @@ return taoBaoLink; } - - + @Override public TaoBaoLink getTaoLiJinLinkForShare(Long uid, Long auctionId, String relationId) throws ShareGoodsException { @@ -771,7 +782,6 @@ goods.setCouponLink(goods.getCouponLink() + "&relationId=" + relationId); } - // 鍒涘缓娣樺彛浠� TaoBaoLink tbLink = new TaoBaoLink(); tbLink.setAuctionId(goods.getAuctionId()); @@ -785,4 +795,72 @@ return tbLink; } + + @Override + public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId, TaoKeAppInfo app) + throws ShareGoodsException, TaoLiJinCreateException { + if (uid == null || uid <= 0) { + throw new ShareGoodsException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖"); + } + + if (auctionId == null || auctionId <= 0) { + throw new ShareGoodsException(2, "鍟嗗搧ID涓嶈兘涓虹┖"); + } + + boolean canBuy = userTLJBuyHistoryService.canBuy(uid, auctionId); + if (!canBuy) { + throw new ShareGoodsException(3, "绔嬪噺绾㈠寘宸叉姠鍏夛紝璇风◢鍚庡啀璇�"); + } + + long currentTime = System.currentTimeMillis(); + Date sendEndTime = new Date(TimeUtil.convertToTimeTemp( + TimeUtil.getGernalTime(currentTime + 1000 * 60 * 60 * 24L, "yyyy-MM-dd"), "yyyy-MM-dd")); + TaoBaoGoodsBrief goods = null; + try { + goods = TaoKeApiUtil.searchGoodsDetail(auctionId); + } catch (TaobaoGoodsDownException e) { + throw new ShareGoodsException(4, "鍟嗗搧宸蹭笅鏋�"); + } + + BigDecimal perface = TaoBaoUtil.getGoodsHongBaoMoney(goods, new BigDecimal(70)); + TaoLiJinDTO taoLiJinDTO = null; + try { + taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "鑷喘绔嬪噺", perface, 1, + new Date(currentTime - 1000 * 60 * 10L), sendEndTime, new Date(currentTime - 1000 * 60 * 10L), + sendEndTime, app); + } catch (TaoLiJinCreateException e1) { + if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {// 璧勯噾涓嶈冻 + TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(app.getAppKey()); + businessEmergent110Service.tljNoMoney(config.getAccount()); + } else if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {// 鍟嗗搧涓嶅厑璁稿垱寤烘窐绀奸噾 + tljBuyGoodsService.removeGoods(auctionId); + } + LogHelper.errorDetailInfo(e1, e1.getMessage(), null); + } catch (TaoKeApiException e) { + LogHelper.errorDetailInfo(e, e.getMessage(), null); + throw new ShareGoodsException(5, "鐢熸垚鎺ㄥ箍閾炬帴澶辫触"); + } + + if (taoLiJinDTO == null) + throw new ShareGoodsException(5, "鐢熸垚鎺ㄥ箍閾炬帴澶辫触"); + + // 鍑忓幓鍓╀綑涓暟(闅忔満鍑忓幓8鍒�10涓�) + tljBuyGoodsService.subHongBaoLeftCount(auctionId, TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"), + 8 + (int) (3 * Math.random())); + + // 鎻掑叆璁板綍 + try { + userTLJBuyHistoryService.addHistory(new UserTLJBuyHistory(null, uid, auctionId, + TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"), taoLiJinDTO.getRightsId(), new Date())); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + + TaoBaoLink taoBaoLink = new TaoBaoLink(); + taoBaoLink.setAuctionId(auctionId); + taoBaoLink.setClickUrl(goods.getAuctionUrl()); + taoBaoLink.setCouponLink(taoLiJinDTO.getSendUrl()); + taoBaoLink.setGoods(goods); + return taoBaoLink; + } } -- Gitblit v1.8.0