From 512f368d7d8e71ee72a8f71dd7d2146f4c64f774 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 02 六月 2021 18:54:58 +0800 Subject: [PATCH] 特价相关bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java | 144 ++++++++++++++++++++++++++++++------------------ 1 files changed, 90 insertions(+), 54 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java index 5f4ab50..c70caa4 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java @@ -8,6 +8,7 @@ import javax.annotation.Resource; import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.lijin.manager.UserLijinMnager; import com.yeshi.fanli.service.inter.user.UserInfoService; import org.springframework.stereotype.Service; @@ -33,16 +34,19 @@ @Resource private UserInfoService userInfoService; + @Resource + private UserLijinMnager userLijinMnager; + @Override public BigDecimal computeBaseFanliMoney(CommonOrder order) { SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId()); - return getBaseCommission(order,system); + return getBaseCommission(order, system); } @Override public BigDecimal computeBaseShareMoney(CommonOrder order) { SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId()); - return getBaseCommission(order,system); + return getBaseCommission(order, system); } private UserLevelEnum getCommonUserLevel(Date time, UserLevelEnum userLevel) { @@ -68,12 +72,18 @@ @Override public BigDecimal computeFanliMoney(CommonOrder order, UserLevelEnum userLevel) { SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId()); - BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(),system) - .add(getOfficialSubsidyRate(order.getThirdCreateTime(), - getCommonUserLevel(order.getThirdCreateTime(), userLevel), false,system)); - if (userLevel == UserLevelEnum.normalVIP) { - rate = new BigDecimal("61"); + BigDecimal rate = null; + if (system == SystemEnum.yhqjx) { + rate = userLijinMnager.getUserFanliRate(order.getUserInfo().getId(), order.getThirdCreateTime()); + } else { + rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(), system) + .add(getOfficialSubsidyRate(order.getThirdCreateTime(), + getCommonUserLevel(order.getThirdCreateTime(), userLevel), false, system)); + if (userLevel == UserLevelEnum.normalVIP) { + rate = new BigDecimal("61"); + } } + if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ) return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100)); @@ -86,13 +96,18 @@ @Override public BigDecimal computeShareMoney(CommonOrder order, UserLevelEnum userLevel) { SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId()); - BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(),system) - .add(getOfficialSubsidyRate(order.getThirdCreateTime(), - getCommonUserLevel(order.getThirdCreateTime(), userLevel), true,system)); + if (system == SystemEnum.yhqjx) { + return new BigDecimal(0); + } + + BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime(), system) + .add(getOfficialSubsidyRate(order.getThirdCreateTime(), + getCommonUserLevel(order.getThirdCreateTime(), userLevel), true, system)); if (userLevel == UserLevelEnum.normalVIP) { rate = new BigDecimal("61"); } + if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ) return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100)); @@ -106,9 +121,12 @@ public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer, List<UserTeamLevel> bossLevelList) { SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId()); + if (system == SystemEnum.yhqjx) { + return new BigDecimal(0); + } BigDecimal rate = null; if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) { - rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 1,system).getRate(); + rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 1, system).getRate(); if (rate == null) return null; if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ) @@ -116,12 +134,12 @@ else if (order.getEstimate() != null) return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100)); } else {// 鑰佺殑杩斿埄姣斾緥 - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime(), system); if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ) - return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)), + return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)), new BigDecimal(100)); else if (order.getEstimate() != null) - return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)), + return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)), new BigDecimal(100)); } @@ -132,9 +150,12 @@ public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer, List<UserTeamLevel> bossLevelList) { SystemEnum system = userInfoService.getUserSystem(order.getUserInfo().getId()); + if (system == SystemEnum.yhqjx) { + return new BigDecimal(0); + } BigDecimal rate = null; if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) { - rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 2,system).getRate(); + rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 2, system).getRate(); if (rate == null) return null; if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ) @@ -142,12 +163,12 @@ else if (order.getEstimate() != null) return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100)); } else {// 鑰佺殑杩斿埄姣斾緥 - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_7", order.getThirdCreateTime().getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_7", order.getThirdCreateTime().getTime(), system); if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ) - return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)), + return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)), new BigDecimal(100)); else if (order.getEstimate() != null) - return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order,system)), + return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order, system)), new BigDecimal(100)); } @@ -165,7 +186,10 @@ * @Title: getOfficialSubsidyRate * @Description: */ - private BigDecimal getOfficialSubsidyRate(Date date, UserLevelEnum userLevel, boolean share,SystemEnum system) { + private BigDecimal getOfficialSubsidyRate(Date date, UserLevelEnum userLevel, boolean share, SystemEnum system) { + if (system == SystemEnum.yhqjx) { + return new BigDecimal(0); + } String key = null; if (share) key = String.format("official_subsidy_share_%s", userLevel.getLevel()); @@ -174,24 +198,30 @@ BigDecimal rate = null; if (date != null) rate = hongBaoManageService.getByKeyAndMaxTimeCache(key, TimeUtil - .convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"),system); + .convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"), system); else - rate = new BigDecimal(hongBaoManageService.get(key,system)); + rate = new BigDecimal(hongBaoManageService.get(key, system)); return rate; } - private BigDecimal getRateByLevel(UserLevelEnum level, Date date,SystemEnum system) { + private BigDecimal getRateByLevel(UserLevelEnum level, Date date, SystemEnum system) { + if (system == SystemEnum.yhqjx) { + return new BigDecimal(0); + } BigDecimal baseRate = hongBaoManageService.getBaseFanliRateCache( - TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"),system); + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"), system); - BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false,system); + BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false, system); return baseRate.add(subsidyRate); } @Override public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, Date date, - int deep,SystemEnum system) { + int deep, SystemEnum system) { + if (system == SystemEnum.yhqjx) { + return null; + } if (deep == 1) {// 鐩存帴閭�璇蜂汉濂栭噾 UserTeamLevel boss = bossLevelList.get(0); BigDecimal rate = null; @@ -199,12 +229,12 @@ return null; if (buyerLevel == UserLevelEnum.daRen && boss.getLevel() == UserLevelEnum.daRen) { - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(), system); } else if (buyerLevel == UserLevelEnum.normalVIP && boss.getLevel() == UserLevelEnum.normalVIP) { - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime(), system); } else { - BigDecimal bossRate = getRateByLevel(boss.getLevel(), date,system); - BigDecimal buyerRate = getRateByLevel(buyerLevel, date,system); + BigDecimal bossRate = getRateByLevel(boss.getLevel(), date, system); + BigDecimal buyerRate = getRateByLevel(buyerLevel, date, system); rate = bossRate.subtract(buyerRate); if (rate.compareTo(new BigDecimal(0)) < 0) rate = new BigDecimal(0); @@ -216,34 +246,34 @@ if (bossLevelList == null || bossLevelList.size() < 2) return null; - BigDecimal buyerRate = getRateByLevel(buyerLevel, date,system); - BigDecimal firstRate = getTeamRewardRate(buyerLevel, bossLevelList, date, 1,system).getRate(); + BigDecimal buyerRate = getRateByLevel(buyerLevel, date, system); + BigDecimal firstRate = getTeamRewardRate(buyerLevel, bossLevelList, date, 1, system).getRate(); UserTeamLevel boss = bossLevelList.get(1); UserTeamLevel firstBoss = bossLevelList.get(0); BigDecimal rate = null; if (buyerLevel == UserLevelEnum.daRen && firstBoss.getLevel() == UserLevelEnum.daRen) { if (boss.getLevel() == UserLevelEnum.daRen) - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(), system); else { rate = null; } } else if (buyerLevel == UserLevelEnum.normalVIP && firstBoss.getLevel() == UserLevelEnum.normalVIP) { if (boss.getLevel() == UserLevelEnum.normalVIP) - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(), system); else { rate = null; } } else if (buyerLevel == UserLevelEnum.daRen && firstBoss.getLevel() == UserLevelEnum.normalVIP) { if (boss.getLevel() == UserLevelEnum.normalVIP) - rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(),system); + rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime(), system); else { rate = null; } } // 鏋佸樊璁$畻娉� if (rate == null) { - rate = getRateByLevel(boss.getLevel(), date,system).subtract(buyerRate).subtract(firstRate); + rate = getRateByLevel(boss.getLevel(), date, system).subtract(buyerRate).subtract(firstRate); if (rate.compareTo(new BigDecimal(0)) < 0) rate = new BigDecimal(0); } @@ -255,25 +285,28 @@ @Override public List<UserTeamRate> getTeamRewardMoreThan2LevelRates(UserLevelEnum buyerLevel, - List<UserTeamLevel> bossLevelList, Date date,SystemEnum system) { + List<UserTeamLevel> bossLevelList, Date date, SystemEnum system) { + if (system == SystemEnum.yhqjx) { + return null; + } if (bossLevelList == null || bossLevelList.size() < 3) return null; - UserTeamRate firstBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 1,system); + UserTeamRate firstBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 1, system); if (firstBoss == null) return null; - UserTeamRate secondBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 2,system); + UserTeamRate secondBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 2, system); if (secondBoss == null) return null; - BigDecimal buyerRate = getRateByLevel(buyerLevel, date,system); + BigDecimal buyerRate = getRateByLevel(buyerLevel, date, system); BigDecimal totalRate = firstBoss.getRate().add(secondBoss.getRate()).add(buyerRate); List<UserTeamRate> rateList = new ArrayList<>(); for (int i = 2; i < bossLevelList.size(); i++) { - BigDecimal rate = getRateByLevel(bossLevelList.get(i).getLevel(), date,system); + BigDecimal rate = getRateByLevel(bossLevelList.get(i).getLevel(), date, system); if (rate.compareTo(totalRate) > 0) { BigDecimal subRate = rate.subtract(totalRate); totalRate = subRate.add(totalRate);// 绱鍒嗘垚姣斾緥 @@ -287,7 +320,10 @@ // 鍥㈤槦鍒嗙孩 @Override public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, - Date date,SystemEnum system) { + Date date, SystemEnum system) { + if (system == SystemEnum.yhqjx) { + return null; + } List<UserTeamRate> rateList = new ArrayList<>(); List<UserTeamLevel> levelList = new ArrayList<>(); @@ -318,9 +354,9 @@ } BigDecimal highTotalRate = hongBaoManageService.getByKeyAndMaxTime("dividents_rate_same_level_high", - date.getTime(),system); + date.getTime(), system); BigDecimal vipTotalRate = hongBaoManageService.getByKeyAndMaxTime("dividents_rate_same_level_super", - date.getTime(),system); + date.getTime(), system); if (vipList.size() > 0 && highList.size() > 0) { @@ -364,7 +400,7 @@ for (UserTeamLevel level : bossLevelList) { if (level.getLevel() == UserLevelEnum.tearcher) { rateList.add(new UserTeamRate(level, - hongBaoManageService.getByKeyAndMaxTime("dividents_rate_tearcher", date.getTime(),system))); + hongBaoManageService.getByKeyAndMaxTime("dividents_rate_tearcher", date.getTime(), system))); break; } } @@ -374,16 +410,16 @@ @Override public UserTeamRate getTearcherSubsidy(UserLevelEnum buyerLevel, BigDecimal money, - List<UserTeamLevel> bossLevelList, Date date,SystemEnum system) { + List<UserTeamLevel> bossLevelList, Date date, SystemEnum system) { // TODO Auto-generated method stub return null; } - private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel,SystemEnum system) { + private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel, SystemEnum system) { BigDecimal rate = hongBaoManageService .getBaseFanliRateCache(TimeUtil - .convertToTimeTemp(TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"),system) - .add(getOfficialSubsidyRate(time, getCommonUserLevel(time, userLevel), false,system)); + .convertToTimeTemp(TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"), system) + .add(getOfficialSubsidyRate(time, getCommonUserLevel(time, userLevel), false, system)); if (userLevel == UserLevelEnum.normalVIP) rate = new BigDecimal("61"); @@ -392,10 +428,10 @@ @Override public GoodsMoneyConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel, SystemEnum system) { - BigDecimal fanLiRate = getFanliRate(new Date(), userLevel,system); + BigDecimal fanLiRate = getFanliRate(new Date(), userLevel, system); BigDecimal shareRate = fanLiRate; GoodsMoneyConfigParamsDTO paramsDTO = new GoodsMoneyConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, - getFanliRate(new Date(), UserLevelEnum.superVIP,system)); + getFanliRate(new Date(), UserLevelEnum.superVIP, system)); if (VersionUtil.greaterThan_2_0_5(platform, version)) { paramsDTO.setMaxRewardRate(null); } @@ -404,13 +440,13 @@ @Override public GoodsMoneyConfigParamsDTO getShowComputeRate(String platform, String version, SystemEnum system) { - return getShowComputeRate(platform, version, UserLevelEnum.daRen,system); + return getShowComputeRate(platform, version, UserLevelEnum.daRen, system); } @Override - public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date,SystemEnum system) { - BigDecimal rate = hongBaoManageService.getBaseFanliRate(date.getTime(),system) - .add(getOfficialSubsidyRate(date, getCommonUserLevel(date, userLevel), false,system)); + public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date, SystemEnum system) { + BigDecimal rate = hongBaoManageService.getBaseFanliRate(date.getTime(), system) + .add(getOfficialSubsidyRate(date, getCommonUserLevel(date, userLevel), false, system)); return rate; } -- Gitblit v1.8.0