From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/manger/order/TeamDividentsManager.java | 561 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 280 insertions(+), 281 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 d54468f..7b160d6 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 @@ -1,281 +1,280 @@ -package com.yeshi.fanli.service.manger.order; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -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.TeamDividentsSourceOrderUserMap; -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.service.inter.money.TeamDividentsDebtService; -import com.yeshi.fanli.service.inter.money.UserMoneyService; -import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; -import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsRecordService; -import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; -import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService; -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.TimeUtil; - -/** - * 鍥㈤槦鍒嗙孩绠$悊 - * @author Administrator - * - */ -@Component -public class TeamDividentsManager { - - @Resource - private TeamDividentsSourceManager teamDividentsSourceManager; - - @Resource - private TeamDividentsSourceOrderService teamDividentsSourceOrderService; - - @Resource - private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; - - @Resource - private TeamDividentsSourceUserService teamDividentsSourceUserService; - - @Resource - private TeamDividentsRecordService teamDividentsRecordService; - - @Resource - private ThreeSaleSerivce threeSaleSerivce; - - @Resource - private TeamUserLevelStatisticService teamUserLevelStatisticService; - - @Resource - private TeamDividentsDebtService teamDividentsDebtService; - - @Resource - private UserMoneyService userMoneyService; - - @Resource - private HongBaoManageService hongBaoManageService; - - @Resource - private TeamEincomeManager teamEincomeManager; - - /** - * 寮�濮嬪垎绾� - * @Title: startDividents - * @Description: - * @param sourceUid -婧愮敤鎴� - * void 杩斿洖绫诲瀷 - * @throws - */ - @Transactional(rollbackFor = Exception.class) - public void startDividents(Long sourceUid) throws ParamsException { - String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"); - Date preSendTime = new Date(TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd")); - startDividents(sourceUid, preSendTime); - } - - @Transactional(rollbackFor = Exception.class) - public void startDividents(Long sourceUid, Date preSendTime) throws ParamsException { - String day = TimeUtil.getGernalTime(preSendTime.getTime(), "yyyy-MM-dd"); - // 鏌ヨ鍑哄彲鐢ㄤ簬鍒嗙孩鐨勭敤鎴风殑鎬婚噾棰� - long count = teamDividentsSourceOrderUserMapService.countCanSend(sourceUid, preSendTime); - int pageSize = 1000; - int page = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); - List<TeamDividentsSourceOrderUserMap> totalList = new ArrayList<>(); - for (int p = 0; p < page; p++) { - List<TeamDividentsSourceOrderUserMap> list = teamDividentsSourceOrderUserMapService.listCanSend(sourceUid, - preSendTime, p + 1, pageSize); - if (list != null && list.size() > 0) - totalList.addAll(list); - } - - 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(key) == null) - moneyMap.put(key, new BigDecimal(0)); - moneyMap.put(key, moneyMap.get(key).add(map.getMoney())); - teamDividentsSourceOrderUserMapService.send(map.getId()); - } - } - - 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(); - teamDividentsSourceUser.setDay(day); - teamDividentsSourceUser.setMoney(dividents); - teamDividentsSourceUser.setSourceUid(sourceUid); - teamDividentsSourceUser.setTargetUid(uid); - teamDividentsSourceUser.setType(type); - teamDividentsSourceUserService.addTeamDividentsSourceUser(teamDividentsSourceUser); - } - } - - /** - * 鍒嗙孩璁$畻鏄惁瀹屾垚 - * @Title: isSourceUserComupteFinish - * @Description: - * @return - * boolean 杩斿洖绫诲瀷 - * @throws - */ - public boolean isSourceUserComupteFinish(String day) { - Date preSendTime = new Date(TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd")); - long count = teamDividentsSourceOrderUserMapService.countCanSend(null, preSendTime); - return count == 0; - } - - 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, type); - // 鏌ヨ闇�瑕佹墸闄ょ殑璧勯噾 - 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()); - teamDividentsDebtService.repayDebt(debt.getId(), debt.getLeftMoney()); - } else if (money.compareTo(new BigDecimal(0)) > 0) { - teamDividentsDebtService.repayDebt(debt.getId(), money); - money = new BigDecimal(0); - } else// 娌℃湁閽辫繕浜� - break; - } - - // 缁熻璧勯噾 - TeamDividentsRecord record = new TeamDividentsRecord(); - record.setDay(day); - 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, 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); - } - - /** - * @throws TeamDividentsDebtException - * 璁㈠崟缁存潈 - * @Title: weiQuan - * @Description: - * @param orderNo - * @param tradeId - * @param sourceType - * void 杩斿洖绫诲瀷 - * @throws - */ - @Transactional(rollbackFor = Exception.class) - public void weiQuan(String orderNo, int sourceType) throws TeamDividentsDebtException { - // 鏌ヨ璁㈠崟鏄惁宸茬粡鍒嗙孩 - TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); - if (order == null) - return; - - List<TeamDividentsSourceOrderUserMap> mapList = teamDividentsSourceOrderUserMapService - .listBySourceOrderId(order.getId()); - if (mapList == null || mapList.size() == 0) - return; - - int state = mapList.get(0).getState(); - - if (state == TeamDividentsSourceOrderUserMap.STATE_SX) - return; - - if (state == TeamDividentsSourceOrderUserMap.STATE_YILINGQU) {// 宸茬粡鍙戦�侊紝闇�瑕佸弬涓庡垎绾㈢殑浜哄垎鎽� - - // 鎸塙ID灏佽缁熻璧勯噾 - Map<Long, TeamDividentsSourceOrderUserMap> orderUserMap = new HashMap<>(); - for (TeamDividentsSourceOrderUserMap map : mapList) { - if (orderUserMap.get(map.getTargetUid()) == null) - orderUserMap.put(map.getTargetUid(), map); - else { - TeamDividentsSourceOrderUserMap oldMap = orderUserMap.get(map.getTargetUid()); - oldMap.setMoney(map.getMoney().add(oldMap.getMoney())); - orderUserMap.put(map.getTargetUid(), oldMap); - } - } - - for (Iterator<Long> its = orderUserMap.keySet().iterator(); its.hasNext();) { - Long uid = its.next(); - TeamDividentsSourceOrderUserMap map = orderUserMap.get(uid); - - String day = TimeUtil.getGernalTime(map.getPreSendTime().getTime(), "yyyy-MM-dd"); - // 鏌ヨ鏈鎬诲叡鐨勮繑鍒� - TeamDividentsSourceUser sourceUser = teamDividentsSourceUserService - .selectBySourceUidAndDayAndUid(map.getSourceUid(), map.getTargetUid(), day); - if (sourceUser != null) { - // 涓嶈兘鍑虹幇鍊掓瑺涓�鍒嗙殑鎯呭喌 - BigDecimal debtMoney = map.getMoney().setScale(2, BigDecimal.ROUND_UP); - if (debtMoney.compareTo(sourceUser.getMoney()) > 0) - debtMoney = sourceUser.getMoney(); - - // 闇�瑕佸伩杩樼殑璧勯噾 - TeamDividentsDebt debt = new TeamDividentsDebt(); - debt.setLeftMoney(debtMoney); - debt.setOriginMoney(debtMoney); - debt.setOrderNo(orderNo); - debt.setSourceType(sourceType); - debt.setUid(map.getTargetUid()); - // 鍔犲叆寰呭伩杩樿褰� - teamDividentsDebtService.addDebt(debt); - } - - } - - } else if (order.getState() == TeamDividentsSourceOrderUserMap.STATE_JS - || order.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) { - teamDividentsSourceManager.invalidByOrder(orderNo, sourceType, "璁㈠崟缁存潈"); - } - } - -} +package com.yeshi.fanli.service.manger.order; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +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.TeamDividentsSourceOrderUserMap; +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.service.inter.money.TeamDividentsDebtService; +import com.yeshi.fanli.service.inter.money.UserMoneyService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsRecordService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService; +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 org.yeshi.utils.TimeUtil; + +/** + * 鍥㈤槦鍒嗙孩绠$悊 + * @author Administrator + * + */ +@Component +public class TeamDividentsManager { + + @Resource + private TeamDividentsSourceManager teamDividentsSourceManager; + + @Resource + private TeamDividentsSourceOrderService teamDividentsSourceOrderService; + + @Resource + private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; + + @Resource + private TeamDividentsSourceUserService teamDividentsSourceUserService; + + @Resource + private TeamDividentsRecordService teamDividentsRecordService; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private TeamUserLevelStatisticService teamUserLevelStatisticService; + + @Resource + private TeamDividentsDebtService teamDividentsDebtService; + + @Resource + private UserMoneyService userMoneyService; + + @Resource + private HongBaoManageService hongBaoManageService; + + @Resource + private TeamEincomeManager teamEincomeManager; + + /** + * 寮�濮嬪垎绾� + * @Title: startDividents + * @Description: + * @param sourceUid -婧愮敤鎴� + * void 杩斿洖绫诲瀷 + * @throws + */ + @Transactional(rollbackFor = Exception.class) + public void startDividents(Long sourceUid) throws ParamsException { + String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"); + Date preSendTime = new Date(TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd")); + startDividents(sourceUid, preSendTime); + } + + @Transactional(rollbackFor = Exception.class) + public void startDividents(Long sourceUid, Date preSendTime) throws ParamsException { + String day = TimeUtil.getGernalTime(preSendTime.getTime(), "yyyy-MM-dd"); + // 鏌ヨ鍑哄彲鐢ㄤ簬鍒嗙孩鐨勭敤鎴风殑鎬婚噾棰� + long count = teamDividentsSourceOrderUserMapService.countCanSend(sourceUid, preSendTime); + int pageSize = 1000; + int page = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1); + List<TeamDividentsSourceOrderUserMap> totalList = new ArrayList<>(); + for (int p = 0; p < page; p++) { + List<TeamDividentsSourceOrderUserMap> list = teamDividentsSourceOrderUserMapService.listCanSend(sourceUid, + preSendTime, p + 1, pageSize); + if (list != null && list.size() > 0) + totalList.addAll(list); + } + + 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(key) == null) + moneyMap.put(key, new BigDecimal(0)); + moneyMap.put(key, moneyMap.get(key).add(map.getMoney())); + teamDividentsSourceOrderUserMapService.send(map.getId()); + } + } + + 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(key).setScale(2, BigDecimal.ROUND_DOWN); + // 灏嗚祫閲戝垎閰嶅埌鍙備笌鍒嗙孩鐨勭敤鎴� + TeamDividentsSourceUser teamDividentsSourceUser = new TeamDividentsSourceUser(); + teamDividentsSourceUser.setDay(day); + teamDividentsSourceUser.setMoney(dividents); + teamDividentsSourceUser.setSourceUid(sourceUid); + teamDividentsSourceUser.setTargetUid(uid); + teamDividentsSourceUser.setType(type); + teamDividentsSourceUserService.addTeamDividentsSourceUser(teamDividentsSourceUser); + } + } + + /** + * 鍒嗙孩璁$畻鏄惁瀹屾垚 + * @Title: isSourceUserComupteFinish + * @Description: + * @return + * boolean 杩斿洖绫诲瀷 + * @throws + */ + public boolean isSourceUserComupteFinish(String day) { + Date preSendTime = new Date(TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd")); + long count = teamDividentsSourceOrderUserMapService.countCanSend(null, preSendTime); + return count == 0; + } + + 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, type); + // 鏌ヨ闇�瑕佹墸闄ょ殑璧勯噾 + 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()); + teamDividentsDebtService.repayDebt(debt.getId(), debt.getLeftMoney()); + } else if (money.compareTo(new BigDecimal(0)) > 0) { + teamDividentsDebtService.repayDebt(debt.getId(), money); + money = new BigDecimal(0); + } else// 娌℃湁閽辫繕浜� + break; + } + + // 缁熻璧勯噾 + TeamDividentsRecord record = new TeamDividentsRecord(); + record.setDay(day); + 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, 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); + } + + /** + * @throws TeamDividentsDebtException + * 璁㈠崟缁存潈 + * @Title: weiQuan + * @Description: + * @param orderNo + * @param tradeId + * @param sourceType + * void 杩斿洖绫诲瀷 + * @throws + */ + @Transactional(rollbackFor = Exception.class) + public void weiQuan(String orderNo, int sourceType) throws TeamDividentsDebtException { + // 鏌ヨ璁㈠崟鏄惁宸茬粡鍒嗙孩 + TeamDividentsSourceOrder order = teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType); + if (order == null) + return; + + List<TeamDividentsSourceOrderUserMap> mapList = teamDividentsSourceOrderUserMapService + .listBySourceOrderId(order.getId()); + if (mapList == null || mapList.size() == 0) + return; + + int state = mapList.get(0).getState(); + + if (state == TeamDividentsSourceOrderUserMap.STATE_SX) + return; + + if (state == TeamDividentsSourceOrderUserMap.STATE_YILINGQU) {// 宸茬粡鍙戦�侊紝闇�瑕佸弬涓庡垎绾㈢殑浜哄垎鎽� + + // 鎸塙ID灏佽缁熻璧勯噾 + Map<Long, TeamDividentsSourceOrderUserMap> orderUserMap = new HashMap<>(); + for (TeamDividentsSourceOrderUserMap map : mapList) { + if (orderUserMap.get(map.getTargetUid()) == null) + orderUserMap.put(map.getTargetUid(), map); + else { + TeamDividentsSourceOrderUserMap oldMap = orderUserMap.get(map.getTargetUid()); + oldMap.setMoney(map.getMoney().add(oldMap.getMoney())); + orderUserMap.put(map.getTargetUid(), oldMap); + } + } + + for (Iterator<Long> its = orderUserMap.keySet().iterator(); its.hasNext();) { + Long uid = its.next(); + TeamDividentsSourceOrderUserMap map = orderUserMap.get(uid); + + String day = TimeUtil.getGernalTime(map.getPreSendTime().getTime(), "yyyy-MM-dd"); + // 鏌ヨ鏈鎬诲叡鐨勮繑鍒� + TeamDividentsSourceUser sourceUser = teamDividentsSourceUserService + .selectBySourceUidAndDayAndUid(map.getSourceUid(), map.getTargetUid(), day); + if (sourceUser != null) { + // 涓嶈兘鍑虹幇鍊掓瑺涓�鍒嗙殑鎯呭喌 + BigDecimal debtMoney = map.getMoney().setScale(2, BigDecimal.ROUND_UP); + if (debtMoney.compareTo(sourceUser.getMoney()) > 0) + debtMoney = sourceUser.getMoney(); + + // 闇�瑕佸伩杩樼殑璧勯噾 + TeamDividentsDebt debt = new TeamDividentsDebt(); + debt.setLeftMoney(debtMoney); + debt.setOriginMoney(debtMoney); + debt.setOrderNo(orderNo); + debt.setSourceType(sourceType); + debt.setUid(map.getTargetUid()); + // 鍔犲叆寰呭伩杩樿褰� + teamDividentsDebtService.addDebt(debt); + } + + } + + } else if (order.getState() == TeamDividentsSourceOrderUserMap.STATE_JS + || order.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) { + teamDividentsSourceManager.invalidByOrder(orderNo, sourceType, "璁㈠崟缁存潈"); + } + } + +} -- Gitblit v1.8.0