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 | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 11 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..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,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; /** * 鍥㈤槦鍒嗙孩绠$悊 @@ -69,6 +73,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, "鍙傛暟涓嶅畬鏁�"); + } + } /** * 寮�濮嬪垎绾� @@ -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(); @@ -233,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()); @@ -259,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); + } } /** @@ -318,7 +347,6 @@ } else if (sourceOrder.getState() == TeamDividentsSourceOrder.STATE_CAN_SEND) { teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, "璁㈠崟缁存潈"); } - } /** -- Gitblit v1.8.0