From 4d66b80a56cca390a0d06cc5bc5a9d8c8f790ff8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 01 六月 2020 19:04:27 +0800 Subject: [PATCH] 团队分红规则修改 --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java | 55 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 34 insertions(+), 21 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 bb3638c..d54468f 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 @@ -106,22 +106,25 @@ totalList.addAll(list); } - Map<Long, BigDecimal> moneyMap = new HashMap<>(); + Map<String, BigDecimal> moneyMap = new HashMap<>(); for (TeamDividentsSourceOrderUserMap order : totalList) { TeamDividentsSourceOrderUserMap map = teamDividentsSourceOrderUserMapService .selectByPrimaryKeyForUpdate(order.getId()); if (map != null && map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) { + String key = map.getTargetUid() + "#" + map.getType(); // 璁$畻鍒嗙孩瀵瑰簲鐨勮祫閲� - if (moneyMap.get(map.getTargetUid()) == null) - moneyMap.put(map.getTargetUid(), new BigDecimal(0)); - moneyMap.put(map.getTargetUid(), moneyMap.get(map.getTargetUid()).add(map.getMoney())); + if (moneyMap.get(key) == null) + moneyMap.put(key, new BigDecimal(0)); + moneyMap.put(key, moneyMap.get(key).add(map.getMoney())); teamDividentsSourceOrderUserMapService.send(map.getId()); } } - for (Iterator<Long> its = moneyMap.keySet().iterator(); its.hasNext();) { - Long uid = its.next(); + for (Iterator<String> its = moneyMap.keySet().iterator(); its.hasNext();) { + String key = its.next(); + Long uid = Long.parseLong(key.split("#")[0]); + Integer type = Integer.parseInt(key.split("#")[1]); BigDecimal dividents = moneyMap.get(uid).setScale(2, BigDecimal.ROUND_DOWN); // 灏嗚祫閲戝垎閰嶅埌鍙備笌鍒嗙孩鐨勭敤鎴� TeamDividentsSourceUser teamDividentsSourceUser = new TeamDividentsSourceUser(); @@ -129,6 +132,7 @@ teamDividentsSourceUser.setMoney(dividents); teamDividentsSourceUser.setSourceUid(sourceUid); teamDividentsSourceUser.setTargetUid(uid); + teamDividentsSourceUser.setType(type); teamDividentsSourceUserService.addTeamDividentsSourceUser(teamDividentsSourceUser); } } @@ -147,22 +151,10 @@ return count == 0; } - /** - * @throws TeamDividentsDebtException - * 娣诲姞鍒嗙孩璁板綍 - * @Title: addDividentsRecord - * @Description: - * @param uid -鐢ㄦ埛ID - * @param money -鍒嗙孩閲戦 - * @param day -鍒嗙孩鏃ユ湡 - * void 杩斿洖绫诲瀷 - * @throws - */ - @Transactional(rollbackFor = Exception.class) - public void addToTeamEincome(Long uid, Date preSendTime) throws TeamDividentsRecordException, + private void addToTeamEincome(Long uid, Date preSendTime, int type) throws TeamDividentsRecordException, TeamDividentsDebtException, UserMoneyDetailException, ParamsException, TeamEincomeRecordException { String day = TimeUtil.getGernalTime(preSendTime.getTime(), "yyyy-MM-dd"); - BigDecimal money = teamDividentsSourceUserService.sumMoneyByUidAndDay(uid, day); + BigDecimal money = teamDividentsSourceUserService.sumMoneyByUidAndDay(uid, day, type); // 鏌ヨ闇�瑕佹墸闄ょ殑璧勯噾 List<TeamDividentsDebt> list = teamDividentsDebtService.listNeedRepayDebt(uid, preSendTime, 1, 1000); for (TeamDividentsDebt debt : list) { @@ -182,12 +174,33 @@ record.setMoney(money); record.setState(TeamDividentsRecord.STATE_VALID); record.setUid(uid); + record.setType(type); teamDividentsRecordService.addTeamDividentsRecord(record); // 鏈夊垎绾㈡墠鏄剧ず璧勯噾鏄庣粏 if (money.compareTo(new BigDecimal(0)) > 0) { - teamEincomeManager.addTeamDividents(uid, preSendTime, money); + teamEincomeManager.addTeamDividents(uid, preSendTime, money, type); } + + } + + /** + * @throws TeamDividentsDebtException + * 娣诲姞鍒嗙孩璁板綍 + * @Title: addDividentsRecord + * @Description: + * @param uid -鐢ㄦ埛ID + * @param money -鍒嗙孩閲戦 + * @param day -鍒嗙孩鏃ユ湡 + * void 杩斿洖绫诲瀷 + * @throws + */ + @Transactional(rollbackFor = Exception.class) + public void addToTeamEincome(Long uid, Date preSendTime) throws TeamDividentsRecordException, + TeamDividentsDebtException, UserMoneyDetailException, ParamsException, TeamEincomeRecordException { + + addToTeamEincome(uid, preSendTime, TeamDividentsSourceOrderUserMap.TYPE_MORE_THAN_2); + addToTeamEincome(uid, preSendTime, TeamDividentsSourceOrderUserMap.TYPE_TEAM_DIVIDENTS); } /** -- Gitblit v1.8.0