| | |
| | |
|
| | | @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, "参数不完整");
|
| | | }
|
| | | }
|
| | |
|
| | |
| | |
|
| | | // 是否可以分红
|
| | | 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
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | // 没有参与分红的用户
|
| | | 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();
|
| | |
| | | teamDividentsSourceUser.setTargetUid(uid);
|
| | | teamDividentsSourceUserService.addTeamDividentsSourceUser(teamDividentsSourceUser);
|
| | | }
|
| | | // if (1 / 0 > 0)
|
| | | // return;
|
| | | }
|
| | |
|
| | | // 计算平均分红
|
| | |
| | | * @throws
|
| | | */
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void addToTeamEincome(Long uid, String day) throws TeamDividentsRecordException, TeamDividentsDebtException,
|
| | | UserMoneyDetailException, ParamsException, TeamEincomeRecordException {
|
| | | Date preSendTime = new Date(TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd"));
|
| | | 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, preSendTime, 1, 1000);
|
| | |
| | |
|
| | | // 有分红才显示资金明细
|
| | | if (money.compareTo(new BigDecimal(0)) > 0) {
|
| | |
|
| | | teamEincomeManager.addTeamDividents(uid, preSendTime, money);
|
| | | }
|
| | | }
|
| | |
| | | } else if (sourceOrder.getState() == TeamDividentsSourceOrder.STATE_CAN_SEND) {
|
| | | teamDividentsSourceOrderService.invalidOrder(orderNo, sourceType, "订单维权");
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|