From dc5be7d38446f70e6ff86df311119c32b41fe7f8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 28 十一月 2020 16:37:05 +0800 Subject: [PATCH] 大淘客搜索接口升级 --- fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java | 66 +++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 19 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java index eaeedc7..6f84731 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java @@ -40,11 +40,12 @@ import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRecordService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService; import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.MoneyBigDecimalUtil; +import org.yeshi.utils.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.TimeUtil; +import org.yeshi.utils.TimeUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService; import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit; @@ -95,6 +96,9 @@ @Resource private UserSystemCouponService userSystemCouponService; + + @Resource + private UserInviteMsgNotificationService userInviteMsgNotificationService; @Override @@ -467,21 +471,25 @@ @Override @RequestSerializableByKeyService(key = "#orderUid") @Transactional(rollbackFor = Exception.class) - public void winRedPackByOrder(Long orderUid, String orderNo, Integer source, Date downTime) { + public void winRedPackByOrder(Long orderUid, String orderNo, Integer source) { if (orderUid == null || StringUtil.isNullOrEmpty(orderNo)) { return; } + // 楠岃瘉鏄惁鏈鍗� + CommonOrder firstOrder = commonOrderService.getFirstOrder(orderUid); + if (!firstOrder.getOrderNo().equals(orderNo) || firstOrder.getSourceType() != source) + return; + Date downTime = firstOrder.getThirdCreateTime(); // 娉ㄥ唽鏃堕棿 UserInfoRegister register = userInfoRegisterService.selectByPrimaryKey(orderUid); if (register == null) return; - // 娉ㄥ唽48灏忔椂 浠ュ唴 :鏂颁汉 long registerTime = register.getCreateTime().getTime(); - // 48灏忔椂闄愬埗 - if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48) + // 娉ㄥ唽48灏忔椂鍐呬笅鍗曢檺鍒� + if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48L) return; - + // 鏄惁瀛樺湪涓婁笅绾у叧绯� ThreeSale threeSale = threeSaleSerivce.getByWorkerId(orderUid); if (threeSale == null) @@ -490,17 +498,17 @@ if (bossId == null) return; + // 璇ラ個璇锋槸鍚﹀凡娣诲姞 + RedPackWinInvite threeStage = redPackWinInviteMapper.getByUidAndTeamUid(bossId, orderUid); + if (threeStage != null) + return; + // 灏忎簬2.1.3鐗堟湰涓嶅鍔� UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId); if (activeLog == null) return; if (!VersionUtil.greaterThan_2_1_3("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", activeLog.getVersionCode())) - return; - - // 璇ラ個璇锋槸鍚﹀凡娣诲姞 - RedPackWinInvite threeStage = redPackWinInviteMapper.getByUidAndTeamUid(bossId, orderUid); - if (threeStage != null) return; // 鏌ヨ璁㈠崟 @@ -515,6 +523,10 @@ boolean satisfy = false; // 閬嶅巻鏄惁瀛樺湪绗﹀悎鐩稿簲鍟嗗搧 for (CommonOrder commonOrder: list) { + // 璁㈠崟鏈粨绠� + if(commonOrder.getState() != CommonOrder.STATE_JS) + continue; + // 閭�璇峰叧绯讳箣鍚� long thirdTime = commonOrder.getThirdCreateTime().getTime(); if (thirdTime < threeSale.getCreateTime()) @@ -530,7 +542,7 @@ if(eIncome == null || settlement == null) { continue; } - BigDecimal rete = MoneyBigDecimalUtil.div(eIncome, settlement); + BigDecimal rete =MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.div(eIncome, settlement), BigDecimal.valueOf(100)) ; if (rete.compareTo(limitRate) >= 0) { satisfy = true; break; @@ -553,6 +565,10 @@ winInvite.setType(RedPackWinInviteTypeEnum.inviteDownOrder); winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.inviteDownOrder.name() + ":" + orderUid)); redPackWinInviteMapper.insertSelective(winInvite); + + // 娑堟伅鎻愰啋 + UserInfo userInfo = userInfoService.selectByPKey(orderUid); + userInviteMsgNotificationService.pullNewRedPack(bossId, userInfo.getNickName(), userInfo.getPortrait()); } @Override @@ -566,9 +582,14 @@ // 娉ㄥ唽48灏忔椂 浠ュ唴:鏂颁汉 long registerTime = register.getCreateTime().getTime(); // 48灏忔椂闄愬埗 - if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48) + if (downTime.getTime() > registerTime || downTime.getTime() < registerTime + 1000*60*60*48) return satisfy; + // 楠岃瘉鏄惁鏈鍗� + CommonOrder firstOrder = commonOrderService.getFirstOrder(orderUid); + if (!firstOrder.getOrderNo().equals(orderNo) || firstOrder.getSourceType() != source) + return satisfy; + // 鏄惁宸插鍔� List<UserSystemCoupon> coupons = userSystemCouponService.getUserCouponBySource(orderUid, UserSystemCoupon.SOURCE_PULL_NEW); if (coupons != null && coupons.size() > 0) { @@ -605,9 +626,13 @@ long thirdTime = commonOrder.getThirdCreateTime().getTime(); if (thirdTime < threeSale.getCreateTime()) continue; + // 璁㈠崟澶辨晥 + if(commonOrder.getState() != CommonOrder.STATE_FK && commonOrder.getState() != CommonOrder.STATE_JS) + continue; + // 浠樻閲戦闄愬埗 BigDecimal payment = commonOrder.getPayment(); - if (payment == null || payment.compareTo(limitPayMent) < 0) + if (payment == null || payment.compareTo(limitPayMent) <= 0) continue; // 鍟嗗搧浣i噾姣斾緥闄愬埗 @@ -641,7 +666,7 @@ // 娉ㄥ唽48灏忔椂 浠ュ唴:鏂颁汉 long registerTime = register.getCreateTime().getTime(); // 48灏忔椂闄愬埗 - if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48) + if (downTime.getTime() > registerTime || downTime.getTime() < registerTime + 1000*60*60*48) return; // 鏄惁宸插鍔� @@ -663,9 +688,12 @@ boolean satisfy = false; // 閬嶅巻鏄惁瀛樺湪绗﹀悎鐩稿簲鍟嗗搧 for (CommonOrder commonOrder: list) { + // 璁㈠崟澶辨晥 + if(commonOrder.getState() != CommonOrder.STATE_FK && commonOrder.getState() != CommonOrder.STATE_JS) + continue; // 浠樻閲戦闄愬埗 BigDecimal payment = commonOrder.getPayment(); - if (payment == null || payment.compareTo(limitPayMent) < 0) + if (payment == null || payment.compareTo(limitPayMent) <= 0) continue; // 鍟嗗搧浣i噾姣斾緥闄愬埗 @@ -687,8 +715,8 @@ // 璧犻�佽喘涔拌�呬竴寮犲厤鍗曞埜 try { - userSystemCouponService.freeCouponWinBySystem(orderUid, CouponTypeEnum.freeCouponBuy, - UserSystemCoupon.SOURCE_PULL_NEW, 1, true, 2); + userSystemCouponService.freeCouponWinBySystem(orderUid, CouponTypeEnum.freeCoupon, + UserSystemCoupon.SOURCE_PULL_NEW, 1, true, 2, 1); } catch (UserSystemCouponException e) { e.printStackTrace(); } catch (Exception e) { -- Gitblit v1.8.0