From db751b1fda37f52134cdc1730a4037138b7f3550 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 四月 2020 10:02:19 +0800 Subject: [PATCH] 升级消息 --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java | 53 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 39 insertions(+), 14 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java index 6a14fc8..86323b3 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java @@ -16,15 +16,17 @@ import com.yeshi.fanli.entity.bus.user.ThreeSale; import com.yeshi.fanli.entity.bus.user.vip.TeamUserLevelStatistic; import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; -import com.yeshi.fanli.entity.money.UserMoneyDetail; +import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.order.dividents.TeamDividentsDebt; import com.yeshi.fanli.entity.order.dividents.TeamDividentsRecord; import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrder; import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceUser; import com.yeshi.fanli.exception.ParamsException; import com.yeshi.fanli.exception.money.TeamDividentsDebtException; +import com.yeshi.fanli.exception.money.TeamEincomeRecordException; import com.yeshi.fanli.exception.money.UserMoneyDetailException; import com.yeshi.fanli.exception.order.dividents.TeamDividentsRecordException; +import com.yeshi.fanli.exception.order.dividents.TeamDividentsSourceOrderException; import com.yeshi.fanli.service.inter.money.TeamDividentsDebtService; import com.yeshi.fanli.service.inter.money.UserMoneyService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; @@ -33,10 +35,12 @@ import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceUserService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService; +import com.yeshi.fanli.service.manger.money.TeamEincomeManager; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.TimeUtil; -import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; +import com.yeshi.fanli.util.factory.order.dividents.TeamDividentsSourceOrderFactory; +import com.yeshi.fanli.util.user.UserLevelUtil; /** * 鍥㈤槦鍒嗙孩绠$悊 @@ -70,6 +74,28 @@ @Resource private HongBaoManageService hongBaoManageService; + @Resource + private TeamEincomeManager teamEincomeManager; + + @Transactional(rollbackFor = Exception.class) + public void addDividentsSourceOrder(List<CommonOrder> commonOrderList) throws TeamDividentsSourceOrderException { + if (commonOrderList.get(0).getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) + return; + + UserLevelEnum level = UserLevelUtil.getByOrderRank(commonOrderList.get(0).getUrank()); + if (level == null) + level = UserLevelEnum.daRen; + BigDecimal rate = getSourceOrderDividentsRate(level); + TeamDividentsSourceOrder order = TeamDividentsSourceOrderFactory.create(commonOrderList, rate); + if (order == null) + return; + try { + teamDividentsSourceOrderService.addTeamDividentsSourceOrder(order); + } catch (ParamsException e) { + throw new TeamDividentsSourceOrderException(101, "鍙傛暟涓嶅畬鏁�"); + } + } + /** * 寮�濮嬪垎绾� * @Title: startDividents @@ -87,7 +113,7 @@ // 鏄惁鍙互鍒嗙孩 private boolean isCanDividents(TeamUserLevelStatistic tus) { - if (Constant.IS_TEST) + if (Constant.IS_TEST && tus.getLevel() != UserLevelEnum.daRen && tus.getLevel() != UserLevelEnum.normalVIP) return true; if (tus != null && (tus.getLevel() == UserLevelEnum.highVIP || tus.getLevel() == UserLevelEnum.superVIP @@ -166,6 +192,11 @@ } } + // 娌℃湁鍙備笌鍒嗙孩鐨勭敤鎴� + if (uidLevel == null || uidLevel.size() == 0) { + return; + } + BigDecimal perDivident = computePerDivident(uidLevel, totalMoney); for (Iterator<Long> its = uidLevel.keySet().iterator(); its.hasNext();) { Long uid = its.next(); @@ -178,8 +209,6 @@ teamDividentsSourceUser.setTargetUid(uid); teamDividentsSourceUserService.addTeamDividentsSourceUser(teamDividentsSourceUser); } - // if (1 / 0 > 0) - // return; } // 璁$畻骞冲潎鍒嗙孩 @@ -233,11 +262,12 @@ * @throws */ @Transactional(rollbackFor = Exception.class) - public void addDividents(Long uid, String day) - throws TeamDividentsRecordException, TeamDividentsDebtException, UserMoneyDetailException, ParamsException { + public void addToTeamEincome(Long uid, Date preSendTime) throws TeamDividentsRecordException, + TeamDividentsDebtException, UserMoneyDetailException, ParamsException, TeamEincomeRecordException { + String day = TimeUtil.getGernalTime(preSendTime.getTime(), "yyyy-MM-dd"); BigDecimal money = teamDividentsSourceUserService.sumMoneyByUidAndDay(uid, day); // 鏌ヨ闇�瑕佹墸闄ょ殑璧勯噾 - List<TeamDividentsDebt> list = teamDividentsDebtService.listNeedRepayDebt(uid, 1, 1000); + List<TeamDividentsDebt> list = teamDividentsDebtService.listNeedRepayDebt(uid, preSendTime, 1, 1000); for (TeamDividentsDebt debt : list) { if (money.subtract(debt.getLeftMoney()).compareTo(new BigDecimal(0)) >= 0) {// 杩樻湁閽辫繕 money = money.subtract(debt.getLeftMoney()); @@ -259,12 +289,8 @@ // 鏈夊垎绾㈡墠鏄剧ず璧勯噾鏄庣粏 if (money.compareTo(new BigDecimal(0)) > 0) { - UserMoneyDetail detail = UserMoneyDetailFactory.createOrderTeamDividents(uid, money, new Date()); - // 澧炲姞璧勯噾 - userMoneyService.addUserMoney(uid, money, detail); - // TODO 鍔犲叆閫氱煡 + teamEincomeManager.addTeamDividents(uid, preSendTime, money); } - } /** @@ -318,7 +344,6 @@ } else if (sourceOrder.getState() == TeamDividentsSourceOrder.STATE_CAN_SEND) { teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, "璁㈠崟缁存潈"); } - } /** -- Gitblit v1.8.0