From 353ac53e5e8093e36c69fbaa7b26160bb2d97f9d Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期三, 15 四月 2020 16:09:24 +0800 Subject: [PATCH] 消息订阅 --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java | 36 ++++++++++++++++++++++-------------- 1 files changed, 22 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 37062e4..fc7a5e5 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,7 +16,6 @@ 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; @@ -24,6 +23,7 @@ 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; @@ -35,10 +35,10 @@ 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; @@ -74,19 +74,25 @@ @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 (TeamDividentsSourceOrderException e) { - e.printStackTrace(); } catch (ParamsException e) { - e.printStackTrace(); + throw new TeamDividentsSourceOrderException(101, "鍙傛暟涓嶅畬鏁�"); } } @@ -186,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(); @@ -253,11 +264,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()); @@ -279,12 +291,9 @@ // 鏈夊垎绾㈡墠鏄剧ず璧勯噾鏄庣粏 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); + } } /** @@ -338,7 +347,6 @@ } else if (sourceOrder.getState() == TeamDividentsSourceOrder.STATE_CAN_SEND) { teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, "璁㈠崟缁存潈"); } - } /** -- Gitblit v1.8.0